PaymentProvider KYC

Get KYC status

GET
/openapi/v1/customers/provider-kyc

Gets the customer's KYC status at the provider. It is not the Stabo platform KYC status.

  • providerCustomerId can be empty while SUBMITTED. It is returned after APPROVED. You need it to open an account.
  • failureReason is returned only when REJECTED.

Authorization

bearerAuth
headerAuthorizationBearer <token>

The access_token obtained from POST /oauth2/token. Header format: Authorization: Bearer {accessToken}.

Query Parameters

customerUid*string

UID that the caller defines for the customer. Submitting KYB creates it at the provider.

Header Parameters

X-Channel-Provider*string

Provider identifier. Provider KYC supports only LEGEND now.

Response Body

The KYC status.

application/json
  1. response
code?integer

Business status code

message?string
traceId?string

Request 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.

Example Request
curl -X GET 'https://api.test.stabofx.com/openapi/v1/customers/provider-kyc?customerUid=cust_example_001' \  -H 'X-Channel-Provider: LEGEND'
Example Response
{  "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).