Skip to main content
PUT
Replace an entity's designated services
Replace the entity’s designated-service set with service_codes — the same operation as the in-app editor: the designated flag is derived, the entity’s risk rating is recomputed, classification stays in sync, and the change is audited. A designated service being added can upgrade kyb_status from NOT_REQUIRED to NOT_STARTED (due diligence becomes owed). No KYB is started and no credits are charged — your back-office team chooses the KYB method and starts verification in-app. An empty service_codes array is an explicit “no designated services”. The path {id} accepts our UUID or your external_id.

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 (550e8400-…) or your own external_id.

Body

application/json
service_codes
string[]
required

The specific designated service(s) provided to the customer, as stable catalog codes. An empty array is an explicit "no designated services". Unknown or non-designated codes are rejected with 422 validation_failed.

The catalog is also available programmatically via GET /designated-services.

Professional services

Real estate

Financial services

Other designated services

Maximum array length: 64
Maximum string length: 64
Example:

Response

Updated entity record. designated_services is the complete normalized set now assigned to the entity.

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
designated_services
string[]
required

The specific designated service(s) provided to the customer, as stable catalog codes. An empty array is an explicit "no designated services". Unknown or non-designated codes are rejected with 422 validation_failed.

The catalog is also available programmatically via GET /designated-services.

Professional services

Real estate

Financial services

Other designated services

Maximum array length: 64
Maximum string length: 64
Example:
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.