Get Customer

GET
/api/v1/customers/{customerId}

Get customer details by ID including KYC status, optionally expanded with verification profile and document image data

Authorization

headerX-Api-Key<token>

API key in format: sti_env_prefix_secret

Path Parameters

customerId*string

Customer UUID

Match^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Formatuuid

Query Parameters

include?string|array<string>

Response Body

Default Response

application/json
  1. response
customer_id*CustomerId

Customer UUID

Match^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Formatuuid
external_customer_id*string|null
customer_type*string

Type of customer in display format

Value in"individual""business"
email*string

Customer email

phone?string

Phone number in E.164 format (e.g., +14155552671)

Match^\+[1-9]\d{6,14}$
Formate164
entitlements?array<>

Feature-based entitlements for the customer with status

first_name?string

First name (for individuals)

last_name?string

Last name (for individuals)

company_name?string

Company name (for businesses)

created_at*string
Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
Formatdate-time
updated_at*string
Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
Formatdate-time
metadata?
verification_levels*array<>

All KYC level records for this customer

doc_images?

Verification document image data, returned when requested via include

age_risk_questionnaire?

Age-risk step-up questionnaire answers, present once the customer has completed the step-up

account_purpose?string

An individual's account purpose, present once given

Value in"PERSONAL_OR_LIVING_EXPENSES""RECEIVE_SALARY""PAYMENTS_TO_FRIENDS_OR_FAMILY_ABROAD""PURCHASE_GOODS_AND_SERVICES""RECEIVE_PAYMENTS_FOR_GOODS_AND_SERVICES""INVESTMENT_PURPOSES""PROTECT_WEALTH""CHARITABLE_DONATIONS""OTHER"
account_purpose_other?string

Free-text account purpose, when account_purpose is OTHER

expected_monthly_volume?string

An individual's expected monthly volume band, present once given

Value in"0_9999""10000_49999""50000_99999""100000_249999""250000_999999""1000000_plus"
occupation?string

An individual's occupation code (SOC 2018 based), present once given

occupation_title?string

Readable title of occupation, present with it

annual_income?string

An individual's annual income band, present once given

Value in"0_24999""25000_49999""50000_99999""100000_249999""250000_499999""500000_999999""1000000_plus"
status?string

Customer compliance status

compliance_lock?

Active compliance lock details, present when customer is locked

[key: string]?unknown
Example Request
curl -X GET 'https://api.sandbox.stables.money/api/v1/customers/497f6eca-6276-4993-bfeb-53cbbbba6f08'
Example Response
{  "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",  "external_customer_id": "string",  "customer_type": "individual",  "email": "string",  "phone": "string",  "entitlements": [    {      "name": "string",      "status": "pending",      "phase": "requires_action",      "requirements": {        "submitted": [          "string"        ],        "missing": [          "string"        ],        "issues": [          "string"        ],        "actions": [          {            "type": "verification_link",            "requirement": "string",            "verification_type": "proof_of_address",            "url": "http://example.com",            "expires_at": "2019-08-24T14:15:22Z"          }        ],        "review": {          "status": "pending",          "reason": "string",          "decided_at": "2019-08-24T14:15:22Z",          "version": -9007199254740991        },        "parties": [          {            "ref": "string",            "display_name": "string",            "category": "string",            "is_individual": true,            "has_identity": true,            "has_tax_id": true,            "has_proof_of_address": true          }        ],        "submission": {          "state": "none",          "version": -9007199254740991,          "updated_at": "2019-08-24T14:15:22Z",          "submitted_at": "2019-08-24T14:15:22Z"        }      },      "onboarding": {        "stage": "verification_required",        "next_action": "complete_verification",        "reasons": [          {            "code": "string",            "resolution": "requirements"          }        ],        "since": "2019-08-24T14:15:22Z",        "expected_wait": "minutes"      }    }  ],  "first_name": "string",  "last_name": "string",  "company_name": "string",  "created_at": "2019-08-24T14:15:22Z",  "updated_at": "2019-08-24T14:15:22Z",  "metadata": {    "property1": "string",    "property2": "string"  },  "verification_levels": [    {      "level": "kyc_level_0",      "status": "in_progress",      "sub_status": [        "BAD_PROOF_OF_IDENTITY"      ],      "stage": "collecting",      "submitted_at": "2019-08-24T14:15:22Z",      "missing_fields": [        "string"      ],      "missing_field_details": [        {          "field": "string",          "request_path": "string",          "description": "string"        }      ],      "in_review": true,      "details": [        {          "reasons": [            {              "code": "string",              "description": "string"            }          ],          "requirements": [            "string"          ]        }      ],      "review": {        "labels": [          {            "label": "string",            "description": "string",            "step": "string",            "reason_code": "string",            "requirements": [              "string"            ]          }        ],        "moderation_comment": "string",        "reviewed_at": "2019-08-24T14:15:22Z"      }    }  ],  "doc_images": {    "documents": [      {        "type": "string",        "country": "string",        "document_number": "string",        "expiry_date": "string",        "front_image_data": "string",        "back_image_data": "string",        "image_data": "string",        "outcome": "string"      }    ],    "selfie_image_data": "string"  },  "age_risk_questionnaire": {    "reason_for_use": "string",    "age_acknowledged": true  },  "account_purpose": "PERSONAL_OR_LIVING_EXPENSES",  "account_purpose_other": "string",  "expected_monthly_volume": "0_9999",  "occupation": "string",  "occupation_title": "string",  "annual_income": "0_24999",  "status": "string",  "compliance_lock": {    "locked_at": "2019-08-24T14:15:22Z",    "locked_by_user_id": "string",    "locked_by_user_name": "string",    "locked_by_user_email": "string",    "lock_reason": "string"  },  "property1": null,  "property2": null}

Query Parameters

ParameterTypeDescription
includestringExpand the response. One or more of verification-profile (normalized KYC/KYB data, flattened onto the response), doc-images (submitted document images), or all. Accepts a comma-separated list or repeated include keys. Optional.

include returns a larger, slower response. Only use it when you need to sync your customer's verification data — for a routine status check, call this endpoint without include.