{"id":13539945,"url":"https://github.com/ballerine-io/ballerine","last_synced_at":"2025-05-13T16:11:42.215Z","repository":{"id":62324779,"uuid":"544592629","full_name":"ballerine-io/ballerine","owner":"ballerine-io","description":"Open-source infrastructure and data orchestration platform for risk decisioning","archived":false,"fork":false,"pushed_at":"2025-05-08T13:43:22.000Z","size":129896,"stargazers_count":2179,"open_issues_count":31,"forks_count":219,"subscribers_count":26,"default_branch":"dev","last_synced_at":"2025-05-08T14:40:29.247Z","etag":null,"topics":["back-office","case-management","compliance","dashboard","flow","fraud","id-card-camera","identity-verification","idv","know-your-customer","kyb","kyc","liveliness","ocr","onboarding","orchestration","risk-management","rule-engine","sdk","svelte"],"latest_commit_sha":null,"homepage":"https://www.ballerine.com","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/ballerine-io.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-02T21:20:10.000Z","updated_at":"2025-05-08T14:09:09.000Z","dependencies_parsed_at":"2023-09-24T09:40:04.012Z","dependency_job_id":"da87d6c3-57e8-4fc2-a0b3-30499aa14766","html_url":"https://github.com/ballerine-io/ballerine","commit_stats":{"total_commits":1790,"total_committers":48,"mean_commits":"37.291666666666664","dds":0.788268156424581,"last_synced_commit":"df66c390f6b138375cf4b1066311178cb651a920"},"previous_names":[],"tags_count":2449,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ballerine-io%2Fballerine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ballerine-io%2Fballerine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ballerine-io%2Fballerine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ballerine-io%2Fballerine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ballerine-io","download_url":"https://codeload.github.com/ballerine-io/ballerine/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253561121,"owners_count":21927767,"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":["back-office","case-management","compliance","dashboard","flow","fraud","id-card-camera","identity-verification","idv","know-your-customer","kyb","kyc","liveliness","ocr","onboarding","orchestration","risk-management","rule-engine","sdk","svelte"],"created_at":"2024-08-01T09:01:34.931Z","updated_at":"2025-05-13T16:11:37.206Z","avatar_url":"https://github.com/ballerine-io.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","By Industry","svelte","Trust \u0026 Safety","⚙️ Backend \u0026 APIs"],"sub_categories":["DevOps","User Identity"],"readme":"\u003cdiv align=\"right\"\u003e\n\u003cimg  src=\"https://uploads-ssl.webflow.com/62a3bad46800eb4715b2faf1/6463b137c0fec38f87389eb6_star_AdobeExpress%20(2).gif\"  alt=\"Alt Text\"  style=\"width: 100%; height: auto;\"\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n\u003ca href=\"https://ballerine.com\" title=\"Ballerine - Open-source Infrastructure for Identity and Risk management.\"\u003e\n    \u003cimg src=\"https://uploads-ssl.webflow.com/62a3bad46800eb4715b2faf1/646372b198f456345c69339c_logo%20github.png\" alt=\"Ballerine's website\"\u003e\n\u003c/a\u003e\n\n## Open-Source Risk Management Infrastructure\n\n\u003cbr/\u003e\n\n  \u003c!-- Nav header - Start --\u003e\n\n  \u003ca href=\"https://docs.ballerine.com/\"\u003eDocumentation\u003c/a\u003e\n    ·\n   \u003ca href=\"https://join.slack.com/t/ballerine-oss/shared_invite/zt-1il7txerq-K0YrXtlzMttGgD3XXYxlfw\"\u003eSlack\u003c/a\u003e\n    ·\n    \u003ca href=\"https://www.ballerine.com/\"\u003eWebsite\u003c/a\u003e\n    ·\n    \u003ca href=\"#contact-ballerine\"\u003eContact\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/ballerine-io/ballerine/issues\"\u003eIssues\u003c/a\u003e\n\u003c!-- Nav header - END --\u003e\n\n\u003c!-- Badges - Start --\u003e\n   \u003ca href=\"https://github.com/ballerine-io/ballerine/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/ballerine-io/ballerine?logo=GitHub\u0026style=flat-square\"\u003e\u003c/a\u003e \u003ca href=\"https://discord.gg/e2rQE4YygA\"\u003e\u003cimg src=\"https://img.shields.io/website?color=%237289DA\u0026down_color=%237289DA\u0026down_message=Join\u0026label=Discord\u0026logo=discord\u0026logoColor=white\u0026style=flat-square\u0026up_color=%237289DA\u0026up_message=Join\u0026url=https%3A%2F%2Fdiscord.gg%2Fe2rQE4YygA\"\u003e\u003c/a\u003e \u003ca href=\"https://join.slack.com/t/ballerine-oss/shared_invite/zt-1iu6otkok-OqBF3TrcpUmFd9oUjNs2iw\"\u003e\u003cimg src=\"https://img.shields.io/website?color=%23441949\u0026down_color=%23441949\u0026down_message=Join\u0026label=Slack\u0026logo=slack\u0026logoColor=white\u0026style=flat-square\u0026up_color=%23441949\u0026up_message=Join\u0026url=https%3A%2F%2Fjoin.slack.com%2Ft%2Fballerine-oss%2Fshared_invite%2Fzt-1iu6otkok-OqBF3TrcpUmFd9oUjNs2iw\"\u003e\u003c/a\u003e \u003ca href=\"https://twitter.com/ballerine_io\"\u003e\u003cimg src=\"https://img.shields.io/website?color=%231DA1F2\u0026down_color=%231DA1F2\u0026down_message=Follow\u0026label=Twitter\u0026logo=twitter\u0026logoColor=%231DA1F2\u0026style=flat-square\u0026up_color=%231DA1F2\u0026up_message=%40ballerine.io\u0026url=https%3A%2F%2Ftwitter.com%2FBallerine_io\"\u003e\u003c/a\u003e \u003ca href=\"https://ycombinator.com\"\u003e\u003cimg src=\"https://img.shields.io/website?color=%23f26522\u0026down_message=Y%20Combinator\u0026label=Backed\u0026logo=ycombinator\u0026style=flat-square\u0026up_message=Y%20Combinator\u0026url=https%3A%2F%2Fwww.ycombinator.com\"\u003e\u003c/a\u003e\n\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](https://makeapullrequest.com)\n[![GitHub release](https://img.shields.io/github/v/release/ballerine-io/ballerine?label=last-release\u0026style=flat-square)](https://github.com/ballerine-io/ballerine/releases)\n[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/ballerine-io/ballerine/ci.yml?label=CI\u0026style=flat-square)](https://github.com/ballerine-io/ballerine/actions/workflows/ci.yml)\n[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/ballerine-io/ballerine/release.yml?label=Release\u0026style=flat-square)](https://github.com/ballerine-io/ballerine/actions/workflows/release.yml)\n\n\u003c/p\u003e\n\n\u003c!-- Badges - END --\u003e\n\n\u003c/div\u003e\n\nBallerine is an Open-Source Risk Management Infrastructure that helps global payment companies, marketplaces and Fintechs to automate their decisions for merchant, sellers and users throughout the customer lifecycle.\nFrom account-opening (KYC, KYB), underwriting, and transaction monitoring, using a flexible rules \u0026 workflow engine, 3rd party plugin system, manual review back office, and document \u0026 information collection frontend flows.\n\n\u003cbr/\u003e\n\n## Modules\n- [**Back Office**](https://docs.ballerine.com/en/learn/case_management_overview) - Case management dashboard for manual decision-making.\n- **Workflow Engine** - Orchestrates and automates the different system's parts.\n- [**KYB Collection Flow**](#modules) - Real-time modification of KYC/KYB frontend user journeys.\n- [**Rule Engine**](#modules) - Leverage various rule types to ensure user compliance with your risk policy.\n- [**Plugin System**](#modules) - Integrates with 3rd-party vendors, APIs, and databases.  [see plugins](#modules).\n- **No-Code Builder** - Leverage various rule types to ensure user compliance with your risk policy - 🚧 WIP.\n\n## Why Open Source?\nWe believe in enabling companies to manage user  identity  and risk according to their unique  and evolving requirements. Ballerine empowers you to  create decisioning processes that are  right  for you. It is flexible, future-proof, easy to implement, secure, and supported by a robust community.\n\n#### Explore What You Can Do With Ballerine\n- **Dynamic Experience:** Adaptive user journeys that modify in real-time based on the user's risk.\n- **Data Ownership:** Self-host on-premise to keep sensitive data within your infrastructure.\n- **Global Orchestration:** Add/change vendors and data sources to cater to users from multiple countries.\n- **Cost Reduction:** Retain control over vendor relationships, costs, and communication.\n- And More.\n\n## Try Ballerine Now\n\n**In the following example you can test a simple form of the following infrastructure capabilities**\n\n1. Document collection flow.\n2. A manual review case management **Back Office**.\n3. Live communication between the parts using a **Workflow Engine**, that also defines the process steps.\n4. A simple JSON containing **Risk Rules** that are checked during the flow.\n\n**Parts of the system you might look for but are not in THIS demo:**\n- Our Rule Engine is still under construction and will soon be released.\n\n\n**Getting started**\nTo set up a local environment, follow these steps:\n1. #### Install prerequisites:\n   - Node.js ([Install NVM](https://github.com/nvm-sh/nvm), then install node \"nvm install 21\")\n   - Latest PNPM version ([Install PNPM](https://pnpm.io/installation))\n   - Docker and docker compose ([Docker](https://docs.docker.com/desktop), [Docker Compose](https://docs.docker.com/compose/install))\n\n2. #### Clone and install the project:\n  1. Clone the project:\n   ```sh\n   git clone https://github.com/ballerine-io/ballerine.git\n   ```\n  2. Install npm dependencies:\n   ```sh\n   pnpm install\n   ```\n  3. Initialize monorepo:\n   ```sh\n   pnpm monorepo:init\n   ```\n3. #### Run an example\n   * KYB\n   ```sh\n   pnpm kyb-manual-review-example\n   ```\n   * KYC\n    ```sh\n   pnpm kyc-manual-review-example\n   ```\nOnce the process is complete,  _2 tabs_   will open in your browser:\n1. Document Collection Flow:\n   - KYB: [http://localhost:5201/](http://localhost:5201/)\n   - KYC: [http://localhost:5202](http://localhost:5202)\n2. Back Office: [http://localhost:5137/](http://localhost:5137/)\n   _(It's recommended to position both tabs side-by-side)_\n\n\u003e **Note:** If the tabs don't open automatically, use the links above.\n\n### Flow Instructions\n\n1. **Access the Back Office**\n   - Sign in using:\n     ```\n     Email: admin@admin.com\n     Password: admin\n     ```\n   - Navigate to \"KYB with UBOs\" under the business menu to view ongoing cases\n\n2. **Complete the Collection Flow**\n   - Fill out all required fields in each step\n   - The Back Office case will update as you progress\n\n3. **Review \u0026 Process**\n   - Once complete, the case status changes to \"manual review\"\n   - Assign the case to yourself\n   - Choose to: Approve, Reject, or Request Resubmission\n\n4. **Document Resubmission**\n   - Request a document resubmission\n   - Return to collection flow to upload new document\n   - Check Back Office for updated information\n\n* Note: some components are currently in beta, if you run into an issue please ping us on Slack\n\n## Contributing\n\nWe appreciate all types of contributions and believe that an active community is the secret to a rich and stable product.\nHere are some of the ways you can contribute:\n\n-   Give us feedback in our  [Slack community](https://join.slack.com/t/ballerine-oss/shared_invite/zt-1il7txerq-K0YrXtlzMttGgD3XXYxlfw)\n-   Help with bugs and features on [our Issues page](https://github.com/ballerine-io/ballerine/issues)\n-   Submit a  [feature request](https://github.com/ballerine-io/ballerine/issues/new?assignees=\u0026labels=enhancement%2C+feature\u0026template=feature_request.md)  or  [bug report](https://github.com/ballerine-io/ballerine/issues/new?assignees=\u0026labels=bug\u0026template=bug_report.md)\n\n## Contact Ballerine\nTo start using the paid version or if you need any assistance, reach out to us at oss@ballerine.com. Join our [Discord Channel](https://discord.gg/e2rQE4YygA) and [Slack Channel](https://join.slack.com/t/ballerine-oss/shared_invite/zt-1iu6otkok-OqBF3TrcpUmFd9oUjNs2iw) to stay updated and engage with our community.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fballerine-io%2Fballerine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fballerine-io%2Fballerine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fballerine-io%2Fballerine/lists"}