Create a subscription contract
Goal
Create a draft subscription contract for a customer. Activation and billing are separate steps.
Who it is for
Users with subscription_billing.manage.
Preconditions
- Module
subscription_billingenabled. - A customer party exists (or create one first).
- Document numbering for
subscription_contractis configured (seed default prefix SUB). - Currency: UI defaults to the tenant base currency; pick another 3-letter code if needed.
Steps
- Open Subscriptions → New contract (or sidebar + when permitted).
- Set Customer (required).
- Confirm Currency.
- Choose Billing cycle: Weekly, Monthly, Quarterly, or Annual.
- Set Every (
billing_interval, minimum 1) — e.g. monthly × 1 = every month. - Enter Start date (required). Optional End date must be on or after start.
- Optionally check Prorate first period (first-period proration applies for monthly starts that are not day 1).
- Add Lines (at least one):
- Description
- Qty and Unit price (≥ 0)
- Recognition: Immediate or Straight-line
- Periods (recognition periods, minimum 1) for straight-line deferral length
- Use Add line for more lines; keep at least one line.
- Save. The contract is numbered and stored as Draft with billing schedules generated.
Result
A draft contract appears on the list. Next: activate and bill.
Hard stops
- Missing customer, cycle, start date, or empty lines → validation 422.
A subscription contract must have at least one line.(subscriptions.no_lines).