Billing for software

Prepaid credits billing, on one ledger

Credit-based pricing without a homemade wallet: customers buy credits up front, usage draws them down, one ledger records it all.

Get in touch
Free to start. No contract. We'll show you what your finance stack is costing you.
The problem

Credit-based pricing moved faster than the billing behind it

Credit-based pricing sells a prepaid pool of credits — dollars, tokens or abstract units — and draws it down as the customer uses the product. It became the default for AI products in 2025–26: GitHub moved every Copilot plan to AI Credits on 1 June 2026, and OpenAI moved Codex to token-based credits in April 2026. The billing problem is that a credit balance is money you owe back in service. It has to be topped up, drawn down in the right order, expired on schedule, reported as a liability and shown to the customer before it runs out — usually in a wallet table someone built in a weekend.

Under ASC 606 a prepaid credit is a contract liability until it is consumed, and breakage on credits that are never used can only be recognised in proportion to the pattern of use — which needs a ledger that records exactly when each credit was drawn. The bill-shock side is just as real: Cursor refunded users in July 2025 after a switch to usage-priced credits surprised them.

Credit ledger · Northwind AIAppend-only
Top-up · purchased
$5,000
Promotional · onboardingexpires 31 Dec
$500
Drawn · invoice 2610AABafter tax
−$1,240
Liability · outstanding
$4,260
What Fynex runs

How prepaid credits run on Fynex

Sell the pool, draw it down, report it — without building a wallet.

Credit ledger

Top-ups, grants and eight credit types

Purchased, promotional, gift, manual, enterprise, marketplace, AI-token and proration credit — each granted with an amount, a currency, a reason and an optional expiry through one idempotent call. Nothing is edited in place: every movement is a new ledger entry.

Applied as payment

Drawdown at issue, after tax

Credit is drawn when an invoice is issued and applied after tax, as a payment rather than a discount — so the taxable amount and the tax on the invoice stay correct. An invoice covered in full by credit is settled from the ledger with nothing to collect.

Expiry & alerts

Expiry and depletion, on schedule

Promotional credit expires on its date; the expiry is a ledger entry, not a silent deletion. `CreditApplied` and `CreditDepleted` webhooks tell your product the moment a balance moves or runs out, so the top-up prompt arrives before the customer is blocked.

Revenue recognition

The liability, reported

The outstanding balance per customer and in total exports as a liability report — the deferred-revenue figure your ASC 606 schedule and your auditor ask for, from the same ledger that drew the credit.

Credit liabilities · 30 Sep
Purchased
$184,200
Promotionalexpiring in 30 days
$12,400
Customers with balance
1,146
How we compare

The same job, with the leaks closed

Point tools solve part of it. Fynex runs the whole thing on one platform.

The problem
Other platforms
Recommended
!Store a credit balance
✕Other platformsA wallet table in your database, reconciled against invoices by hand.
✓FynexAn append-only credit ledger: top-up, deduction, expiry and reversal entries.
!Apply credit to an invoice
✕Other platformsOften modelled as a discount, which changes the taxable amount.
✓FynexDrawn at issue and applied after tax, as a payment.
!Expire promotional credit
✕Other platformsA cron job someone wrote once.
✓FynexExpiry dates per grant, with expiry recorded as its own ledger entry.
!Report the liability
✕Other platformsA query against the wallet table at month end.
✓FynexA liability export per customer and in total.
FAQ

Questions, answered

Credit-based pricing sells customers a prepaid pool of credits and draws the pool down as they use the product. Credits can be denominated in money, tokens or abstract units, and are often combined with a subscription that includes a monthly allowance. It is now the common model for AI products because it lets the price follow a variable cost per request.
You grant prepaid credit on a customer's contract — purchased, promotional, gift, manual, enterprise, marketplace, AI-token or proration — with an amount, currency, reason and optional expiry. When an invoice is issued, available credit is drawn against it after tax. Every top-up, drawdown, expiry and reversal is an entry on an append-only ledger, readable per contract or across all customers.
No. A discount reduces the price and therefore the tax base; a prepaid credit is money the customer already paid, applied as payment against the invoice total after tax. Treating credits as discounts understates the tax on the invoice, which is why Fynex applies credit after tax.
Under ASC 606, cash received for credits is a contract liability (deferred revenue) until the credits are consumed. Revenue for unused credits (breakage) is recognised in proportion to the pattern of customer use when the company expects to be entitled to it — which requires records of when credits were drawn. Fynex's credit ledger and liability export provide those records; your auditor and your policy decide the recognition.
Yes. Balances are readable per contract through the Billing API, and `CreditApplied` and `CreditDepleted` webhooks fire as balances move, so your product can show the balance, prompt a top-up before the customer runs out, and never surprise them with a blocked account. The endpoints are in the credits reference; pricing credits for an AI product is covered in billing for AI companies.

Find what you're leaking, for free

Send us your setup. We run a free diagnostic and show you what your payment stack costs you today.

One recent diagnostic found $2M in hidden fees across 10 processors for a proptech client.
Get in touch
Compliance, handled

Your money, held under a licence, not a promise

We can be your Merchant of Record and hold the funds. Most tools can't, because they don't hold the licence.

FCA-authorised EMI

An e-money institution via Fondy. We can hold and move your funds.

Licence
E-money institution
FCA
Client funds
Safeguarded

PCI DSS Level 1

The highest card-data security standard, on by default.

Card data
PCI DSS
Level 1
Encryption
On by default

Audit logs

Every movement traceable and ready for review.

Activity
Payout · $23,84714:02:11
Logged
Split · ORD-2024-00114:02:09
Logged

Built-in KYC / KYB

The switch that turns the business on.

Verification
KYB · Northwind Labs Inc
Approved
KYC · J. Whitfield
Approved
We do Fridays so you don't have to.Payouts at midnight. You, asleep.Invoices that chase themselves. Ruthlessly.We carry the chargebacks. You carry on.We do Fridays so you don't have to.Payouts at midnight. You, asleep.Invoices that chase themselves. Ruthlessly.We carry the chargebacks. You carry on.We do Fridays so you don't have to.Payouts at midnight. You, asleep.Invoices that chase themselves. Ruthlessly.We carry the chargebacks. You carry on.

Sell it up front. Draw it down right

Get in touch
Spreadsheets, retired with honors.Month-end close, minus the month-end.FX fees, caught red-handed.Fewer tools. Fewer tabs. Fewer tears.Your CFO's favorite coworker never takes lunch.Spreadsheets, retired with honors.Month-end close, minus the month-end.FX fees, caught red-handed.Fewer tools. Fewer tabs. Fewer tears.Your CFO's favorite coworker never takes lunch.Spreadsheets, retired with honors.Month-end close, minus the month-end.FX fees, caught red-handed.Fewer tools. Fewer tabs. Fewer tears.Your CFO's favorite coworker never takes lunch.
Book a demo