Skip to main content

Wallet pass barcodes

The barcode connects the pass to your systems: till, handheld scanner, gate. Two decisions to make:

  1. The format, set on the template: barcodeFormat (coupon, transit) or barcodeType (loyalty card, event).
  2. The value, specific to each pass: barcode.

Available formats​

FormatShapeWhen to use it
QR_CODE2D squareThe default. Read by almost every scanner and smartphone.
AZTECCompact 2D squareTransit and airline ticketing. Reads well on a screen, even a small one.
PDF_417Stacked 2D rectangleBoarding passes, access-control systems that require it.
CODE_1281D linear codeTills with 1D scanners, loyalty cards.
NONENo barcodeInformation-only pass (confirmation, member card without checks).
Test with your scanners

Before launch, scan a real pass on a real phone with your hardware. An old 1D scanner cannot read a QR code.

Apple detail

Apple Wallet does not show 1D codes (CODE_128) on Apple Watch. Use a 2D format if your customers scan from their watch.

The barcode value​

Uniqueness

The same barcode cannot be given to two customers of the same wallet. The API returns BARCODE_ALREADY_EXISTS (409).

Security options​

Templates expose a security block:

OptionEffect
enableOneTimeUseThe pass works once.
disableIOSPassSharingThe holder cannot share the pass from Apple Wallet.
disablePassLinkSharingDisables sharing of the pass's add link.
disableMultipleHoldersOne holder per pass.
enableSecurityAnimationVisual animation on the pass, harder to fake with a screenshot.
enableRotatingBarcodeBarcode that changes regularly: a screenshot becomes useless.

In multipart/form-data, send the block as a JSON string: security={"disableIOSPassSharing":true}.

Test each option on Apple Wallet and on Google Wallet before launch.

Go further​

API news, once a month

New endpoints, upcoming changes, guides and use cases. No spam, one-click unsubscribe.

Report a technical problem

An API error, a pass that does not update, an email that does not arrive? Describe the problem: our technical team will answer.

For a fast answer, include:

  • The method and endpoint (e.g. POST /clients)
  • The error code returned (errorCode) and the body sent
  • The date and time of the call
  • The identifiers involved (customer, template, pass)

Never include an API token or a password.

AI assistant

Beta

Loading…

AI-generated answers (Claude): double-check important details.

Sign in to use the assistant