StatementKit

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.

Try it

Try the free demo with a raw CSV file

curl -X POST 'https://statementkit.erikssonanton2001.workers.dev/v1/free/parse?currency=SEK' -H 'content-type: text/csv' --data-binary @statement.csv

Free demo with JSON

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"}'

Supported formats

curl https://statementkit.erikssonanton2001.workers.dev/v1/formats

Paid: parse a whole file (x402, JSON body)

curl -X POST https://statementkit.erikssonanton2001.workers.dev/v1/parse -H 'content-type: application/json' -d @request.json   # answers 402 until paid

Formats

CSVAny bank; EN/SV/DE/FR/NL/ES headers; delimiter, decimal and date format auto-detected
camt.052 / camt.053 / camt.054ISO 20022 XML, namespaces v02 to v08
MT940 / MT942SWIFT statements incl. :86: subfields
OFX / QFXSGML 1.x and XML 2.x, bank and credit card
QIF!Type:Bank style files

Pricing

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.005Normalized JSON
POST /v1/analyze$0.01JSON plus monthly totals, recurring payments, duplicates, reconciliation
POST /v1/convert$0.005Export to CSV, hledger, SIE4 (experimental) or JSON

Limits

Paid request bodyJSON up to 1000 KB
Free demoPOST /v1/free/parse: body up to 24 KB, first 100 transactions, 20 requests per hour per client (best effort, in-memory per isolate)
InputText only. PDF and scanned or photographed statements are NOT supported (no OCR).
AmountsJSON numbers (floats) rounded to cents; do not sum them with float arithmetic without rounding.
ErrorsEvery 4xx/5xx is free: payment is settled only for responses below 400.

Honest notes

Privacy

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.