- Notifications
You must be signed in to change notification settings - Fork21
Create ACH, SEPA, FedNow, SWIFT, RTP payment initiations and process bank statements.
License
svapnil/iso20022.js
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Important
IntroducingFiat Web Services, a managed platform and SDK to save and send B2B payments.
Check it out athttps://fiatwebservices.com.
This package is meant for companies using ISO20022 to send and receive payment information, specifically initiating SEPA, ACH, FedWire, RTP, SWIFT payments and receiving cash management files.
Read the Docs:https://docs.iso20022js.com
The mission of this NPM package is to connect the most widely used programming language to the most widely used payment standard.
If you're interested in using iso20022.js and would like to use different payment types or ingest files using CAMT, please emailiso20022js@woodside.sh.
npm install iso20022.js
Examples of ISO20022 messages being created across different payment types:
npx tsx examples/sepa-credit-transfer.tsnpx tsx examples/rtp-credit-transfer.tsnpx tsx examples/swift-credit-transfer.ts
import{ISO20022}from'iso20022.js';constiso20022=newISO20022({initiatingParty:{name:'Acme Corporation',id:'ACMECORP',account:{iban:'ES1234567890123456789012'},agent:{bic:'BANKESMMXXX',bankAddress:{country:'ES'}}},});constcreditPaymentInitiation=iso20022.createSEPACreditPaymentInitiation([{type:'sepa',direction:'credit',amount:1000,currency:'EUR',creditor:{name:'Hans Schmidt',account:{iban:'DE1234567890123456789012'},agent:{bic:'DEUTDEFFXXX'},address:{streetName:'Example Street',buildingNumber:'123',townName:'Berlin',countrySubDivision:'Berlin',postalCode:'10115',country:'DE'}}}]);console.log(creditPaymentInitiation.toString());
// Send an ACH Payment Anywhere in the U.S.constpayment=iso20022.createACHCreditPaymentInitiation({paymentInstructions:[{type:'ach',direction:'credit',amount:1250000,// $12,500.00 Dollarscurrency:'USD',creditor:{name:'Alex Kan',account:{accountNumber:'333456118812',},agent:{abaRoutingNumber:'021000021',}},remittanceInformation:'PAYROLL - BIWEEKLY SALARY SR SOFTWARE ENGINEER'}],});
import{CashManagementEndOfDayReport}from'iso20022.js';constxml=fs.readFileSync('balance_report.xml','utf8');constreport=CashManagementEndOfDayReport.fromXML(xml);console.log(report.transactions);
npm runtest
ISO20022 is the standard format for financial transactions. This library aims to build a powerful yet simple API to create these files, following Typescript conventions.
You might want to use this package if you need to create these types of files.
Feature | Description | Todo |
---|---|---|
SWIFT Credit Transfer | Create SWIFT credit transfer messages | ✅ |
CAMT Transactions | Ingest transaction data from CAMT files | ✅ |
SEPA Credit Transfer | Create SEPA credit transfer messages | ✅ |
ACH Credit Transfer | Create ACH credit transfer messages | ✅ |
RTP / Fednow Credit Transfer | Create Fednow credit transfer messages | ✅ |
FedWire Credit Transfer | Create FedWire credit transfer messages | 🚧 |
Feature | Description | |
---|---|---|
XML Generation | Generate valid ISO 20022 XML files | ✅ |
Type Safety | Built with TypeScript for enhanced type checking | ✅ |
Extensible | Easy to extend for custom message types | ✅ |
Validation | Built-in validation for ISO 20022 message structures | ✅ |
iso20022.js
is local, open source, and free to use. This means that payment instructions are created on your machine, not on a remote server.
We take security seriously, and are consistently looking for ways to improve. If you have any suggestions or find any security issues, pleaseopen an issue.
NOTE: We are tracking thelibxmljs vulnerability, a dependency we use in our unit tests and have a plan to deprecate. Note that production use ofiso20022.js
is not affected by this vulnerability.
About
Create ACH, SEPA, FedNow, SWIFT, RTP payment initiations and process bank statements.