[{"data":1,"prerenderedAt":571},["ShallowReactive",2],{"project-41163645":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":45,"post_text":49,"what":50,"said":88,"maker_in_thread":186,"shape":198,"grid":201,"attempts":533,"same_week":534,"maker_shows":40,"maker_hidden":563,"reader_version":564,"card":565},"41163645","Iso20022.js","Create payments in 3 lines of code","title","Show HN: Iso20022.js – Create payments in 3 lines of code","https:\u002F\u002Fwww.iso20022js.com\u002F","iso20022js.com","svapnil",1722880541,2024,291,125,218,3515,7,"legend","finance_crypto","payments library","library",[24,25,26,27,28],"iso20022","bank payments","typescript","pain.001","payment initiation","curious",-0.107,{"positive":32,"neutral":33,"mixed":34,"critical":35},8,29,0,14,51,{"docs":38,"idea":41,"design":42,"execution":43,"privacy":44},{"positive":39,"critical":40},2,1,{"positive":39,"critical":32},{"positive":40,"critical":39},{"positive":34,"critical":39},{"positive":34,"critical":34},[46,34,34,34,34,34,34,34,34,34,46,47,39,46,48,46,39,34,46,34,40,40,40,46,46,46,46,46,34,46,46,39,46,40,39,46,48,40,34,48],3,4,5,null,{"problem":51,"audience":61,"pricing":49,"motivation":70,"time_to_build":49,"stack":77,"openness":86,"stage":87,"team_size":87},{"value":52,"source":53,"evidence":54},"Creating ISO20022 bank payment messages is complex and error-prone","maker",[55,58],{"id":56,"by":11,"text":57},"41163646","Hey HN, 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…",{"id":59,"by":11,"text":60},"41164276","haha, yes. fiat bank payments require a lot of information to be send correctly, for better or for worse. this library conveniently exposes the elements needed to send a payment,…",{"value":62,"source":53,"evidence":63},"Developers at companies that send bank payments programmatically, built on Node",[64,67],{"id":65,"by":11,"text":66},"41165224","Hey catapart, thanks for your comment. You're right. Accepting credit card payments over the internet is usually done handled by black-box third party payment processors. Bank…",{"id":68,"by":11,"text":69},"41164239","thanks for the feedback. companies that need to programmatically send payments via bank need a corporate bank account that allows them to send programmatic payment instructions.…",{"value":71,"source":53,"evidence":72},"Make ISO20022 easy for non-payments developers to use and ingest",[73,76],{"id":74,"by":11,"text":75},"41165298","Thanks for your comment mkuznets. I appreciate your input regarding XSD to class conversion - I agree that this is a super useful concept for sending ISO20022 files. I think…",{"id":56,"by":11,"text":57},[78,82],{"value":79,"source":53,"evidence":80},"TypeScript",[81],{"id":56,"by":11,"text":57},{"value":83,"source":53,"evidence":84},"Node.js",[85],{"id":65,"by":11,"text":66},"open_source","unknown",{"praise":89,"objections":102,"requests":140,"questions":152,"alternatives":171},[90],{"value":91,"source":92,"evidence":93},"Clean, easy-to-read API and docs","commenter",[94,98],{"id":95,"by":96,"text":97},"41164460","andyjohnson0","Slightly stretching the concept of \"three lines of code\". But it looks clean and self-documenting to this non-js developer. Nice.",{"id":99,"by":100,"text":101},"41168930","boursbenjamin","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?",[103,118,129],{"value":104,"source":92,"evidence":105},"Not really three lines; it only generates XML, does not send payments",[106,110,114],{"id":107,"by":108,"text":109},"41167189","heohk","It isnt sending a payment in 3 LoC at all. Its generating an XML doc.",{"id":111,"by":112,"text":113},"41171294","hankchinaski","you cant really create anything. it'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…",{"id":115,"by":116,"text":117},"41168445","vladde","That's the longest 3 lines of code I've ever seen.",{"value":119,"source":92,"evidence":120},"Finance software in Node\u002Fnpm is risky",[121,125],{"id":122,"by":123,"text":124},"41164647","phkahler",">> I'd love to know what you think and importantly know about any improvements you'd like us to make! I think it's scary to do any finance related stuff using NPM dependencies.…",{"id":126,"by":127,"text":128},"41168656","worik","I use node every day I think it is a not very good idea to develop finance software in node",{"value":130,"source":92,"evidence":131},"Banks use custom variants of the standard",[132,136],{"id":133,"by":134,"text":135},"41165208","ultimatewhip","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…",{"id":137,"by":138,"text":139},"41164557","mrloba","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 \"Our…",[141,148],{"value":142,"source":92,"evidence":143},"Support ACH\u002FNACHA payments",[144],{"id":145,"by":146,"text":147},"41167356","TheeWheel","Do you have any plans to support ACH\u002FNACHA payments?",{"value":149,"source":92,"evidence":150},"Test environment or sandbox",[151],{"id":99,"by":100,"text":101},[153,164],{"value":154,"source":92,"evidence":155},"How is authentication and sending to banks handled",[156,160],{"id":157,"by":158,"text":159},"41164431","101008","Super stupid question, but this must have some kind of authentication, right? Where is that part?",{"id":161,"by":162,"text":163},"41165455","CommanderData","Nice work, can I ask how you tested this with SWIFT for example? Is there a development portal you need access to?",{"value":165,"source":92,"evidence":166},"Who are the target developers",[167],{"id":168,"by":169,"text":170},"41164932","catapart","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…",[172,179],{"value":173,"source":92,"evidence":174},"XSD-generated classes from ISO20022 schemas",[175],{"id":176,"by":177,"text":178},"41165201","mkuznets","XML Schema Definitions for all ISO20022 messages are public: https:\u002F\u002Fwww.iso20022.org\u002Fiso-20022-message-definitions There are tools that can turn the schema files into…",{"value":180,"source":92,"evidence":181},"moov-io rtp20022 Go package",[182],{"id":183,"by":184,"text":185},"41164574","adamdecaf","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…",{"comments":187,"answered":35,"key":188},25,[189,192,195],{"id":190,"text":191},"41172405","Thanks for sharing Matthieu - you know a lot about the banking system. I previously worked at Modern Treasury, so I'm also very familiar with bank integrations. If you had the…",{"id":193,"text":194},"41164670","That does sound really really fun.. What's great about XML is that free text \u002F bank specific fields can be handled elegantly with XML's extensible structure. That is why I think…",{"id":196,"text":197},"41165998","Banks add their own features to the spec - imagine they want to add a new \"Bank only\" attribute that makes their XML schema differentiated and better in some way. ISO20022 \u002F XML…",{"commenters":199,"max_depth":18,"maker_replies":187,"first_comment_mins":34,"lifespan_hours":200},78,70,[202,206,210,213,216,218,221,224,225,227,231,232,235,238,240,243,246,249,251,254,257,260,263,265,268,270,273,275,278,280,283,286,289,291,295,299,302,305,308,311,314,317,320,322,326,329,331,332,333,337,339,341,345,347,350,353,356,358,361,364,366,369,372,373,376,377,378,381,384,387,390,392,396,399,401,403,404,406,410,412,414,416,417,421,423,426,430,432,434,436,438,440,445,449,451,453,455,457,459,461,463,465,469,471,475,478,481,484,487,491,493,495,497,500,504,507,510,513,515,519,522,524,526,528,532],[203,34,46,204,205,34],"41165886","project\u002Fneutral\u002Fnone","neonate",[207,40,34,208,209,34],"41169365","other\u002Fneutral\u002Fnone","dawidloubser",[211,40,34,208,212,34],"41170308","berkes",[214,40,34,208,215,34],"41170833","matthieu_bl",[190,40,34,217,11,40],"maker\u002Fpositive\u002Fnone",[219,40,34,208,220,34],"41170807","A4ET8a8uTh0",[222,40,34,208,223,34],"41172840","datavirtue",[137,39,34,208,138,34],[193,39,34,226,11,40],"maker\u002Fneutral\u002Fnone",[228,39,34,229,230,34],"41165877","commenter\u002Fneutral\u002Fnone","mremes",[196,39,34,229,11,40],[233,39,34,229,234,34],"41166141","cyanydeez",[236,39,34,229,237,34],"41167333","bilekas",[239,39,34,229,234,34],"41175252",[241,39,34,229,242,34],"41167480","cuu508",[244,39,34,229,245,34],"41168181","patates",[247,39,34,229,248,34],"41168376","actionfromafar",[250,39,34,229,209,34],"41169279",[252,39,34,229,253,34],"41172154","iTokio",[255,39,34,229,256,34],"41165999","ldjb",[258,39,34,229,259,34],"41167091","j16sdiz",[261,39,34,229,262,34],"41166092","pseudocomposer",[264,39,34,229,248,34],"41166149",[266,39,34,229,267,34],"41173096","0x457",[269,39,34,229,248,34],"41173373",[271,39,34,208,272,34],"41166067","hanniabu",[274,39,34,208,248,34],"41166154",[276,39,34,208,277,34],"41166871","inkyoto",[279,39,34,226,11,40],"41172499",[281,39,34,208,282,34],"41168135","hakfoo",[284,39,34,208,285,34],"41168893","leokennis",[287,39,34,208,288,34],"41168987","evrimoztamur",[56,46,34,290,11,40],"project\u002Fneutral\u002Fidea",[292,46,46,293,294,34],"41164144","project\u002Fneutral\u002Fdocs","franciscop",[296,46,48,297,298,34],"41164198","project\u002Fpositive\u002Fnone","tootie",[300,46,46,293,301,34],"41164215","prettyStandard",[303,46,46,204,304,34],"41164216","jerf",[306,46,40,307,294,34],"41164387","project\u002Fcritical\u002Fdocs",[309,46,46,290,310,34],"41164228","NoboruWataya",[312,46,46,204,313,34],"41164409","cess11",[315,46,34,316,11,40],"41164702","maker\u002Fneutral\u002Fdocs",[318,46,46,293,319,34],"41164301","runlevel1",[321,46,34,226,11,40],"41164401",[323,46,48,324,325,34],"41168383","project\u002Fpositive\u002Fdocs","Kiro",[327,46,46,290,328,34],"41165769","andrewshadura",[330,46,34,226,11,40],"41172519",[168,47,46,290,169,34],[65,47,34,290,11,40],[334,47,40,335,336,34],"41165718","project\u002Fcritical\u002Fidea","Quekid5",[338,47,48,217,169,34],"41166161",[340,47,40,335,212,34],"41170349",[342,47,48,343,344,34],"41169519","project\u002Fpositive\u002Fidea","bluepizza",[122,48,40,346,123,34],"project\u002Fcritical\u002Fnone",[348,48,34,208,349,34],"41164659","hdshjvgiogh",[351,48,34,208,352,34],"41165011","echelon",[354,48,34,208,355,34],"41167960","lostinsauce",[357,48,34,297,11,40],"41164680",[359,48,46,204,360,34],"41164841","thih9",[362,48,46,204,363,34],"41166872","root_axis",[365,48,34,208,355,34],"41167959",[367,48,34,229,368,34],"41193035","katzinsky",[370,371,34,208,288,34],"41168969",6,[183,18,46,290,184,34],[374,18,34,375,11,40],"41164625","maker\u002Fneutral\u002Fidea",[176,32,40,335,177,34],[74,32,34,375,11,40],[379,32,40,335,380,34],"41168241","logicalmind",[382,32,34,208,383,34],"41175647","pixelbyaj",[385,32,40,335,386,34],"41165312","38",[115,388,40,389,116,34],9,"project\u002Fcritical\u002Fdesign",[111,391,40,335,112,34],10,[393,394,46,293,395,34],"41164066",11,"yawnxyz",[397,394,34,208,398,34],"41164235","toomuchtodo",[400,394,34,316,11,40],"41164310",[402,394,34,208,398,34],"41165034",[68,394,34,316,11,40],[405,394,34,208,313,34],"41164379",[407,408,46,293,409,34],"41167665",12,"ab_testing",[411,408,34,316,11,40],"41172616",[133,413,46,290,134,34],13,[415,413,34,375,11,40],"41165318",[161,35,46,293,162,34],[418,419,46,290,420,34],"41164415",15,"MuffinFlavored",[422,419,34,316,11,40],"41164847",[424,419,46,425,420,34],"41165690","project\u002Fneutral\u002Fexecution",[427,428,34,208,429,34],"41164294",16,"LiamPa",[431,428,34,208,313,34],"41164451",[433,428,34,208,429,34],"41164572",[435,428,34,208,380,34],"41168265",[437,428,34,208,429,34],"41168310",[439,428,34,208,380,34],"41171717",[441,442,46,443,444,34],"41164450",17,"project\u002Fneutral\u002Fdesign","robertlagrant",[446,442,34,447,448,34],"41164497","commenter\u002Fneutral\u002Fdesign","Waterluvian",[450,442,46,443,444,34],"41169024",[452,442,34,447,448,34],"41170401",[454,442,34,375,11,40],"41164592",[456,442,46,290,444,34],"41164672",[458,442,40,389,259,34],"41169751",[107,460,40,335,108,34],18,[99,462,48,324,100,34],19,[464,462,34,316,11,40],"41172691",[466,467,46,290,468,34],"41165433",20,"guidedlight",[470,467,34,375,11,40],"41166324",[472,473,46,290,474,34],"41164331",21,"victorbjorklund",[476,473,34,208,477,34],"41164584","samstave",[126,479,40,480,127,34],22,"project\u002Fcritical\u002Fexecution",[482,479,46,425,483,34],"41168726","kevsim",[485,479,40,480,486,34],"41168775","aerzen",[488,489,46,290,490,34],"41164303",23,"revskill",[492,489,34,316,11,40],"41164470",[145,494,46,290,146,34],24,[496,494,34,375,11,40],"41177744",[498,187,48,343,499,34],"41164359","graypegg",[501,502,48,297,503,34],"41168643",26,"piyushtechsavy",[157,505,46,506,158,34],27,"project\u002Fneutral\u002Fprivacy",[508,505,46,293,509,34],"41164559","abimaelmartell",[511,505,40,335,512,34],"41168112","nsonha",[514,505,34,316,11,40],"41192979",[516,517,34,208,518,34],"41164597",28,"philippta",[520,517,34,208,521,34],"41165191","enahs-sf",[523,517,34,208,380,34],"41168328",[525,517,34,293,11,40],"41165901",[95,33,48,527,96,34],"project\u002Fpositive\u002Fdesign",[529,530,46,443,531,34],"41164033",30,"ppbjj",[59,530,34,290,11,40],[],[535,540,545,550,555,559],{"id":536,"name":537,"points":538,"category":539},"41180504","Roometron",694,"creative",{"id":541,"name":542,"points":543,"category":544},"41156872","WebGPU Unleashed",471,"learning_science",{"id":546,"name":547,"points":548,"category":549},"41173161","1-FPS",433,"dev_tools",{"id":551,"name":552,"points":553,"category":554},"41160268","Pie Menu",309,"productivity",{"id":556,"name":557,"points":558,"category":554},"41180441","BudgetFlow",275,{"id":560,"name":561,"points":562,"category":544},"41144826","Hanon Pro",248,false,"v2",{"id":566,"name":5,"line":6,"ai":563,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":567,"top":18,"kw":568,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":569,"url":9,"mix":570,"praise":91,"objection":104,"sub":21},41163645,-0.11,[24,25,26,27,28],"3000000000342353203011133333033231235105",[32,33,34,35],1794036658893]