SWIFT-ERR-400-MT103 banking protocol_error ai_generated true

AI tells a corporate treasurer that they can still use MT103 for cross-border payments after November 2025, ignoring the SWIFT ISO 20022 migration deadline

ID: banking/mt103-phaseout-2025

Also available as: JSON · Markdown · 中文
85%Fix Rate
90%Confidence
1Evidence
2024-06-01First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
SWIFT ISO 20022 Message Definitions v2024 active
SWIFT FINplus Pilot v1.2 active
Volante ISO 20022 Converter v5.0 active

Root Cause

SWIFT's ISO 20022 migration mandates that all cross-border payment messages (including MT103) be replaced by the XML-based pacs.008 message by November 2025; after this date, MT103 will be rejected by SWIFT gateways.

generic

中文

SWIFT的ISO 20022迁移要求所有跨境支付消息(包括MT103)在2025年11月前被基于XML的pacs.008消息取代;此后,MT103将被SWIFT网关拒绝。

Official Documentation

https://www.swift.com/standards/iso-20022

Workarounds

  1. 88% success Update your payment system to generate pacs.008 messages using a certified ISO 20022 library. Example: `python -c "from iso20022 import pacs008; msg = pacs008.Pacs008(); msg.msg_id = 'REF123'; msg.amount = 10000; msg.currency = 'EUR'; msg.debtor_name = 'Company A'; msg.creditor_name = 'Company B'; print(msg.to_xml())"`
    Update your payment system to generate pacs.008 messages using a certified ISO 20022 library. Example: `python -c "from iso20022 import pacs008; msg = pacs008.Pacs008(); msg.msg_id = 'REF123'; msg.amount = 10000; msg.currency = 'EUR'; msg.debtor_name = 'Company A'; msg.creditor_name = 'Company B'; print(msg.to_xml())"`
  2. 82% success Engage a SWIFT service bureau (e.g., Volante, Finastra) to handle message conversion for legacy systems until full migration is complete
    Engage a SWIFT service bureau (e.g., Volante, Finastra) to handle message conversion for legacy systems until full migration is complete
  3. 90% success Test pacs.008 messages in SWIFT's FINplus pilot environment before the deadline using the SWIFT API: `curl -X POST "https://api.swift.com/finplus/v1/messages" -H "Authorization: Bearer <token>" -d @pacs008_sample.xml`
    Test pacs.008 messages in SWIFT's FINplus pilot environment before the deadline using the SWIFT API: `curl -X POST "https://api.swift.com/finplus/v1/messages" -H "Authorization: Bearer <token>" -d @pacs008_sample.xml`

中文步骤

  1. Update your payment system to generate pacs.008 messages using a certified ISO 20022 library. Example: `python -c "from iso20022 import pacs008; msg = pacs008.Pacs008(); msg.msg_id = 'REF123'; msg.amount = 10000; msg.currency = 'EUR'; msg.debtor_name = 'Company A'; msg.creditor_name = 'Company B'; print(msg.to_xml())"`
  2. Engage a SWIFT service bureau (e.g., Volante, Finastra) to handle message conversion for legacy systems until full migration is complete
  3. Test pacs.008 messages in SWIFT's FINplus pilot environment before the deadline using the SWIFT API: `curl -X POST "https://api.swift.com/finplus/v1/messages" -H "Authorization: Bearer <token>" -d @pacs008_sample.xml`

Dead Ends

Common approaches that don't work:

  1. Convert MT103 to pacs.008 manually using a simple XML template 85% fail

    pacs.008 requires mandatory fields like <CdtrAgt> and <DbtrAgt> with BIC and LEI, plus structured remittance information; manual conversion often omits these, causing validation failures

  2. Use MT202 COV instead of MT103 for cross-border payments 93% fail

    MT202 COV is for cover payments, not customer credit transfers; it will also be phased out by November 2025 under the same ISO 20022 mandate

  3. Delay migration and rely on correspondent bank conversion services 97% fail

    Correspondent banks will stop accepting MT103 after the deadline; SWIFT will enforce a hard cut-off, and non-compliant messages will be rejected at the gateway