Handle Transaction Declines
Understand why transactions fail and take the right action using standardized decline codes.
Transactions may be declined during authorization due to:
- Card status (inactive, frozen, expired)
- Account conditions (insufficient funds, limits exceeded)
- Security checks (invalid PIN, CVV, suspected fraud)
- Network or issuer-level validations
Each declined transaction returns a decline code, which helps you identify the reason and determine the appropriate response.
Scenarios
Transaction declines occur during authorization when the card, account, or transaction fails validation. Each decline returns a standardized code that identifies the reason and helps determine the appropriate response.
sequenceDiagram
participant Card as Cardholder
participant Merchant as Merchant
participant Network as Card Network
participant PCE as PCE
participant App as Your Application
Card->>Merchant: Swipe/tap card
Merchant->>Network: Authorization request
Network->>PCE: Validate transaction
PCE->>PCE: Check status, funds, limits, security
alt Approved
PCE-->>Network: Approved
Network-->>Merchant: Transaction approved
else Declined
PCE-->>Network: Declined (code: DC-XXXX)
Network-->>Merchant: Transaction declined
PCE-->>App: Webhook: card.authorization.declined
App->>App: Map code → user message + resolution
end
Before you begin (all scenarios)
- Your webhook endpoint is subscribed to
card.authorization.declinedevents. - You have mapped decline codes to user-facing messages.
- Resolution flows are implemented (fund account, unfreeze, adjust limits).
Scenario 1: Handle Insufficient Funds Decline
Use this scenario when a cardholder's transaction is declined due to insufficient funds.
Business Context: A customer tries to purchase $127.50 at Whole Foods, but their balance is only $98.23.
Decline Code: DC-0051 (Debit) or PC-0051 (Prepaid)
You'll also need: Webhook subscription to receive decline notifications.
Resolution:
- For Debit cards: Fund the linked account via ACH, wire, or internal transfer
- For Prepaid cards: Load more funds onto the card
Example Webhook Payload
{
"eventType": "card.authorization.declined",
"payload": {
"cardId": 55903,
"merchantName": "WHOLE FOODS MKT #10847",
"amount": "127.50",
"declineCode": "DC-0051",
"declineReason": "Insufficient Funds",
"availableBalance": "98.23"
}
}Show the shortfall amount and provide a one-tap option to add funds.
Scenario 2: Handle Frozen Card Decline
Use this scenario when a transaction is declined because the card is frozen.
Decline Code: DC-0062 (Card Frozen)
You'll also need: Card status from GET /card/{id}.
Resolution:
- Review the freeze reason
- If safe, unfreeze via POST /card/{id}/unfreeze
- If compromised, cancel and replace the card
Scenario 3: Handle Spend Limit Exceeded
Use this scenario when a transaction exceeds the card's daily or per-transaction limit.
Decline Code: DC-0061 (Amount Limit) or DC-0065 (Count Limit)
You'll also need: Current limits and usage from GET /card/{id}/limit.
Resolution:
- Check current limit and usage
- Increase the limit if authorized via POST /card/{id}/limit
- Or wait for the daily reset
How to Use Decline Codes
- Use decline codes to diagnose failures quickly
- Map codes to user-facing messages or retry logic
- Combine with:
- Card status
- Spend limits
- Transaction context
The same decline scenarios may apply across both Debit and Prepaid cards, with different code prefixes.
Common Decline Categories
| Category | Description | Examples |
|---|---|---|
| Card Status | Card is not usable | Lost, Stolen, Inactive, Frozen |
| Funds & Limits | Balance or limits exceeded | Insufficient Funds, Amount Limit |
| Security & Validation | Verification failures | Invalid PIN, CVV |
| Transaction Controls | Restricted usage | Merchant not permitted |
| System / Network | Processing failures | Timeout, System Error |
Debit Card Decline Codes
The following decline codes may be returned for Debit card transactions:
| Decline Code | Description |
|---|---|
DC-0001 | Issuer System Error. |
DC-0003 | Transaction Not Permitted at this merchant. |
DC-0004 | Suspected Fraud. |
DC-0005 | Do Not Honor. |
DC-0010 | Partial Approval. The full amount was not authorized. |
DC-0013 | Transaction Exceeds Maximum Limit. |
DC-0014 | Invalid Card Details. |
DC-0019 | System Error. |
DC-0039 | Account linked to Card not found. |
DC-0041 | Card Lost. |
DC-0042 | Card Stolen. |
DC-0046 | Card Inactive or Cancelled. |
DC-0046 | Card Inactive or Cancelled. |
DC-0051 | Insufficient Funds. |
DC-0054 | Expired Card or Invalid Expiration Date. |
DC-0055 | Invalid PIN. |
DC-0057 | Transaction Not Permitted. |
DC-0061 | Transaction Exceeds Allowed Amount Limit. |
DC-0062 | Card Restricted. |
DC-0062 | Card Frozen. |
DC-0063 | Security Violation. |
DC-0065 | Transaction Exceeds Allowed Count Limit. |
DC-0065 | Card Inactive. |
DC-0075 | Maximum PIN Attempts Exceeded. |
DC-0082 | Card Verification failed - Invalid CVV. |
DC-0086 | Card Verification failed - Invalid PIN. |
DC-0092 | Transaction Timeout. |
DC-0093 | Cash Service Not Available. |
DC-0094 | Card Verification failed - Invalid CVV2. |
Prepaid Card Decline Codes
The following decline codes may be returned for Prepaid card transactions:
| Decline Code | Description |
|---|---|
PC-0001 | Issuer System Error. |
PC-0003 | Transaction Not Permitted at this merchant. |
PC-0004 | Suspected Fraud. |
PC-0005 | Do Not Honor. |
PC-0010 | Partial Approval. The full amount was not authorized. |
PC-0013 | Transaction Exceeds Maximum Limit. |
PC-0014 | Invalid Card Details. |
PC-0019 | System Error. |
PC-0039 | Account linked to Card not found. |
PC-0041 | Card Lost. |
PC-0042 | Card Stolen. |
PC-0046 | Card Inactive or Cancelled. |
PC-0046 | Card Inactive or Cancelled. |
PC-0051 | Insufficient Funds. |
PC-0054 | Expired Card or Invalid Expiration Date. |
PC-0055 | Invalid PIN. |
PC-0057 | Transaction Not Permitted. |
PC-0061 | Transaction Exceeds Allowed Amount Limit. |
PC-0062 | Card Restricted. |
DC-0062 | Card Frozen. |
PC-0063 | Security Violation. |
PC-0065 | Transaction Exceeds Allowed Count Limit. |
PC-0065 | Card Inactive. |
PC-0075 | Maximum PIN Attempts Exceeded. |
PC-0082 | Card Verification failed - Invalid CVV. |
PC-0086 | Card Verification failed - Invalid PIN. |
PC-0092 | Transaction Timeout. |
PC-0093 | Cash Service Not Available. |
PC-0094 | Card Verification failed - Invalid CVV2. |
Dispute Management
In cases where a cardholder identifies an unauthorized or incorrect transaction, disputes are handled through a third-party provider.
Cardholders can initiate a dispute by contacting the support number on the back of their card. Once submitted, the third-party provider manages the dispute lifecycle, including investigation, resolution, and communication with the card networks.
Any financial impact resulting from the dispute—such as provisional credits or reversals—is reflected as adjustments in the customer’s ledger.
Dispute handling is managed externally. No direct API integration is required for initiating or managing disputes
Updated 4 days ago