Skip to main content
POST
Create a KYB/KYC application

Authorizations

Authorization
string
header
required

Enter Auth0 JWT token

Headers

Zuba-Account-Id
string

Optional. Names an owned sub-account (UUID) to act on. Omit to act on the account the API key resolves to (self). A non-owned id returns 403.

Body

application/json
applicant
object
required
applicationType
enum<string>
required
Available options:
business,
individual
businessActivity
object
businessInfo
object
documents
object[]

Accepted but ignored on create; upload documents via the /documents endpoints after the application exists.

hasIndirectControl
boolean

Whether anyone controls the business other than through the declared persons. Send it together with indirectControlDetails when true, unless the application already records them.

indirectControlDetails
string | null

Describes the indirect control when hasIndirectControl is true, and is required with it. Cleared whenever hasIndirectControl is false, and null clears it under any answer. An unexplained yes tells a reviewer control exists and gives them nothing to assess, so the requirement is judged on the application as it stands after the write.

individualActivity
object
persona
enum<string>
Available options:
sme,
large_corp,
licensed_fi
persons
object[]

Create-time sugar only. Decomposed to one per-person create. After creation, manage persons via the /persons sub-resource.

Response

accountId
string<uuid>
required

The account this application belongs to (self or sub-account).

applicationType
enum<string>
required
Available options:
business,
individual
createdAt
string<date-time>
required
id
string<uuid>
required
status
enum<string>
required
Available options:
draft,
under_review,
approved,
more_info_requested,
rejected
editableSections
string[]

When status is more_info_requested, the sections you may edit and resubmit. applicant / businessInfo / businessActivity / individualActivity are edited via PATCH; persons via the /persons sub-resource (and covers that person’s own documents); documents is company-level documents via the /documents sub-resource. Empty otherwise.

moreInfoReason
string

When status is more_info_requested, the reviewer’s notes describing what needs to change. Null otherwise.

registeredName
string

The name the company is registered under, so a directory can label an application without reading the full record.

riskLevel
enum<string>
Available options:
low,
medium,
high,
prohibited
screeningStatus
enum<string>
Available options:
pending,
in_progress,
clear,
flagged,
failed,
timed_out