SWIFT MT940 field
MT940 field :60F: / :60M: Opening Balance
The booked balance at the start of the statement. :60F: (first) opens a statement; :60M: (intermediate) opens a continuation page and repeats the :62M: of the page before.
| :60F: (mandatory) | Opening Balance (first): Booked balance at the start of the statement: D/C mark, date (YYMMDD), currency, amount. |
|---|---|
| :60M: (mandatory) | Opening Balance (intermediate): Opening balance of a continuation page: the :62M: of the previous page. |
| Format | 1!a6!n3!a15d |
| Message | MT940 customer statement (also used by MT942 where the field exists there) |
| In camt.053 | Bal with Tp OPBD |
Format
The format is written in SWIFT notation: 1!a6!n3!a15d. 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”:
:60F:C261027EUR23456,78| Part | Meaning |
|---|---|
:60F: | The tag: F for the first opening balance, M on a continuation page. |
C | Debit/credit mark: C for a credit (positive) balance, D for a debit (overdrawn) one. |
261027 | Date, YYMMDD: 27 October 2026, the date of the balance (usually the previous statement’s closing date). |
EUR | ISO 4217 currency code; every balance and entry of the statement uses it. |
23456,78 | Amount, with a comma as decimal separator and no thousands separator. |
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 |
|---|---|---|
| :60F: / :60M: | Bal Tp OPBD | :60M: and :62M: carry the sub-type code INTM (Bal/Tp/SubTp/Cd, an intermediate balance carried to the next page) so the page break stays visible. |
Both become a balance of type OPBD (opening booked); a :60M: also carries the sub-type INTM so the page break stays visible.
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.balance.continuity: Statements do not chain (:62a: of one page = :60a: of the next)mt.currency: Currency (Balances and entries share one ISO 4217 currency)mt.date: Invalid date (SWIFT dates YYMMDD / MMDD)mt.field.format: Field format (SWIFT MT940/MT942 field specifications)
Worth knowing
- The opening balance of a statement should equal the closing balance (:62F:) of the one before; the validator reports a statement that does not chain (mt.balance.continuity).
- An amount must not have more decimals than its currency allows: JPY balances have none.
Read :60F: / :60M: 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>"
}
}
}