Skip to main content
GET
Get KYC

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

X-MultiTenantKey
string

Required when using a Platform API token. The tenant key identifying which business to operate on.

Path Parameters

userId
string<uuid>
required

The unique identifier for the user

Response

get user kyc response

idDetails
object
identity
enum<string>

kyc status

Available options:
not started,
processing,
pending,
approved,
rejected
Example:

"approved"

address
enum<string>

kyc status

Available options:
not started,
processing,
pending,
approved,
rejected
Example:

"approved"

identityDocumentStatus
enum<string>

Where the user's identity document sits in its expiry window. valid is an approved document that is not near expiry, and is also what a successful renewal restores. about-to-expire means it expires in 14 to 60 days. in-grace-period means it has expired but is still inside the 60-day grace period, so identity stays approved; a grace-period extension granted by Cadana also lands here. out-of-grace means the grace period has run out, and identity is rejected by then — this is the stage the user.kyc.expiry webhook reports as expired. The field is omitted entirely until the identity is approved. Renewal via POST /v1/users/{userId}/kyc/renewal is accepted from about-to-expire onwards.

Available options:
valid,
about-to-expire,
in-grace-period,
out-of-grace
Example:

"about-to-expire"

firstName
string

Person's first name on ID

Example:

"John"

lastName
string

Person's last name on ID

Example:

"Doe"

dob
string

Person's date of birth on ID, as YYYY-MM-DD. Empty when no date of birth has been captured.

Example:

"1990-01-15"

userAddress
object

The address on file for the user. Distinct from address, which is the verification status of that address. Fields are empty strings until an address has been submitted.

createdTimestamp
string

A timestamp on the KYC record, formatted as YYYY-MM-DD HH:MM:SS +0000 UTC — always UTC, and not RFC 3339. An empty string means the event has not happened yet (for example, an address that has never been submitted).

Example:

"2026-07-17 00:49:40 +0000 UTC"

lastUpdatedTimestamp
string

A timestamp on the KYC record, formatted as YYYY-MM-DD HH:MM:SS +0000 UTC — always UTC, and not RFC 3339. An empty string means the event has not happened yet (for example, an address that has never been submitted).

Example:

"2026-07-17 00:49:40 +0000 UTC"

lastIdentitySubmissionDate
string

A timestamp on the KYC record, formatted as YYYY-MM-DD HH:MM:SS +0000 UTC — always UTC, and not RFC 3339. An empty string means the event has not happened yet (for example, an address that has never been submitted).

Example:

"2026-07-17 00:49:40 +0000 UTC"

lastIdentityStatusUpdate
string

A timestamp on the KYC record, formatted as YYYY-MM-DD HH:MM:SS +0000 UTC — always UTC, and not RFC 3339. An empty string means the event has not happened yet (for example, an address that has never been submitted).

Example:

"2026-07-17 00:49:40 +0000 UTC"

lastAddressSubmissionDate
string

A timestamp on the KYC record, formatted as YYYY-MM-DD HH:MM:SS +0000 UTC — always UTC, and not RFC 3339. An empty string means the event has not happened yet (for example, an address that has never been submitted).

Example:

"2026-07-17 00:49:40 +0000 UTC"

lastAddressStatusUpdate
string

A timestamp on the KYC record, formatted as YYYY-MM-DD HH:MM:SS +0000 UTC — always UTC, and not RFC 3339. An empty string means the event has not happened yet (for example, an address that has never been submitted).

Example:

"2026-07-17 00:49:40 +0000 UTC"