passtap

One request makes a pass.

The builder on Make a pass uses this same API. Sign in to make an API key.

Design a pass

Send the design as JSON with your key. Colors, a logo, a picture across the pass, the text, and what the pass does at the counter. Words in braces are filled in for each person who holds it.

curl -X POST https://www.passtap.app/api/passes \
  -H "authorization: Bearer pt_live_YOUR_KEY" \
  -H "content-type: application/json" \
  -d '{
    "kind": "loyalty",
    "brand": { "name": "Poke Squad", "color": "#F5DDE3", "textColor": "#2F6F8F", "labelColor": "#2F6F8F", "hideName": true },
    "header": [],
    "fields": [
      { "label": "BOWLS SO FAR", "value": "{stamps}" },
      { "label": "FREE BOWLS", "value": "{rewards}" }
    ],
    "back": [],
    "barcode": { "format": "qr", "value": "-", "altText": "{name}" },
    "program": { "type": "stamps", "goal": 10, "reward": "Free bowl" }
  }'
{
  "id": "k7m2p9xq4r",
  "url": "https://www.passtap.app/p/k7m2p9xq4r",
  "logo": null,
  "strip": null,
  "program": { "type": "stamps", "goal": 10, "reward": "Free bowl" }
}

Make many cards at once

One request makes up to 250 cards of a pass, each with its own name, values and starting count. You get a link for each: send it to the person it is for.

curl -X POST https://www.passtap.app/api/passes/k7m2p9xq4r/holders \
  -H "authorization: Bearer pt_live_YOUR_KEY" \
  -H "content-type: application/json" \
  -d '{ "holders": [
        { "name": "Maria Mota", "stamps": 4 },
        { "name": "Ana Ribeiro", "data": { "tier": "Gold" } }
      ] }'
{ "holders": [
  { "serial": "x3k9m2p7q4rt", "name": "Maria Mota", "status": "4 of 10 stamps",
    "url": "https://www.passtap.app/c/x3k9m2p7q4rt",
    "apple": "https://www.passtap.app/c/x3k9m2p7q4rt/pass.pkpass",
    "google": "https://www.passtap.app/c/x3k9m2p7q4rt/google" },
  …
] }

Stamp, spend, check in

The same things the counter page does, from your own till or website: stamp, redeem, spend with an amount, use.

curl -X POST https://www.passtap.app/api/holders/x3k9m2p7q4rt/stamp \
  -H "authorization: Bearer pt_live_YOUR_KEY"

Building with AI?

Paste this into the tool you build with. It is everything it needs to add passes to your project.

What to know

Keys. A key acts as you. It is shown once when you make it; revoke it in the dashboard if it leaks.

Limits. 250 cards per pass, and 250 per request.

Names are yours to send. Passtap asks holders for nothing. A name or value on a card is there because you sent it.

Errors say what to fix. The answer names the field and the fix.

Google Wallet uses its generic layout for every kind of pass for now, and picks its own text color.