iso20022 (mx) – Node.js Library for ISO 20022 XML Messages

NPM Downloads

'iso20022' is a NodeJS library designed to generate and validate ISO 20022 XML messages effortlessly. By using the output JSON from ngx-iso-form along with a few additional parameters, this tool quickly generates accurate ISO 20022 messages, simplifying the entire creation and validation process. Whether you're working with payments, securities, or trade messages, iso20022 ensures a smooth and efficient workflow for handling ISO 20022 data.

Features

  • Convert ngx-iso-form output json to MX (ISO 20022) message
  • Supports ISO 20022 XSD Validation

How to consume

npm install iso20022
How to Use (JavaScript)
                        
                            const mx = require('iso20022').default;

                            mx.convert('c:/data/pain.001.json', 'urn:iso:std:iso:20022:tech:xsd:pain.001.001.12')
                            .then(output => console.log(output))
                            .catch(error => console.error(error));

                            mx.convertAndValidate('c:/data/pain.001.json', 'urn:iso:std:iso:20022:tech:xsd:pain.001.001.12','c:/data/camt.053.001.10.xsd')
                                .then((data) => console.log(data))
                                .catch((data) => console.log(data));

                            mx.validate('c:/data/pain.001.xml','c:/data/pain.001.001.12.xsd')
                                .then((data) => console.log(data))
                                .catch((data) => console.log(data));

                        
                    
How to Use (TypeScript)
                        
                            import mx from "iso20022";

                            mx.convert('c:/data/pain.001.json', 'urn:iso:std:iso:20022:tech:xsd:pain.001.001.12')
                            .then(output => console.log(output))
                            .catch(error => console.error(error));

                            mx.convertAndValidate('c:/data/pain.001.json', 'urn:iso:std:iso:20022:tech:xsd:pain.001.001.12','c:/data/camt.053.001.10.xsd')
                                .then((data) => console.log(data))
                                .catch((data) => console.log(data));

                            mx.validate('c:/data/pain.001.xml','c:/data/pain.001.001.12.xsd')
                                .then((data) => console.log(data))
                                .catch((data) => console.log(data));
                        
                    
Sample JSON - urn:iso:std:iso:20022:tech:xsd:pain.001.001.12
                        
                            {
                                "Document": {
                                  "CstmrCdtTrfInitn": {
                                    "GrpHdr": {
                                      "MsgId": "123456",
                                      "CreDtTm": "2025-03-27T10:00:00",
                                      "NbOfTxs": "1",
                                      "CtrlSum": "1000",
                                      "InitgPty": {
                                        "Nm": "Sender Company",
                                        "CtryOfRes": "US"
                                      }
                                    },
                                    "PmtInf": [
                                      {
                                        "PmtInfId": "PAY001",
                                        "PmtMtd": "TRF",
                                        "BtchBookg": "false",
                                        "Dbtr": {
                                          "Nm": "John Doe"
                                        },
                                        "DbtrAcct": {
                                          "Nm": "DE89370400440532013000"
                                        },
                                        "DbtrAgt": {
                                          "FinInstnId": {
                                            "BICFI": "DEUTDEFFXXX"
                                          }
                                        },
                                        "CdtTrfTxInf": [
                                          {
                                            "PmtId": {
                                              "EndToEndId": "TX123"
                                            },
                                            "Amt": {
                                              "InstdAmt": {
                                                "Ccy": "USD",
                                                "Amt": "1000"
                                              }
                                            },
                                            "CdtrAgt": {
                                              "FinInstnId": {
                                                "BICFI": "BNPAFRPPXXX"
                                              }
                                            },
                                            "Cdtr": {
                                              "Nm": "Jane Smith"
                                            },
                                            "CdtrAcct": {
                                              "Id": {
                                                "IBAN": "FR7630006000011234567890189"
                                              }
                                            }
                                          }
                                        ]
                                      }
                                    ]
                                  }
                                }
                              }