Recurring payments that look after themselves.
Create a plan and subscribe a customer. Tuppence charges their saved card on schedule and handles trials, upgrades and failed cards.
Lumen Labs pays Brightwell Studio $12.00 a month for its Pro plan. The September renewal goes through. On 1 October the card is declined and the subscription shows Payment failed: Tuppence will try again, and emails the customer a secure page to pay with another card. They pay $12.00 there, the subscription is active again and recovered, and the paid invoice, INV-000042, is ready as a PDF.
The whole life of a subscription.
Plans on any calendar
Daily, weekly, monthly or yearly, or every N of them, such as quarterly or every two weeks. A plan’s price never changes under your customers: a new price is a new plan.
Free trials
Give a plan trial days and the first charge waits until the trial ends.
Upgrades priced to the cent
Preview what a plan change costs, then make it at exactly that price. Downgrades wait for the paid period to end, or turn the difference into credit.
Failed-card recovery
A declined renewal is retried after 1, 3, 7 and 14 days. Your customer gets an email linking to a secure page to pay with another card.
Subscription links
Point a payment link at a plan: the page shows the recurring terms, and paying starts the subscription.
Cancel now or at period end
Stop straight away, or let your customer keep what they paid for. You choose each time. A cancellation set for the period’s end can be undone.
Pause and resume
Pause a subscription, with or without a resume date. The paid period runs to its end, and nothing more is charged until it resumes.
Trial-ending notices
Three days before a trial ends, your customer gets an email and your webhook gets subscription.trial_will_end. The first paid month starts the day the trial ends.
Coupons and promo codes
A percentage or an amount off, once, for a number of periods or for ever. Promo codes can expire, cap their uses or be for first-time subscribers only.
Invoices
Every charge gets an invoice, opened before the card is charged, numbered without gaps and itemized down to the coupon, with a PDF for you and your customer.
A customer portal
Send a customer a link to their own page to cancel, change plan, update their card and download invoices, as far as you allow.
A test clock
In test mode, move time forward up to five years and see renewals, retries and cancellations in minutes.
Events for every step
subscription.renewed, subscription.payment_failed, subscription.recovered and more, signed and delivered to your webhook.
A plan, then a subscriber.
Plans and subscriptions are in the API, the Node and Python SDKs and the MCP server, so an agent can set up billing too. MCP tools: create_plan, create_subscription, get_subscription and cancel_subscription.
const plan = await tuppence.plans.create({ name: "Pro", amount: 1200, // $12.00 interval: "month", trial_days: 14, }); const subscription = await tuppence.subscriptions.create({ customer: "cus_01K…", // with a saved card plan: plan.id, }); // subscription.status → "trialing"
Priced like every other payment.
Subscription charges cost the same as any other payment: 2.49% + 20¢ on US cards, with no monthly fee.
See all pricing- Trials on subscription links
- Tax on invoices: none is calculated yet
Charging for usage instead of a flat price? See Metered AI.
Payments that give more back.
Start in test mode in a minute. Go live once you’re verified.