
BillingVault
A mock SaaS subscription checkout wired to the TapPay sandbox payment flow.
Sandbox environment. No real charges are made.
- TapPay Fields tokenize card data into a Prime, so raw card numbers never reach my own server; saved cards are charged via Pay by Token.
- Subscription requests carry an idempotency key plus a submit lock, so retries and double clicks never double charge.
- Sessions are verified with Supabase SSR, with CSP nonces and a redirect allowlist guarding against injection and open redirects.
- Next.js
- TypeScript
- Supabase
- Prisma
- TapPay