{"uid":"cap_6bJlfcF57cNFf-oX4BhSv","slug":"statementkit-bank-statement-parser-bce3e7e8","name":"StatementKit: Bank Statement Parser","description":"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.","url":"https://statementkit.erikssonanton2001.workers.dev/v1/parse?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"format":{"enum":["csv","camt","mt940","ofx","qif"],"type":"string","description":"Skip auto-detection."},"columns":{"type":"object","description":"CSV: map field names (date, amount, description, ...) to exact header names.","additionalProperties":{"type":"string"}},"content":{"type":"string","description":"The statement file as text (UTF-8). PDF and scanned images are not supported."},"decimal":{"enum":[",","."],"type":"string","description":"CSV decimal separator override."},"currency":{"type":"string","description":"Fallback ISO 4217 currency when the file has none, e.g. SEK."},"delimiter":{"type":"string","description":"CSV delimiter override: comma, semicolon, tab or pipe."},"dateFormat":{"enum":["ymd","dmy","mdy"],"type":"string","description":"CSV date order override for ambiguous dates."},"includeRaw":{"type":"boolean","description":"Add the raw source fields to every transaction."}}},"responseSchema":{"type":"json","example":{"meta":{"rows":4,"decimal":",","delimiter":";","truncated":false,"dateFormat":"dmy","detectedColumns":{"date":"Bokföringsdatum","amount":"Belopp","balance":"Saldo","reference":"Verifikationsnummer","valueDate":"Valutadatum","description":"Text"}},"format":"csv","accounts":[{"iban":null,"name":null,"currency":"SEK","transactions":[{"id":"ff1a637e10b6cbbb","ocr":null,"date":"2026-03-02","amount":32500,"currency":"SEK","direction":"in","reference":"5001","valueDate":"2026-03-02","endToEndId":null,"description":"Lön Acme AB","balanceAfter":41200.5,"counterparty":null},{"id":"3cbcc9a094dcd39a","ocr":null,"date":"2026-03-03","amount":-129,"currency":"SEK","direction":"out","reference":"5002","valueDate":"2026-03-03","endToEndId":null,"description":"Netflix.com","balanceAfter":41071.5,"counterparty":null},{"id":"afaab09a8e366eba","ocr":null,"date":"2026-03-05","amount":-842.35,"currency":"SEK","direction":"out","reference":"5003","valueDate":"2026-03-05","endToEndId":null,"description":"ICA Maxi Stockholm","balanceAfter":40229.15,"counterparty":null},{"id":"470cc2a77723cc1d","ocr":null,"date":"2026-03-07","amount":-615.4,"currency":"SEK","direction":"out","reference":"5004","valueDate":"2026-03-07","endToEndId":null,"description":"Vattenfall Eldistribution","balanceAfter":39613.75,"counterparty":null}],"accountNumber":null,"closingBalance":null,"openingBalance":null}],"warnings":[]}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.005","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.005/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.005","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.005","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_6XZ8_1XZ1Zq59ApnYtiNm","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.005","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Parses bank statement files (CSV, camt.052/053/054, MT940, OFX/QFX, QIF) into normalized JSON with transaction-level detail and optional CSV/hledger/SIE4 export","exampleAgentPrompt":"Parse this MT940 bank statement file and give me all the transactions as clean JSON — it uses EUR as the currency and dates are in day-month-year order.","exampleUseCases":[{"title":"Bookkeeping automation from CSV exports","prompt":"I downloaded my business bank account CSV from Handelsbanken — can you parse it into normalized JSON so I can import the transactions into my accounting system? The decimal separator is a comma and dates are in day-month-year format."},{"title":"Reconciling camt.053 statements","prompt":"I have a camt.053 XML file from my corporate bank account. Parse it into structured JSON so I can reconcile it against our internal ledger — include the raw source fields for each transaction."},{"title":"Converting QIF to hledger-compatible format","prompt":"I've got an old QIF export from my personal bank. Can you parse it and give me back normalized transactions with directions and balances so I can load it into hledger?"}],"resultDescription":"Returns a JSON object containing: detected format, metadata (row count, detected columns, decimal/delimiter/date settings, truncation flag), an array of accounts each with IBAN, name, currency, opening/closing balances, and a transactions array. Each transaction includes a unique ID, date, value date, amount (signed), direction (in/out), currency, description, reference, OCR number, end-to-end ID, counterparty, and balance after. Also includes a warnings array for any parse issues.","failureModes":["Unsupported file format (PDF or scanned image) — returns error since only text-based formats are supported","Ambiguous CSV columns without a column mapping — may misidentify date, amount, or description fields","Missing currency in file with no fallback provided — currency field on transactions may be null","Malformed or truncated file content — warnings array will flag issues, some transactions may be missing","Wrong date format causing parse failures — override with dateFormat parameter to resolve","Non-UTF-8 encoding — content must be passed as UTF-8 text"],"whenToPreferThis":"Choose this endpoint when you need deterministic, rule-based parsing of structured bank statement formats (CSV, camt, MT940, OFX, QFX, QIF) into normalized JSON. It is purpose-built for bookkeeping and accounting automation workflows where consistency and field-level control (column mapping, decimal separator, date format) matter. Prefer it over general-purpose LLM-based extraction when you need reliable transaction IDs, signed amounts, direction flags, and balance tracking across multiple bank formats.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-17T12:30:06.895Z","isFirstParty":false,"canonicalSlug":"statementkit-bank-statement-parser-bce3e7e8"}