Record a supplier bill
Record an incoming supplier invoice (bill) in Shillinq's accounts-payable. Attach the original PDF or UBL document, code each line against the right expense account and VAT rate, route it through the configured approval chain, and schedule the payment.
Goal
By the end the bill will be in Shillinq with status Approved, posted to the general ledger, and queued for payment on its due date — with the original document attached for the fiscal seven-year retention (Fiscale bewaarplicht, AWR art. 52).
Prerequisites
- Shillinq open and the OpenRegister back end connected (see Open Shillinq for the first time).
- The right to enter bills — bookkeeping role on the Shillinq instance.
- The supplier record exists, the chart of accounts has the right expense accounts, and the approval chain for the bill's amount band is configured (see Configure supplier approval chains).
- The supplier's invoice — either as a PDF, or as a UBL/Peppol e-invoice received via the Peppol inbox.
Steps
-
Open Purchases → Bills from the Shillinq navigation and click New bill. The bill form opens.

-
Drop the supplier's PDF onto the form (or pick the UBL document from the Peppol inbox). Shillinq's document-capture reads the supplier KvK / BTW number, the invoice number, the total, the due date — what it could detect from the document is pre-filled; you confirm or correct.

-
Code the lines. For each line, set the description, amount, VAT rate, and pick the expense account. Shillinq tracks the VAT recoverable per rate, splits it into the right VAT-return box, and posts the line to the ledger.

-
Save the bill. It enters the approval chain that matches its total band (see Configure supplier approval chains). The approver(s) review the bill, approve, or send it back with comments. Each approval step is logged on the bill's audit trail.

-
Once approved, the bill is posted to the ledger — Expense account(s) debited, VAT recoverable debited per rate, Trade payables credited. Schedule the payment via SEPA (ISO 20022 pain.001) on the due date; the payment run picks the bill up automatically.

Verification
The bill shows in Purchases → Bills with status Approved, the original document attached, the audit trail naming each approver, the general ledger reflecting the posting, and the payment scheduled for the due date. The supplier's AP balance includes the bill total.
Common issues
| Symptom | Fix |
|---|---|
| Document capture didn't pre-fill anything | The PDF is a scan without an OCR layer, or it's a non-NLCIUS UBL — fill the fields manually. The original document still attaches for retention. |
| Bill stuck "awaiting approval" forever | The approval chain references an approver who no longer exists, or whose email bounces — see Configure supplier approval chains. |
| VAT recoverable amount is split wrong | The line's VAT rate doesn't match the supplier's invoice — re-pick the rate; Shillinq re-allocates. |
| Same bill posted twice | Shillinq's duplicate-detection compares supplier KvK + invoice number + date; if a duplicate slipped through, void one of the two and reconcile. |
| Payment didn't get picked up by the SEPA run | The bill isn't on Approved status, or the supplier has no IBAN — fix and re-queue. |
| Screenshots may be missing | App not yet installed in the test environment; rerun npm run test:e2e:docs once it is. |
Reference
- Send your first invoice — the AR mirror of this flow.
- Reconcile a bank statement — where the SEPA payment gets matched off the bill.
- Configure supplier approval chains — who approves bills of which amount.
- Set up your chart of accounts — the expense accounts the bill picks from.
- Shillinq architecture overview — SEPA, Wet OB, Fiscale bewaarplicht.