📄 Guide
For security and compliance reasons (PCI DSS), a card’s full number (PAN), CVV and expiry date count as highly sensitive data and are never returned in plaintext by the ordinary card lookup endpoints. Those endpoints return masked data only, such ascardMantissa, the last four digits of the PAN; the full number is shown exclusively through the H5 hosted guidance page described on this page. As a licensed issuer with its own BINs, DCS presents the sensitive data securely inside its own hosted page, which is what allows partners without PCI certification to show card details to their end users compliantly. To let an end user see the full card details, you must use the secure flow on this page.
The one mechanism in the DeCard-Managed model: the H5 hosted guidance page
In the DeCard-Managed model, DCS does not offer an endpoint that returns encrypted card data to the partner’s backend for the partner to decrypt. The only supported mechanism for showing full card details is the DCS-hosted H5 guidance page: The partner calls the guidance page endpoint withaction=CARD_INFO and DCS returns a single-use guidance link; the partner hands that link to the end user to open in their own browser, and the full PAN, CVV and expiry are rendered to the end user by the DCS-hosted page, so the plaintext never passes through the partner’s backend.
The three-step flow
The secure display flow in the DeCard-Managed model comes down to three steps: Step 1: call the guidance page endpoint for a link — the partner’s backend callsPOST /redirect/v2/guidance-link with action=CARD_INFO and the card identifier, and DCS returns a single-use hosted guidance page link in data.
Step 2: hand the link to the end user — the partner passes the link to the end user’s frontend. Do not open or cache the link in the partner’s backend.
Step 3: the DCS-hosted page renders the card details — the end user opens the link in a browser and the DCS-hosted H5 page renders the full PAN, CVV and expiry; the plaintext never passes through the partner’s backend.
Endpoint (V2 recommended, card located by cardId)
Request parameters (card details flow, action=CARD_INFO)
The required fields areaction/externalUserId/successRedirectUrl/errorRedirectUrl/cardId.themeandmodeare optional, but sending them every time is recommended.
Response
Every response uses the common envelope{ code, message, messageDetail, data } and there is no success boolean; the envelope is explained once in Authentication Guide. On success code = SYS_SUCCESS and data is a string: the guidance page link for the end user to open. messageDetail is a structured message object (its schema has seven sub-fields: message / title / type / icon / action / linkTitle / linkUrl) used to carry structured messaging; on an ordinary success every sub-field is an empty string, and the system fills them in as needed:
data field, a plain URL string) to the end user to open in their frontend, and the DCS-hosted page renders the full PAN, CVV and expiry.
messageDetail sub-fields
messageDetail is a structured message object with seven sub-fields, used to carry business messaging or error information. On an ordinary success every sub-field is an empty string, and the system fills them in as needed:
Common error response
On failure,code carries the specific business error code for that failure (there is no generic failure code). Below is a typical error response for a frozen card (only NORMAL cards support the lookup). Note that even when the request fails (messageDetail.type=ERROR) the HTTP status is still 200, so decide success or failure from code rather than from the HTTP status:
Which messageDetail sub-fields are populated in which situation, and whether they appear together, is ultimately determined by what the API actually returns.
For the other action values on the guidance page (KYC guidance, ordering and activating a physical card, updating the PIN, Travel Rule, extra KYC documents and so on) and the fields each of them requires, see H5 KYC / Card Application Guidance Page.
Prerequisites
- The card has been issued and you hold its
cardId; see Issuing Cards. - You have confirmed which
externalUserIdthe card belongs to. - You have confirmed the card’s status: only a card in
NORMALstatus can have its sensitive details queried and displayed. Querying aFROZENcard returns the error codeCARD_CARD_FROZEN_STATUS_UNSUPPORTED, and any other non-NORMALstatus likewise cannot be queried. In addition, a LUMINARY card whose annual fee has not been paid returns the error codeCARD_ANNUAL_FEE_NOT_CHARGED. The full state machines (virtual cards:NORMAL/FROZEN/CANCELLED; physical cards have their own:UN_APPLY/INACTIVE/ACTIVE/REPLACE/FROZEN/CANCELLED) are described in Managing Cards · Overview. - When the details are shown through the hosted H5 page, DCS’s page performs these status checks itself — the partner does not need to run them.
Next steps
- For freezing and unfreezing a card, card replacement and resetting the PIN, see Managing Cards · Overview.
- For the common guidance page fields and the other
actionflows, see H5 KYC / Card Application Guidance Page.
On returning encrypted card data: the DeCard-Managed model offers no endpoint that returns encrypted card data to the partner’s backend for the partner to decrypt, and there is no client-side encryption or decryption flow. Sensitive card details are always shown through the H5 hosted guidance page described above.

