A credit balance with a transaction history
Use the starter's credit service for grants, purchases, expiry, consumption and recorded returns in your own product.
On this page
Credits connect a customer's balance to individual actions. The starter records where credits came from, when they expire, and which operation consumed them.
How it works
Define the paid action
Choose the outcome customers buy and set its credit cost on the server. Your product should display that cost before confirmation.
Complete the action once
For local database work, the credit service can store the result and charge in one transaction. A retry reuses the same operation identifier.
Explain the balance change
The customer checks the transaction history. Authorized administrators can review entries and issue a recorded full refund of a consumption.
A history customers can inspect
A remaining balance alone does not explain what happened. Grants, purchases, spending, expiry, and refunds give customers and operators a shared record to investigate.
Credit refunds and cash refunds are different
Returning credits restores a recorded consumption. It does not refund a Stripe charge. Decide how your product handles a cash refund, revoked access, and already-spent credits.
Limitations
- This is a prepaid credit ledger, not a complete metered billing system with usage aggregation and invoices in arrears.
- External AI or other API calls need a separate task and compensation design. Credit reservation, settlement, and partial refunds are not included.
Questions
Does retrying a paid export charge again?
Retrying the same successful operation with the same identifier returns its saved result. A new operation is a new purchase; your product must preserve the identifier when retrying.
Can credits expire?
The service supports grants with an expiry date, and the customer credit page shows expiry information. Publish the expiry rules you choose for your product.