Acquirer response codes
Acquirer response codes describe the network or issuer outcome of a payment attempt.
Paypercut maps these raw response codes into stable API error fields such as:
decline_codeadvice_codemessage
Use Paypercut fields as your primary integration contract. Raw network codes should only be used for diagnostics and reporting. This page documents how common response codes are interpreted.
How to use this page
Use this page to understand:
- the meaning of a raw network response code
- the mapped Paypercut decline code
- whether the failure is retryable
- the recommended merchant action
Your integration should primarily rely on the mapped Paypercut error fields. Raw acquirer response codes are most useful for diagnostics, reporting, and operational analysis.
Common response codes
05 — Do not honor
Details
{
"network_decline_code": "05",
"decline_code": "do_not_honor",
"advice_code": "try_again_later",
"category": "soft_decline",
"message": "Your card was declined. Please try another card or contact your bank."
}
Recommended handling:
- Do not retry immediately in a tight loop
- The customer may try again later
- Offer an alternative payment method if the payment is urgent
14 — Invalid card number
Details
{
"network_decline_code": "14",
"decline_code": "invalid_card_number",
"advice_code": "confirm_card_data",
"category": "invalid_request",
"message": "Your card number is incorrect. Please check your card details and try again."
}
Recommended handling:
- Highlight the card number field
- Prompt the customer to correct the input
- Do not retry unchanged input
51 — Insufficient funds
Details
{
"network_decline_code": "51",
"decline_code": "insufficient_funds",
"advice_code": "do_not_try_again",
"category": "hard_decline",
"message": "Your card has insufficient funds. Please try another card or use a different payment method."
}
Recommended handling:
- Ask the customer to use another card or payment method
- Do not automatically retry
54 — Expired card
Details
{
"network_decline_code": "54",
"decline_code": "expired_card",
"advice_code": "do_not_try_again",
"category": "hard_decline",
"message": "Your card has expired. Please use a different card."
}
Recommended handling:
- Ask the customer to use a different card
- Do not retry unchanged credentials
65 — Exceeds withdrawal frequency
Details
{
"network_decline_code": "65",
"decline_code": "exceeds_withdrawal_frequency",
"advice_code": "try_again_later",
"category": "soft_decline",
"message": "Your card was declined due to limits. Please try again later or use another card."
}
Recommended handling:
- Retry later if appropriate
- Offer another payment method if the customer needs to complete the purchase immediately
91 — Issuer unavailable
Details
{
"network_decline_code": "91",
"decline_code": "issuer_unavailable",
"advice_code": "try_again_later",
"category": "soft_decline",
"message": "The payment can’t be processed right now. Please try again later."
}
Recommended handling:
- Retry later
- Treat as a transient processing condition
96 — System malfunction
Details
{
"network_decline_code": "96",
"decline_code": "system_malfunction",
"advice_code": "try_again_later",
"category": "soft_decline",
"message": "The payment can’t be processed right now. Please try again later."
}
Recommended handling:
- Retry later
- Log the failure for operational monitoring
1A — Authentication required
Details
{
"network_decline_code": "1A",
"decline_code": "authentication_required",
"advice_code": "confirm_card_data",
"category": "auth",
"message": "This payment requires additional authentication. Please try again."
}
Recommended handling:
- Initiate the required authentication flow
- Do not retry the unchanged authorization request
Interpretation model
Paypercut maps raw response codes into a normalized decline model.
This gives integrators a more stable contract:
decline_codefor programmatic branchingadvice_codefor retry guidancemessagefor customer-facing communication
Raw network codes may vary by acquirer, scheme, or processor behavior over time. Use them primarily for diagnostics.
Complete response code reference
This reference is intended for integration and support use. Paypercut may normalize or group certain internal or network-level outcomes into safer public decline semantics.
| Network code | Decline code | Category | Retryable | Advice | Recommended handling |
|---|---|---|---|---|---|
| 00 | none | none | No | try_again_later | Payment approved |
| 01 | refer_to_issuer | soft_decline | Yes | try_again_later | Ask the customer to try again later or use another card |
| 03 | invalid_merchant | configuration | No | do_not_try_again | Retry later or contact support |
| 04 | pickup_card | hard_decline | No | do_not_try_again | Ask the customer to use another card |
| 05 | do_not_honor | soft_decline | Yes | try_again_later | Retry later or offer another payment method |
| 07 | pickup_card | hard_decline | No | do_not_try_again | Ask the customer to use another card |
| 12 | invalid_transaction | configuration | No | do_not_try_again | Verify request configuration |
| 13 | invalid_amount | invalid_request | No | adjust_amount | Adjust the payment amount |
| 14 | invalid_card_number | invalid_request | No | confirm_card_data | Ask the customer to correct card details |
| 15 | no_such_issuer | hard_decline | No | confirm_card_data | Ask the customer to use another card |
| 19 | try_again | soft_decline | Yes | try_again_later | Retry later |
| 21 | no_action_taken | soft_decline | Yes | try_again_later | Retry later |
| 25 | unable_to_locate_record | soft_decline | Yes | try_again_later | Retry later |
| 28 | temporarily_unavailable | soft_decline | Yes | try_again_later | Retry later |
| 30 | format_error | configuration | No | do_not_try_again | Verify request format |
| 39 | no_credit_account | hard_decline | No | do_not_try_again | Ask the customer to use another card |
| 41 | lost_card | hard_decline | No | do_not_try_again | Ask the customer to use another card |
| 43 | stolen_card | hard_decline | No | do_not_try_again | Ask the customer to use another card |
| 51 | insufficient_funds | hard_decline | No | do_not_try_again | Ask the customer to use another payment method |
| 52 | no_checking_account | hard_decline | No | do_not_try_again | Ask the customer to use another card |
| 53 | no_savings_account | hard_decline | No | do_not_try_again | Ask the customer to use another card |
| 54 | expired_card | hard_decline | No | do_not_try_again | Ask the customer to use another card |
| 55 | incorrect_pin | soft_decline | Yes | confirm_card_data | Ask the customer to retry or confirm details |
| 57 | transaction_not_permitted | hard_decline | No | do_not_try_again | Ask the customer to use another card |
| 58 | terminal_not_permitted | configuration | No | do_not_try_again | Retry later or contact support |
| 61 | exceeds_withdrawal_limit | hard_decline | No | adjust_amount | Try a smaller amount |
| 62 | restricted_card | hard_decline | No | do_not_try_again | Ask the customer to use another card |
| 63 | security_violation | hard_decline | No | do_not_try_again | Ask the customer to use another card |
| 65 | exceeds_withdrawal_frequency | soft_decline | Yes | try_again_later | Retry later or use another method |
| 75 | pin_tries_exceeded | hard_decline | No | do_not_try_again | Ask the customer to use another card |
| 76 | previous_message_not_found | soft_decline | Yes | try_again_later | Retry later |
| 77 | inconsistent_data | configuration | No | do_not_try_again | Verify request data |
| 78 | blocked_first_use | hard_decline | No | do_not_try_again | Ask the customer to use another card |
| 79 | already_reversed | configuration | No | do_not_try_again | Retry later or verify transaction |
| 85 | no_reason_to_decline | soft_decline | Yes | try_again_later | Retry later or ask customer to retry |
| 91 | issuer_unavailable | soft_decline | Yes | try_again_later | Retry later |
| 92 | unable_to_route | soft_decline | Yes | try_again_later | Retry later |
| 93 | cannot_complete | soft_decline | Yes | try_again_later | Retry later |
| 94 | duplicate | configuration | No | do_not_try_again | Prevent duplicate requests |
| 95 | reconcile_error | soft_decline | Yes | try_again_later | Retry later |
| 96 | system_malfunction | soft_decline | Yes | try_again_later | Retry later |
| 98 | exceeds_cash_limit | hard_decline | No | adjust_amount | Try a smaller amount |
| 1A | authentication_required | auth | No | confirm_card_data | Trigger authentication flow |
| R0 | stop_payment | hard_decline | No | do_not_try_again | Ask the customer to use another method |
| R1 | revocation_of_authorization | hard_decline | No | do_not_try_again | Ask the customer to use another method |
| R3 | revocation_of_all_authorizations | hard_decline | No | do_not_try_again | Ask the customer to use another method |
| N0 | force_stip | soft_decline | Yes | try_again_later | Retry later |
| N3 | cash_service_not_available | soft_decline | Yes | try_again_later | Retry later |
| N4 | issuer_limit_exceeded | hard_decline | No | adjust_amount | Try a smaller amount |
| N7 | cvv_failure | invalid_request | No | confirm_card_data | Ask the customer to correct card details |
Best practices
- Use Paypercut decline fields as your primary integration contract
- Store raw network response codes for reporting and support
- Do not expose raw network codes directly to end users
- Base retry behavior on decline and advice codes, not only on the raw acquirer code

