Bite Apps/SafeCAMT

SafeCAMT — camt.053 & MT940 to Excel, pain.001 validator

Drop a bank statement or payment file. SafeCAMT reads ISO 20022 camt.053, camt.052 and camt.054 (any version) and SWIFT MT940 / MT942, turns them into a clean transaction table with counterparty, IBAN, remittance and references, checks that opening + credits − debits = closing, exports to CSV or Excel, converts MT940 to camt.053, and validates pain.001 credit-transfer files before your bank rejects them.

100% client-side 0 network requests since this page loaded No sign-up · no analytics · no cookies Works offline once loaded
Drop camt.05x / pain.001 XML or MT940 / MT942 files — read locally, never uploaded
Auto-detects the format and version.

Your bank files stay on this device

Open or drop a statement, or pick a sample from Load sample… above. Open DevTools → Network first: reading a file makes zero requests.

Free vs Pro

One payment, no subscription. Compare all Bite Apps plans →

Free

$0
  • One file at a time
  • View and export (CSV) the first 100 transactions or payments
  • Full balance reconciliation and pain.001 checks on the whole file
  • Masking for support tickets
  • MT940 → camt.053 preview
Open a file

SafeCAMT Pro Lifetime

$19 one-time
  • Unlimited transactions and payments
  • Batch: open many statements at once, merged into one table
  • Excel (.xlsx) export with Transactions, Balances and Checks sheets
  • Download MT940 → camt.053.001.08 XML
  • All future SafeCAMT updates

Bank statements and payment files that never leave your machine

Statements and payment files hold account numbers, balances, counterparties and salaries. Treasury, accounting and ERP teams are usually not allowed to upload them to online converters. SafeCAMT is one static page: parsing, reconciliation, conversion and validation run in JavaScript inside your browser tab. Nothing is uploaded or stored on a server, and the page keeps working offline once it has loaded.

Check it yourself: open DevTools → Network and load a statement. No requests appear. The page's Content-Security-Policy (default-src 'none') allows exactly one outside destination — api.polar.sh — which is only contacted when you activate a Pro license key.

What SafeCAMT reads

FormatWhat it isWhat SafeCAMT does
camt.053ISO 20022 BankToCustomerStatement — the end-of-day account statement, successor of MT940/MT950.Transactions table, balances, reconciliation, CSV/Excel.
camt.052BankToCustomerAccountReport — intraday report, successor of MT941/MT942.Same as camt.053; pending entries are listed but excluded from reconciliation.
camt.054BankToCustomerDebitCreditNotification — single or batch booking notifications, often used to break down collective entries.Transactions table with every TxDtls of a batch.
MT940 / MT942SWIFT customer statement / interim transaction report in tagged text format.Parses :61: statement lines and :86: details (German ?20–?63 subfields with EREF+/SVWZ+, and slash-coded /NAME/, /IBAN/, /REMI/, /CNTP/), reconciles, converts to camt.053.
pain.001CustomerCreditTransferInitiation — the payment file you upload to your bank.Checks before upload; payments table and CSV/Excel.

All published message versions are read namespace-agnostically — for example camt.053.001.02 (2009 schemas still common in SEPA), .001.04, .001.08 (current CBPR+ and most European bank guides) and later. Version differences such as BIC vs BICFI, Dbtr/Nm vs Dbtr/Pty/Nm and <Sts>BOOK</Sts> vs <Sts><Cd>BOOK</Cd></Sts> are handled automatically.

MT940 to camt.053 field mapping

When banks switch you from MT940 to camt.053, your ERP or treasury import has to be remapped. These are the usual correspondences (individual bank guides vary in detail):

MT940Meaningcamt.053
:20:Transaction reference numberGrpHdr/MsgId, Stmt/Id
:25:Account identificationStmt/Acct/Id/IBAN (or Othr/Id)
:28C:Statement / sequence numberStmt/ElctrncSeqNb, LglSeqNb, StmtPgntn
:60F: / :60M:Opening balance (first / intermediate page)Bal with OPBD (or PRCD) / ITBD
:61:Statement line: value date, entry date, D/C mark, amount, transaction type, referencesNtry: ValDt, BookgDt, CdtDbtInd, RvslInd, Amt, BkTxCd, AcctSvcrRef
:86:Information to account owner (free or structured text)NtryDtls/TxDtls: Refs/EndToEndId, RltdPties, RltdAgts, RmtInf, plus AddtlNtryInf
:62F: / :62M:Closing balanceBal with CLBD / ITBD
:64:Closing available balanceBal with CLAV
:65:Forward available balanceBal with FWAV

The biggest practical difference: MT940 squeezes counterparty, IBAN and remittance into the :86: free text (often max 6×65 characters, with bank-specific sub-codes), while camt.053 gives each of them its own element — and one booked entry can carry many TxDtls for a batch.

How balance reconciliation works

For each statement SafeCAMT takes the opening booked balance (OPBD, or PRCD if your bank sends the previous closing instead; :60F: in MT940), adds booked credits and subtracts booked debits, and compares the result with the closing booked balance (CLBD; :62F:). Amounts are added with exact decimal arithmetic, not floating point, so a one-cent difference is a real difference. Pending (PDNG) and information entries are excluded. A mismatch usually means a missing page (check :28C: / ElctrncSeqNb), a truncated file, or an import that dropped reversal entries (RvslInd, RC/RD marks).

Balance codeMeaning
OPBDOpening booked
PRCDPreviously closed booked (used by some banks instead of OPBD)
ITBDInterim booked (intraday / intermediate page)
CLBDClosing booked
CLAVClosing available
FWAVForward available

Bank transaction codes

camt messages classify each entry with an ISO bank transaction code in three levels, Domain / Family / Sub-family — for example PMNT/RCDT/ESCT (received SEPA credit transfer), PMNT/ICDT/ESCT (issued SEPA credit transfer), PMNT/RDDT/ESDD (SEPA core direct debit collected from you) or ACMT/MDOP/CHRG (charges). Many banks add a proprietary code too, such as the German GVC (166, 105…) that MT940 carried in :86:.

pain.001 checks before you upload

Banks reject payment files for a handful of recurring reasons. SafeCAMT checks them all and shows the exact path (for example PmtInf[1]/CdtTrfTxInf[3]/CdtrAcct/Id/IBAN):

These are structural and business-rule checks, not a full XSD validation; your bank's own validator (or Swift MyStandards) remains the final authority.

Common pain.002 rejection codes

CodeNameTypical cause
AC01IncorrectAccountNumberInvalid IBAN or account format
AC04ClosedAccountNumberCreditor account closed
AM04InsufficientFundsNot enough cover on the debtor account
AM05DuplicationSame file or end-to-end ID sent twice
AM10InvalidControlSumCtrlSum does not match the transactions
AM18InvalidNumberOfTransactionsNbOfTxs does not match
BE04MissingCreditorAddressAddress required for the corridor is missing
CH03 / CH04Execution date too far in future / pastReqdExctnDt outside the bank's window
FF01InvalidFileFormatXML not valid against the schema the bank expects
RC01BankIdentifierIncorrectInvalid BIC

ISO 20022 migration: where statements and payments stand

For cross-border payment instructions, the Swift MT/ISO 20022 coexistence period ended in November 2025. Statements and reports run on a later track: under Swift's CBPR+ roadmap, institutions must be able to receive the ISO 20022 cash-management messages (camt.052 / camt.053 / camt.054 as the replacements of MT942, MT940/MT950 and MT900/MT910) from November 2027, and retirement of the MT9xx statement messages is planned for November 2028. Many banks already offer camt.053 alongside MT940 today and are moving corporate clients over.

Separately, Swift and the SEPA schemes are retiring fully unstructured postal addresses in payment messages. Swift's cut-off was set for 14 November 2026, but on 27 August 2026 Swift deferred all payment-related changes of Standards Release 2026, including this one, and said it would announce the new timing by December 2026. Some domestic schemes and banks keep their own dates, so SafeCAMT flags unstructured addresses as warnings: confirm the deadline that applies to your bank.

FAQ

Does SafeCAMT upload my bank statements?

No. Files are read and processed entirely in your browser. The page's Content-Security-Policy blocks every network destination except api.polar.sh, which is contacted only when you activate a Pro license key, and only the key is sent. You can confirm in DevTools → Network that opening a statement makes zero requests.

Which camt and pain versions are supported?

camt.052, camt.053 and camt.054 in any published version (for example .001.02, .001.04 and .001.08), pain.001 credit-transfer initiations (for example .001.03 and .001.09), and SWIFT MT940 and MT942 with or without SWIFT block headers. The format and version are detected automatically.

How do I convert camt.053 to Excel?

Open the XML file, check the Transactions tab, and click Export CSV — choose the semicolon option if your Excel uses a decimal comma. SafeCAMT Pro adds a native .xlsx export with separate Transactions, Balances and Checks sheets, and batch processing of many statements at once.

Can SafeCAMT convert MT940 to camt.053?

Yes. Open an MT940 or MT942 file and the "MT940 → camt.053" tab shows the generated camt.053.001.08 XML with balances, entries, parties, IBANs, BICs, remittance and end-to-end IDs mapped from :61: and :86:. Pro users can download the full file. The result is meant for testing and migration work, not as a bank-issued statement.

Why does my statement not reconcile?

SafeCAMT checks that the opening booked balance plus booked credits minus booked debits equals the closing booked balance, using exact decimal arithmetic. A difference usually means a missing statement page, a truncated file, reversal entries that were dropped, or a bank that reports pending entries as booked.

Is the pain.001 check a full XSD validation?

No. SafeCAMT checks structure, required elements, counts and control sums, IBAN and BIC check digits, currency decimals, SEPA scheme rules, duplicate end-to-end IDs, dates and structured addresses — the issues behind most bank rejections. Your bank's own validator remains the final authority.

What does SafeCAMT Pro include, and is it a subscription?

Pro is a one-time $19 payment, not a subscription. It removes the 100-row limit, adds batch processing of many files, native Excel export, and downloading MT940 → camt.053 conversions. Payment is processed by Polar as Merchant of Record.

Can you build a custom bank-format converter for our ERP?

Yes. Email support@biteapps.cc with the formats, banks and target system — Bite Apps builds converters, import mappings and payment-file tooling for finance teams.

SafeCAMT Pro — $19 one-time

  • Unlimited rows and batch processing
  • Excel (.xlsx) export
  • MT940 → camt.053 XML download

Buy SafeCAMT Pro ($19) Secure checkout by Polar. After payment your license key is shown in your Polar customer portal (linked from the receipt email).


Activation sends only your license key to api.polar.sh. Statement and payment data never leave this page — the Content-Security-Policy blocks every other destination.