{"id":16254571,"url":"https://github.com/tim-smart/ynab-api-importer","last_synced_at":"2025-09-11T05:31:31.744Z","repository":{"id":42009042,"uuid":"156641508","full_name":"tim-smart/ynab-api-importer","owner":"tim-smart","description":"Syncs the last 7 days of bank transactions into YNAB","archived":false,"fork":false,"pushed_at":"2023-08-07T22:04:58.000Z","size":219,"stargazers_count":6,"open_issues_count":4,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-03T06:51:07.500Z","etag":null,"topics":["bnz","ynab","ynab-api"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tim-smart.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"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":"2018-11-08T02:54:59.000Z","updated_at":"2024-12-13T01:43:00.000Z","dependencies_parsed_at":"2024-10-27T21:32:50.666Z","dependency_job_id":"4168305b-9efd-42fd-95aa-1ec0e4b1d563","html_url":"https://github.com/tim-smart/ynab-api-importer","commit_stats":null,"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/tim-smart/ynab-api-importer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tim-smart%2Fynab-api-importer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tim-smart%2Fynab-api-importer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tim-smart%2Fynab-api-importer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tim-smart%2Fynab-api-importer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tim-smart","download_url":"https://codeload.github.com/tim-smart/ynab-api-importer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tim-smart%2Fynab-api-importer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274583129,"owners_count":25311750,"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","status":"online","status_checked_at":"2025-09-11T02:00:13.660Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["bnz","ynab","ynab-api"],"created_at":"2024-10-10T15:22:55.598Z","updated_at":"2025-09-11T05:31:31.452Z","avatar_url":"https://github.com/tim-smart.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ynab-api-importer\n\nA lot of international banks are unsupported by YNAB's direct feed feature. So\nhere is yet another YNAB API importer.\n\nTo make this useful you will need some technical knowledge. It is recommended\nthat you run this as a cron job everyday to make sure YNAB is always up-to-date.\n\nCurrent the following adapters are implemented:\n\n- BNZ (Bank of New Zealand)\n\n## Installation\n\n```\nnpm i -g ynab-api-importer\n```\n\n## Configuration\n\nCopy `config.example.js` to `config.js` and change to your liking.\n\nThen run:\n\n```\nynab-importer config.js\n```\n\n## For developers\n\nIf you would like to create your own adapter, take a look at `src/banks/bnz.ts`.\n\nYou need to implement a `TBankAdapter` function and make it the default export\nof your NPM module.\nUsers can then register it using the `registerAdapters` config option (see\n`config.example.js`).\n\nIn your `peerDependencies` include `ynab-api-importer` and `ynab`;\n\nFor example:\n\n```typescript\nimport { Page } from \"puppeteer\";\nimport {\n  Adapters,\n  Ynab,\n  setupPage,\n} from \"ynab-api-importer\";\nimport { SaveTransaction } from \"ynab\";\n\nconst export = (page: Page) =\u003e async (\n  accountID: string,\n  ynabAccountID: string,\n): Promise\u003cSaveTransaction[]\u003e =\u003e {\n  // Add your implmentation here\n  // This will be run once for every account\n  // It needs to return an array of YNAB transactions\n\n  const ofxString = await doSomethingWith(page);\n  const transactions = await Ynab.ofxToSaveTransactions(\n    ofxString,\n    ynabAccountID,\n  );\n  return transactions;\n}\n\nconst fancyBankAdapter: Adapters.TBankAdapter = async (options: any) =\u003e{\n  // You can login here, setup puppeteer etc.\n  const { browser, page } = await setupPage();\n\n  // Return two functions. First one exports the transactions. Second one does\n  // cleanup.\n  return [export(page), () =\u003e browser.close()];\n}\n\nexport default fancyBankAdapter;\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftim-smart%2Fynab-api-importer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftim-smart%2Fynab-api-importer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftim-smart%2Fynab-api-importer/lists"}