Skip to main content

📄 Guide

Whether you are an exchange, a wallet or a platform, you can check the progress of a KYC application at any time after submitting it — its current status, whether the user still needs to be guided through face verification, and the exact reason if it was rejected — so that you can track each user’s card eligibility in your own system in real time. As a licensed card issuer, DCS has KYC outcomes reviewed jointly by its compliance team and external vendors. You initiate the query; DCS returns the current snapshot of that KYC ticket.
This page queries the progress of one particular verification (a ticket). If you want the current KYC summary for a user — including whether their data has expired and needs redoing — that is a different endpoint: see Query a user’s KYC information. Both are called “querying KYC” and are easily confused.

Prerequisites

  • You hold the Enterprise ApiKey / SecretKey. If you have not received them yet, see First steps.
  • You have already submitted a KYC application. If not, complete Apply for KYC first.

Steps

  1. Have the ticket identifier ready: either the kycTicketId returned when you applied for KYC, or the idempotency key kycTicketRef you supplied at that time (your side).
  2. Build the request headers as described in Authentication and call the query endpoint (you → DCS).
  3. Read the current status from data.status in the response and act on it as follows (your side):
    • NEED_VERIFY: guide the user through face verification, see H5 KYC guide page;
    • PASSED: you can move on to card issuance;
    • REJECTED: read errorCode / errorMessage to determine the reason and, where appropriate, guide the user to resubmit.

Query KYC details

GET /open-api/kyc-ticket/v1/detail

Query parameters

Supply at least one of kycTicketId and kycTicketRef to locate the ticket; kycTicketId is preferred.

Request example

For how to build the full set of authentication headers (X-DAPI-API-KEY / X-DAPI-TIMESTAMP / X-DAPI-NONCE / X-DAPI-SIGN, together with Content-Type: application/json), see Authentication.

Response example

When the ticket is rejected, data additionally carries errorCode / errorMessage:
The errorCode above is illustrative; for the full set of values and their meanings see KYC reject codes.

data fields

KYC ticket status machine

About rejection reasons: when the status is REJECTED, the response data carries errorCode and errorMessage; the same information is also pushed through the KYC_TICKET webhook. For the full classification of the codes (bucket / retryable / what the user should do / whether a resubmission is possible) see KYC reject codes.

Common response envelope

Every /open-api/ endpoint returns the same envelope, with this endpoint’s business data in data:
Please note: this endpoint carries two layers of meaning, so evaluate them separately. Use the system-level code to tell whether the request was accepted, and data.status to tell the KYC business outcome. code=SYS_SUCCESS only means “the request was accepted and a ticket snapshot was returned”; it does not mean KYC has passed (for example, code is still SYS_SUCCESS when status=REJECTED). On failure, messageDetail is what you show the end user.
For how the codes are classified, whether they are retryable and how to handle each of them, see KYC reject codes.

Next steps

Once the KYC status is PASSED you can apply for a virtual card / issue a card for the user; if the status is NEED_VERIFY, first use the H5 KYC guide page to walk the user through verification.