Wallet pass barcodes
The barcode connects the pass to your systems: till, handheld scanner, gate. Two decisions to make:
- The format, set on the template:
barcodeFormat(coupon, transit) orbarcodeType(loyalty card, event). - The value, specific to each pass:
barcode.
Available formats
| Format | Shape | When to use it |
|---|---|---|
QR_CODE | 2D square | The default. Read by almost every scanner and smartphone. |
AZTEC | Compact 2D square | Transit and airline ticketing. Reads well on a screen, even a small one. |
PDF_417 | Stacked 2D rectangle | Boarding passes, access-control systems that require it. |
CODE_128 | 1D linear code | Tills with 1D scanners, loyalty cards. |
NONE | No barcode | Information-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
- By default, eldo wallet generates a value.
- You can set your own (CRM customer number, ticket number from your ticketing system):
barcodewhen you create the customer or the pass. - The barcode then works as a key: look up a customer (GET
/clients/barcode/{barcode}), add points at the till (PATCH/clients/barcode/{barcode}/gain), find a ticket (GET/transits/{transitId}/passes/barcode/{barcode}, GET/events/{id}/passes/barcode/{barcode}), redeem a pass (POST/passes/template/{templateId}/redeem/{barcode}).
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:
| Option | Effect |
|---|---|
enableOneTimeUse | The pass works once. |
disableIOSPassSharing | The holder cannot share the pass from Apple Wallet. |
disablePassLinkSharing | Disables sharing of the pass's add link. |
disableMultipleHolders | One holder per pass. |
enableSecurityAnimation | Visual animation on the pass, harder to fake with a screenshot. |
enableRotatingBarcode | Barcode 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.