Iso20022.js: Create payments in 3 lines of code
iso20022.js is an open-source Node.js library that simplifies SWIFT payments using ISO20022 standards, allowing users to send payments with minimal code. It is developed by Woodside Labs LLC.
Read original articleiso20022.js is an open-source, low-dependency Node.js library designed to facilitate communication between companies and banks using ISO20022 standards. It allows users to send SWIFT payments with minimal code, specifically in just three lines. The library can be installed via npm and provides a straightforward way to create SWIFT credit payment initiations. An example code snippet demonstrates how to set up the initiating party's details, including the name, ID, account number, and agent's BIC. Users can also specify payment instructions, including the amount, currency, and creditor's information, such as name, IBAN, and address. The library is developed by Woodside Labs LLC and is available on GitHub for further exploration and feature requests.
- iso20022.js is an open-source library for ISO20022 communication.
- It simplifies sending SWIFT payments with minimal code.
- The library can be installed via npm.
- Users can customize payment initiation details easily.
- Developed by Woodside Labs LLC and available on GitHub.
Related
NodeSwift: Bridge Node.js and Swift
NodeSwift facilitates Swift and Node.js communication, leveraging macOS APIs, SwiftPM, NPM, and Swift for enhanced performance. It emphasizes safety, simplicity, and cross-platform compatibility, simplifying memory management and offering seamless integration.
NNG: Lightweight Messaging Library
NNG is a versatile messaging library focusing on reliability, scalability, and security. It simplifies messaging tasks, supports multiple platforms, and emphasizes compatibility, usability, and performance for developers' efficiency.
Announcing Supabase on JSR
JSR simplifies JavaScript and TypeScript module publishing with TypeScript support, auto-generated docs, and security features. Supabase's library, supabase-js, offers diverse functionalities like database querying and authentication for JavaScript projects via JSR.
Show HN: Contacts: A Microlang for Managing Contacts
A microlanguage named Contacts simplifies contact management by storing details in plain text, tracking changes with git, and exporting to PDF, HTML, CSV, and JSON formats. It's free, open source, and designed for easy use.
Node.js Is Here to Stay
Node.js, a key technology for 15 years, powers 6.3 million sites and 98% of Fortune 500 companies. Its lightweight, event-driven design suits real-time and high-concurrency needs. Security updates, Linux preference, and new features like ECMAScript Modules ensure Node.js remains a versatile and secure tool for modern web development.
- Several users express curiosity about the target audience for the library, questioning whether it is suitable for developers familiar with payment processing or those involved in financial management.
- Concerns are raised about the complexity of integrating with banking systems and the potential challenges of using Node.js for financial applications.
- Users inquire about testing environments, authentication methods, and the overall infrastructure required to implement ISO20022 payments.
- Some comments highlight the need for clear documentation, including a glossary and examples of banks adopting the ISO standard.
- There is a general interest in the library's capabilities, with users asking about support for various payment types and the generation of different ISO20022 messages.
The remaining 675,000 lines of code are to:
- Perform Risk / Fraud scoring to decide whether you want to, indeed, process this payment.
- Deal with the myriad of failure scenarios - including mapping them to your own system's error semantics - in a way that your customers can understand to reduce support calls.
- Refund, void or reverse previous payments.
- Create the necessary accounting entries in order to do settlements / settlement reports for your customers.
- Etcetera
Payments systems are perplexing to me: Nothing is a more obvious candidate for an absolute, standardised, commoditised piece of software in the same way that the global IP network routes packets - only in payments we are routing "promises" and our routes, and routing decisions, are in many ways much simpler.
Yet there are very few industries where this particular wheel gets reinvented as often as it does; each organisation convinced that it has its own unique approach to doing this absolutely standard, regulated "thing" - which, reductio ad absurdum, is just an expensive buffer in a network of pipes.
Hopefully open-source software will pave the way: TigerBeetle is an amazing start (distributed ledgers), and it's hopefully only a matter of time until the other components of a payments switch are freely available as open-source components with high-quality APIs.
My name is Svapnil Ankolkar and I've recently built iso20022.js, a library for creating ISO20022 payments in Typescript.
The goal of this project is to be the easiest way to create, and eventually ingest, files in the ISO20022 standard, the defacto XML standard for bank payments.
I'd love to know what you think and importantly know about any improvements you'd like us to make!
Could you help me understand who the target devs are for this library? I doubt it's someone like me, who would try to use it as a replacement for stripe before realizing all of the stuff I have to do outside of that and giving up on it. But maybe this is more for people who are doing heavy financial management anyway? Or am I just completely thinking about what this is wrongly?
I think it's scary to do any finance related stuff using NPM dependencies. How large is your dependency tree?
https://evrim.zone/blog/knowledge/iso_20022_pain_001
For Americans who've never heard of it, FedNow is seemingly using a 'a bespoke flavor of the ISO 20022 specification' (https://news.ycombinator.com/item?id=36805571). I think that it's a pretty handy format to be familiar with, and is quite simple to work with too. If the Fed or participating banks decide to open up the system like European banks have done so, it can be handy to get familiar with it for us financial hackers out there!
There are tools that can turn the schema files into POJO/dataclasses/structs/etc in your language of choice, sometimes with proper data validation. Not sure about Typescript, but Java/Python/Golang definitely have those.
It may very well be lost knowledge in certain ecosystems, but generating a valid XML based on the given schema is generally a solved problem. Not sure if the projects adds anything beyond that.
In order to transmit bank payments programatically, you must have direct transmission enabled with your banking partner. If you have any questions about this, don’t hesitate to reach out to us.
So do we need to get this enabled on a per bank basis or a per account basis?
Some thoughts:
- replace strings with enums where possible. E.g. "USD" should be from an enum
- this sort of data-interop library could maybe be written in a configuration language that it uses to generate libraries for different languages
- a glossary would be really helpful
- a list of banks who've adopted this ISO standard might be interesting
I think it is a not very good idea to develop finance software in node
Neat none-the-less! I always like this sort of actually-it's-simpler-than-you-think peek behind the curtain.
- Shelving a Windows box in some authorized datacenter.
- Going through a years long process of getting certified to send payment instructions to the scheme (e.g. SWIFT network).
- Receiving a couple of USB sticks that contain certificates and signing keys.
- Connecting to the schemes VPN.
- Having all the legals in place.
- And probably many more things I was never exposed to.
Related
NodeSwift: Bridge Node.js and Swift
NodeSwift facilitates Swift and Node.js communication, leveraging macOS APIs, SwiftPM, NPM, and Swift for enhanced performance. It emphasizes safety, simplicity, and cross-platform compatibility, simplifying memory management and offering seamless integration.
NNG: Lightweight Messaging Library
NNG is a versatile messaging library focusing on reliability, scalability, and security. It simplifies messaging tasks, supports multiple platforms, and emphasizes compatibility, usability, and performance for developers' efficiency.
Announcing Supabase on JSR
JSR simplifies JavaScript and TypeScript module publishing with TypeScript support, auto-generated docs, and security features. Supabase's library, supabase-js, offers diverse functionalities like database querying and authentication for JavaScript projects via JSR.
Show HN: Contacts: A Microlang for Managing Contacts
A microlanguage named Contacts simplifies contact management by storing details in plain text, tracking changes with git, and exporting to PDF, HTML, CSV, and JSON formats. It's free, open source, and designed for easy use.
Node.js Is Here to Stay
Node.js, a key technology for 15 years, powers 6.3 million sites and 98% of Fortune 500 companies. Its lightweight, event-driven design suits real-time and high-concurrency needs. Security updates, Linux preference, and new features like ECMAScript Modules ensure Node.js remains a versatile and secure tool for modern web development.