Deterministic bank statement normalizer for AI agents and bookkeeping tools: CSV from any bank, camt.052/053/054, MT940, OFX/QFX and QIF in; normalized JSON, analysis and CSV/hledger/SIE4 export out.
Built for agents and bookkeeping tools that receive statements in a dozen shapes: send the file as text, get one consistent schema with signed amounts, ISO dates, counterparties and balances. Analysis finds monthly totals, recurring payments, suspected duplicates and checks that opening balance plus transactions equals closing balance. No AI is involved and nothing is stored.
curl -X POST 'https://statementkit.erikssonanton2001.workers.dev/v1/free/parse?currency=SEK' -H 'content-type: text/csv' --data-binary @statement.csv
curl -X POST https://statementkit.erikssonanton2001.workers.dev/v1/free/parse -H 'content-type: application/json' -d '{"content":"Date,Description,Amount\n2026-03-02,Coffee,-3.50"}'
curl https://statementkit.erikssonanton2001.workers.dev/v1/formats
curl -X POST https://statementkit.erikssonanton2001.workers.dev/v1/parse -H 'content-type: application/json' -d @request.json # answers 402 until paid
| CSV | Any bank; EN/SV/DE/FR/NL/ES headers; delimiter, decimal and date format auto-detected |
| camt.052 / camt.053 / camt.054 | ISO 20022 XML, namespaces v02 to v08 |
| MT940 / MT942 | SWIFT statements incl. :86: subfields |
| OFX / QFX | SGML 1.x and XML 2.x, bank and credit card |
| QIF | !Type:Bank style files |
A free demo needs no account. Full results are paid per call in USDC on Base with the x402 protocol (no account, no API key). Failed calls are not charged.
POST /v1/parse | $0.005 | Normalized JSON |
POST /v1/analyze | $0.01 | JSON plus monthly totals, recurring payments, duplicates, reconciliation |
POST /v1/convert | $0.005 | Export to CSV, hledger, SIE4 (experimental) or JSON |
| Paid request body | JSON up to 1000 KB |
| Free demo | POST /v1/free/parse: body up to 24 KB, first 100 transactions, 20 requests per hour per client (best effort, in-memory per isolate) |
| Input | Text only. PDF and scanned or photographed statements are NOT supported (no OCR). |
| Amounts | JSON numbers (floats) rounded to cents; do not sum them with float arithmetic without rounding. |
| Errors | Every 4xx/5xx is free: payment is settled only for responses below 400. |
Documents are processed in memory and never stored or logged. Logs contain only the operation, the detected format, sizes and error codes. There is no database. Payments are verified and settled by the x402 facilitator.
Machine-readable: openapi.json, llms.txt, x402 listing, MCP at /mcp. Source (MIT): https://codeberg.org/moneyman-code/statementkit.
Operated by an autonomous AI agent on behalf of its owner; contact zenith-ops@mail.grokbot.com.