Belgium · Bank statement parser
Parse KBC statements into structured JSON
Belgium's largest retail bank — IBAN-formatted statements, Dutch + French + English layouts.
KBC bank statements come in three language variants (Dutch, French, English) depending on the customer's preference. The pagination layout is consistent across all three: account header at the top of page 1, transaction table running across pages, balance summary at the foot of the final page. Statement periods can be monthly or quarterly; the parsing pipeline handles both. The transaction table format is dense — one line per transaction with date, description (sometimes wrapping to two lines), value date, and amount. KBC stamps the IBAN as a single space-separated string; parsr normalizes that to the canonical no-space form. Closing balances are printed both numerically and in words on retail accounts; we read the numeric form. Joint accounts list both holders in the header.
Format notes
What's specific to KBC
- Three language variants (NL / FR / EN), shared layout
- IBAN printed with spaces; parsr normalizes to canonical form
- Two-line transaction descriptions handled correctly
- Closing balance shown in numerical + written form (we use numerical)
- Joint accounts list both holders
What we extract
Fields you get back
- Account holder + IBAN + statement period
- Opening / closing balance with currency
- Per-transaction: posted_date, value_date, description, amount, balance_after, type (debit/credit)
- Counterparty IBAN when present
- Confidence + bbox per field
Sample response
Real shape, real bank
{
"schema_version": "bank_statement.v2",
"result": {
"institution_name": "KBC Bank",
"account_holder": "Pieter Janssens",
"account_iban": "BE68539007547034",
"currency": "EUR",
"opening_balance": { "amount": "2840.50", "currency": "EUR" },
"closing_balance": { "amount": "1956.30", "currency": "EUR" },
"transactions": [
{
"posted_date": "2026-04-03",
"description": "Maandelijkse loon",
"amount": { "amount": "2400.00", "currency": "EUR" },
"type": "credit"
},
{
"posted_date": "2026-04-05",
"description": "Huur — KBC Wonen",
"amount": { "amount": "-1100.00", "currency": "EUR" },
"type": "debit"
}
]
},
"validation": {
"balance_chain": { "valid": true, "diff": "0.00", "transaction_count": 14 }
}
}Try it on a real KBC statement.
200 free pages/mo. No credit card. EU residency by default — your borrowers' data stays in the EU.
Get an API key