# 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`
- **Domain:** banking
- **Category:** protocol_error
- **Error Code:** `SWIFT-ERR-400-MT103`
- **Verification:** ai_generated
- **Fix Rate:** 85%

## 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.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| SWIFT ISO 20022 Message Definitions v2024 | active | — | — |
| SWIFT FINplus Pilot v1.2 | active | — | — |
| Volante ISO 20022 Converter v5.0 | active | — | — |

## Workarounds

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())"`** (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())"`
   ```
2. **Engage a SWIFT service bureau (e.g., Volante, Finastra) to handle message conversion for legacy systems until full migration is complete** (82% success)
   ```
   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`** (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`
   ```

## Dead Ends

- **Convert MT103 to pacs.008 manually using a simple XML template** — 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 (85% fail)
- **Use MT202 COV instead of MT103 for cross-border payments** — 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 (93% fail)
- **Delay migration and rely on correspondent bank conversion services** — 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 (97% fail)
