Skip to main content
PUT
Replace a customer's designated services
Replace the customer’s designated-service set with service_codes — the same operation as the in-app “Designated services” editor, with all of its consequences: the designated flag is derived, the customer’s risk rating is recomputed, the AML/CTF classification stays in sync, and the change is audited. A designated service being added can upgrade kyc_status from NOT_REQUIRED to NOT_STARTED (due diligence becomes owed). No verification is started and no credits are charged — your back-office team triggers KYC 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

Customer 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 customer record. designated_services is the complete normalized set now assigned to the customer.

id
string<uuid>
required

Instant Compliance customer UUID.

type
enum<string>
required

Individual customer types — /customers only ingests these. Entity customers (companies, trusts, partnerships, SMSFs) live on /entities with their own EntityType.

Available options:
INDIVIDUAL,
SOLE_TRADER
full_name
string
required
kyc_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
email
string<email> | null
kyc_started_at
string<date-time> | null
kyc_completed_at
string<date-time> | null
identity
object | null

Populated only when kyc_status = VERIFIED. Deliberately minimal — full date of birth and full address are never exposed.