{"id":21470621,"url":"https://github.com/manifoldfinance/fiat","last_synced_at":"2025-03-17T06:44:33.304Z","repository":{"id":103410818,"uuid":"321488364","full_name":"manifoldfinance/fiat","owner":"manifoldfinance","description":"Fiat PayGate for EVM-based Accounts","archived":false,"fork":false,"pushed_at":"2021-03-28T13:53:57.000Z","size":12519,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-16T01:11:40.214Z","etag":null,"topics":["api","fiat","gateway","paygate","payment"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/manifoldfinance.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-12-14T22:26:33.000Z","updated_at":"2021-12-23T09:28:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"d002940a-fce9-4a8c-ba33-45b304d82e50","html_url":"https://github.com/manifoldfinance/fiat","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manifoldfinance%2Ffiat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manifoldfinance%2Ffiat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manifoldfinance%2Ffiat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manifoldfinance%2Ffiat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/manifoldfinance","download_url":"https://codeload.github.com/manifoldfinance/fiat/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243988956,"owners_count":20379649,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","fiat","gateway","paygate","payment"],"created_at":"2024-11-23T09:28:32.777Z","updated_at":"2025-03-17T06:44:33.265Z","avatar_url":"https://github.com/manifoldfinance.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gateway: Fiat Payments\n\n\u003e Banking Gateway Ramp - ACH/SEPA/EBICS\n\n### Colate final amount and generate XML/ACH\n\n```javascript\n// create a payment file\n\n// const from: paymentParty = {\n//   companyName: 'Cascade8',\n//   bic: 'NSMBFRPPXXX',\n//   iban: 'FR7630788001000889066000366'\n// }\n// const to: paymentParty = {\n//   companyName: 'Pulsar',\n//   bic: 'NSMBFRPPXXX',\n//   iban: 'FR7630788001000889066000463'\n// }\n// const xml = createPaymentXML(from, to, '12.3', 'LOTR'); // sent 28/01/20\n// const xml = createPaymentXML(to, from, '14.0', 'XTRF1654Z'); // sent 30/01/20\n// const xml = createPaymentXML(from, to, '8.3', 'HP84QR562'); // sent 31/01/20\n// const xml = createPaymentXML(from, to, '11.1', '785AZ247E'); // sent 4/01/20\n// const xml = createPaymentXML(from, to, '11.1', 'AQPD8E1Z3'); // sent 4/01/20\n// const xml = createPaymentXML(to, from, '19.95', '1QSDSDF5X'); // TODO send 5/02/20\n// await asyncWrite('./example/payment/sepa_test.xml', xml);\n// console.log('file written !');\n```\n\n### Ethereum Address to Banking Account\n\n```javascript\n// convert Ethereum address to an org then to a bankAccount\nconst to = await retrieveBankAccountFromEthAddress(shareOwner);\n// const to: paymentParty = {\n//   companyName: 'Pulsar',\n//   bic: 'NSMBFRPPXXX',\n//   iban: 'FR7630788001000889066000463'\n```\n\n### Create Payment\n\n```javascript\n// const from: paymentParty = {\n//   companyName: 'Cascade8',\n//   bic: 'NSMBFRPPXXX',\n//   iban: 'FR7630788001000889066000366'\n// }\n// const to: paymentParty = {\n//   companyName: 'Pulsar',\n//   bic: 'NSMBFRPPXXX',\n//   iban: 'FR7630788001000889066000463'\n// }\n// const xml = createPaymentXML(from, to, '12.3', 'LOTR'); // sent 28/01/20\n// const xml = createPaymentXML(to, from, '14.0', 'XTRF1654Z'); // sent 30/01/20\n// const xml = createPaymentXML(from, to, '8.3', 'HP84QR562'); // sent 31/01/20\n// const xml = createPaymentXML(from, to, '11.1', '785AZ247E'); // sent 4/01/20\n// const xml = createPaymentXML(from, to, '11.1', 'AQPD8E1Z3'); // sent 4/01/20\nconst xml = createPaymentXML(to, from, \"19.95\", \"1QSDSDF5X\"); // TODO send 5/02/20\nawait asyncWrite(\"./example/payment/sepa_test.xml\", xml);\nconsole.log(\"file written !\");\n// const xml = createPaymentXML(to, from, '19.95', '1QSDSDF5X'); // TODO send 5/02/20\n// await asyncWrite('./example/payment/sepa_test.xml', xml);\n// console.log('file written !');\n```\n\n### Get Event Filter\n\n```javscript\nexport function getEventFilter() {\n  return {\n    fromBlock: 0,\n    toBlock: 'latest',\n    topics: [\n      keccak256('InitiatePayment(address,uint256,uint256,string)')\n    ]\n  }\n}\n```\n\n### Retreive Expected Payments\n\n```javascript\nconsole.log(\"retrieving expected payments from firestore\");\nconst expectedPayments: ExpectedPayment[] = [\n  {\n    fromParty: \"CASCADE 8\",\n    toAccount: \"08890660004\",\n    amount: 11.1,\n    ref: \"785AZ247E\",\n    contractAddress: \"0xdFF8135c35C9762eAeBD88c99FeC29aCc8C84C79\",\n    stakeholdersPrivateFor: [quorum.pulsarlNode.privateFor],\n  },\n];\n```\n\n```javascript\n  /**\n * This function takes different parts of the history of an account and merge them into a single bank account object\n * @param bankAccounts an array of bank accounts object, **THEY SHOULD ALL SHARE THE SAME ACCOUNT NUMBER**\n * @example\n * const accounts = [\n *  { accountNumber: 1234, movements: [A, B] },\n *  { accountNumber: 1234, movements: [C, D] },\n * ];\n * const merged = mergeBankAccounts(accounts);\n * // {\n * //   accountNumber: 1234,\n * //   movements: [A, B, C, D]\n * // }\n */\nexport function mergeBankAccounts(bankAccounts: BankAccount[]) {\n```\n\n## License\n\nSEE `LICENSE`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanifoldfinance%2Ffiat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmanifoldfinance%2Ffiat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanifoldfinance%2Ffiat/lists"}