Get KYC status
Gets the customer's KYC status at the provider. It is not the Stabo platform KYC status.
providerCustomerIdcan be empty whileSUBMITTED. It is returned afterAPPROVED. You need it to open an account.failureReasonis returned only whenREJECTED.
bearerAuthAuthorizationBearer <token>The access_token obtained from POST /oauth2/token. Header format: Authorization: Bearer {accessToken}.
customerUid*stringUID that the caller defines for the customer. Submitting KYB creates it at the provider.
X-Channel-Provider*stringProvider identifier. Provider KYC supports only LEGEND now.
The KYC status.
application/json- response
code?integerBusiness status code
message?stringtraceId?stringRequest trace ID. Provide it when you contact technical support
data?The customer's KYC status at the provider. Shared by the query response and data.object of the provider.kyc.* Webhooks.
curl -X GET 'https://api.test.stabofx.com/openapi/v1/customers/provider-kyc?customerUid=cust_example_001' \ -H 'X-Channel-Provider: LEGEND'{ "code": 200, "message": "OK", "traceId": "trace-uuid-string", "data": { "customerUid": "cust_example_001", "providerCustomerId": "usr_xxx", "status": "APPROVED" }}Get KYC requirements GET
Returns the countries, options, and file requirements to submit the customer's entity KYC (KYB) to the provider. - `label` follows the request language and is for display only. Submit the `code`. - Without `customerUid`, `options` has 8 keys. - `options["documents[].category"]` lists reference values for the file category. It is not a complete list. Other values go to the provider unchanged, and the provider decides. - With `customerUid`, a customer that has a profile at the provider also gets `questionnaire.purposes`. For a new customer, the result has no `questionnaire.purposes`. - On the first submission of a new customer, `questionnaire.purposes` can use the reference values `invest_trade` and `crypto_fiat`. This is not a complete list. The provider checks the values. - The first call takes about 10 seconds. Later calls hit the cache and are faster. Set the client timeout to at least 60 seconds. For the full flow, see [Provider KYC and account opening](/en/docs/guide/provider-kyc).
Submit KYB POST
Submits or resubmits the customer's entity KYC to the provider. The first submission creates the customer at the provider. The request is `multipart/form-data`. The `data` part is the JSON data. Each other part is one file, and its part name equals a `documents[].clientFileId`. File parts and `clientFileId` values must match one to one. - If the provider already accepted a submission (`SUBMITTED` or `APPROVED`), the current status is returned. No data is written and there is no `submittedAt`. - `Idempotency-Key` is required. It links the request for audit. After a timeout, retry with the same data and the original key. - Depending on the number of files, the request can take more than 30 seconds. Set the client timeout to at least 60 seconds. - Stabo runs only the minimum checks to build the provider request and keep it safe: required fields are not empty, `data` has no unknown fields, `personId` and `clientFileId` do not repeat, file parts match, one file is at most 2 MB, and the file header is PDF, PNG, or JPEG. - The provider decides field formats, values, the number of persons per role, required files, and other rules. A failure returns `openapi.channel.rejected`. Lengths and values in the field descriptions are provider rules, checked by the provider. For a full example, see [Provider KYC and account opening](/en/docs/guide/provider-kyc#submit-kyb).