TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Show HN: Iso20022.js – Create payments in 3 lines of code

291 点作者 svapnil10 个月前

31 条评论

neonate10 个月前
Github link: <a href="https:&#x2F;&#x2F;github.com&#x2F;svapnil&#x2F;iso20022.js">https:&#x2F;&#x2F;github.com&#x2F;svapnil&#x2F;iso20022.js</a>
dawidloubser10 个月前
Based on my experience of building several payment gateways, it is my opinion that it&#x27;s pretty much always &quot;3 lines of code&quot; (which isn&#x27;t true about this library - more like &quot;3 steps&quot;) to post a payment, even to the nastiest acquiring or banking API.<p>The remaining 675,000 lines of code are to:<p>- Perform Risk &#x2F; Fraud scoring to decide whether you want to, indeed, process this payment.<p>- Deal with the myriad of failure scenarios - including mapping them to your own system&#x27;s error semantics - in a way that your customers can understand to reduce support calls.<p>- Refund, void or reverse previous payments.<p>- Create the necessary accounting entries in order to do settlements &#x2F; settlement reports for your customers.<p>- Etcetera<p>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 &quot;promises&quot; and our routes, and routing decisions, are in many ways much simpler.<p>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 &quot;thing&quot; - which, reductio ad absurdum, is just an expensive buffer in a network of pipes.<p>Hopefully open-source software will pave the way: TigerBeetle is an amazing start (distributed ledgers), and it&#x27;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.
评论 #41170308 未加载
评论 #41170807 未加载
mrloba10 个月前
The problem with this standard is all the free text and bank specific fields that banks will use instead of the standard. One bank I integrated with had the equivalent of &quot;Our fee is 5.65&quot; in a text field which you had to parse, instead of the field for fees. Of course, the language of that string could also change. Fun times
评论 #41168893 未加载
评论 #41164670 未加载
评论 #41166871 未加载
评论 #41168135 未加载
评论 #41166067 未加载
svapnil10 个月前
Hey HN,<p>My name is Svapnil Ankolkar and I&#x27;ve recently built iso20022.js, a library for creating ISO20022 payments in Typescript.<p>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.<p>I&#x27;d love to know what you think and importantly know about any improvements you&#x27;d like us to make!
评论 #41164144 未加载
评论 #41165769 未加载
catapart10 个月前
This looks pretty interesting, but my only experience with payments are black-box payment processors that expose an API, and services like Stripe that handle all of the institutional interconnection.<p>Could you help me understand who the target devs are for this library? I doubt it&#x27;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?
评论 #41165224 未加载
评论 #41169519 未加载
phkahler10 个月前
&gt;&gt; I&#x27;d love to know what you think and importantly know about any improvements you&#x27;d like us to make!<p>I think it&#x27;s scary to do any finance related stuff using NPM dependencies. How large is your dependency tree?
评论 #41164680 未加载
评论 #41166872 未加载
评论 #41164659 未加载
evrimoztamur10 个月前
I have written about the payments part of the standard around a year ago. I think it&#x27;s a good primer for people who want to understand some fundamentals and gotchas of the format.<p><a href="https:&#x2F;&#x2F;evrim.zone&#x2F;blog&#x2F;knowledge&#x2F;iso_20022_pain_001" rel="nofollow">https:&#x2F;&#x2F;evrim.zone&#x2F;blog&#x2F;knowledge&#x2F;iso_20022_pain_001</a><p>For Americans who&#x27;ve never heard of it, FedNow is seemingly using a &#x27;a bespoke flavor of the ISO 20022 specification&#x27; (<a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=36805571">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=36805571</a>). I think that it&#x27;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!
adamdecaf10 个月前
Are you planning on generating all (or a subset) of 20022 messages? That’s what we did for our Go package using 20022 for RTP. We added helpers for generating IDs and the signature sign&#x2F;validate.<p><a href="https:&#x2F;&#x2F;github.com&#x2F;moov-io&#x2F;rtp20022">https:&#x2F;&#x2F;github.com&#x2F;moov-io&#x2F;rtp20022</a>
评论 #41164625 未加载
mkuznets10 个月前
XML Schema Definitions for all ISO20022 messages are public: <a href="https:&#x2F;&#x2F;www.iso20022.org&#x2F;iso-20022-message-definitions" rel="nofollow">https:&#x2F;&#x2F;www.iso20022.org&#x2F;iso-20022-message-definitions</a><p>There are tools that can turn the schema files into POJO&#x2F;dataclasses&#x2F;structs&#x2F;etc in your language of choice, sometimes with proper data validation. Not sure about Typescript, but Java&#x2F;Python&#x2F;Golang definitely have those.<p>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.
评论 #41165298 未加载
评论 #41165312 未加载
vladde10 个月前
That&#x27;s the longest 3 lines of code I&#x27;ve ever seen.
hankchinaski10 个月前
you cant really create anything. it&#x27;s a xml formatter, so maybe the title should be how to convert json to xml in 3 lines of code. for payments to go out you would need a hell of a lot more than this unfortunately
yawnxyz10 个月前
as an average joe, I&#x27;m curious about how all this works &#x2F; what else you need to make it work (what&#x27;s a banking partner, etc?)
评论 #41164239 未加载
评论 #41164379 未加载
评论 #41164235 未加载
ab_testing10 个月前
Hey this seems really interesting. But I have questions about this statement “.<p>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.<p>So do we need to get this enabled on a per bank basis or a per account basis?
评论 #41172616 未加载
ultimatewhip10 个月前
So regarding ISO 20022 it is just a format for what is sent and read so each party have a common format to use (this is only partially true as institutions like making their own variant of it thats valid ISO 20022, think yaml vs json). Sending it is a completely different story, different financial institutions use different technologies for authentication and transport of these messages (SFTP, SWIFT, exotic custom stuff, etc..). My experience has not been in using ISO 20022 to send payments so maybe the payments space all use SWIFT or something.
评论 #41165318 未加载
CommanderData10 个月前
Nice work, can I ask how you tested this with SWIFT for example? Is there a development portal you need access to?
MuffinFlavored10 个月前
What is an API&#x2F;service we can use this encoder&#x2F;serializer with? This seems like a part of the puzzle.
评论 #41164847 未加载
LiamPa10 个月前
It’s a shame it’s probably going to take another 10 years before any of the banks actually migrate to ISO20022 (if it ever happens) SwiftMT conversion software is currently the big sell so they don’t have to rewrite &#x2F; build everything they already have.
评论 #41164451 未加载
评论 #41168265 未加载
robertlagrant10 个月前
This is a nice looking website, and I can imagine this being a really useful hook into consulting work.<p>Some thoughts:<p>- replace strings with enums where possible. E.g. &quot;USD&quot; should be from an enum<p>- this sort of data-interop library could maybe be written in a configuration language that it uses to generate libraries for different languages<p>- a glossary would be really helpful<p>- a list of banks who&#x27;ve adopted this ISO standard might be interesting
评论 #41164497 未加载
评论 #41164592 未加载
评论 #41169751 未加载
评论 #41164514 未加载
heohk10 个月前
It isnt sending a payment in 3 LoC at all. Its generating an XML doc.
评论 #41167215 未加载
boursbenjamin10 个月前
It seems very clear and easy to use, well done! I am wondering if there is any test environment like with Stripe in order to validate the flow in development?
评论 #41172691 未加载
guidedlight10 个月前
This makes sense to be used with Open Banking regimes, that is being mandated by government legislation.
评论 #41166324 未加载
victorbjorklund10 个月前
in what scenario is iso20022 payments used? would this be for forexample automating payroll?
评论 #41164584 未加载
worik10 个月前
I use node every day<p>I think it is a not very good idea to develop finance software in node
评论 #41168726 未加载
revskill10 个月前
How about receive payment notification via webhook ? Is there standard ?
评论 #41164470 未加载
TheeWheel10 个月前
Do you have any plans to support ACH&#x2F;NACHA payments?
评论 #41177744 未加载
graypegg10 个月前
I would&#x27;ve thought some sort of cryptographic signature would be used here, though maybe that&#x27;s something done in a wrapper around this XML documents?<p>Neat none-the-less! I always like this sort of actually-it&#x27;s-simpler-than-you-think peek behind the curtain.
评论 #41164516 未加载
piyushtechsavy10 个月前
Sounds cool
10100810 个月前
Super stupid question, but this must have some kind of authentication, right? Where is that part?
评论 #41164559 未加载
评论 #41192979 未加载
评论 #41168112 未加载
评论 #41164517 未加载
philippta10 个月前
The difficult thing about payments is not necessarily formatting payment instructions to ISO20022, but rather setting up the underlying infrastructure like:<p>- Shelving a Windows box in some authorized datacenter.<p>- Going through a years long process of getting certified to send payment instructions to the scheme (e.g. SWIFT network).<p>- Receiving a couple of USB sticks that contain certificates and signing keys.<p>- Connecting to the schemes VPN.<p>- Having all the legals in place.<p>- And probably many more things I was never exposed to.
评论 #41165901 未加载
评论 #41165191 未加载
评论 #41164689 未加载
andyjohnson010 个月前
Slightly stretching the concept of &quot;three lines of code&quot;. But it looks clean and self-documenting to this non-js developer. Nice.
评论 #41164510 未加载
ppbjj10 个月前
Three lines with payloads minified?
评论 #41164276 未加载
评论 #41164086 未加载