Credits & Billing
One simple currency for everything: credits. No subscription required — buy credits when you need them, they never expire.
Every account starts with 50 welcome credits — enough to design a pass and put it on dozens of phones. After that, buy credit packs as you go or pick a plan with a monthly allowance. Credits never expire and unused monthly credits roll over.
What costs credits
Two rates exist for high-volume actions: the pay-as-you-go rate (Freedom) and the bulk rate (Growth and Pro plans).
| Action | Freedom (pay-as-you-go) | Growth / Pro |
|---|---|---|
| Design a pass | 10 credits (one-time per design) | 10 credits (one-time per design) |
| Issue a pass | 1 credit per pass installed | 1 credit per pass installed |
| Update a pass for all holders | 1 credit per push event | 1 credit per push event |
| Update a pass for one holder | 1 credit per push event | 1 credit per push event |
| Bulk campaign push | 1 credit per holder | 1 credit per 50 holders |
| Redemption scan (POS app or API) | 1 credit per scan | 1 credit per 15-minute window per register per pass |
| Barcode pool upload | 1 credit per code | 1 credit per 500 codes |
- Issuing is billed per installed pass — one customer adding the pass on two devices is two installations.
- Scans on Growth/Pro are windowed per register: a register's first scan of a pass opens a 15-minute window and its repeat scans of that pass inside it are free — each register bills at most 4 credits an hour per pass, however busy the counter.
- A scan is never blocked by an empty balance — the redemption at the counter always completes; only the charge is skipped. Everything else — pushes, creating designs, issuing passes, uploading barcode pools — requires sufficient balance.
What's free
| Unpushed per-holder calls | A per-holder update that doesn't push — the response says pushed: false because nothing changed or the push was skipped — is free. |
| Holder lookups | GET /holders/find and POS member lookups never consume credits. |
| Loyalty & order calls | POST /loyalty/points and POST /orders/process have no per-call fee — you only pay for what they trigger: a newly issued pass (1 credit) or a resulting push. |
| Revokes | Revoking one instance or mass-revoking by barcode is free. |
| Webhooks | Deliveries, retries, and signatures are all free, on every plan. |
| Issuance dedupe hits | Re-issuing to an email that already holds the pass returns the existing pass and charges nothing — retried automations never double-bill. |
Credit packs
- 100 credits — $5
- 500 credits — $20
- 2,000 credits — $70
- 10,000 credits — $299
Packs are one-time purchases. They never expire and stack with any plan.
Plans
- Freedom — free. Pay-as-you-go rates, unlimited pass designs, Shopify integration, analytics, API and webhooks. No subscription, no commitment.
- Growth — $49/month. 2,000 credits per month (rollover), white-label passes, plus the bulk rates above: pushes per 50 holders, windowed scans, barcode codes per 500.
- Pro — $149/month. 10,000 credits per month (rollover) and everything in Growth.
Team wallets
Actions on a team-owned pass bill the team's shared credit balance, not the acting member's personal one — API keys included.
A team owner can instead bill a team through a parent account — their own account or another team they own. The dependent team inherits the parent's plan and rates, its actions draw from the parent's balance (its own wallet stays at 0), and its billing page shows only “Billed through {parent}” with the shared balance. Chains are allowed (agency → company → brand). Only the parent's owner can release a dependent team; on release it returns to Freedom with a 0 balance and sets up its own billing. Billing pages are visible to team owners only.
Questions about billing? support@thepassstudio.com