Advanced Billing Patterns
Beyond standard recurring billing, Recurso supports advanced billing patterns that let you add one-time or metered charges to subscriptions and pre-bill customers for future periods. These capabilities cover common SaaS scenarios like overage charges, professional services fees, and annual prepayment.Unbilled Charges
Unbilled charges are line items attached to a subscription that accumulate until the next invoice is generated. They are ideal for:- Metered add-ons — additional API calls, storage, or compute beyond the plan allowance
- One-time charges — setup fees, professional services, custom development
- Overage fees — charges triggered when usage exceeds a threshold
- Ad hoc adjustments — manual billing adjustments applied by your team
How Unbilled Charges Work
Unbilled charges sit in a pending state until the subscription’s billing period ends. At that point, Recurso rolls them into the next invoice alongside the regular plan amount. Once invoiced, the charges are cleared from the pending queue.Add an Unbilled Charge
Request Parameters
Charge Object
List Unbilled Charges
Retrieve all pending charges for a subscription that have not yet been invoiced.How Charges Appear on Invoices
When the billing period ends, all pending charges are added as line items on the invoice alongside the recurring plan amount:Advance Invoicing
Advance invoicing lets you generate an invoice for one or more future billing periods. This is commonly used for:- Annual prepayment — Bill a customer for 12 months upfront at a discounted rate
- Multi-period commitments — Collect payment for a committed contract term
- Cash flow optimization — Collect revenue earlier in the contract
Generate an Advance Invoice
Request Parameters
How Advance Invoicing Interacts with Revenue Recognition
When an advance invoice is issued, the full amount enters the Deferred Revenue account (2100); payment then settles the receivable. Revenue is recognized month by month as each period elapses, following the standard recognition schedule described in the Revenue Recognition guide.
Use Cases
Metered storage add-on
Metered storage add-on
Your plan includes 10GB of storage. When a customer exceeds the limit, add an unbilled charge for the overage:
One-time setup fee
One-time setup fee
Charge a setup fee when onboarding a new customer:The setup fee will appear on the customer’s first invoice alongside their initial plan charge.
Professional services hours
Professional services hours
Bill for consulting or implementation hours consumed during the period:
Annual prepayment with discount
Annual prepayment with discount
Offer a discount for paying annually. Generate an advance invoice for 12 periods:
Committed contract term
Committed contract term
For enterprise customers signing a 24-month contract, generate an advance invoice for the full term:
Webhook Events
API Reference Summary
Best Practices
Describe Charges Clearly
Always include a detailed description with dates and quantities. Customers see these on their invoices and vague descriptions cause support tickets.
Match Currency
The charge currency must match the subscription’s currency. If a subscription is billed in EUR, all charges must also be in EUR.
Review Before Billing
Use the list endpoint to review pending charges before the billing cycle closes. This gives your team a chance to correct errors.
Limit Advance Periods
Avoid invoicing too far in advance. Long advance periods increase refund risk if the customer cancels. For most cases, 3-12 periods is appropriate.
Unbilled charges are not prorated. If you add a charge mid-cycle, the full amount appears on the next invoice. If you need prorated charges, calculate the prorated amount before calling the add charge endpoint.