Overview
Subscription businesses such as SaaS products, membership platforms, content services need to charge customers on a regular schedule without asking them to re-enter payment details each time. Novac supports this through card tokenisation on the customer’s first payment, Novac securely saves their card and returns a token. All future charges use that token, no manual input, no interrupted billing cycles.How It Works
Prerequisites
See details
See details
- Create an account with completed KYC
- Obtain your API keys — Public key for checkout initiation, Secret key for tokenised charges
- A webhookURL registered in your Novac dashboard for payment status notifications
- A database field to store each customer’s
card.token
Capture and Tokenise the Card
On signup or plan activation, initiate a standard checkout. After payment is completed and verified, the transaction response includes acard.token that represents the customer’s saved card.
Create a Checkout Session
Request
checkoutUrl to complete payment.
Verify the Transaction and Extract the Token
After the customer pays and is redirected to yourcallbackURL, verify the transaction server-side:
Request
Response (excerpt)
card.token in your database linked to the customer’s account. This token is what you’ll use for all future billing cycles.
Full guide → Verify a Transaction
Subsequent Billing - Charge the Saved Card
When a subscription renewal is due (daily, weekly, monthly), charge the customer’s saved card directly — no checkout page needed, no customer action required.Request
The
email value must match exactly the one used when the original checkout was created.Handle Payment Outcomes via Webhook
Tokenised charges happen server-to-server with no customer involvement. Your webhook endpoint is the primary way to know whether a renewal succeeded or failed.Successful Renewal
Failed Renewal
| Scenario | Recommended Action |
|---|---|
| Insufficient funds | Retry after 24–48 hours, notify customer |
| Card expired | Prompt customer to update card details via a new checkout |
| Repeated failures | Suspend subscription, send dunning email |
Updating a Customer’s Card
When a customer’s card expires or they want to use a different card, initiate a new checkout session to capture the new card details and replace the stored token. Use the same verification flow when extracting the newcard.token and update your database record for that customer.
What’s Next?
- Save and Charge Customer - Full technical reference for card tokenisation and tokenised charges.
- Refund a Transaction - Issue full or partial refunds when a subscriber cancels mid-cycle.
- Webhooks - Set up and secure your webhook endpoint for renewal notifications.