Finalize invoice
Turn a draft into a final invoice: a number is assigned, the PDF generated and placed in the S3 archive, then immutable.
Web
Chöre›Chor öffnen›Verwaltung›Kassenbuch›Rechnungen›Rechnung›Finalisieren
Diese Funktion ist nur im Web verfügbar.
Permission required: Cashbook › Edit
What is it?
Finalizing is the decisive step where a draft becomes a binding invoice. From then on it is legally binding and immutable under GoBD.
How to finalize
- Open the draft in the detail view.
- Click "Finalize" in the actions column.
- Confirm in the warning dialog — no going back after that.
- Wait a few seconds until the PDF is rendered.
- Download the PDF and send it by email to the customer.
What happens technically
- Draw a number — atomically from your choir's number sequence (see invoice-numbering).
- Set status to "final", lock fields.
- Render PDF with the selected template, incl. seller / recipient / line-item data.
- Generate ZUGFeRD/XRechnung XML (if format ≠ "None").
- Place PDF + XML on S3 under
ensembles/{id}/invoices/{year}/{number}.pdf. - Security audit log entry for compliance (CRA + GoBD).
Required fields
| Format | Required fields |
|---|---|
| None (PDF only) | Recipient name, at least 1 line item |
| ZUGFeRD / XRechnung | + recipient address (street, postal code, city, country), seller address |
If required fields are missing, Chorilo blocks finalization with a concrete error message.
What you can no longer do afterwards
- Change recipient
- Change line items
- Change date
- Change notes
- Delete invoice
What you can still do
- Download PDF/XML, any number of times
- Cancel via credit note (see invoice-cancel)
- Link a cashbook entry for incoming payment
Permission
You need cashbook.edit.
Frequently asked questions
What does finalizing exactly mean?▾
Three things happen in one go: 1) the next invoice number is drawn, 2) the PDF is rendered (incl. ZUGFeRD/XRechnung XML if enabled), 3) PDF + XML are placed on S3. After that, all fields of the invoice are locked.
What if I find a mistake later?▾
Cancel instead of delete. You create a credit note that reverses the original invoice, and then create a new correct invoice. This procedure is GoBD-compliant and traceable in the audit log.
Why does it take a few seconds?▾
The PDF is rendered live with Chromium and uploaded to S3. For large invoices or with stationery backgrounds, this can take 5–10 seconds.
Which required fields must be filled?▾
Recipient name and at least one line item. For e-invoicing (ZUGFeRD/XRechnung) additionally the recipient address (street, postal code, city, country). Missing required fields are shown on finalization.
What happens if the PDF render fails?▾
The invoice stays in status Draft — no number is assigned, no PDF archived. You get an error message. Most common cause: Chromium not reachable or template invalid.
Can I finalize multiple invoices at once?▾
Not via the UI — each invoice is finalized individually. The number service is however atomic with a DB lock, parallel finalizations are guaranteed to get different numbers.
Where do I find the PDF after finalization?▾
On S3 under ensembles/{ensemble_id}/invoices/{year}/{number}.pdf. Via the UI you can download it directly via "Download PDF" on the detail page.
Still have a question? Ask the AI help bot.
Click the help button in the bottom right and ask your question.