Skip to main content
Card billing is the simplest setup. Your customer enters their card details once, and we charge automatically on every renewal. No card re-entry, no manual follow-up — unless the card fails.
1

Create a plan group and plans

First, set up your pricing tiers.
2

Create a customer

3

Tokenise the card

Card tokenisation happens through Nomba’s payment SDK on your frontend — the customer’s raw card number never touches your server. Nomba returns a token (starts with tok_). Pass that token to Plinth.See Nomba’s card tokenisation docs for the frontend integration. The result is a token like tok_live_4x8bZ....In test mode, use the pre-built test tokens:
4

Create the subscription

Response
If the plan has a trial, the state will be trialing instead of active, and next_bill_at will be the trial end date.
5

Subscription renews automatically

When next_bill_at arrives, the billing engine:
  1. Creates an invoice for the new period
  2. Applies any customer balance credit first
  3. Charges the card for the remainder
  4. Marks the invoice paid
  5. Updates next_bill_at to the next period
  6. Fires subscription.renewed and invoice.paid webhooks
You don’t need to do anything. Listen for the webhook and update your records.
6

Handle renewal webhooks

Node.js
7

Handle failed renewals

When a card declines on renewal, the subscription moves to past_due and the retry schedule starts. Listen for these:
Node.js
See the dunning guide for the full retry schedule and what to do at each step.