Skip to main content
A sub-client is a customer that has its own customers grouped underneath it. Use sub-clients when one of your customers is itself a business that onboards or serves its own end customers — for example a partner, reseller, or sub-developer building on top of your integration.

What is a sub-client?

Dakota organizes accounts in a three-level hierarchy:
A sub-client is a real customer record: it completes the same KYB onboarding as any other business customer (see Customer Onboarding). The only difference is that other customers can be associated with it.
Because of their role, sub-clients are typically subject to enhanced due diligence (EDD) during compliance review. This may extend the time and documentation required to approve a sub-client compared to a regular business customer.

Rules & constraints

  • A sub-client must be a business customer (customer_type: "business"). Individuals cannot be sub-clients.
  • The sub-client designation is set at creation only and is immutable — a regular customer cannot be promoted to a sub-client later, and a sub-client cannot be demoted.
  • is_sub_client and sub_client_id are mutually exclusive on a single POST /customers request — a customer is either a sub-client or a customer of a sub-client, never both.
  • A sub_client_id must reference a customer that belongs to your client and is itself a sub-client.
  • The hierarchy is one level deep — a customer of a sub-client cannot itself be a sub-client.

Step 1: Create a sub-client

Create the sub-client like any business customer, with is_sub_client: true.
cURL
JavaScript
Python
Go
Response:
The sub-client now onboards exactly like any other business customer: redirect it to the returned application_url (or build a custom flow) and monitor its kyb_status. See Customer Onboarding for the full flow and KYB status values.
Keep the returned id (2ABCrqBHb3cTfLVkFSGmHZqdXYZ above) — this is the sub-client’s customer ID, which you’ll pass as sub_client_id when adding customers to it.

Step 2: Add a customer to the sub-client

Create a customer as usual, but set sub_client_id to the sub-client’s ID. The customer can be a business or individual.
cURL
JavaScript
Python
Go
This customer onboards through the standard flow. The association is fixed at creation — there is no endpoint to move a customer between sub-clients afterward.
The legacy PATCH /customers/{customer_id}/sub-client endpoint is deprecated and non-functional — it now rejects all requests with 400. Set sub_client_id on POST /customers instead.

Step 3: View sub-clients and their customers

Every customer record now carries three sub-client fields:

List all your sub-clients

cURL

List the customers of a sub-client

Filter the customer list by sub_client_id to return only the customers associated with that sub-client.
cURL

Get a sub-client summary

GET /customers/sub-client-summary returns every sub-client along with the number of customers associated with it — useful for dashboards and reporting.
cURL
Response:

Next Steps

  1. Customer Onboarding — the KYB flow every sub-client and customer completes
  2. Webhook Integration — track KYB status changes for sub-clients and their customers
  3. Testing — exercise sub-client creation in sandbox

API Reference