# 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. ## Base URL https://statementkit.erikssonanton2001.workers.dev ## Free endpoints - GET /v1/formats - supported formats, limits, prices - POST /v1/free/parse - demo: body up to 24 KB, first 100 transactions plus analysis_preview, 20 requests per hour per client. Accepts JSON {content, ...} or a raw text/csv, text/plain or application/xml body. ## Paid endpoints (x402 v2, exact scheme, eip155:8453, USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, pay to 0x9f950fbeE661D8867750750F600Ff03fb7BAbe8D) - POST /v1/parse - $0.005 - Parses a bank statement (CSV from any bank, camt.052/053/054, MT940, OFX/QFX, QIF) into normalized JSON: accounts, balances and signed transactions with ISO dates, counterparty, reference and OCR number. Deterministic, no AI, nothing stored. JSON body up to 1000 KB. Failed calls (4xx/5xx) are not settled. - POST /v1/analyze - $0.01 - Parses a statement and adds analysis: monthly totals, top counterparties, recurring payments, suspected duplicates, largest transactions and balance reconciliation. Set include_transactions=false to receive only the analysis. JSON body up to 1000 KB. Failed calls (4xx/5xx) are not settled. - POST /v1/convert - $0.005 - Parses a statement and exports it as normalized CSV, an hledger journal, a SIE4 file (experimental) or JSON. The converted file is returned as a string in the content field. JSON body up to 1000 KB. Failed calls (4xx/5xx) are not settled. Request body: JSON {content: string, format?, delimiter?, decimal?, dateFormat?, currency?, columns?, includeRaw?}. analyze adds today? and include_transactions?; convert adds to (csv|hledger|sie4|json) and bankAccount?, expenseAccount?, incomeAccount?, assetAccount?, company?. An unpaid request returns HTTP 402 with a PAYMENT-REQUIRED header (base64 JSON). Retry with a PAYMENT-SIGNATURE header; @x402/fetch does this automatically. You are charged only when the response status is below 400; validation errors are free. ## Supported formats - 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 ## MCP https://statementkit.erikssonanton2001.workers.dev/mcp (streamable HTTP, JSON-RPC 2.0). Tools: list_formats, parse_statement_demo (free), parse_statement, analyze_statement, convert_statement (paid: answer with x402 payment requirements until a payment header is sent). ## Limits and honesty notes - 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. - Parsing is deterministic heuristics, not bank-certified. Always check the result, especially CSV column and date detection (see warnings). - Ambiguous dates (01/02/2026) and decimal separators are guessed per file; the choice is reported in meta and warnings. - Analysis (recurring payments, duplicates, counterparties) is heuristic: duplicates are suspected, never removed. - SIE4 export is experimental. Verify account numbers before importing it into bookkeeping software. - The free rate limit is best effort: it lives in the memory of one Worker isolate and can reset. - No PDF, no OCR, no image support. ## 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. ## Other - OpenAPI: https://statementkit.erikssonanton2001.workers.dev/openapi.json - 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.