Polynopsis

MT940 file format

SWIFT MT940 Customer Statement Message

By · Last updated

MT940 is the SWIFT end-of-day customer statement. It reports an account's opening balance, each booked transaction and its closing balances in tagged text fields.

Banks worldwide send MT940 to corporates, payment companies and treasury systems, over SWIFT or host-to-host channels. ERPs and reconciliation tools import it to post cash and match transactions daily.

File structure

CodeNamePurposeRequired
:20:Transaction Reference NumberSender's reference for this statement message.Yes
:21:Related ReferenceOptional link to a related message. Many banks leave it out.No
:25:Account IdentificationAccount number or IBAN being reported, up to 35 characters.Yes
:28C:Statement Number/Sequence NumberStatement number, optionally followed by a slash and the page sequence number.Yes
:60F: / :60M:Opening BalanceF is the first opening balance; M is an intermediate opening balance on later pages.Yes
:61:Statement LineOne booked entry: dates, debit or credit mark, amount, type code and references.No
:86:Information to Account OwnerFree-text or bank-structured narrative for the preceding :61:, up to 6 lines of 65.No
:62F: / :62M:Closing Balance (Booked Funds)F is the final closing balance; M is an intermediate closing balance for a continued page.Yes
:64:Closing Available BalanceFunds available to the owner at close, which can differ from booked balance.No
:65:Forward Available BalanceAvailable balance for a future value date. Can repeat for several dates.No
:86: (statement level)Information to Account OwnerOptional closing narrative after the balances, used by some banks for summaries.No

Key codes

CodeMeaningSourceCategory
:60F:First opening booked balance of the statementNBC; ING; WestpacBalance tag
:60M:Intermediate opening balance, used when a statement continues across messagesNBC; Goldman SachsBalance tag
:62F:Final closing booked balanceNBC; ING; WestpacBalance tag
:62M:Intermediate closing balance on a page that is not the lastNBCBalance tag
:64:Closing available balanceNBC; ING; WestpacBalance tag
:65:Forward available balance for a stated future dateNBC; INGBalance tag
Balance layout 1!a6!n3!a15dD/C mark, date YYMMDD, ISO currency, amount with comma decimalNBC; Lloyds; INGBalance format
:61: subfield 1 (6!n)Value date, YYMMDD. Mandatory.NBC; Lloyds; Handelsbanken:61: layout
:61: subfield 2 [4!n]Entry (booking) date, MMDD. Optional.NBC; Lloyds; Handelsbanken:61: layout
:61: subfield 3 (2a)Debit/credit mark: C, D, RC (reversal of credit) or RD (reversal of debit)Handelsbanken; ING:61: layout
:61: subfield 4 [1!a]Funds code. Optional, and many banks leave it unused.Lloyds; Handelsbanken:61: layout
:61: subfield 5 (15d)Amount with comma as decimal separator, no signNBC; Lloyds; Handelsbanken:61: layout
:61: subfield 6 (1!a3!c)Transaction type identification code, such as NTRFNBC; Lloyds; Handelsbanken:61: layout
:61: subfield 7 (16x)Reference for the account owner, or NONREF when none existsLloyds; Handelsbanken:61: layout
:61: subfield 8 [//16x]Account servicing institution's reference, introduced by //NBC; Lloyds; Handelsbanken:61: layout
:61: subfield 9 [34x]Supplementary details on a new lineNBC; Lloyds; Handelsbanken:61: layout
S + 3 digitsEntry linked to a SWIFT message; digits give the MT type, such as S103Handelsbanken; NBCType code prefix
N + 3 charactersEntry from a non-SWIFT instruction, such as NTRF or NCHGHandelsbanken; INGType code prefix
F + 3 charactersEntry first advised by the statement, originated by the bankHandelsbankenType code prefix
NTRFTransferING; NBCCommon type code
NCHGCharges and other expensesINGCommon type code
NMSCMiscellaneousLloydsCommon type code
NINTInterestLloydsCommon type code
NSTOStanding orderLloyds; HandelsbankenCommon type code

Sample file

Synthetic example with a fictional bank and account. Real files vary by bank.

:20:STMT261025001
:25:0001234567
:28C:298/1
:60F:C261024USD15000,00
:61:2610251025C1500,00NTRFINV-1001//FT2610250001
:86:INCOMING TRANSFER ACME TRADING LTD INV-1001
:61:2610251025D287,50NTRFPO-7788//FT2610250002
:86:PAYMENT TO FICTIONAL SUPPLIES CO PO-7788
:61:2610251025D12,50NCHGNONREF//FT2610250003
:86:OUTGOING PAYMENT FEE
:62F:C261025USD16200,00
:64:C261025USD15700,00
:65:C261026USD16200,00
-

Reading balances

Take the opening ledger balance from :60F: and the closing ledger balance from :62F:. If the statement spans several messages, use :60F: from the first page and :62F: from the last; :60M: and :62M: are page carry-forwards. Closing available balance is in :64:. Apply the D/C mark as the sign and convert the comma decimal.

Parsing and reconciliation pitfalls

How it compares

MT940 is the end-of-day booked statement. MT942 is its intraday sibling without balance tags. BAI2 does a similar job in North America using numeric codes. camt.053 is the ISO 20022 XML replacement, with structured parties, references and remittance data that MT940 squeezes into :86:.

Polynopsis reads statement files like this one through a forwarding inbox and turns them into a live position alongside your API-connected accounts. See how it works.

Frequently asked questions

What is an MT940 file?

An MT940 is a SWIFT customer statement message in tagged text. It reports one account's opening balance, booked entries in :61: lines with narrative in :86:, and closing balances. Banks send it daily over SWIFT or host-to-host channels.

What is the difference between :60F: and :60M:?

:60F: is the first opening balance of a statement. :60M: is an intermediate opening balance, used when one statement is split across several messages. The same pattern applies to :62F: and :62M: for closing balances.

Is MT940 being replaced by camt.053?

Yes, gradually. Swift's CBPR+ roadmap makes camt reporting mandatory to receive by November 2027, with end of coexistence planned for SR 2028. That roadmap covers bank-to-bank traffic only; corporate MT940 delivery depends on each bank.

Other formats

Sources

  1. User Guide: MT940 and MT101 · National Bank of Canada
  2. MT940 and MT942 Format Description for InsideBusiness Payments · ING
  3. SWIFT MT940 Standard · Lloyds Bank
  4. MT942 Interim Transaction Report format description · Handelsbanken
  5. CBPR+ roadmap beyond November 2025 (v6, September 2026) · Swift

Know where all your money is.

Polynopsis gives cross-border payment teams one live position across every bank, payout partner, exchange and wallet, including money in flight, and warns before a corridor runs dry.