Skip to main content
Every batch says where its codes are checked. You choose it in New batch → Where codes are checked, and it decides which codes the batch can print.
Private Codes are always checked online: only Satyakod’s servers read them, so no other scanner can.

Choosing a mode

  • Consumer-facing products: Online. Phones open the verdict page, and every scan feeds clone detection, alerts and the monthly report.
  • Parts tracked through your own plant, warehouse or service network: Offline with a serial-only Code 128 or DataMatrix. Your line scanners read the serial, your MES or ERP checks it, and nothing depends on a connection. See Factory and warehouse scanners.
  • Both at once: Online and offline. For example a GS1 DataMatrix your warehouse reads offline at receiving, which consumers and partners verify online.

How offline checking works

A serial carries its batch number, its index in the batch and a 4-byte signature (format). For offline batches, an admin downloads the batch’s verification key and loads it into your system, which can then check any serial of that batch with a few lines of code. See Offline verification. Scans made offline can be uploaded later with POST /v1/verify/offline. Satyakod checks each as of the moment it was made, so clone detection, alerts and scan history catch up.

Signed codes

Any batch printed as GS1 QR, QR or DataMatrix can also have signed codes (New batch → Code symbology → Signed codes). Each code then holds a link with an Ed25519 signature (?sig=<fingerprint>.<signature>) made with your workspace’s code-signing key. The public half of that key is published, so anyone can check a signed code with no connection and no secret: the Satyakod app keeps the public keys and gives a verdict offline, marked checked offline, which is confirmed with Satyakod once the phone is back online.
  • Use it when people check products where there’s no signal (rural retail, basements, warehouses) and you don’t want to hand verification keys to their devices.
  • What it proves: the code was issued by you. Like any offline check, it can’t see copies of a genuine code; Satyakod’s clone detection does that once the scan is uploaded.
  • Trade-off: the code carries about 100 more characters, so it prints a little larger.
To check one in your own software, fetch the keys from https://<your verify domain>/v/signed-keys and verify the signature over satyakod-signed-code-v1|<fingerprint>|<serial> with the key whose fingerprint matches.