Exercise the whole flow in the sandbox before you go live
Without moving real money or touching real cardholders, you can assemble a complete KYC → deposit → authorized spend flow in the sandbox and validate your integration logic ahead of time (the KYC flow, balance movements, Webhook and WebSocket delivery handling). As a licensed issuer with its own BINs, DCS provides a set of sandbox simulation endpoints so that your integration is solid well before it reaches the card networks.What you can simulate
The DeCard-Managed model offers four simulation endpoints across three capabilities. Requests and responses for each are covered below in “Endpoint reference”.The DeCard-Managed model has no concept of on-chain collateral or payment routing (transfers), so there are no matchingcollateral-funding/transfer-transactionssimulations. Authorization is decided in a single pass inside the system, so there are also no standalonesettlement/authorization-updates/authorization-reversals/3ds-challengessimulation endpoints. For how to test those scenarios, see “What is out of scope” below.
Prerequisites
- Your Enterprise account is active. If you do not have credentials yet, see First Steps and the authentication guide.
- Every request must carry the signature headers described in the authentication guide. The curl examples on this page omit some header details and focus on the business fields and the sandbox host.
- Every
externalUserId,cardId, last-4 value, deposit address, token andYOUR_API_KEYin the examples is a placeholder or masked value. Never put real end-user PII or real keys into requests or logs.
Sandbox host
The simulation endpoints exist in the sandbox only.
Getting started
- Get sandbox access. Request sandbox
ApiKey/SecretKeyfrom DCS. The simulation endpoints are available in the sandbox only. - Create a test user and a test card. Use
POST /simulation/v1/generate-kyc-tokento mint a KYC simulation token for the user, walk KYC, then apply for a card and keep thecardId. See Signing Up a Customer and Managing Cards · Issuing Cards. - Set up Webhook and WebSocket. Simulations fire the same events as real transactions, so having your receivers ready makes them easy to observe. See Webhook + WebSocket.
- Run the simulations. Start with
POST /simulation/v1/depositto simulate an incoming deposit, thenPOST /simulation/v2/fund-authto simulate a spend, and watch the balance and transaction records change.
Endpoint reference
All endpoints share the site-wide response envelope{ code, message, messageDetail, data }— with nosuccessboolean; the success code literal iscode = SYS_SUCCESS. Usecode == SYS_SUCCESSto decide whether the request was accepted, and the fields insidedatato read the business outcome.messageDetailis an object intended for display to the end user, with seven optional sub-fields:message/title/type/icon/action/linkTitle/linkUrl; usually each sub-field is an empty string.
1 · Generate a KYC simulation token
Mints a KYC simulation token for a given user so you can walk the KYC flow in the sandbox.
Successful response:
2 · Simulate a deposit (FOMO channel)
Simulates an on-chain crypto deposit arriving (FOMO channel), the sandbox equivalent of faking a payment into a deposit address, which triggers the user balance and deposit flow. This simulates an on-chain arrival, not a fiat top-up.
Successful response (no business payload,
data is null):
3 · Simulate an authorization (spend / refund / reversal)
Simulates a card authorization request. The DeCard-Managed model covers spend, refund and spend reversal with a singlefund-auth endpoint plus the authType enum.
The card is identified precisely by cardId (not by the last 4 digits of the card number, which can be ambiguous when one user holds several cards).
Request:
authType enum:
The DeCard-Managed model covers spend, refund and reversal through this oneSuccessful response:fund-authendpoint plusauthType. There are no separate settlement, authorization reversal or authorization update endpoints; concepts such assettle/reverse-hold/partial-reversal/tip-updatedo not exist in the DeCard-Managed model.
code == SYS_SUCCESS only means the simulation request was accepted correctly; it does not mean the authorization was approved. Read data.approved for the authorization outcome.Common patterns
Run the minimal deposit → spend → check balance loop
Test refunds and reversals
ChangeauthType in step 2 to REFUND (refund) or REVERSAL (spend reversal), repeat the call, and watch balances and transaction records move in the opposite direction. That confirms your system transitions state correctly in these scenarios.
What is out of scope
- Authorization is decided in a single pass inside the system, so there are no separate settlement, authorization update or authorization reversal simulation endpoints; spend, refund and reversal are all expressed through
authTypeonfund-auth. - On-chain collateral and payment routing are not involved, so no simulation endpoints exist for them.
- 3DS authentication is completed on the issuing side, so there is no standalone 3DS simulation endpoint. To test 3DS handling, see 3DS Forwarding.
Next steps
- To understand how authorization is decided and how it holds balance inside the system, see Authorizing Transactions.
- To see how user balances (
availableBalance/frozenBalance) move after a simulated deposit or spend, see User Balance. - For real on-chain deposit addresses and the chain and currency configuration, see Crypto Deposit.
- For how the KYC token is used in the real flow, see Authentication and Integration Resources.

