Skip to content

CSV to CAMT

Converter Tools ·
·

Build a valid CAMT.053 ISO 20022 bank statement from a simple CSV. Map date, amount, currency, credit/debit, counterparty, and reference into one XML per row.

The short version

You have transactions in a spreadsheet. Something downstream, a treasury system, a reconciliation tool, a test harness, wants them as CAMT.053, the ISO 20022 XML that banks ship account statements in. Hand-writing that XML is miserable. So describe the transactions as CSV instead and let this build the document.

Six columns in, one <Ntry> per row out, wrapped in a proper camt.053.001.02 envelope. It’s the exact inverse of our CAMT to CSV tool, so a file you flattened there round-trips back here.

The columns it reads

Put a header row on top. Order doesn’t matter, the tool reads the names, not the positions, and it’s loose about spelling:

  • date becomes the booking date (BookgDt/Dt). ISO YYYY-MM-DD is safest, but 02.06.2026, 06/02/2026 and 20260602 all read fine too. For slash and dot dates where day-first versus month-first is genuinely ambiguous, the Date order control lets you force DD/MM or MM/DD instead of the day-first default.
  • amount as a positive number like 1250.00. This is the value that goes in <Amt>.
  • currency as a three-letter code (EUR, USD, GBP). It fills the Ccy attribute. Leave it blank and you get EUR.
  • creditDebit tells direction. Write CRDT or DBIT, or just credit / debit, any case. That maps to <CdtDbtInd>.
  • counterparty is the other party’s name. On a credit it’s written as the debtor who paid you; on a debit it’s the creditor you paid. Same logic the reverse tool uses.
  • reference is your payment note. It lands in RmtInf/Ustrd.

Small convenience: if you only have signed amounts, a leading minus (-89.90) is read as a debit and the sign is stripped, since CAMT amounts are always stored positive with the direction in a separate tag.

What comes out

A single statement with a group header (GrpHdr carrying a generated MsgId and the current timestamp) and one Stmt block. Each CSV row turns into an <Ntry> containing the amount with its currency, the credit/debit indicator, a BOOK status, the booking date, and an NtryDtls/TxDtls section holding the related party and the remittance text. Empty optional cells are simply left out rather than written as blank tags.

Everything you type gets XML-escaped on the way in. Ampersands, angle brackets, and quotes in a counterparty name or reference won’t break the document, so Smith & Co <Ltd> is encoded correctly instead of producing malformed XML.

Honest caveat: this is a compact CAMT.053. It’s well-formed and namespaced correctly, and it carries the fields most reconciliation tooling reads, opening and closing balances (Bal) computed from the opening balance you supply, a transaction summary (TxsSummry), a unique NtryRef and AcctSvcrRef per entry, and an end-to-end ID on each TxDtls. What it leaves out are the heavier optional structures: account owner, bank transaction codes (BkTxCd), and structured remittance. Some strict bank importers expect those. For testing, prototyping, and tools that only need entry-level data, it’s plenty. For submitting to a particular bank, check what their schema profile requires.

It all happens in your browser. The CSV is parsed and the XML is assembled in JavaScript on the page, nothing is uploaded. Given these are transaction records, that’s the right place for it to run.

FAQ

Is the XML actually valid CAMT.053?

It’s well-formed XML in the urn:iso:std:iso:20022:tech:xsd:camt.053.001.02 namespace with the correct element nesting for entries. It validates structurally and parses cleanly, including back through our CAMT to CSV tool. Whether it passes a specific bank’s stricter schema profile depends on which optional fields that bank mandates.

Does the column order matter?

Nope. The first row is treated as a header and each column is matched by name, so you can rearrange them however your export happens to spit them out. Amount and a credit/debit column are the only two that must be present.

What if I leave the currency blank?

It defaults to EUR. If your statement is in another currency, fill the column in, since the code goes straight into the Ccy attribute on every amount.

Can it produce one file with many transactions?

Yes. Every data row becomes its own <Ntry>, all inside a single <Stmt>. Twenty rows give you twenty entries in one statement document.

How do I handle a refund or money coming in?

Mark it CRDT (or credit) in the creditDebit column. The counterparty is then written as the debtor, matching how a real statement records an incoming payment.

converter camt iso20022 csv banking

Related Tools

More in Converter Tools

Acres to Square Feet

Convert acres to square feet in your browser. One acre is exactly 43,560 sq ft. Live converter with a unit dropdown and a reference table for land and lots.

Bar to PSI

Convert bar to psi instantly. 1 bar equals 14.5038 psi. Live pressure converter with a reference table for tires, espresso, and diving. Browser-side.

Celsius to Fahrenheit

Convert Celsius to Fahrenheit instantly. F = C x 9/5 + 32. Anchors: 0C is 32F, 100C is 212F, body temp 37C is 98.6F. Runs in your browser.

Celsius to Kelvin

Convert Celsius to Kelvin instantly. K = C + 273.15. Anchors: 0C is 273.15K, absolute zero is -273.15C (0K), 100C is 373.15K. Runs in browser.

CM to Inches

Convert centimeters to inches instantly in your browser. 1 inch equals 2.54 cm exactly, so 1 cm is 0.393701 inches. Live converter plus a reference table.

Cooking Converter

Convert between cooking units, cups, tbsp, tsp, ml, oz, grams, lbs, and oven temperatures (°F, °C, gas mark).

Color Format Converter Pro

Convert colors between HEX, RGB, HSL, HSV, CMYK, CSS modern syntax, and integer formats

Cups to ML

Convert cups to milliliters for cooking and baking. 1 US cup equals 236.588 ml. Handles the US cup vs 250 ml metric cup gap, live in your browser.

Currency Converter Pro

Convert between 36+ world currencies with sample exchange rates and multi-currency view

DPI / PPI Converter

Convert between DPI/PPI, pixel dimensions, and physical print size. Give any two of pixels, inches/cm, or DPI and get the third.

Fahrenheit to Celsius

Convert Fahrenheit to Celsius instantly. C = (F - 32) x 5/9. Anchors: 32F is 0C, 212F is 100C, 98.6F is 37C. Calculates in your browser.

Feet to Inches

Convert feet to inches in your browser. One foot is exactly 12 inches, so it's simple multiplication. Live converter with a unit dropdown and reference table.

View all 62Converter Tools