All documentation

Money

Paying suppliers

A batch of bills, one payment per supplier, and a file the bank will take — proposed first, and confirmed by somebody who has read the list.

Bills are recorded and matched in bills. This is the other end: choosing which ones to pay, and producing something the bank accepts.

A run is a proposal until somebody confirms it

Building one moves no money and records nothing. This is the moment a business parts with a large sum, and the person pressing the button wants to have read the list first — anything that recorded payments as a side effect of building the list would be a product nobody trusts twice.

One payment per supplier

A supplier with three invoices gets one payment for the total, because that is how it leaves the bank — three payments against one bank line is a reconciliation that never comes out. The lines stay per invoice underneath, so what was settled is still answerable.

Suppliers are grouped by company where there is one and by name where there is not. A bill captured from an email carries a supplier name and no record, and paying two of those as separate transfers is exactly the noise this removes.

Confirming

Re-checked against the bills as they are now, not as they were

A bill part-paid since the run was built would otherwise be paid again in full, and the money is gone before anybody notices. The refusal names the bill, because the fix is to rebuild the run and somebody has to know which one moved.

  • Confirming is one transaction. A run that half-succeeded leaves money moved and books that disagree, and the recovery is somebody reading bank statements.
  • A bill already in a live run is not offered to another one, and cannot appear twice inside one.
  • A confirmed run cannot be cancelled. The payments were recorded and the ledger posted; undoing that is reversing each one, which is a decision per payment rather than a button on a batch.

The file

CSV
Every bank accepts a bulk upload with these columns. The default, and the one that works on day one.
ISO 20022 (pain.001)
The file a European bank actually expects. A SEPA batch uploaded as a spreadsheet is a manual re-key at the other end.

The three things a bank rejects a pain.001 for — the transaction count, the control sum, and XML escaping — are all arithmetic rather than judgement, so all three are computed and no caller is given the chance to get them wrong. A supplier called *Smith & Sons* would otherwise produce a document that is not well-formed XML, and the whole batch bounces with a parser error naming a line number.

  • Each payment appears on the statement as its own line rather than one lump, because a batched booking is one figure nobody can reconcile against a supplier.
  • Identifiers are narrowed to the character set the scheme allows. A reference with an accent in it is otherwise rejected at the far end after the file appeared to send perfectly.
  • A missing supplier account refuses the file and names the supplier. The fix is per supplier, and *some suppliers have no account* is a sentence nobody can act on.

The remittance carries the supplier's own reference

That is what they look for on their statement; yours means nothing to them. Bank narrative fields truncate without warning, so more than three says how many rather than running on and being cut off mid-reference.

Bank details

This is the one place the product holds real payment details rather than a masked reference, and it is unavoidable: a run that cannot say where the money goes is not a run. They are encrypted at rest, only the last four characters are ever shown, and the full number is decrypted only to build a file.

A supplier can have more than one account, so they are their own records rather than a column — a column answers *which account* with whichever was written last.

Who can do what

ActionNeeds
Build a run and look at itfinance:edit
Confirm it, and download the filefinance:configure

Deliberately a step apart. Assembling the list is day-to-day billing; authorising a batch payment to every supplier at once belongs with the authority that closes a period.