
money.process-incoming-invoice·version 1.0.0·draft3 to verify
The invoice is checked, matched to what the company actually received, booked with correct VAT, paid once approved, and filed so the audit trail is one link deep.
An invoice from a supplier has arrived and must end up booked and paid. Not for an invoice the company sends out — use money.issue-invoice. Not for a customer who has not paid — use money.chase-overdue-invoice. Not for deciding whether to buy at all — that is ops.purchase-approval, which should have run before the order was placed. A payment already made that does not match the bank statement is money.bank-reconciliation.
ops.new-supplier has already run for it.ops.purchase-approval).bc mail search).Any step can wait until a date and reopens by itself; every closed step leaves evidence (a note, a link, a number).
Find it in the mail (bc mail search from:<supplier> has:attachment), save the original file into the documents module, and note the e-mail thread it came with. Paper: scan it (documents.scan-paper).
Done when the invoice file exists in the documents module with supplier and date visible.
Match the sender and the invoice header against the supplier list: name, registration number, VAT number, bank account. If any of these differ from the last paid invoice, stop and treat it as a change of details.
Done when the invoice's supplier data matches the list, or a discrepancy is written down.
⛔ A changed bank account in an e-mail is the classic fraud pattern — never accept new details from the invoice or an e-mail alone; call the supplier on the number already in the list.
Read back: supplier and buyer details, invoice number and date, description, quantity, unit price, total, VAT rate and VAT amount, due date, payment details. For a Latvian supplier, check the invoice carries the fields the VAT law requires. ⚠ verify mandatory invoice fields — Latvian VAT law, likumi.lv.
Done when every field is present and the VAT amount equals base × rate, or the invoice is flagged invalid.
Three-way match: invoice ↔ purchase order or contract ↔ delivery/receipt. Price and quantity must agree.
Done when the match is recorded, or the mismatch is listed with the supplier to be queried.
⛔ Booking an invoice that nobody can match to a delivery is how ghost purchases get paid.
Enter the booking in the money module: expense account, cost centre, period = invoice date (not payment date), input VAT split out. Foreign currency: book at the invoice amount and record the rate used. ⚠ verify correct expense account in the company's chart of accounts — ask the owner if it is a new cost type.
Done when the booking exists and its total equals the invoice total to the cent.
Approval · S6 · owner — the run stops until a named person records the decision
Show the owner: invoice, match result, booking, due date, amount. The owner approves payment or queries it.
Done when a named person's approval is recorded with date and amount.
⛔ Routine small amounts may be pre-approved by policy — but the policy must name the threshold and the person.
Irreversible · S7 — an agent never closes it alone
Pay from the approved bank account to the account confirmed in S2, reference = invoice number. Schedule on or before the due date if paying later.
Done when the bank shows the outgoing payment with the invoice number as reference.
Mark the invoice paid, link the payment confirmation and the booking to the invoice record, set the retention period (documents.archive-retention), and clear the payable watch. If the invoice thread had attachments that are not the invoice, note them.
Done when one link opens: invoice → booking → payment confirmation.
Send the owner a two-line summary: what was booked and paid, from which account, when.
Done when the summary is sent.
money.bank-reconciliation on the next run.| Symptom | Response |
|---|---|
| Same invoice number arrives twice | Do not book or pay the second copy; keep it flagged, ask the supplier to confirm in writing which is valid. |
| Bank details differ from the supplier list | Freeze the payment; verify by phone using the number from the last paid invoice, not from the e-mail. |
| VAT number invalid or VAT amount wrong | Do not book the input VAT; query the supplier for a corrected invoice before S5. |
| No delivery or order to match | Hold the invoice unbooked, ask the person who ordered it; do not pay on the invoice alone. |
| Invoice is in a currency the company does not hold | Book at the invoice amount with the rate used, and agree the conversion source with the owner before paying. |
Invoice file (original) · supplier match note with date · booking id and period · the S6 approval (who, when, amount) · payment reference from the bank · the query thread if the supplier was asked anything.
After every 25 invoices ask: how long from receipt to booked, and which step waited longest? Did any invoice reach S6 without a match in S4? Was any input VAT corrected after the VAT return? Did any supplier details change without the S2 check catching it? A new version changes the step that failed and says so in its change note.
Obligātās sīkdatnes tur sarunu kopā. Analītika ir izslēgta, līdz tu atļauj — tā neliek nevienu sīkdatni un neglabā ierīces identifikatoru.Necessary storage keeps your conversation together. Analytics is off until you allow it — it sets no cookie and stores no device identifier. Ko mēs glabājamWhat we store