Instalment plans
Overview
An instalment plan splits an agreed value into stages with their own due dates — for instance 30 % on order, a fixed amount on delivery, the rest with the final invoice. Each stage carries either a percentage of the base amount or a fixed amount; mixed plans are allowed. Amounts are net and in the book currency.
Two actions make the difference:
- Release puts the plan into effect. The nightly run then creates the due stages, not the
form: for every due date reached, a billing preview for the instalment is created. There is deliberately no "raise instalment now" button — two triggers would be two chances to raise the same instalment twice.
- Final invoice closes the plan. It creates a preview for the full base amount with one negative
line per instalment already raised (German VAT law, § 14 UStG). Open stages are dropped.
The page sits in the menu as a sub-item of Billing.
Core tasks
Create a plan. Create instalment plan requires customer, base amount and at least one stage. The form keeps a running total of the stages (Planned) and warns as soon as it exceeds the base amount. A new plan is a draft — no instalment is raised yet.
Open a plan. Clicking the row shows header data and stages with due date, share, amount and status (Open, Invoiced, Cancelled). The Progress column says how many stages have been invoiced — with instalments, the stages count, not the share.
Release, final invoice, cancel. The open plan only shows the button that is possible: Release for a draft, Final invoice for an active plan, Cancel plan in both cases. When cancelling, instalments already raised remain; open stages are no longer created.
Change. A plan cannot be edited once created. Cancel it and create it again.
Fields in detail
Create instalment plan
| Field | Required | Values / format | What it does |
|---|---|---|---|
Customer customerId | yes | existing customer | Who the instalments are raised for. |
Base amount (net) baseAmount | yes | amount greater than 0 | The agreed total. Percentage stages refer to it, and the final invoice starts from it. |
Tax rate taxRate | no | percent, 0 to 100; 19 % if omitted | Rate of the instalments and the final invoice. |
Origin sourceType | no | manual, order or contract | What the plan originates from. |
Reference sourceRef | no | text, max. 100 characters | Identifier of the order or contract; shown in the Reference column. |
Description description | no | text, max. 255 characters | Shown below the customer in the list. |
Stages milestones | yes, at least one | per stage a label, a due date and either a percentage or an amount | Label and due date are required; the form requires a value greater than 0. The stages together must not exceed the base amount. The due date decides when the nightly run raises the instalment. |
Only via API and automation
| Field | Values / format | What it does |
|---|---|---|
brandId | brand; empty = no brand | Brand of the plan. Only someone who may manage billing in that brand can set it. |
Settings & permissions
- Module
module.finance. - View:
finance.billing.view. Create, release, final invoice, cancel:
finance.recurring.manage.
- API:
POST /api/v1/deposit-schedulesandPOST /api/v1/deposit-schedules/{ulid}/activate,
…/settle and …/cancel.
FAQ & troubleshooting
No instalment was raised for a due stage. Is the plan released? A draft does not run. Otherwise the instalment appears as a preview under Billing after the next nightly run.
The stages exceed the base amount. Adjust shares or amounts — the stages together must not be higher than the base amount.
"A deposit schedule needs at least one milestone." Add at least one stage.
Where is the invoice created? From the preview, as with every billing run: it goes to its handover target, and in your own invoicing it becomes an invoice.