What is Credit-Based Billing?
Credit-Based Billing gives you a flexible system to issue credit entitlements to customers as part of your products. Instead of charging per-use or limiting access through feature flags, you allocate a pool of credits that customers draw from as they use your service. Credits are ideal for:- AI and LLM platforms: Grant tokens or generation credits per plan tier
- API services: Allocate API call credits with overage pricing
- Infrastructure platforms: Issue compute hours or storage credits
- Communication services: Provide message or minute credits per subscription
- SaaS with consumption tiers: Bundle included usage into credit pools

Core Concepts
Credit Types
When creating a credit, you choose between two types:- Custom Unit
- Fiat Credits
Credit Lifecycle
Credits follow a clear lifecycle from issuance through consumption:Credits Issued
Credits Consumed
Credits Expire or Roll Over
Grant Sources
Credits can be granted from multiple sources:| Source | Description |
|---|---|
| Subscription | Credits issued with subscription purchase, re-issued each billing cycle |
| One-Time | Credits issued with a one-time payment product |
| API | Credits granted manually via API or dashboard |
| Rollover | Credits carried over from a previous billing cycle |
Creating Credits
Create credit entitlements in the Products → Credits section of your dashboard. Each credit defines the unit, precision, expiry rules, and lifecycle behavior.
Navigate to Credits
Set General Settings
- Custom Unit - Define your own metric (tokens, API calls, compute hours). Requires a Unit Name (e.g., “Platform tokens”) and a Precision setting.
- Fiat Credits - Credits represent real currency value. Requires a Unit Currency selection (USD, EUR, GBP, INR, etc.).
0- Whole numbers (best for countable items like API calls)1- One decimal (0.0)2- Two decimals (0.00) - default3- Three decimals (0.000)
- 7 days, 30 days (default), 60 days, 90 days, Custom, or Never
Configure Subscription Settings (Optional)
- Max Rollover Percentage (0–100%) - Limit how much carries over
- Rollover Timeframe - How long rolled-over credits remain valid (e.g., 1 Month)
- Max Rollover Count - Maximum consecutive rollovers before credits are forfeited
- Overage Limit - Maximum credits customers can consume beyond their balance
- Price Per Unit - Cost per additional credit when overage is enabled (with currency selector)
- Forgive overage at reset (default) - Usage beyond the credit limit is tracked but not billed. Balance resets each cycle.
- Bill overage at billing - Usage beyond the credit limit is charged on the next invoice, then the balance resets.
- Carry over deficit - Usage beyond the credit limit carries forward as a negative balance into the next cycle.
- Carry over deficit (auto-repay) - Deficit carries forward and is automatically repaid from new credits in the next cycle.
Attaching Credits to Products
Créditos são anexados aos produtos como direitos no fluxo de criação ou edição do produto. Você pode anexar até 5 créditos por produto. Créditos funcionam com todos os três tipos de precificação.Subscription Products
For subscriptions, credits are issued per billing cycle and can be configured with proration, trial credits, and cycle-specific settings.Create or Edit a Subscription Product
Open Entitlements Section

Select Credits to Attach

Configure Credit Settings

One-Time Payment Products
For one-time payments, credits are issued once at the time of purchase.Usage-Based Billing Products
For usage-based products, credits are linked to meters and automatically deducted based on real-time consumption events.Create a Usage-Based Product

Add a Meter

Enable Credit Billing on the Meter
1000, then 1,000 API calls consume 1 credit.
Configure Credit Issuance

Credit Settings
Rollover
Rollover lets unused credits carry forward to the next billing cycle instead of expiring.| Setting | Description |
|---|---|
| Rollover Enabled | Toggle to allow unused credits to carry forward |
| Max Rollover Percentage | Limit how much carries over (0–100%). At 50%, only half of unused credits roll over |
| Rollover Timeframe | How long rolled-over credits remain valid (day, week, month, year) |
| Max Rollover Count | Maximum number of times credits can be consecutively rolled over. After this limit, remaining credits are forfeited |
Overage
Overage controls what happens when a customer’s credit balance reaches zero mid-cycle.| Setting | Description |
|---|---|
| Allow Overage | Toggle to let customers continue using the service beyond their credit balance |
| Overage Limit | Maximum credits customers can consume beyond their balance |
| Price Per Unit | Cost per additional credit consumed as overage (with currency) |
| Overage Behavior | Controls what happens to overage at the end of the billing cycle (see below) |
| Behavior | Description |
|---|---|
| Forgive overage at reset | Usage beyond the credit limit is tracked but not billed. Balance resets each cycle |
| Bill overage at billing | Usage beyond the credit limit is charged on the next invoice, then the balance resets |
| Carry over deficit | Overage carries forward as a negative balance into the next cycle |
| Carry over deficit (auto-repay) | Deficit carries forward and is automatically repaid from new credits in the next cycle |
Expiration
| Setting | Description |
|---|---|
| Credit Expiry | Duration after issuance before credits expire (7, 30, 60, 90, custom days, or never) |
| Trial Credits Expire After Trial | Whether trial-specific credits expire when the trial period ends |
CreditExpired ledger entry. If rollover is enabled, the rollover percentage is applied before expiration, and only the remainder expires.Usage Billing with Credits
When credits are linked to usage meters, the system creates a powerful consumption-based billing model. Customers receive a credit allocation, and usage events automatically deduct from their balance.
How Meter-Based Credit Deduction Works
- Seu aplicativo envia eventos de uso - Cada evento inclui um ID de cliente, nome de evento e metadados
- Medições agregam eventos - Usando Contagem, Soma, Máximo ou Último
- Créditos são deduzidos automaticamente - Um trabalhador em segundo plano processa eventos a cada minuto, converte unidades de medição em créditos usando sua taxa configurada e deduz do saldo do cliente usando FIFO (primeiro a entrar, primeiro a sair)
- Excedente é monitorado - Se o saldo de crédito chegar a zero e o excedente estiver habilitado, o sistema rastreia o uso excedente para faturamento no final do ciclo
Meters Panel
The Usage Billing dashboard includes a Meters panel listing all defined meters with their aggregation type:| Agregação | Descrição | Exemplo |
|---|---|---|
| Contagem | Número total de eventos | Chamadas de API |
| Soma | Soma de um campo de valor | Total de bytes transferidos |
| Máximo | Maior valor registrado | Picos de usuários simultâneos |
| Último | Valor mais recente | Armazenamento atual usado |
Customer Experience
Checkout
When a customer purchases a product with attached credits, the checkout page displays the included credits as part of the product offering.
Customer Portal
Customers can view and manage their credit balances in the Customer Portal under the Credits section.
- Available Balance - Current credit balance displayed prominently
- Credit Tabs - Switch between different credit types (e.g., “OpenAI Credits”, “Usage Tokens”)
- Recent Transactions - Full history with date, transaction ID, type, amount, and running balance
| Type | Description | Amount |
|---|---|---|
| Credits with Subscription | Credits issued with subscription purchase/renewal | Green (+) |
| One-Time Credits | Credits from one-time purchases or manual grants | Green (+) |
| Usage Deduction | Credits consumed through service usage | Red (-) |
| Overage | Usage beyond credit balance | Red (-) |
Subscription Details
The subscription detail page shows credit entitlements alongside other plan information.
- Credit allocation per billing cycle (e.g., “1000 credits each cycle”)
- Remaining balance (e.g., “7500 credits remaining”)
- Renewal date for next credit issuance
- Usage History tab with meter-level breakdown showing units consumed, thresholds, unit prices, and total costs
Transaction Details
Payment transaction pages include an Entitlements section showing all entitlements delivered with the payment, including credits.
Managing Credits
Dashboard Views
Credit Entitlements List
View all your credit entitlements in Products → Credits. The table shows credit name, expiry settings, and provides quick actions for editing or archiving.
Customer Credit Details
View a specific customer’s credit balances and transaction history from Customers → [Customer Name] → Credits.
- Credit Selector - Switch between different credit entitlements
- Available Balance - Current balance in large, prominent display
- Apply Credit/Debit - Button to manually adjust the customer’s balance
- Recent Transactions - Full ledger with date, transaction ID, type, amount, and running balance
Manual Adjustments
You can manually credit or debit a customer’s balance directly from the dashboard:Open Credits Tab
Apply Credit or Debit
Credit Ledger
Every credit operation is recorded in the credit ledger, providing a complete audit trail:| Transaction Type | Description |
|---|---|
| Credit Added | Credits granted (subscription, one-time, or API) |
| Credit Deducted | Credits consumed through usage or manual debit |
| Credit Expired | Credits expired without rollover |
| Credit Rolled Over | Credits carried forward to the next period |
| Rollover Forfeited | Rolled credits forfeited after max rollover count reached |
| Overage Charged | Usage beyond credit balance with overage enabled |
| Auto Top-Up | Automatic credit replenishment at low balance |
| Manual Adjustment | Credit or debit applied manually by merchant |
| Refund | Credits refunded |
Webhooks
Credit-Based Billing fires webhook events for every credit lifecycle change. Use these to keep your application in sync with credit balances, trigger notifications, or build custom billing workflows.| Event | Description |
|---|---|
credit.added | Credits granted to a customer |
credit.deducted | Credits consumed through usage or manual debit |
credit.expired | Unused credits expired |
credit.rolled_over | Credits carried forward to a new grant |
credit.rollover_forfeited | Credits forfeited at max rollover count |
credit.overage_charged | Overage charges applied |
credit.manual_adjustment | Manual credit/debit adjustment made |
credit.balance_low | Balance dropped below configured threshold |
credit.added até credit.manual_adjustment) incluem a carga completa CreditLedgerEntry com saldo antes/depois, excesso antes/depois, referência de origem e o metadata da assinatura ou pagamento da fonte da concessão (vazio para concessões criadas diretamente via API). O evento credit.balance_low inclui a configuração de limite e o saldo atual.
Credit Webhook Payloads
API Management
Create Credit Entitlements
Create Credit Entitlements
Create Credit Entitlement
List Credit Entitlements
Manage Credit Entitlements
Manage Credit Entitlements
Get Credit Entitlement
Update Credit Entitlement
Delete Credit Entitlement
Undelete Credit Entitlement
Grant and Adjust Credits
Grant and Adjust Credits
Create Ledger Entry
Query Balances and Ledger
Query Balances and Ledger
List Balances
Get Customer Balance
List Customer Grants
List Customer Ledger
Integration Example
Initialize the Dodo Payments client:Real-World Examples
AI SaaS Platform
AI SaaS Platform
| Plan | Price | Credits/Month | Overage |
|---|---|---|---|
| Starter | $29/mo | 10,000 tokens | $0.003/token |
| Pro | $99/mo | 100,000 tokens | $0.002/token |
| Enterprise | $499/mo | 1,000,000 tokens | $0.001/token |
- Credit Type: Custom Unit (“AI Tokens”)
- Precision: 0 (whole tokens)
- Rollover: 25% max, 1-month timeframe
- Overage: Enabled, bill overage at billing
- Meter:
ai.generationwith Sum aggregation ontokensfield
API Gateway
API Gateway
| Plan | Price | Credits/Month | Overage |
|---|---|---|---|
| Free | $0/mo | 1,000 calls | Blocked |
| Developer | $19/mo | 50,000 calls | $0.001/call |
| Business | $99/mo | 500,000 calls | $0.0005/call |
- Credit Type: Custom Unit (“API Calls”)
- Precision: 0 (whole calls)
- Rollover: Disabled
- Overage: Developer+ plans allow overage (forgive at reset), Free plan disables overage
- Meter:
api.requestwith Count aggregation
Cloud Storage Service
Cloud Storage Service
| Plan | Price | Credits/Month | Overage |
|---|---|---|---|
| Personal | $9/mo | 100 GB-hours | $0.05/GB-hour |
| Team | $49/mo | 1,000 GB-hours | $0.03/GB-hour |
- Credit Type: Custom Unit (“GB-hours”)
- Precision: 2 (two decimal places)
- Rollover: 50% max, carries over once
- Overage: Enabled with 200% limit
- Meter:
storage.usagewith Sum aggregation
Best Practices
- Start simple: Begin with a single credit type and no rollover. Add complexity based on customer feedback and usage patterns.
- Set clear expectations: Display credit allocations, remaining balances, and overage pricing prominently in your product pages and customer portal.
- Use meaningful units: Name credits after what they represent (e.g., “API Calls”, “AI Tokens”) rather than generic terms. This helps customers understand value.
- Configure expiry thoughtfully: Short expiry windows (7 days) drive urgency but may frustrate customers. Longer windows (30–90 days) are more customer-friendly for most SaaS products.
- Monitor low balances: Set low balance thresholds to alert customers before they run out, reducing surprise overage charges.
- Test in test mode: Create credits, attach them to test products, and simulate the full purchase → usage → deduction → expiration cycle before going live.



