Documentation Index
Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
Use this file to discover all available pages before exploring further.
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
Credits are attached to products as entitlements in the product creation or editing flow. You can attach up to 3 credits per product. Credits work with all three pricing types.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
- Your application sends usage events - Each event includes a customer ID, event name, and metadata
- Meters aggregate events - Using Count, Sum, Max, Last, or Unique Count aggregation
- Credits are deducted automatically - A background worker processes events every minute, converts meter units to credits using your configured rate, and deducts from the customer’s balance using FIFO ordering (oldest grants first)
- Overage is tracked - If the credit balance reaches zero and overage is enabled, the system tracks overage usage for end-of-cycle billing
Meters Panel
The Usage Billing dashboard includes a Meters panel listing all defined meters with their aggregation type:| Aggregation | Description | Example |
|---|---|---|
| Count | Total number of events | API calls |
| Sum | Sum of a value field | Total bytes transferred |
| Max | Highest value recorded | Peak concurrent users |
| Last | Most recent value | Current storage used |
| Unique Count | Count of distinct values | Unique active users |
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 through credit.manual_adjustment) include the full CreditLedgerEntry payload with balance before/after, overage before/after, and source reference. The credit.balance_low event includes the threshold configuration and current balance.
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.



