Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

CBPR+ Package: SWIFT MT to ISO 20022 Migration Guide

The free, open source CBPR+ transformation package for SWIFT MT to ISO 20022 migration with SR2025 compliance.

About This Package

The SWIFT CBPR+ Package is a free, open-source transformation package for Reframe. It provides:

  • 41+ transformation scenarios for SWIFT MT ↔ ISO 20022
  • SR2025 compliance for the November 2025 migration deadline
  • Bidirectional support - convert in both directions
  • 594 JSON rule files - fully auditable transformation logic
GitHubgithub.com/GoPlasmatic/reframe-package-swift-cbpr
LicenseApache 2.0 (Free)
Version2.1.2

What is CBPR+?

CBPR+ (Cross-Border Payments and Reporting Plus) is SWIFT’s framework for the migration from MT messages to ISO 20022. It defines:

  • Which ISO 20022 messages replace which MT messages
  • Field mapping guidelines between formats
  • Business rules and validation requirements
  • Coexistence rules during the migration period

SR2025 Compliance

This CBPR+ package is fully compliant with SWIFT Standards Release 2025 (SR2025), which becomes mandatory in November 2025. Key SR2025 features:

  • Business Application Header v3
  • UETR (Unique End-to-End Transaction Reference) support
  • Enhanced party identification with LEI
  • Structured remittance information
  • Updated message versions (pacs.008.001.12, pacs.009.001.11, etc.)

Supported Transformations

The CBPR+ package supports 41+ transformation scenarios across payment, status, and administrative messages.

Message Categories

CategoryDescriptionExamples
Customer PaymentsIndividual customer transfersMT103 ↔ pacs.008
FI TransfersBank-to-bank transfersMT202 ↔ pacs.009
ReturnsPayment returnsMT103 RETN ↔ pacs.004
RejectionsPayment rejectionsMT103 REJT ↔ pacs.002
CancellationsCancellation requestsMT192 ↔ camt.056
StatusPayment status reportsMT199 ↔ camt.029
Cash ManagementAccount statementsMT940 ↔ camt.053

Direction Terminology

TermDirectionDescription
OutgoingMT → MXSWIFT MT converted to ISO 20022
IncomingMX → MTISO 20022 converted to SWIFT MT

Package Structure

The CBPR+ package contains 594 JSON rule files organized by transformation type:

reframe-package-swift-cbpr/
├── reframe-package.json          # Package metadata
│
├── transform/                    # Transformation workflows
│   ├── outgoing/                # MT → ISO 20022
│   │   ├── MT103/               # Customer transfers
│   │   ├── MT202/               # FI transfers
│   │   ├── MT192/               # Cancellations
│   │   └── ...
│   │
│   └── incoming/                # ISO 20022 → MT
│       ├── pacs008/             # FIToFICustomerCreditTransfer
│       ├── pacs009/             # FIToFIFinancialInstitutionCreditTransfer
│       ├── camt056/             # FIToFIPaymentCancellationRequest
│       └── ...
│
├── validate/                    # Validation rules
└── generate/                    # Sample generation

Message Flow

Outgoing Flow (MT → ISO 20022)

MT103 Message
      │
      ▼
┌─────────────────┐
│ 1. Parse MT     │  Extract SWIFT blocks and fields
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│ 2. Detect Type  │  Identify variant (standard/STP/REJT/RETN)
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│ 3. Apply Rules  │  Execute CBPR+ mapping rules
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│ 4. Generate XML │  Create ISO 20022 envelope
└────────┬────────┘
         │
         ▼
   pacs.008 XML

Incoming Flow (ISO 20022 → MT)

pacs.008 XML
      │
      ▼
┌─────────────────┐
│ 1. Parse XML    │  Extract ISO 20022 structure
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│ 2. Detect MT    │  Determine target MT type
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│ 3. Apply Rules  │  Execute reverse mapping rules
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│ 4. Generate MT  │  Create SWIFT message blocks
└────────┬────────┘
         │
         ▼
   MT103 Message

Key Concepts

Business Application Header (BAH)

ISO 20022 messages include a BAH with routing information:

<AppHdr xmlns="urn:iso:std:iso:20022:tech:xsd:head.001.001.03">
  <Fr><FIId><FinInstnId><BICFI>SENDERXX</BICFI></FinInstnId></FIId></Fr>
  <To><FIId><FinInstnId><BICFI>RECEIVERXX</BICFI></FinInstnId></FIId></To>
  <BizMsgIdr>MSG123</BizMsgIdr>
  <MsgDefIdr>pacs.008.001.12</MsgDefIdr>
  <CreDt>2025-01-15T10:30:00Z</CreDt>
</AppHdr>

The BAH is generated from MT Block 1 and Block 2 information.

UETR (Unique End-to-End Transaction Reference)

UETR provides end-to-end tracking for payments:

  • Format: UUID v4 (e.g., 174d2c70-7a8c-4c0d-8b2e-5c2a9f8e6d3a)
  • In MT: Tag 121 in Block 3
  • In ISO 20022: PmtId/UETR

Service Level Codes

CBPR+ defines service levels for payment processing:

CodeNameDescription
G001URGPUrgent payment (high priority)
G002NURGNormal urgent (standard)
G003SDVASame-day value
G004NORMNormal (next-day)

Try the Transformations

Interactive Playground

API Examples

# MT103 → pacs.008
curl -X POST http://localhost:3000/api/transform \
  -H "Content-Type: application/json" \
  -d '{"message": "{1:F01...}{2:I103...}{4:...}"}'

# pacs.008 → MT103
curl -X POST http://localhost:3000/api/transform \
  -H "Content-Type: application/json" \
  -d '{"message": "<?xml version=\"1.0\"?>..."}'

View Message Catalog →

MT to ISO 20022 Transformations →

ISO 20022 to MT Transformations →