Help

Free accounts

Anyone can create a free account. After you confirm your email you can make one template and one pass: upload a CSV with a header row and one row of details. To fix a mistake, upload again: the same pass is updated and its link keeps working. Copy the pass link from the batch page and send it yourself (free accounts cannot email links or use the API). Forgotten your password? Use Forgotten password on the login page.

Your CSV file

The first row must be column names. Every following row becomes one pass.

Name,Member ID,Email
Alex Example,M-100234,alex@example.com
Sam Sample,M-100235,sam@example.com
  • Save from Excel as CSV UTF-8 or CSV (Comma delimited). Names with accents and macrons are kept.
  • In your template, refer to a column by putting its name in curly brackets, like {Member ID}. Capital letters don’t matter.
  • You can mix text and columns: Level: {Tier}. A field whose columns are all empty is left off that person’s pass.
  • Every pass also has {_serial}, a unique code you can use for a barcode when your data has no ID column.
  • Need to reshape a value? Add a filter after a pipe: {Grade/Team|inparens} turns “2026/2027 (Full)” into “Full”, {Grade/Team|year} gives the last year (2027), {Ref|after:/} keeps the text after the last “/”, {Name|before: } keeps the first word, and |upper, |lower, |title change the case.
  • Only the columns your template uses are saved when you upload a CSV (plus any you list under “Also keep these columns”). Dates of birth, phone numbers and other extras are thrown away.
  • Need a similar card (another membership type, or next season)? Choose Duplicate on the Templates page or at the top of a template. The copy, named “… (copy)”, has the same settings and artwork but no passes; rename it and change what you need.
  • Type an expiry date into every template when you create it (or tick “These passes never expire”). It is recommended, because it stops a lapsed member’s card being accepted. Every card made from the template gets that date; it is not read from your CSV. Renew it by editing the template before the date passes.
  • Dates like 31/08/2027 (day first) or 31 Aug 2027 work. A pass stops being valid at the end of that day. To show the date on the card, add a field with {_expires}.

Emailing pass links

Open a batch and choose Email pass links. Check the preview, send yourself a test, then queue the emails. They go out gradually in the background (about 90 an hour with the current mail setup), and the batch page shows who has been sent, who is waiting and who failed. Set the wording, the email column and a reply-to address in the template’s Email section.

  • Use {Column} for a person’s details, {_link} for their pass link and {_org} for your organisation name.
  • Rows with no email address, or more than one address in the cell, are skipped and listed.
  • Only email people who have joined and expect their card.

Correcting or renewing passes

In the template’s CSV columns section, set Match existing members by to a column that is different for every person (a member number or person ID is ideal). Then, when you upload a CSV again, anyone already in that template is updated in place – same link, same pass, new details – instead of getting a second pass. New people are added as usual, and the batch page says how many were updated.

  • Apple Wallet: the member opens their link again and taps Add; Wallet replaces the old card with the new one (it recognises it as the same pass). Apple passes do not change on their own.
  • Google Wallet: the saved card is updated automatically when the batch is uploaded and the member (or you) opens the link, and shows the new details on the phone.
  • To tell people, use Email pass links on the new batch: updated members are emailed again (only once).
  • Renewing for a new season? Edit the template’s expiry date first, then upload the new CSV.
  • A CSV row with no value in the matching column is added as a new pass, and the same person appearing twice in one file is only used once (the batch page lists both).

Artwork

  • Icon – a square PNG or JPG, at least 512 × 512 pixels. Shown on lock-screen notifications in Apple Wallet and as the logo in Google Wallet.
  • Logo – optional wide logo shown top-left on Apple passes. Transparent PNGs look best.
  • Banner – optional wide image (about 1125 × 369) for store cards, coupons and event tickets. It is cropped to fit.
  • Files are converted for you, so any PNG, JPG, GIF or WebP up to 4 MB is fine.

Adding a pass to Apple Wallet

Open the pass link on an iPhone (Safari or Chrome) and tap Add to Apple Wallet, then Add. On a Mac, open the link on your iPhone or download the file and AirDrop it.

Adding a pass to Google Wallet

Open the pass link on an Android phone and tap Add to Google Wallet. Passes can also be added from Chrome on a computer if you are signed in to your Google account.

Making passes from another system (the API)

Instead of uploading a spreadsheet, a membership system or website can ask pocketpass.nz to make or update a person's pass and get the link back. Create a key under Settings, then call PUT /api/v1/templates/<template id>/passes/<person key> with the person's columns as JSON. Asking again with the same person key updates the same pass and keeps its link. Each key can only reach your own templates and passes.

The full guide, with examples and the list of errors, is docs/api.md in the code. Ask the site owner if you need a copy.

Barcodes and scanning

QR codes are the most reliable for phone cameras and most scanners. Use Code 128 for older laser scanners that only read linear barcodes, and keep the value short. Turn the phone brightness up when scanning.