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_code
  • advice_code
  • message

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_code for programmatic branching
  • advice_code for retry guidance
  • message for 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