📄 Guide
Once a user has passed KYC, you can issue them a card and manage it for the rest of its life: freeze it to stop fraudulent use, cancel it when it is lost, activate it once the physical card arrives, reset the PIN when the cardholder forgets it. As a licensed issuer with its own BINs, DCS keeps card state in sync with the card scheme and the issuer processor underneath, so you only deal with the business semantics: what state is this card in, and which operations does that state allow. Every card belongs to a user, so make sure the user exists and has passed KYC before you issue a card (see Managing Users). This group covers card issuing, viewing sensitive card details, freezing and unfreezing, managing the PIN, ordering and activating a physical card, and adding a card to Apple Wallet or Google Wallet (Push Provisioning).Virtual cards vs physical cards
Cards come in two forms, and they differ in how they are delivered and managed:- Virtual card: usable the moment it is issued, with no shipping and no activation step.
- Physical card: shipped to the cardholder and must be activated on arrival before it can be used; activation and shipping lookups are covered below.
Two capability delivery paths (important)
In the DeCard-Managed model, card management is not exposed as a symmetrical set of standalone REST endpoints. It is delivered along two paths, so do not assume the “one endpoint per action” model you may know from other platforms:Sensitive operations — reading sensitive card details, ordering and activating a physical card, updating the PIN — all run through the hosted guidance page/redirect/v2/guidance-link, selected by theactionenum. The user completes the operation inside a DCS-hosted page with SMS verification, and sensitive data never touches the partner’s backend. The publishedactionvalues for guidance-link areKYC_GUIDE/CARD_INFO/CREATE_PHYSICAL_CARD/ACTIVE_PHYSICAL_CARD/UPDATE_PIN/TRAVEL_RULE/KYC_EXTRA_DOC. The DeCard-Managed model has no standalone reset-pin, activate, convert-to-phy or invalidate REST endpoints.
Mental model: the card state machine
DCS expresses a card’s lifecycle stage through its status fields, and every management operation is ultimately a way of driving that state machine. Virtual and physical cards each have their own set of status values.cardStatus)
Physical card status (
physicalCardStatus)
How cardholders reach card replacement: the published API surface has no card replacementactionor REST endpoint;REPLACEappears only as one of thephysicalCardStatusvalues. Contact the DCS team to confirm the entry point for card replacement.
Operations at a glance
Each operation is summarised in one line below, with its entry point. The REST operations (freeze/unfreeze, read card details) are documented further down this page; the guidance-page operations (sensitive card details, physical card order and activation, PIN) each have their own page.Retrieving card details
Read card details withGET /card/v2/detail. On this endpoint cardId is optional: pass a value to query one specific card, leave it empty to list the cards the user holds. The data field is always an array. The response carries the card status (cardStatus for the virtual card and physicalCardStatus for the physical card, with the values shown in the state machine above) together with the balances tied to the card (walletBalance / caBalance / cardBalance / balanceCurrency / billingCurrency).
Each card is tied to a user-level balance and authorization decisions are made inside DCS: that is the defining trait of the DeCard-Managed (dedicated-account) model. For balance management, see User Balance.
This endpoint identifies a card precisely with cardId.
Freezing and unfreezing
Freeze or unfreeze a card withPOST /card/v2/block. It is a single endpoint, and the block boolean sets the direction: block=true freezes, block=false unfreezes. Freezing takes effect immediately, which is what you want when a card looks compromised or the user asks to pause it.
- Freezing (
block=true) normally needs no verification code. - Unfreezing (
block=false) requires a verification code: supply eithersmsCode(SMS) oremailCode(email).
data is a boolean indicating whether this freeze or unfreeze operation succeeded: true = success, false = failure. The envelope {code, message, messageDetail, data} is the same across the API, as described in Quickstart.
Theblockendpoint only moves a card betweenNORMAL⇄FROZEN(orACTIVE⇄FROZEN).
Next steps
- Issuing Cards — apply for a virtual or physical card for a user who has passed KYC. A virtual card is usable as soon as it is issued; a physical card is shipped and then activated.
- Viewing Encrypted Card Details — show the full PAN, CVV and expiry securely through a hosted guidance page (action=CARD_INFO), without the data passing through the partner’s backend.
- Managing a Card’s PIN — let the user set or update the PIN inside a DCS-hosted page through a hosted guidance page (action=UPDATE_PIN); the partner never handles the PIN, in plaintext or encrypted form.
- Push Provisioning (Apple / Google Pay) — add a DCS-issued Visa card to Apple Wallet or Google Wallet from inside your app, with no manual card entry in the wallet app.

