SWIFT MT940 field
MT940 field :25: Account Identification
The account the statement is for: an IBAN or the bank’s own account number, up to 35 characters. Option P (:25P:) adds, on a second line, the identifier code (a BIC) of the account owner.
| :25: (mandatory) | Account Identification: The account the statement is for: an IBAN or the bank’s own account number (:25P: adds the owner’s BIC). |
|---|---|
| Format | 35x |
| Message | MT940 customer statement (also used by MT942 where the field exists there) |
| In camt.053 | Stmt/Acct/Id/IBAN or Othr/Id (:25P: BIC: Acct/Ownr) |
Format
The format is written in SWIFT notation: 35x. 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”:
:25:DE89370400440532013000| Part | Meaning |
|---|---|
:25: | The tag (:25P: when the account owner’s BIC follows on the next line). |
DE89370400440532013000 | The account: here a German IBAN. Some banks write a domestic number, or bank code and number with a slash (37040044/0532013000). |
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 |
|---|---|---|
| :25: Account | Stmt/Acct/Id/IBAN, else Acct/Id/Othr/Id | An IBAN that passes mod-97 goes in IBAN; anything else in Othr/Id (34 characters at most). |
| :25P: identifier code | Stmt/Acct/Ownr/Id/OrgId/AnyBIC | The account owner’s BIC (field 25a identifies the account and, optionally, its owner). An identifier code that is not a BIC is left out. |
| :25: BIC/account, or the SWIFT header | Stmt/Acct/Svcr/FinInstnId/BICFI | The bank that services the account: a BIC written before the account in :25:, else the bank that sent the statement (the sender in block 2 of a SWIFT output message, or in block 1 of an input one). |
An IBAN that passes its mod-97 check becomes Acct/Id/IBAN; anything else goes to Acct/Id/Othr/Id. The :25P: identifier code is the account owner’s BIC and becomes Acct/Ownr/Id/OrgId/AnyBIC. The account servicer (Acct/Svcr) is the bank that sent the statement: a BIC written before the account in :25:, else the sender BIC of the SWIFT header.
The whole mapping, field by field, is in camt.053 vs MT940.
Checks the viewer runs
mt.field.required: Mandatory field missing (SWIFT MT940/MT942 field specifications)mt.field.length: Field too long (SWIFT MT940/MT942 field lengths)mt.field.format: Field format (SWIFT MT940/MT942 field specifications)
Worth knowing
- One account per statement. A file with several accounts holds several statements, each starting with its own :20:.
Read :25: 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>"
}
}
}