Reconcile payments
Connect Fio or MONETA, review match proposals, and confirm allocations in the payment ledger.
Getting paid in Invoicey is more than stamping a date on an invoice. Every payment — cash, another bank, or a bank credit — becomes a ledger allocation. Allocations are the source of truth; invoice status, outstanding totals and the dashboard all derive from them.
Review-first by default
Automatic matching is off when you connect a bank. You can opt in per connection; Invoicey then confirms only blocker-free 100% matches with the exact receiving account, CZK currency, variable symbol, and full amount due. Everything else still waits for a person.
Before you connect a bank
Matching works best when issued invoices already carry the payment facts Czech banks use:
| Fact | Where it comes from |
|---|---|
| IBAN | Issuer bank account frozen onto the invoice at issue |
| Variable symbol (VS) | Usually the invoice number; used heavily by bank matching |
| Amount + currency | Invoice total (CZK in the current pilot) |
Issue invoices with a clear VS and the correct issuer IBAN before you expect clean proposals. Older paid invoices already migrated into the ledger as manual allocations — you do not need to re-mark them.
Connect Fio banka
Fio banka connects via a read-only monitoring token from Fio Internetbanking. That token can pull account movements; it cannot submit payment orders. Other supported banks: Bank connections.
Owners and admins configure this under Settings → Bank connections. Connections belong to the active workspace — they are never shared with your other workspaces.
Create a monitoring token in Fio
In Fio Internetbanking, create a token with statement / movement rights only. Copy the 64-character string once. Invoicey encrypts it at rest and never shows the plaintext again after save.
Connect in Invoicey
Open Settings → Bank connections, paste the token, and connect. Invoicey probes Fio, verifies the account (CZK pilot), and stores the IBAN on this workspace. One IBAN can be active in only one workspace at a time.
Sync movements
Use Sync now on the connection, or wait for the scheduled bank sync. Sync pulls an explicit overlapping date range, upserts movements without duplicates, and runs the matcher to open proposals on Payments.
Disconnect stops further sync but keeps imported transactions and allocations — history is not wiped when you rotate or revoke a token.
Connect MONETA Money Bank
MONETA uses a passive API token from Internet Banka (VIP AISP). Setup is the same Settings page; a workspace may have both Fio and MONETA connected.
Create an API token in MONETA
In Internet Banka, activate API access and create a passive token under API tokeny. Copy it once. Tokens typically expire within 90 days unless you renew or auto-extend them in the bank UI. History is limited to 90 days.
Connect in Invoicey
Open Settings → Bank connections, paste the token for MONETA, and optionally Discover accounts. If the token covers more than one CZK account, pick the receiving account. Invoicey verifies today’s movements and encrypts the token for this workspace.
Sync movements
Use Sync now or wait for the scheduled bank sync — the same Payments queue and matcher as Fio.
Optional automatic matching
Turn on Automatic exact matching on a bank connection to confirm only new, exact proposals. An automatic confirmation marks the invoice paid and sends the user who connected the account a summary email. Partial, overpaid, ambiguous, heuristic, and previously waiting proposals remain manual. Turning the option on does not bulk-confirm the existing review queue.
The Payments page
Open Payments in the sidebar. It is the reconciliation desk for the workspace.
Match proposals
Each proposal links a bank credit to an issued invoice. The interface explains it as an exact, strong, likely, or review-needed match and shows the supporting facts in readable labels rather than exposing matcher internals.
| Action | Effect |
|---|---|
| Confirm | Creates an allocation for the proposed amount |
| Reject | Dismisses the suggestion; the bank credit stays available for another match |
Confirming a full match marks the invoice paid when allocations cover the absolute total. Confirming a smaller amount leaves the invoice partially paid with an outstanding balance.
Manual payments
Use Add a manual payment for cash, an unconnected bank, or a correction. Pick the outstanding invoice, amount and paid-on date. Manual entries write the same ledger as confirmed bank matches, so dashboards stay consistent.
Recent transactions and allocations
Imported bank credits show whether they are already allocated. The allocations list is the audit trail of confirmed payments — reverse an allocation if the wrong invoice was matched; status and outstanding totals recompute immediately.
On the invoice itself
Invoice detail shows a Payment ledger summary: received, outstanding, and the allocation timeline. From there you can still Mark paid / Unmark paid (or reverse a specific allocation). Those actions are ledger operations too — not a separate shadow field.
Unmarking or reversing a bank-confirmed payment reopens its original match proposal on Payments, so an accidental correction can be reviewed and confirmed again.
When an invoice becomes fully paid, optional payment-received email can fire once (configured per issuer).
How matching decides
The matcher is deterministic and versioned (fio-v1 / moneta-v1). It never crosses workspace
boundaries and never invents FX: transaction currency, allocation currency and invoice currency must
agree.
Typical strong signals:
- Variable symbol matches the issued invoice
- Amount equals (or cleanly covers) the outstanding balance
- Credit lands on the invoice’s payment IBAN
Ambiguous or blocked cases stay as proposals (or stay unmatched) until a human decides. That is preferable to silently marking the wrong invoice paid.
Partial, split and overpaid
| Situation | What Invoicey does |
|---|---|
| Client pays part of the total | Allocation recorded; invoice stays open with outstanding |
| One transfer covers several invoices | Confirm each proposal (or add manual splits) as separate allocations |
| Client overpays | Invoice can show overpaid; issued PDF/ISDOC totals stay frozen |
| You matched the wrong invoice | Reverse the allocation; rematch from Payments |
Issued documents are never rewritten when money moves — only payment projections change.
What this does not include yet
- Payment initiation or any write-capable bank token
- Automatic confirmation of partial, ambiguous, overpaid, or heuristic matches
- Foreign-exchange / cross-currency allocation
- Banks beyond Fio and MONETA (researched and deferred)
- Full rematch / multi-invoice split UI polish beyond confirm, reject, reverse and manual add