InvoiceyDocs
Everyday workflows

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:

FactWhere it comes from
IBANIssuer bank account frozen onto the invoice at issue
Variable symbol (VS)Usually the invoice number; used heavily by bank matching
Amount + currencyInvoice 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.

ActionEffect
ConfirmCreates an allocation for the proposed amount
RejectDismisses 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

SituationWhat Invoicey does
Client pays part of the totalAllocation recorded; invoice stays open with outstanding
One transfer covers several invoicesConfirm each proposal (or add manual splits) as separate allocations
Client overpaysInvoice can show overpaid; issued PDF/ISDOC totals stay frozen
You matched the wrong invoiceReverse 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

Tips