Prepaid credits (credit burndown)
Customers buy a balance upfront and usage eats it down. Like an arcade card: no bill at the end, just a number falling toward zero.
See it
What it is
The customer pays first and gets a balance, then every action draws that balance down until it hits zero. No invoice arrives at the end of the month, just a number that falls. OpenAI credits, Twilio balance, and arcade cards all run this pattern. The credit is your own unit (1 credit equals 1 image, or 1,000 tokens), which decouples your price from vendor cost changes.
Reach for it when you want cash upfront, zero collections risk, and a hard ceiling on what any single account can cost you. It also sidesteps bill shock entirely: the worst case for the customer is that the product stops working. Pair it with auto-topup (recharge 20 dollars whenever the balance drops below 5) so heavy users do not hit a wall mid-workflow.
Gotchas, and they are accounting-shaped. Sold credits are deferred revenue, a liability on your books until burned, so your Stripe payout and your recognized revenue will never match without a ledger. Decide upfront whether credits expire (many jurisdictions treat unexpiring balances as regulated stored value), and hold credits during a long running job instead of debiting after, or two concurrent jobs will both spend the last credit.
Ask AI for it
Build a prepaid credit system. Add a credit ledger table with append-only entries (purchase, debit, refund, expiry) keyed by customer, and derive the balance from the sum rather than storing a mutable number. On checkout, sell credit packs with volume discounts and post a purchase entry on the payment webhook. Before a billable action, atomically place a hold for the estimated cost, then settle the hold to the true cost when the job finishes and release the remainder, so concurrent jobs cannot overspend the last credit. Block the action with a clear top-up prompt at zero balance, show remaining credits plus recent burn in the dashboard, and support optional auto-topup with a configurable threshold and amount.