/ballerine

Open-source infrastructure and data orchestration platform for risk decisioning

Primary LanguageTypeScriptOtherNOASSERTION

Alt Text
Ballerine's website

Open-Source Infrastructure for User Risk Decisioning


Slack ยท Website ยท Contact ยท Issues

PRs Welcome GitHub release GitHub Workflow Status GitHub Workflow Status

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.


Alt Text

Our vision for this project

Watch a brief video explaining what we're building.

Watch now


Demo video

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

  1. Document collection flow controlled by our Headless SDK.
  2. A manual review case management Back Office.
  3. Live communication between the parts using a Workflow Engine, that also defines the process steps.
  4. 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:

Demo example video

Watch a video of how the demo works, with explanations: Watch now


Demo video

Getting started

To set up a local environment, follow these steps:

  1. Install prerequisites:

  2. Clone and install the project:

    1. Clone the project:
    git clone https://github.com/ballerine-io/ballerine.git
    1. Install npm depenencies:
    pnpm install
    1. Initilazie monorepo:
    pnpm monorepo:init
  3. Run the example

    pnpm kyc-manual-review-example

Once the process is complete, 2 tabs will open in your browser:

  1. http://localhost:5173/ - for the document collection flow
  2. 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

If the tabs have not opened automatically, please use the links provided above.

Steps to go over the flow:

  1. On the KYC UI, click the "Start KYC" button
  2. Go through and complete the flow
  3. Go to the backoffice tab to review the new user that was created
  4. Approve/reject/ask to revision
  5. 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

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:

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.