Create Customer
Create a new customer
X-Api-Key<token>API key in format: sti_env_prefix_secret
idempotency-key*stringRequired for mutating calls. Use a V4 UUID. The server stores the first result for 24h and returns it on subsequent retries with the same key.
^([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)$uuidapplication/json- body
Individual
external_customer_id?stringExternal customer ID
customer_type*stringemail?stringEmail address
^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$emailphone?stringPhone number
^\+[1-9]\d{6,14}$e164entitlements?array<>Feature-based entitlements for the customer
[]metadata?Additional metadata
first_name?stringFirst name of the applicant
last_name?stringLast name of the applicant
middle_name?stringMiddle name of the applicant
dob?stringDate of birth in YYYY-MM-DD format
^\d{4}-\d{2}-\d{2}$nationality?stringCountry code
tax_id_number?stringTax Identification Number (TIN)
address?Address information
proof_of_address_documents?array<>Proof of address documents (PDF, JPEG, PNG or HEIC, up to 5MB each). Held by Stables and reviewed by compliance; satisfies the proof_of_address capability once approved.
source_of_wealth_documents?array<>Documents evidencing the customer's source of wealth (PDF, JPEG, PNG or HEIC, up to 5MB each). Held by Stables and reviewed by compliance; satisfies the source_of_wealth capability once approved.
id_documents?array<>Documents of the applicant
selfie_photo?Selfie photo of the applicant
reason_for_use?stringCustomer's self-declared intended use of the service. Held by Stables and reviewed by compliance; grants the reason_for_use capability once approved.
age_risk_acknowledged?booleanCustomer acknowledges age-related vulnerability and the risks of transacting in crypto. Held by Stables and reviewed by compliance; grants the age_risk_acknowledgement capability once approved.
financial_profile?Self-declared financial profile. Required for the usd_virtual_account entitlement, whose provider treats expected monthly payment volume as mandatory.
account_purpose?stringWhat the customer will use Stables for. Held by Stables; grants the account_purpose capability with base verification (straight away once it is approved).
"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 explanation when account_purpose is OTHER
1 <= lengthexpected_monthly_volume?stringExpected monthly volume in USD, as a band: 0_9999 (under $10,000), 10000_49999, 50000_99999, 100000_249999, 250000_999999, 1000000_plus ($1,000,000+). Held by Stables; grants the expected_monthly_volume capability with base verification (straight away once it is approved).
"0_9999""10000_49999""50000_99999""100000_249999""250000_999999""1000000_plus"occupation?stringThe customer's occupation as a standardised code (SOC 2018 based), e.g. 132011 for accountant and auditor. Must be one of the accepted codes. Held by Stables; grants the occupation_code capability with base verification (straight away once it is approved).
annual_income?stringAnnual income in USD, as a band: 0_24999 (under $25,000), 25000_49999, 50000_99999, 100000_249999, 250000_499999, 500000_999999, 1000000_plus ($1,000,000+). Held by Stables; grants the annual_income capability with base verification (straight away once it is approved).
"0_24999""25000_49999""50000_99999""100000_249999""250000_499999""500000_999999""1000000_plus"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 POST 'https://api.sandbox.stables.money/api/v1/customer' \ -H 'idempotency-key: 497f6eca-6276-4993-bfeb-53cbbbba6f08' \ -H 'Content-Type: application/json' \ -d '{ "customer_type": "individual"}'{ "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}