# ISO 20022 Navigator > Free, privacy-first viewers and validators for ISO 20022 bank statements and payment files (camt.052, camt.053, camt.054, pain.001, pain.002, pain.008) and SWIFT MT940/MT942 statements, with an MT940 → camt.053.001.08 converter. The browser tools parse files on the user's device and never upload them. The same parsers are available keyless over a REST API and an MCP server. Built for treasury, payments-operations and bank-operations people and for AI agents. Amounts are always exact decimal strings. Versions .001.02 to .001.13 are read, with any namespace prefix. ## Browser tools - [camt Statement Viewer](https://iso20022-navigator.com/): camt.053 statements, camt.052 intraday reports and camt.054 notifications per account: balances with their type codes, entries with bank transaction codes, references, counterparties and remittance, the roll-forward check, raw XML with line numbers, CSV/JSON export. - [Payment File Viewer](https://iso20022-navigator.com/pain-viewer): pain.001 credit transfers, pain.008 direct debits and pain.002 status reports (with every status and reason code explained); NbOfTxs/CtrlSum, IBAN, BIC, currency decimal and SEPA checks. - [MT940 Viewer](https://iso20022-navigator.com/mt940-viewer): SWIFT MT940/MT942 with every :61: subfield decoded and :86: structured subfields; balance roll-forward; convert to camt.053.001.08. - [ISO 20022 reference](https://iso20022-navigator.com/iso20022-reference): message families, balance types, bank transaction codes, status and reason codes, MT940 fields and the MT940 → camt.053 mapping. ## REST API (keyless, 256 KB per body, 60 requests/minute per client, CORS open) Send the file text as the raw body, or JSON {"content": "..."}. Send UTF-8: a Content-Type charset is honoured (415 if unknown, 400 if the bytes do not fit); without one a body is read as UTF-8, as UTF-16 with a byte-order mark, else as Latin-1, and XML that is not UTF-8 fails validation with an xml.encoding error. JSON bodies must be UTF-8. - `POST https://iso20022-navigator.com/api/v1/detect`: what the file is (type, version, supported). - `POST https://iso20022-navigator.com/api/v1/parse`: normalized JSON of the message. - `POST https://iso20022-navigator.com/api/v1/validate`: issues with rule id, severity, message, path and line; JSON body may add "today": "YYYY-MM-DD". - `POST https://iso20022-navigator.com/api/v1/convert/mt940-to-camt053`: MT940 (up to 128 KB) → camt.053.001.08 XML (send Accept: application/json for XML plus mapping notes). - `GET https://iso20022-navigator.com/api/v1/explain?code=AC01`: explain a balance type, bank transaction code, status, reason or MT940 type code. - [OpenAPI 3.1 document](https://iso20022-navigator.com/openapi.json) Example: `curl -s --data-binary @statement.xml https://iso20022-navigator.com/api/v1/validate` ## MCP server - Endpoint: https://iso20022-navigator.com/mcp (Streamable HTTP, stateless, JSON responses, no key) - Claude Code: `claude mcp add --transport http iso20022-navigator https://iso20022-navigator.com/mcp` - Tools: - `detect_message_type`: Identify a payment or bank-statement file. - `parse_iso20022`: Parse an ISO 20022 XML message into normalized JSON. - `validate_payment_file`: Validate a camt.052/053/054, pain.001/002/008 or MT940/MT942 file and list every finding with a stable rule id, severity (error, warning or info), message, XPath-like path and line number, and the found/expected values when they help. - `parse_mt940`: Parse SWIFT MT940 customer statements, MT942 interim reports or MT950 statements into JSON. - `convert_mt940_to_camt053`: Convert SWIFT MT940 (or MT950) statements to one ISO 20022 camt.053.001.08 XML document: one Stmt per MT940 statement, one Ntry with one TxDtls per :61:. - `explain_code`: Explain an ISO 20022 or SWIFT code in plain words, with where it appears. ## Docs - [API and MCP guide](https://iso20022-navigator.com/api): curl examples, connection snippets for Claude Code, Claude Desktop, claude.ai and Cursor. - [Use cases](https://iso20022-navigator.com/use-cases) - [Privacy](https://iso20022-navigator.com/privacy): request bodies are processed in memory and never stored or logged. ## Optional - [Analytics](https://iso20022-navigator.com/analytics): the anonymous usage counters this site keeps. - Sister site: [NACHA Navigator](https://nacha-navigator.com) for ACH (NACHA), X9.37 and BAI2 files.