Example
You have a Pro plan that gives users100 basic messagesper month, and10 premium messagesper month. These 2 balances are separate and independent of each other. To give your users more flexibility, you instead decide to use a credit system, where:Instead of having 2 separate balances for each message type, your Pro plan can have
basic message: costs 1 credit per messagepremium message: costs 10 credits per message200 creditsper month. Your users can use the credits in any combination of basic and premium messages they want.
Creating a credit system
- CLI
- Dashboard
Define metered features, then create a Push changes with
credit_system feature with a creditSchema that maps each feature to a credit cost:autumn.config.ts
atmn push.ExampleIf each
premium_request is worth 3 credits, then using 6 premium requests will cost 18 credits.Tracking and limiting credit usage
When implementing a credit system into your application, you should interact with the underlying features — not the credit system itself. This means passing in the underlyingfeature_id when checking or tracking usage.
Checking access
Before allowing a customer to use a feature,check if they have enough credits to do so. If each “premium request” is worth 3 credits, then this example will check if the customer has at least 18 credits remaining.
If a feature is not defined in the credit system, it will return
allowed: falseTracking usage
Since the customer has sufficient credits, you can let them use their 6 “premium requests”. Afterwards, you can track the usage to update their balance. This will decrement the customer’s balance by 18 credits (6 requests * 3 credits per request).Stacking with direct balances
A feature can have both a direct balance and belong to a credit system. When this happens, the balances stack and direct balances are always consumed before credit system balances, regardless of interval.Example
A customer’s plan grants10 premium messagesper month directly, plus200 creditsper month from a credit system (where each premium message costs 10 credits).
When the customer sends a premium message, Autumn deducts from the direct premium message balance first. Once those 10 direct messages are used up, subsequent premium messages draw from the credit pool instead.
The
check endpoint accounts for both balances. If the customer has 5 direct premium messages remaining plus 100 credits (enough for 10 more premium messages), check will report that the customer is allowed.Monetary credits
You may want your credit system to represent a monetary value: eg, $10 of credits. To implement this, you can map each credit to a cent value (eg, 1 credit = 1 cent).- When creating your credit system, define credit amounts in the per-cent cost
Eg: if each
premium_request costs 3 cents, our credit cost should be 3.- When adding the credits to a plan, set the granted amount of credits in cents
Eg, if customers get 5 USD credits for free, they should have an included usage of
500.- When charging for the credits, set the cost of each credit to 1 cent

