A boring, predictable REST API for events, orders, tickets, and wallet passes. Bearer tokens, idempotent writes, JSON in and JSON out — the same rails that power every storefront on Tapticks.
$ curl https://api.tapticks.app/v1/events \ -H "Authorization: Bearer sk_live_…" { "object": "list", "has_more": false, "data": [ { "id": "evt_4Ywu2…", "name": "Reggae Sumfest 2026", "venue": "Catherine Hall", "starts_at": "2026-07-18T20:00:00-05:00", "status": "on_sale" } ] }
Every request carries a bearer token in the Authorization header. Sandbox keys never touch real money or live wallet passes. Rotate keys at any time — old keys keep working for a 30-minute grace window.
Fake payments. Wallet passes are watermarked. Webhooks fire normally.
Real money, real settlements. Issued after storefront verification.
/v1/events$ curl https://api.tapticks.app/v1/events \ -H "Authorization: Bearer sk_live_4ZqT…" \ -H "Tapticks-Version: 2026-05-01"
Missing or malformed tokens return 401 unauthorized. Tokens scoped to a different storefront return 403 forbidden.
Roll a key from the dashboard. Old key stays valid for 30 minutes so deploys land cleanly.
Optional per-key allow-list — pin live keys to your production egress ranges.
Read-only or write-scoped tokens for analytics jobs and partner integrations.
An event is the top-level object — a show on a date at a venue. Events hold tiers, gates, and the inventory you'll sell against.
/v1/events$ curl https://api.tapticks.app/v1/events?limit=10 \ -H "Authorization: Bearer sk_live_…" { "object": "list", "data": [ { "id": "evt_4Ywu2", "name": "Reggae Sumfest 2026", "venue": "Catherine Hall, Montego Bay", "starts_at": "2026-07-18T20:00:00-05:00", "capacity": 32000, "sold": 18443, "currency": "JMD", "status": "on_sale" } ] }
POST /v1/orders takes a fan reference, the line items, and a payment method. Pass an Idempotency-Key header to safely retry on network blips — duplicate requests return the original order.
/v1/ordersPOST /v1/orders Authorization: Bearer sk_live_… Idempotency-Key: ord_req_8t2… Content-Type: application/json { "event_id": "evt_4Ywu2", "fan": { "email": "asha@fanmail.jm", "phone": "+18761234567" }, "line_items": [ { "tier_id": "tier_vip_b", "quantity": 2 } ], "payment_method": "card" }
createdHTTP/1.1 201 Created { "id": "ord_Hx8q21", "event_id": "evt_4Ywu2", "status": "paid", "currency": "JMD", "total": 37000, "tickets": [ { "id": "tkt_91Aa", "tier": "VIP · B14", "wallet_pass_url": "https://wp.tapticks.app/…" }, { "id": "tkt_91Ab", "tier": "VIP · B15" } ], "created": 1747700400 }
Supported payment_method values: card, apple_pay, google_pay, mobile_money_jm.
A ticket is a single seat under an order. Transfers are first-class — move a ticket to a new fan by email or phone, and the wallet pass on the old device deactivates within a second.
/v1/tickets/{id}/transferPOST /v1/tickets/tkt_91Aa/transfer { "to": { "email": "jordan@fanmail.jm", "name": "Jordan B." }, "message": "See you at the gate." }
Tickets ship with a pass URL by default. If you want to mint a custom pass — partner artwork, an extra back-field, or a sponsor strip — call /v1/wallet/passes directly.
/v1/wallet/passesPOST /v1/wallet/passes { "ticket_id": "tkt_91Aa", "platform": "apple", "strip_image_url": "https://cdn.example/strip.png", "back_fields": [ { "label": "Gate", "value": "Gate 4 · West" } ] }
okHTTP/1.1 200 OK { "id": "pass_a31m", "platform": "apple", "install_url": "https://wp.tapticks.app/a/…", "refresh_ms": 250, "status": "ready" }
Passes refresh within 250ms when the underlying ticket changes — gate moves, set-time slips, or section swaps push live to every installed device.
We POST a JSON envelope to your endpoint with an HMAC-SHA256 signature in Tapticks-Signature. Non-2xx responses are retried with exponential backoff for 24 hours.
Fired the moment payment captures. Includes line items, fees, and a fan reference.
Full or partial refund settled to the original payment method.
A fan moved one or more tickets to another account by email or phone.
A door scanner validated the pass — includes gate, staff id, and timestamp.
Apple Wallet or Google Wallet acknowledged the install on the fan's device.
NFC tap or QR read at the gate. Sent within 250ms of the scan event.
An event date, gate, or set time changed — passes auto-refresh.
Funds landed in your bank. Includes payout id and net amount in JMD or USD.
https://your-app.com/webhooks/tapticksPOST /webhooks/tapticks Tapticks-Signature: t=1747700400,v1=8a92… Content-Type: application/json { "id": "evt_whk_2k1p", "type": "order.created", "created": 1747700400, "data": { "id": "ord_Hx8q21", "event_id": "evt_4Ywu2", "total": 37000, "currency": "JMD" } }
Sandbox keys are free and instant. Live keys get issued the same day after storefront verification. No credit card required.