Documentation Index
Fetch the complete documentation index at: https://docs.dualentry.com/llms.txt
Use this file to discover all available pages before exploring further.
How to Configure Subscription Billing
DualEntry’s subscription billing module manages recurring billing for SaaS and subscription businesses. You define contracts with performance obligations, configure billing schedules, and DualEntry handles invoice generation and the handoff to revenue recognition.Creating Contracts
A contract is the foundation of subscription billing. You create contracts from the billing module or via the/public/v2/contracts/ API endpoint. Each contract includes:
- Customer - the customer being billed.
- Term dates - start date and end date for the contract.
- Billing schedule - how often invoices are generated.
- Performance obligations - the products or services being delivered.
Performance Obligations
Each line item on a contract represents a performance obligation. When you add a line, you configure:- Item and quantity - the product or service and how much is being delivered.
- Rate and standalone selling price (SSP) - the price per unit and the SSP used for revenue allocation.
- Recognition strategy - how revenue is recognized for this obligation.
- Billing group and classifications - optional groupings for billing presentation and dimensional reporting.
- Billing start date - can differ from the contract start date for staggered obligations.
straight_line, straight_line_start_end_even, daily_prorata, milestone, usage_tiered, usage, immediate, and deposit_release. The strategy you choose determines how the ASC 606 engine recognizes revenue over the obligation’s term.
Billing Schedules
You configure billing frequency on each contract. Supported frequencies are daily, weekly, monthly, quarterly, semi-annually, and annually. You also set a billing interval (e.g., every 2 months) and a billing start date that can differ from the contract start. DualEntry generates invoices automatically according to the schedule. Each generated invoice posts to accounts receivable and includes the line items, amounts, and tax calculations for that billing period.Billing start dates at the obligation level let you stagger charges. For example, a contract might bill the platform fee monthly starting at contract start, while billing an implementation fee as a one-time charge on day one.
Revenue Recognition
Contracts flow through to DualEntry’s ASC 606 revenue recognition engine. Each performance obligation’s recognition strategy determines when and how revenue is recognized. The billing module handles the invoice side (cash and AR), while the revenue engine handles the recognition side (deferred revenue and recognized revenue). This separation means your billing schedule and your revenue schedule can differ. You might bill annually upfront but recognize revenue monthly over the service period.Usage-Based Billing
For obligations withusage or usage_tiered recognition strategies, you post usage records to DualEntry via the /public/v2/contracts/{contract_id}/usage/ endpoint. Usage records include the quantity consumed and the date. DualEntry calculates the billable amount based on the obligation’s rate tiers and includes it on the next invoice.
You can also bulk-upsert usage records for high-volume scenarios. DualEntry deduplicates based on the usage record’s external ID.
For details on how subscription revenue flows into reporting, see revenue recognition reporting. For syncing billing data with Stripe, see Stripe revenue sync. For invoice management, see invoicing and dunning.