Get Customer
Get customer details by ID including KYC status, optionally expanded with verification profile and document image data
X-Api-Key<token>API key in format: sti_env_prefix_secret
customerId*stringCustomer UUID
^([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)$uuidinclude?string|array<string>Default Response
application/json- response
customer_id*CustomerIdCustomer UUID
^([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)$uuidexternal_customer_id*string|nullcustomer_type*stringType of customer in display format
"individual""business"email*stringCustomer email
phone?stringPhone number in E.164 format (e.g., +14155552671)
^\+[1-9]\d{6,14}$e164entitlements?array<>Feature-based entitlements for the customer with status
first_name?stringFirst name (for individuals)
last_name?stringLast name (for individuals)
company_name?stringCompany name (for businesses)
created_at*string^(?:(?:\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))$date-timeupdated_at*string^(?:(?:\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))$date-timemetadata?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?stringAn individual's account purpose, present once given
"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?stringFree-text account purpose, when account_purpose is OTHER
expected_monthly_volume?stringAn individual's expected monthly volume band, present once given
"0_9999""10000_49999""50000_99999""100000_249999""250000_999999""1000000_plus"occupation?stringAn individual's occupation code (SOC 2018 based), present once given
occupation_title?stringReadable title of occupation, present with it
annual_income?stringAn individual's annual income band, present once given
"0_24999""25000_49999""50000_99999""100000_249999""250000_499999""500000_999999""1000000_plus"status?stringCustomer compliance status
compliance_lock?Active compliance lock details, present when customer is locked
[key: string]?unknowncurl -X GET 'https://api.sandbox.stables.money/api/v1/customers/497f6eca-6276-4993-bfeb-53cbbbba6f08'{ "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
| Parameter | Type | Description |
|---|---|---|
include | string | Expand 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.