Update a customer
Partial update of a record you have ingested. Identity fields
(fullName, email) are frozen once the customer has been verified
— attempting to change them returns 422 validation_failed.
What you can update
| Field | Editable after VERIFIED? |
|---|---|
fullName | No — identity fields freeze on verification. |
email | No — identity fields freeze on verification. |
phone | Yes |
risk.* | Yes |
fullName or email after kyc_status becomes
VERIFIED returns 422 validation_failed. This is by design — once
the document-verified identity is captured, it must not silently drift.
Idempotency
LikePOST, supports Idempotency-Key for safe retries.
What you cannot update
The API will not let you change:type(re-ingest with the correct type instead)external_id(treated as immutable once set)- Any KYC / AML status field (those move via the verification flow, not the integration API)
Authorizations
Bearer API key issued from Settings → Developers in your
Instant Compliance organisation. Format: ic_live_….
Headers
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.
255Path Parameters
Customer identifier. Accepts either Instant Compliance's UUID
(550e8400-…) or your own external_id.
Body
Response
Updated customer record.
Instant Compliance customer UUID.
v1 only ingests individuals. Entity types ship in v2.
INDIVIDUAL, SOLE_TRADER NOT_STARTED, PENDING, IN_PROGRESS, VERIFIED, FAILED, NOT_REQUIRED, AWAITING_RESUBMISSION How the record entered Instant Compliance.
ADMIN_MANUAL, AI_EXTRACTED, CONTACT_PORTAL, BULK_IMPORT, INTEGRATION, SYSTEM Populated only when kyc_status = VERIFIED. Deliberately minimal —
full date of birth and full address are never exposed.

