Skip to main content
A KYB case is the container for one merchant’s verification. You create it with an external_id (your identifier for the merchant) and receive a public_id to embed in the widget flow. Optionally, you can pre-fill form fields you already know so the merchant does not re-enter them.

Create a case

POST /api/v4/kyb/cases — authenticated with your API key. The backend creates (or reuses) the business applicant bound to external_id and returns the public_id.
Response:
If the merchant already has an in-flight case (draft / action_required), that existing case is returned with 200 instead of creating a new one — so the call is safe to retry.

Pre-fill form fields

Pass an optional fields object to pre-populate the widget. It is grouped by section, then by field key:
Keys must match the catalog. Unknown sections or fields are ignored, so a typo never fails the request — it is simply skipped. The example below pre-fills one field from each section to show the shape:
fields accepts scalar values only (string, number, boolean) — one value per field key. Fields are flat within a section; there is no nested object.
  • Addresses are flat sub-fields, not a nested object — e.g. reg_address_street, reg_address_city, reg_address_state, reg_address_postal, reg_address_country.
  • Beneficial owners and documents are not part of fields — they are managed through their own widget endpoints, not pre-fill.

Field keys by section

The pre-fillable field keys, grouped by section.