≈ an approximate estimate of my actual process
Before
In my company the accountant posted the statement once every two or three weeks.
Every payment had to be identified: find the counterparty, create the right document, match the payment to it.
Until that was done, the balances with clients lagged behind reality, and "have they paid yet?" often needed a check of its own.
How I automated it
- Every morning at seven the statement is pulled from the bank through its API.
- Each payment is classified into one of six kinds: a client payment, a payment to a supplier, taxes, bank fees, a refund, other.
- The payment becomes a document in the accounting system and is matched to invoices by FIFO: the oldest unpaid one first.
If a payment cannot be identified unambiguously, the system does not post it on a guess — a new counterparty or an odd payment reference goes onto a list for the accountant to review.
After
By the morning the statement is already posted. The accountant opens only the list of payments that need clarification.
What it gave
A sales manager sees the current payment status and can carry on with the order without a separate request to the accountant.
The accountant deals with exceptions instead of repeating the same operation for every payment.
Balances are updated daily rather than once every two or three weeks.
What would be different in your company
In my company the statement is collected daily at seven, because that suits the accountant. It can be hourly, several times a day, or the moment a payment arrives — the schedule is yours.
So is the bank: some companies have one, others three plus card acquiring and cash on delivery. The kinds of payment and the matching rules are described around your books: mine are six kinds and FIFO, yours may be different.
Show me a similar processTechnical details
Python, bank API, payment classification into 6 kinds, FIFO matching to invoices