Skip to main content
GET
Get a customer

Authorizations

Authorization
string
header
required

Stablepay API key. Include as Authorization: Bearer <key>.

Path Parameters

customerId
string
required

The customer's cus_ ID or your own externalId.

Query Parameters

refresh
boolean

When true, fetches the live status, verified identity and the current verificationUrl for resubmittable statuses.

Response

Customer found.

id
string
required

Prefixed ULID for this customer.

Example:

"cus_01KXG3R0X8DXTKB849FFFEPT7Y"

externalId
string
required
Example:

"user001"

type
enum<string>
required
Available options:
individual,
business
kycStatus
string
required

One of none, pending, in_progress, review, approved, declined, soft_declined, expired, abandoned.

Example:

"approved"

kycAttempts
integer
required
Example:

1

createdAt
string<date-time>
required
updatedAt
string<date-time>
required
countryCode
string | null
Example:

"KE"

riskLevel
string | null
metadata
object | null
verifiedAt
string<date-time> | null
verificationUrl
string | null

Current hosted verification URL. Returned with refresh=true for resubmittable statuses (pending, in_progress, soft_declined); omitted otherwise.

Example:

"https://verify.didit.me/session/XXXX"

identity
object | null

The verified identity. Returned only with refresh=true.

reviewWarnings
object[] | null

Reasons why the customer isn't approved. This is surfaced to show your end-user why verification is stuck, declined, or needs action. Omitted when the customer is approved or in_progress. Returned with refresh=true, and also on the customer.kyc.updated webhook.

Example: