Create an invoice
An invoice is a document you send to a customer asking them to pay for goods or services. In accounting terms it is an accounts receivable (AR) transaction; in Dutch it is a debiteur or verkoopfactuur.

Shillinq uses invoice for what you send, and bill for what you receive. See Bookkeeping foundations for the full breakdown.
Create an invoice
- Open Bookkeeping → Accounts receivable (or use the Create invoice shortcut on the Financial overview dashboard).
- Click + New invoice.
- Fill in the header:
customer— pick from your Nextcloud contacts list. The customer is always a Nextcloud contact; Shillinq never duplicates the contact record.invoiceNumber— Shillinq auto-generates the next number in your configured sequence (e.g. F2026-001). You can override it.invoiceDate— today's date by default.dueDate— auto-calculated from your default payment terms (e.g. 30 days after invoice date). Edit if needed.reference— customer's purchase order number or other reference they want on the invoice (shown in their banking payment description).currency— defaults to EUR.
- Add invoice lines:
description— what you are invoicing for.quantityandunitPrice.glAccount— the revenue account from your chart of accounts (e.g.80000for professional services).vatCode— the applicable VAT treatment (21 %, 9 %, 0 %, or exempt).
- Verify totals.
- Click Save as draft.
The invoice is in Draft status — not yet visible to the customer and not yet posted to the ledger.
Preview and send the invoice
-
From the invoice detail, click Preview to see the formatted PDF.
-
Verify the customer details, your company details, the invoice lines, VAT breakdown, and payment instructions (IBAN).
-
When satisfied, click Send invoice:
- Shillinq generates a PDF and an UBL 2.1 XML attachment (required for Dutch government clients under the DigiInkoop mandate).
- Choose the delivery method:
- Email — sends the PDF and UBL directly from Nextcloud Mail.
- Peppol — routes the UBL invoice through the Peppol network (for customers with a Peppol address / OIN).
- Download — download the PDF and UBL to send yourself.
-
Click Send. The invoice status changes to Sent and the journal entry is posted:
Account Debit Credit Debiteuren 13000invoice total Revenue account (e.g. 80000)net amount BTW te betalen 51000VAT amount
Invoice numbering
Shillinq enforces sequential invoice numbering per fiscal year (required by Dutch tax law). The format is configurable in Settings → Invoice numbering:
- Prefix:
F,INV, or your own string. - Year:
2026(four-digit) or26(two-digit). - Sequence: padded to a fixed width (e.g.
001).
Example: F2026-001, F2026-002, …
You cannot re-use or skip invoice numbers. If you delete a draft invoice, its number is not reused — the next invoice gets the next number. This is the correct behaviour under Dutch tax law.
Sending to Dutch government clients (Peppol / DigiInkoop)
Dutch central government and many municipalities require e-invoices in UBL 2.1 format via the Peppol network. Shillinq handles this automatically when you configure Peppol in Settings → E-invoicing:
- Enter your Peppol sender ID (your KvK number formatted as
0106:{kvknumber}). - Set your access point credentials.
- When sending an invoice to a government customer, select the Peppol delivery method and enter the customer's OIN (Organisatie Identificatie Nummer) as the Peppol receiver ID.
Track payment status
After sending, the invoice appears in Bookkeeping → Accounts receivable → Open invoices. The Financial overview dashboard widget Open receivables shows the oldest unpaid invoices.
When the customer pays, the payment is matched during bank reconciliation. See Import your bank statement.
Credit notes
To cancel or partially credit a sent invoice:
- Open the invoice detail.
- Click Create credit note.
- Adjust the lines (remove, reduce quantity, or change price).
- Save and send the credit note. Shillinq posts the reversing journal entry and links the credit note to the original invoice.
Common issues
| Issue | Cause | Fix |
|---|---|---|
| Customer missing from autocomplete | Not in Nextcloud Contacts | Add the customer to Nextcloud Contacts first |
| Invoice number gap | Deleted draft invoice | Normal — do not fill the gap (required by Dutch tax law) |
| Peppol delivery fails | Wrong OIN or misconfigured access point | Verify OIN in Settings → E-invoicing and check the access point credentials |
| VAT exempt customer (e.g. outside EU) | Incorrect VAT code | Set the line vatCode to 0% or exempt and add the legal note in the invoice footer |