Dots Flows

Onboard your users, let them manage their payout accounts and preferences, and then pay them out when needed.

Flow Steps

Authentication and Onboarding

The authentication and onboarding step are automatically added to the start of your flow when a user_id is not provided in the API call. When this step is complete, a user_id is added to the flow object.


Adding the compliance step to your flow will force the collection of a user’s SSN, date of birth, and address if based in the US. Otherwise, the compliance step will be added automatically based on local tax laws.

ID Verification

Adding the id-verification step to your flow will force the collection and verification of user’s government-issued ID and matching of their facial scan to that ID.

Background Check

Adding the background-check step to your flow will force the collection of a user’s SSN, date of birth, and address to run a background check. If background check fails it will trigger an email notification to the app and user.has_criminal_activity would be true.

Payment Method Management

The manage-payments lets a user connect their US bank account for payments to your app.

Payout Method Management

The manage-payouts lets a user connect their desired payout methods to Dots and choose a default method. You can optionally hide the continue button on the flow UI so the user stays on this step, useful for embedded iframe application:

  "name": "manage-payouts",
  "hide_continue_button": true


The payout step lets the user withdraw their funds to their preferred payout method.


The redirect step lets you redirect the user to a URL of your choice. The redirect step looks like:

  "name": "redirect",
  "redirect_url": ""

Example Flow

This example flow onboards a user, collects compliance information, and then lets them manage their payment methods.

> curl \
-H "Content-Type: application/json" \
-d '{
      "steps": ["compliance", "manage-payouts"],

> response = {
    "id": "5f0f8f8f-f8f8-f8f8-f8f8-f8f8f8f8f8f8",
    "created": "2020-12-09T00:40:51.107Z",
    "updated": "2020-12-09T00:40:51.107Z",
    "user_id": null,
    "steps": ["compliance", "manage-payouts"],
    "completed_steps": [],
    "payout_link_id": null,
    "link": "",

A webhook is sent to your app on completion of every step of the flow.