Getting started
Go live checklist
The practical checks before real users buy credits.
Use this checklist before switching from test payments to real payments.
First complete your test payment and confirm checkout, fulfillment, and webhook processing work together.
Dashboard
- Your project has the correct identity mode.
- Products use clear credit units users understand.
- Prices grant the amount of credits you intend.
- Free grants are not larger than you are comfortable giving away.
- Anonymous projects have a wallet creation limit and optional code expiry.
Provider
- Stripe is connected with production credentials.
- The webhook endpoint shown in vantezzen/pay is registered at the provider.
- The webhook signing secret is saved in vantezzen/pay.
- A test checkout creates an order and credits the wallet.
- Refunds and subscription renewal events show up in the webhook log.
Using Polar instead? The same checklist applies, but use the Polar events from Connect a provider.
App
NEXT_PUBLIC_PAY_URLpoints to the production vantezzen/pay URL.NEXT_PUBLIC_PAY_KEYis a publishable key for the right project.- Secret keys are used only on your server.
- Each paid action calls
deduct()when work starts. - Retried paid actions use stable idempotency keys.
- The purchase button is visible when users run out of credits.
- A recovery-code input is available somewhere users can find it.
Self-hosted vantezzen/pay
PAY_ALLOW_SIGNUPS=falseafter your admin account exists.NEXT_PUBLIC_APP_URLandBETTER_AUTH_URLmatch the public domain.RESEND_API_KEYandRESEND_FROMare configured and can deliver email.- If enabled, GitHub OAuth callback is set to
/api/auth/callback/githubon your production domain. - Database migrations have run against production Postgres.
- The registry URL in install commands uses your production domain.
After this, your users can buy credits and spend them in your app.