Prerequisites
Before you create a contract, confirm the following:- Revenue recognition is enabled for your organization.
- Your role can create contracts on Accounting > Revenue Recognition > Contracts.
- The customer record already exists, and the item for each obligation already exists. DualEntry fills the obligation SSP from that item’s List Price in the contract currency, so set List Prices at standalone selling price before you start.
- You know the commercial term, whether you will enter a term total or a per-period rate, and the recognition method for each deliverable.
/public/v2/contracts/ or from a Stripe subscription sync. Those paths skip this form; use this page for the in-app wizard.
Enter contract terms
The Contract Terms step identifies the arrangement: who the contract is with, which company holds it, and the dates DualEntry uses for billing and recognition.- Go to Accounting > Revenue Recognition > Contracts and choose New Contract.
- Optionally apply a Contract template to prefill fields, or leave the template blank and enter the terms yourself.
- Select the Company and Customer. Both are required before you can activate the contract.
- Set Close Date and Contract Start Date. For the end of the term, pick a specific Contract End Date, enter a duration in months, or leave the contract ongoing.
- Choose the Recognition mode: Individual posts one journal entry per obligation per period; Subledger accumulates lines you post in batches. You cannot change this mode after the contract leaves draft. See Revenue Subledgers.
- Confirm Transaction Currency. DualEntry fills Base Currency from the company. Add a memo, payment terms, payment method, attachments, and any custom fields your organization uses for contracts.
- Unbilled receivables account: This field turns on month-end contract asset tracking. See How to Track Contract Assets on Revenue Contracts.
- Cutover month and Prior recognized amount: Use these only when you are migrating a mid-life contract.
- Default early termination fee: DualEntry uses this as the starting fee if you later terminate the contract.
Add performance obligations
The Performance Obligations step is where you add each distinct good or service, choose how it is recognized, and price it. You set invoicing and recognition cadence for each obligation on the next two steps.- Add an obligation and select the Item. DualEntry fills SSP from the item’s List Price in the contract currency. Override SSP on the obligation when this arrangement uses a different standalone price. See Configure Allocations and Standalone Selling Price.
- Set Recognition Method. The item’s Default Revenue Recognition Method is only a starting value. The methods are Straight line prorate daily, Straight line prorate first and last, even period, Straight line even periods, One time, Usage, and Milestone.
- Price the obligation. For a flat-rate line, choose Total amount or Unit price (see Price a flat-rate obligation). For usage, configure the pricing model on the obligation. See Usage Pricing: Flat and Tiered Models.
Price a flat-rate obligation
Flat-rate obligations let you enter either the term total or a per-period rate. DualEntry shows the same contract total either way, so the header amount matches what you typed. Choose the pricing tab that matches the commercial terms:- Total amount: Enter the full obligation Amount and SSP. DualEntry does not multiply that amount by the number of periods. Use this when you know the term total and do not want to work backwards from a per-period rate.
- Unit price: Enter Quantity per period, Unit price per period, and SSP per period. The obligation header shows a live total of quantity × unit price × number of periods.
Set invoicing and recognition
The Invoicing and Recognition steps hold the billing and recognition cadence for each obligation. On each step, select an obligation from the obligation list, configure it, then select the next one. On the Invoicing step:- Keep invoicing on, or turn on Exclude Invoice when the invoices come from somewhere else.
- For a usage obligation, choose a Billing mode: Period (schedule), Sync with recognition, or Prepaid drawdown. See How to Configure Usage Drawdown when the obligation is prepaid.
- Set billing Frequency, Interval, and invoice dates.
Review the contract preview
The Preview step is a read-only summary of the contract before you save. Allocations, invoices, and recognition sit in one tabbed summary. Open each tab that applies:- Allocations: Review the SSP-based split of transaction price across obligations, and confirm each obligation’s allocated amount before you activate.
- Invoice Summary: Review the invoices DualEntry generates from the invoicing settings on each obligation.
- Revenue Recognition Summary: Review the recognition entries DualEntry generates for each obligation by period.
Save a draft or activate the contract
You can leave the form at any time with Save as draft, then reopen the contract from the Draft tab to finish it. Save (or Send for approval) on Preview creates or updates the contract. A contract activates from draft only when it has a company, a customer, and at least one obligation, and every obligation has an item, quantity, and rate. If an approval workflow applies, DualEntry keeps the contract in draft and places it in For Approval. If no workflow applies, the contract becomes Active. A draft contract has no general ledger impact. When the contract becomes active (or is approved), invoices and revenue recognition entries dated on or before that day post. Later records stay in draft and post automatically once their date arrives. Subledger-mode recognition posts through batch posting instead. See ASC 606 and IFRS 15 in DualEntry for the rest of the lifecycle.If required fields are still empty, Save stays unavailable. Hover the button to see why, then use Save as draft if you need to continue later.
Troubleshooting
These are the problems that most often stop a new contract from saving or activating:- Save is unavailable on Preview: A required field is empty (company, customer, item, quantity, or rate). Complete the field or choose Save as draft.
- The live TCV is larger than the commercial term total: You entered a term total in Unit price. Switch to Total amount, or enter the per-period unit price so quantity × price × periods equals the signed total.
- The Invoicing or Recognition step is empty: No obligation is configured yet. Go Back to Performance Obligations and add one.
- The contract will not activate: Add a company, a customer, and at least one obligation, and give every obligation an item, quantity, and rate. Approval workflows can also hold the contract in For Approval instead of making it active.
- Recognition mode cannot be changed: The contract has left draft. Create a new contract if you need the other mode.
Next steps
- Review allocated amounts in Configure Allocations and Standalone Selling Price.
- Set an uncommon recognition cadence in Recognition Timing: Frequency and Intervals.
- Price consumption with Usage Pricing: Flat and Tiered Models.
- Process later commercial changes in Change Orders, Terminations, and Renewals.
- Check recognized and deferred balances in Reporting.