Awesome
<div align="right"> <img src="https://uploads-ssl.webflow.com/62a3bad46800eb4715b2faf1/6463b137c0fec38f87389eb6_star_AdobeExpress%20(2).gif" alt="Alt Text" style="width: 100%; height: auto;"> </div> <div align="center"> <a href="https://ballerine.com" title="Ballerine - Open-source Infrastructure for Identity and Risk management."> <img src="https://uploads-ssl.webflow.com/62a3bad46800eb4715b2faf1/646372b198f456345c69339c_logo%20github.png" alt="Ballerine's website"> </a>Open-Source Infrastructure for User Risk Decisioning
</br> <!-- Nav header - Start --><a href="https://join.slack.com/t/ballerine-oss/shared_invite/zt-1iu6otkok-OqBF3TrcpUmFd9oUjNs2iw">Slack</a> 路 <a href="https://www.ballerine.com/">Website</a> 路 <a href="#contact-ballerine">Contact</a> 路 <a href="https://github.com/ballerine-io/ballerine/issues">Issues</a>
<!-- Nav header - END --> <!-- Badges - Start --><a href="https://github.com/ballerine-io/ballerine/stargazers"><img src="https://img.shields.io/github/stars/ballerine-io/ballerine?logo=GitHub&style=flat-square"></a> <a href="https://discord.gg/e2rQE4YygA"><img src="https://img.shields.io/website?color=%237289DA&down_color=%237289DA&down_message=Join&label=Discord&logo=discord&logoColor=white&style=flat-square&up_color=%237289DA&up_message=Join&url=https%3A%2F%2Fdiscord.gg%2Fe2rQE4YygA"></a> <a href="https://join.slack.com/t/ballerine-oss/shared_invite/zt-1iu6otkok-OqBF3TrcpUmFd9oUjNs2iw"><img src="https://img.shields.io/website?color=%23441949&down_color=%23441949&down_message=Join&label=Slack&logo=slack&logoColor=white&style=flat-square&up_color=%23441949&up_message=Join&url=https%3A%2F%2Fjoin.slack.com%2Ft%2Fballerine-oss%2Fshared_invite%2Fzt-1iu6otkok-OqBF3TrcpUmFd9oUjNs2iw"></a> <a href="https://twitter.com/ballerine_io"><img src="https://img.shields.io/website?color=%231DA1F2&down_color=%231DA1F2&down_message=Follow&label=Twitter&logo=twitter&logoColor=%231DA1F2&style=flat-square&up_color=%231DA1F2&up_message=%40ballerine.io&url=https%3A%2F%2Ftwitter.com%2FBallerine_io"></a> <a href="https://ycombinator.com"><img src="https://img.shields.io/website?color=%23f26522&down_message=Y%20Combinator&label=Backed&logo=ycombinator&style=flat-square&up_message=Y%20Combinator&url=https%3A%2F%2Fwww.ycombinator.com"></a>
</p> <!-- Badges - END --> </div>Ballerine is an open-source user risk decisioning infrastructure that helps companies automate their decisions for customer and business account-opening (KYC, KYB), underwriting, and transaction monitoring, using a flexible rules & workflow engine, 3rd party plugin system, manual review back office, and document & information collection frontend flows.
<br/> <div align="center"> <img src="https://uploads-ssl.webflow.com/62a3bad46800eb4715b2faf1/646375ed9f42af409c55f316_main%20gif%20optimized.gif" alt="Alt Text" style="width: 100%; height: auto;"> </div> <br/>Our vision for this project
Watch a brief video explaining what we're building.
<br/> <a href="https://youtu.be/0SppYSZOatw" title="Ballerine Demo"> <img src="https://uploads-ssl.webflow.com/62a3bad46800eb4715b2faf1/646cb35bbee1708f66aa223a_vision%20thumbnail.png" alt="Demo video"> </a>Features
View each component's current state in the roadmap below.
Released - 馃帀
-
Back office - Case management dashboard for manual decision-making.
-
Workflow engine - Orchestrates and automates the different system's parts.
In Development/testing - 馃敤
-
Plugin system - Integrates with 3rd-party vendors, APIs, and data sources.
-
Rule engine - Leverage various rule types to ensure user compliance with your risk policy.
Planned on roadmap - 馃搶
- Frontend headless SDK- Real-time modification of KYC/KYB frontend user journeys.
Community driven building blocks - 馃實
- User flows UX/UI - KYC/KYB/Document collection flows and UI via mobile & web SDK.
Why Open Source?
We 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.
Explore What You Can Do With Ballerine
- Dynamic Experience: Adaptive user journeys that modify in real-time based on the user's risk.
- Data Ownership: Self-host on-premise to keep sensitive data within your infrastructure.
- Global Orchestration: Add/change vendors and data sources to cater to users from multiple countries.
- Cost Reduction: Retain control over vendor relationships, costs, and communication.
- And More.
Try Ballerine Now
In the following example you can test a simple form of the following infrastructure capabilities
- Document collection flow controlled by our Headless SDK.
- A manual review case management Back Office.
- Live communication between the parts using a Workflow Engine, that also defines the process steps.
- A simple JSON containing Risk Rules that are checked during the flow.
Parts of the system you might look for but are not in THIS demo:
- Advanced Back Office - To try it out go to our Case management back office page.
- KYC/KYB UI flows - To try it out go to our Community driven building blocks page.
- Our Plugin System and Rule Engine are still under construction and will soon be released.
Demo example video
Watch a video of how the demo works, with explanations: Watch now
<br/> <a href="https://youtu.be/EzBXhUM7gb8" title="Ballerine Demo"> <img src="https://uploads-ssl.webflow.com/62a3bad46800eb4715b2faf1/646b32fd3d69c9698cd511a1_vid%20thumbnail.png" alt="Demo video"> </a> <br/> <br/>Getting started
To set up a local environment, follow these steps:
-
Install prerequisites:
- Node.js (Minimum version 18) (you can install node via NVM: Install NVM)
- Latest PNPM version (Minimum version 8.0) (Install PNPM)
- Docker and docker compose (Docker, Docker Compose)
-
Clone and install the project:
- Clone the project:
git clone https://github.com/ballerine-io/ballerine.git
- Install npm depenencies:
pnpm install
- Initilazie monorepo:
pnpm monorepo:init
-
Run the example
pnpm kyc-manual-review-example
Once the process is complete, 2 tabs will open in your browser:
- http://localhost:5173/ - for the document collection flow
- http://localhost:5137/ - for the backffice (It's recommended to have them positioned side-by-side).
KYB Manual Review Workflow:
The following command will run the workflow's backend (workflow service API), the backoffice, and UI example using the headless web SDK:
pnpm kyb-manual-review-example
<sub>If the tabs have not opened automatically, please use the links provided above.</sub>
Steps to go over the flow:
- On the KYC UI, click the "Start KYC" button
- Go through and complete the flow
- Go to the backoffice tab to review the new user that was created
- Approve/reject/ask to revision
- Get back to the KYC UI to see the result
*Note: some components are currently in beta, if you run into an issue please ping us on Slack <br/>
To start using the paid version or if you need any assistance, reach out to us at oss@ballerine.com. Join our Discord Channel and Slack Channel to stay updated and engage with our community.
Contributing
We appreciate all types of contributions and believe that an active community is the secret to a rich and stable oriduct. Here are some of the ways you can contribute:
- Give us feedback in our Slack community
- Help with bugs and features on our Issues page
- Submit a feature request or bug report
Roadmap
High level roadmap
Back office
-
View, approve, rejece pr ask for re-submittion-
individuals -
businesses (multiple documents and individuals) -
Custom documents/information - Transactions
-
-
Process managment-
Collect audit logs -
Assign/re-assign agents -
Decision results and reasons webhooks - Analytics
- Enforce policy rules on approval
- Show a case's acceptance criteria
-
Plugin system
-
Trigger a plugin using a workflow -
Create your own custom plugin API - Fetch information and pass to other parts
- Unified schema
-
Plugins-
Identity verification providers -
Business website's context -
AI multilingual names matching - Business data repositories
- Sanctions screening
- Fraud check
-
Workflow engine
-
Orchestrate all parts of the flow -
Visualize a workflow (using XState) - No code/Low code rules managmgnet UI for non technical team members
- A/B test different vendors/rules/flows
Rule engine
-
Rule-sets in workflows -
Simple rule types ("if this than that" rules) - Advance rule types (Matrix, tables, etc.)
-
JSON configuration ability - No code/Low code rules managmgnet UI for non technical team members
Frontend headless SDK
-
Get KYC/KYB steps from workflow -
Change steps dynamically during a flow - Load vendor SDK
User flows UX/UI
-
Mobile and desktop webview flow -
Collect images -
Collect selfies - Liveliness
- Forms
-
Re-submission flows...
We will soon release our full long-term roadmap to the public. Follow this project to stay informed about when we provide updates.
Contact Ballerine
To start using the paid version or if you need any assistance, reach out to us at oss@ballerine.com. Join our Discord Channel and Slack Channel to stay updated and engage with our community.