Skip to main content
POST
Start an entity's KYB verification
Start business verification (KYB) for an entity — the same lane flows the app runs, selected by method. Unlike ingest, the emailing lanes spend credits (or bill the customer), so this needs the separate verification:write scope.

Lanes

  • automated (default, “org-led”) — emails the entity’s contact a secure link to upload the entity document, which you then review. Charges. Returns the link as verification_link.
  • contact_led — emails the contact to complete the whole flow themselves. Charges. Requires the kyb_extra_methods feature — otherwise you get 403 feature_disabled.
  • manual — arms the record for an officer to collect/upload the document (company), or to manage a trust/partnership by hand. No charge, no email.
Trust and partnership entities support only manual — they have no emailing lane.

Who pays

payer is optional and works exactly as for KYC: omit to honour the entity record’s default, or set payer: customer to arm payment-pending and email the pay link. Manual lanes never charge, so payer has no effect there.

Errors worth handling

  • 402 insufficient_credits — no credits for an org-paid emailing lane; nothing armed or charged.
  • 403 feature_disabled — contact_led requested while the feature is off for your org.
  • 409 conflict — a verification has already been started for this entity.
  • 422 validation_failed — a precondition is missing (e.g. no contact person with an email for an emailing lane).
Include an Idempotency-Key header so a retried start is not run twice.

Authorizations

Authorization
string
header
required

Bearer API key issued from Settings → Developers in your Instant Compliance organisation. Format: ic_live_….

Headers

Idempotency-Key
string

Caller-supplied unique key for safe retries. Repeat the same key within 24 hours and we replay the original response instead of repeating the side effect. Reusing the key with a different request body returns 409 idempotency_conflict.

Maximum string length: 255

Path Parameters

id
string
required

Entity identifier. Accepts either Instant Compliance's UUID or your own external_id.

Body

application/json

Options for starting an entity's KYB. All fields optional.

method
enum<string>
default:automated

automated (org-led) and contact_led email the contact and charge; manual arms for officer upload / trust-partnership handling and does not charge. Trust and partnership entities support only manual.

Available options:
automated,
contact_led,
manual
payer
enum<string>

Who pays for the check. Omit to honour the customer record's own billing default. customer arms the check payment-pending and emails a pay link — the customer pays by card at the portal.

Available options:
organization,
customer
customMessage
string

Optional note included in the verification email.

Maximum string length: 2000
eddCheckTypes
enum<string>[]

Optional enhanced due-diligence add-ons (emailing lanes).

An enhanced due-diligence add-on check.

Available options:
SOURCE_OF_FUNDS,
SOURCE_OF_WEALTH,
BIOMETRIC_VERIFICATION

Response

The entity record after arming, plus verification_link when a portal link was generated (the emailing lanes).

id
string<uuid>
required

Instant Compliance customer UUID (entities are customers too).

type
enum<string>
required

Entity customer types accepted by /entities. SMSF is treated as a type of trust and OTHER as a company for verification purposes, but the type you post round-trips back unchanged. Immutable after creation.

Available options:
COMPANY,
TRUST,
PARTNERSHIP,
SMSF,
OTHER
name
string
required

The entity's legal name.

origin
enum<string>
required

Where the entity is formed. AUSTRALIAN (the default) uses ABN/ACN identifiers; INTERNATIONAL uses countryOfFormation + registrationNumber. Immutable after creation.

Available options:
AUSTRALIAN,
INTERNATIONAL
kyb_status
enum<string>
required
Available options:
NOT_STARTED,
PENDING,
IN_PROGRESS,
VERIFIED,
FAILED,
NOT_REQUIRED,
AWAITING_RESUBMISSION
aml
object
required
added_via
enum<string>
required

How the record entered Instant Compliance.

Available options:
ADMIN_MANUAL,
AI_EXTRACTED,
CONTACT_PORTAL,
BULK_IMPORT,
INTEGRATION,
SYSTEM
created_at
string<date-time>
required
updated_at
string<date-time>
required
external_id
string | null
abn
string | null
acn
string | null
country_of_formation
string | null

ISO 3166-1 alpha-3. AUS for Australian entities; the country of formation for international entities.

registration_number
string | null

Registry number recorded for international entities.

kyb_started_at
string<date-time> | null
kyb_completed_at
string<date-time> | null
contact
object | null

The entity's current contact person, or null when none is set.

Shareable portal link (emailing lanes only).