Skip to main content
This guide uses a test key, so passes use TapAce’s demo signing setup by default and you don’t need Apple or Google credentials yet. For a Node.js integration, follow the SDK quickstart. It covers the same issue, deliver and update flow with typed methods and stable idempotency keys. The cURL examples below start new operations. Save the generated idempotency key before sending each mutation, and reuse that same key and body if you retry it. See Idempotency.
1

Create a test API key

In the dashboard, open Developers → API keys, choose Test and select Create key. Copy the key straight away: it starts with tapace_test_ and is shown only once.
2

Design a template

Open Templates, choose a starter under Start from a starter, and customize it. For every value that changes from holder to holder, such as a member name, set the field’s Value binding to Per-pass value. Its key is the name you send in fieldValues.Copy the template ID from its page, then check which fields each pass needs:
The response lists them in requiredFields, for example ["memberName"].
3

Issue a pass

The response is the new pass. Keep its id so you can update it later.
4

Send it to the holder

The pass carries a distributionUrl, such as https://tapace.lk/p/6BkJLsso1xyB. Open it on a phone, or send it to the holder by email or SMS. The page offers Add to Apple Wallet and Add to Google Wallet. See Deliver passes.
5

Update it

Change a value and TapAce pushes the update to every wallet that saved the pass:

Next steps

Go live

Switch to a live key and your own certificates.

Webhooks

Find out when a holder adds or removes a pass.