Authorization: DCS decides for you, in real time, inside the system
In the DeCard-Managed model, DCS makes every authorization decision for you in real time: it checks the card status, the available balance and the limits, then approves or declines on the spot, with no per-transaction response from you. As a licensed issuer running its own BINs, DCS connects directly to the card networks and holds the cardholder’s own balance in custody, which takes the most latency-sensitive and reconciliation-sensitive question in the whole flow, whether to let a payment through at the moment the card is presented, off your integration list entirely. Precisely because the decision happens inside DCS, the authorization decision needs no integration work on your side: there is noauth_url, no per-transaction response and no authorization decision webhook to register. This page explains how the mechanism works and the few things you actually need to do; for the mental model of the transaction flow (the two stages of authorization and settlement, the Outstanding bridge, the invariants), see the concept page Transaction Lifecycle · Overview.
How DeCard-Managed differs from Partner-Managed
How an authorization is handled in the DeCard-Managed model
The moment the cardholder swipes, taps or inserts the card, the merchant requests authorization from the card network and DCS decides internally:- System checks (any failure results in a decline):
- the card status must allow transactions (not
FROZEN, notCANCELLED); - the user’s transaction status, since card transactions are blocked for that user when
forbidCardTransaction = trueinGET /account/v1/user-status; - the user’s available balance (
free) must fully cover the authorization amount; - card-level and user-level limits and risk rules.
- the card status must allow transactions (not
- Funds are frozen (no actual deduction takes place): on approval the corresponding amount moves from available to frozen, so
freedecreases,freezeincreases andtotalis unchanged. - Result notification: DCS notifies the authorization result through the
CARD_TRANSACTIONwebhook (response=Afor approved,Dfor declined) and the balance change through theBALANCE_CHANGEwebhook (freeDelta< 0,freezeDelta> 0). - Settlement follows: once the merchant submits the final amount, settlement releases the hold and performs the actual deduction.
Both steps that really change a user’s balance, the freeze at authorization and the deduction at settlement, land on that user’s own account held in custody by DCS. That is what fundamentally separates this model from Partner-Managed, where the reserve sits with the partner. For details, see Account and Asset Model (Ledgering).
The journey of one authorization
The two notifications you receive (key fields)
Authorization results reach you as two kinds of webhook or WebSocket event. The fields below are the ones most used for reconciliation; the full detail lives in Webhook & WebSocket and on the concept page:
The full field tables for both webhooks are in the “Authorization webhook field definitions” section below; the step-by-step sequences for the three
authType values are in “The three scenarios by authType”.
What you need to do
In other words, whether an authorization succeeds depends mainly on whether the user’s own balance is sufficient and whether card transactions are blocked for that user, not on any response from you.
Verifying an authorization in the sandbox (no card network needed)
Without connecting to a card network, you can trigger an authorization through the sandbox simulation endpoints and verify your webhook handling and balance logic:POST /simulation/v2/fund-auth
The response envelope is the site-wide
{code, message, messageDetail, data}, with the success code literal SYS_SUCCESS:
data.approved(boolean): whether the authorization was approved.data.errorCode(string): the error code when it was not.messageDetail: an optional display object whose fields are usually empty strings on success.
For more fund-auth sandbox scenarios, see Simulating Transactions.
Authorization webhook field definitions
Authorization results and balance changes reach the partner through two webhooks. Authorization transaction fields always come fromCARD_TRANSACTION; balance changes always come from BALANCE_CHANGE.
CARD_TRANSACTION (authorization transaction, all fields)
The fields are as follows:Direction is expressed bydirection(DEBIT/CREDIT); the nature of the transaction is expressed bytransactionType(R/C/Q/P).
BALANCE_CHANGE (balance change, all fields)
An approved authorization freezes funds: the money never leaves the account, it only moves between the available and frozen columns, and the real deduction happens later at settlement (see Settlement). That movement is notified throughBALANCE_CHANGE:
An example (redacted; the semantics are a hold of 2.92, available -2.92 and frozen +2.92):
For the overall model behind available and frozen balances (free/freeze/total) and the custody strategies, see Account and Asset Model (Ledgering).
Authorization types (authType)
authType states the nature of an authorization. The DeCard-Managed model uses only the following three:
The three scenarios by authType
The threeauthType values differ in how they affect the account and which webhooks you receive.
EXPEND, a purchase
- Approved: the available balance decreases and the frozen balance increases, with
response=Aanddirection=DEBIT. - Declined: insufficient balance, a card that cannot transact,
forbidCardTransaction=trueand similar cases giveresponse=Dand create no hold.
REFUND, a return
- A return credits the card, so
direction=CREDITandtransactionType=P, andoriginalExternalTranIdis returned to link back to the original transaction. - The credited amount only reaches the user’s available balance once settlement completes (see Settlement).
REVERSAL, a purchase reversal
- A reversal of the original purchase authorization returns
direction=CREDITandoriginalExternalTranId, and releases the amount frozen by the earlierEXPEND(frozen back to available). - The exact values of
directionandtransactionTypeare whatever theCARD_TRANSACTIONwebhook actually returns.
About 3DS
3DS strong authentication is part of the authorization path and is completed by DCS on the issuing side; see 3DS strong authentication.Next steps
- Mental model of the transaction flow (the two stages, the Outstanding bridge, the invariants): Transaction Lifecycle · Overview
- Account and asset model (
free/freeze/total): Account and Asset Model (Ledgering) - Reading and adjusting user balances: User Balance
- How funds are actually posted after authorization: Settlement
- Receiving authorization result notifications: Webhook & WebSocket
- Simulating an authorization in the sandbox: Simulating Transactions

