Skip to content

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: / :60M: at a glance
: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.
Format1!a6!n3!a15d
MessageMT940 customer statement (also used by MT942 where the field exists there)
In camt.053Bal 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”:

MT940 · :60F: / :60M:
:60F:C261027EUR23456,78
:60F: / :60M: example, part by part
PartMeaning
:60F:The tag: F for the first opening balance, M on a continuation page.
CDebit/credit mark: C for a credit (positive) balance, D for a debit (overdrawn) one.
261027Date, YYMMDD: 27 October 2026, the date of the balance (usually the previous statement’s closing date).
EURISO 4217 currency code; every balance and entry of the statement uses it.
23456,78Amount, 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:

:60F: / :60M: to camt.053.001.08
MT940camt.053.001.08Note
: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).

REST · curl
curl -s --data-binary @statement.sta https://iso20022-navigator.com/api/v1/parse
MCP · tools/call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "parse_mt940",
    "arguments": {
      "content": "<the file text>"
    }
  }
}