You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implement support for Central Bank Payment Regulation Plus (CBPR+) compliant
ISO20022 message schemas, including migration to pacs.008.001.08 and addition
of new CAMT modules for enhanced payment processing capabilities.
Copy file name to clipboardExpand all lines: README.md
+87-21Lines changed: 87 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,11 +1,12 @@
1
1
# MX Message - ISO20022 Parser Library
2
2
3
-
A Rust library for parsing, validating, and serializing ISO20022 financial messages, with initial support for pacs.008 (FI to FI Customer Credit Transfer) messages.
3
+
A Rust library for parsing, validating, and serializing ISO20022 financial messages with support for CBPR+ (Central Bank Payment Regulation Plus) compliant schemas.
4
4
5
5
## Features
6
6
7
-
-**Full pacs.008.001.13 Support**: Complete implementation of the FI to FI Customer Credit Transfer message format
8
-
-**Validation**: Built-in validation for all message fields according to ISO20022 specifications
7
+
-**CBPR+ Compliance**: Full support for Central Bank Payment Regulation Plus based ISO20022 XSD schemas
8
+
-**Multiple Message Types**: Support for pacs.008, pacs.009, and camt message families
9
+
-**Validation**: Built-in validation for all message fields according to ISO20022 and CBPR+ specifications
9
10
-**Serialization**: Support for JSON and XML serialization/deserialization using serde
10
11
-**Type Safety**: Strongly typed Rust structures for all message components
11
12
-**Error Handling**: Comprehensive error reporting with specific validation codes
@@ -27,51 +28,74 @@ quick-xml = { version = "0.31", features = ["serialize"] } # For XML serializat
println!("✓ Message is valid and CBPR+ compliant");
87
111
Ok(())
88
112
}
89
113
Err(e) => {
@@ -136,14 +160,24 @@ cargo run --example pacs008_example
136
160
cargo run --example xml_serialization
137
161
```
138
162
163
+
## CBPR+ Compliance
164
+
165
+
This library implements CBPR+ (Central Bank Payment Regulation Plus) compliant schemas, which provide enhanced payment processing capabilities including:
166
+
167
+
-**Enhanced Validation**: Stricter validation rules for regulatory compliance
168
+
-**Extended Message Support**: Additional message types for comprehensive payment processing
169
+
-**Improved Error Handling**: Detailed error reporting for regulatory requirements
170
+
-**Central Bank Integration**: Support for central bank payment system requirements
171
+
139
172
## Validation
140
173
141
174
The library provides comprehensive validation including:
142
175
143
176
-**Field Length Validation**: Ensures all fields meet minimum and maximum length requirements
144
177
-**Pattern Validation**: Validates formats like IBAN, BIC codes, and numeric patterns
145
178
-**Required Field Validation**: Ensures all mandatory fields are present
146
-
-**Business Rule Validation**: Implements ISO20022 business rules
179
+
-**Business Rule Validation**: Implements ISO20022 and CBPR+ business rules
180
+
-**Regulatory Compliance**: Validates against CBPR+ specific requirements
147
181
148
182
### Validation Error Codes
149
183
@@ -169,23 +203,55 @@ cargo test test_json_serialization_roundtrip
169
203
170
204
## Supported Message Types
171
205
172
-
Currently supported:
173
-
-**pacs.008.001.13**: FI to FI Customer Credit Transfer
206
+
### Currently Supported (CBPR+ Compliant)
207
+
208
+
**Payment Messages (pacs)**
209
+
-**pacs.008.001.08**: FI to FI Customer Credit Transfer
210
+
-**pacs.009.001.08**: FI to FI Customer Direct Debit
174
211
175
-
Planned support:
212
+
**Cash Management Messages (camt)**
213
+
-**camt.029.001.09**: Resolution of Investigation
214
+
-**camt.056.001.08**: FI to FI Payment Cancellation Request
215
+
-**camt.057.001.06**: Notification to Receive
216
+
217
+
### Planned Support
176
218
- pacs.002: FI to FI Payment Status Report
177
219
- pacs.004: Payment Return
178
220
- pain.001: Customer Credit Transfer Initiation
179
221
- pain.002: Customer Payment Status Report
222
+
- Additional CAMT message types
223
+
224
+
## Architecture
225
+
226
+
The library is structured around CBPR+ compliant schemas:
227
+
228
+
```
229
+
src/
230
+
├── lib.rs # Module declarations
231
+
├── document.rs # Main document types and validation
232
+
├── common.rs # Shared types and validation errors
233
+
├── pacs_008_001_08.rs # FI to FI Customer Credit Transfer
234
+
├── pacs_009_001_08.rs # FI to FI Customer Direct Debit
235
+
├── camt_029_001_09.rs # Resolution of Investigation
0 commit comments