📄 Guide
Identity documents and KYC data both have an expiry. Once they expire the user must complete verification again for the account to stay compliant and keep spending normally. DCS notifies you proactively when it detects an expiry; all you have to do is guide the user to re-capture their documents and selfie on a DCS-hosted H5 page.
Renewal reuses the same two-step H5 KYC flow; the only differences are that the application mode is H5-RENEWAL and the guide page type is type=8.
When to use it
A user needs to renew their KYC data whenever either of these holds:
The webhook’s kycRenewalType states which factors need renewing (POI proof of identity / SELFIE), which you can use to prompt for only that item in your front end.
Until the renewal completes, some of the user’s operations (such as spending) may be restricted. Guide the user through it as early as possible.
How this relates to the other KYC paths
Interaction flow
A renewal can be rejected. Once rejected the ticket is terminal, but the user still needs to renew (kycRenewalRequired remains true); apply for a new ticket to let them retry until it passes and kycRenewalRequired becomes false.
Step 1: Apply for the renewal ticket (you)
POST /open-api/kyc-ticket/v1/apply-kyc-h5
This step synchronously checks that the user really does need to renew. If they do not (kycRenewalRequired is not true), no ticket is created and DAPI_KYC_RENEWAL_NOT_REQUIRED is returned. Confirm first via Query a user’s KYC information or the webhook.
Only one in-progress (INIT) renewal ticket is allowed per user at a time; you can apply again only after the previous one reaches a terminal state (PASSED / REJECTED).
Step 2: Exchange for the renewal guide link (you)
POST /open-api/card-redirect/v1/guidance-link
type=8 does not need profileId (that is required only for type=7, apply for KYC-H5).
The response data is a string — the H5 URL you hand to the user. The link has a limited lifetime; if it expires while the ticket is still INIT, call this endpoint again for a fresh link — you do not need to apply for a new ticket.
Step 3: Receive the result and retry if needed
Learn the review outcome from the KYC_TICKET webhook or by calling GET /open-api/kyc-ticket/v1/detail:
PASSED: the renewal is complete. You will then receive the user-level KYC webhook with kycRenewalRequired=false and the restriction is lifted.
REJECTED: this renewal was rejected and kycRenewalRequired is still true. Go back to step 1 and apply for a new ticket with a new kycTicketRef.
Ticket status (renewal mode)
In renewal mode a ticket only ever takes these three statuses — NEED_VERIFY and PENDING do not occur:
Error codes
apply-kyc-h5 (kycApplyMode=H5-RENEWAL)
In addition to the common error codes listed on the H5 KYC guide page, renewal mode can also return:
guidance-link (type=8)
Prerequisites
Next steps