SWIFT MT940 field
MT940 field :86: Information to Account Owner
Free text of up to 6 lines of 65 characters. After a :61: it describes that entry (the counterparty, the remittance, the references); after the closing balance it is about the whole statement. Many banks structure it with subfield codes.
| :86: (optional) | Information to Account Owner: After a :61:, details of that entry (often structured with ?nn or /CODE/ subfields); at the end, information about the whole statement. |
|---|---|
| Format | 6*65x |
| Message | MT940 customer statement (also used by MT942 where the field exists there) |
| In camt.053 | Ntry/AddtlNtryInf, RmtInf, RltdPties; or Stmt/AddtlStmtInf |
Format
The format is written in SWIFT notation: 6*65x. n digits; a capital letters; c capital letters and digits; x any character of the SWIFT set; d a decimal amount with a comma; 16x up to 16 of them; 6!n exactly 6; [ ] optional; 6*65x up to 6 lines of 65.
Annotated example
From the sample MT940 the viewer opens with “Try a sample”:
:86:166?00SEPA-GUTSCHRIFT?100931?20EREF+AW-2026-0815?21SVWZ+RE 2026-0
815 Kd 4711?30SSKMDEMMXXX?31DE75512108001245126199?32Adventure Wo
rks GmbH| Part | Meaning |
|---|---|
166 | German business transaction code (GVC): SEPA credit transfer received. |
?00SEPA-GUTSCHRIFT | ?00 booking text. |
?20EREF+AW-2026-0815 | ?20–?29 remittance lines; EREF+ is the SEPA end-to-end id. |
?21SVWZ+RE 2026-0815 Kd 4711 | SVWZ+ the remittance text, wrapped across lines mid-word. |
?30SSKMDEMMXXX | ?30 the counterparty’s bank (BIC). |
?31DE75512108001245126199 | ?31 the counterparty’s account (IBAN). |
?32Adventure Works GmbH | ?32–?33 the counterparty’s name. |
Where it goes in camt.053
The MT940 Viewer and the API convert MT940 to camt.053.001.08. For this field:
| MT940 | camt.053.001.08 | Note |
|---|---|---|
| :86: (after a :61:) | Ntry/AddtlNtryInf and TxDtls/RmtInf/Ustrd | The full text is kept (500 characters at most in AddtlNtryInf; Ustrd in 140-character parts). Structured :86: lines join as written (they are wrapped mid-word), free-text lines with a space. |
| :86: ?20–?29 / /REMI/ remittance | TxDtls/RmtInf/Ustrd | From structured :86: the remittance lines (or SVWZ+) are used instead of the whole text. |
| :86: ?32/?33, /NAME/, /CNTP/ | TxDtls/RltdPties/Dbtr (credits) or Cdtr (debits)/Pty/Nm | |
| :86: ?31, /IBAN/ | TxDtls/RltdPties/DbtrAcct or CdtrAcct | |
| :86: ?30, /BIC/ | TxDtls/RltdAgts/DbtrAgt or CdtrAgt (BICFI, else clearing member id) | |
| :86: EREF+ / /EREF/ | TxDtls/Refs/EndToEndId | |
| :86: MREF+ / /MARF/ | TxDtls/Refs/MndtId | |
| :86: at the end of the statement | Stmt/AddtlStmtInf |
Structured subfields become counterparty, account, bank, end-to-end id, mandate and remittance elements; the full text is kept in AddtlNtryInf. A :86: after the closing balance becomes Stmt/AddtlStmtInf.
The whole mapping, field by field, is in camt.053 vs MT940.
Checks the viewer runs
mt.field.length: Field too long (SWIFT MT940/MT942 field lengths)mt.charset: Characters outside the SWIFT set (SWIFT FIN character set X)
Worth knowing
- Two structures are common. German banks (and others in central Europe) use ?nn subfields; Dutch banks and many others use /CODE/value words such as /TRTP/, /EREF/, /NAME/, /REMI/ and /IBAN/. The viewer reads both and keeps any other text as it is.
- Lines are cut at 65 characters, even mid-word: join structured lines without a space, free text with one.
- Characters outside the SWIFT set (umlauts, accents) are common in files sent outside SWIFT; check the file’s encoding if they look garbled.
Read :86: from a script or an AI agent
Scripts and AI agents can do the same without a browser: POST /api/v1/parse or the MCP tool parse_mt940 returns every statement as JSON: balances, each :61: split into its subfields and each :86: with its structured parts. No key is needed, and the file is processed in memory and never stored (API and MCP docs).
curl -s --data-binary @statement.sta https://iso20022-navigator.com/api/v1/parse{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "parse_mt940",
"arguments": {
"content": "<the file text>"
}
}
}