Gateway Responses

In A Nutshell
In a nutshell

Handle post-payment workflows with standard gateway responses and ISO response codes.

When a transaction is processed, Paystack returns gateway_response_code which can be used to decide what to do next. Card transactions also return response_code, which is the raw processor code.

FieldMeaningChannel
response_codeThis is a 2 or 3 digit ISO 8583 code returned from the transaction processor.Card
gateway_response_codeThis is a string-based classification of the response code. It provides additional information about the response.All

Transaction model

These fields are returned in the transaction object in the following operation:

  • Verify Transaction
  • Fetch Transaction
  • List Transactions
  • Webhooks for charge.success and the other charge.* transaction events
  • The final Charge and Charge Authorization responses
Card responses

response_code is only returned for card transactions. Other channels return gateway_response_code only.

Response values

Generally, response codes make use of a 2-digit ISO 8583 code, with an exception to Amex cards. The table below shows how response codes map to gateway_response_code. Any code not listed resolves to unknown.

Successful code

approved is the only success value. Any other value means the transaction did not succeed.

Response codeGateway_response_code
00approved
01refer_to_card_issuer
02refer_to_card_issuer_special
03invalid_merchant
04pickup_card
05do_not_honor
06processing_error
07pickup_card_special
08honour_with_identification
09processing
10partial_approval
11vip_approval
12invalid_transaction
13invalid_amount
14invalid_account_number
15no_such_issuer
16approved_update_track_3
17customer_cancellation
18customer_dispute
19reenter_transaction
20invalid_response
21no_action_taken
22suspected_malfunction
23unacceptable_transaction_fee
24file_update_not_supported
25unable_to_locate_record
26duplicate_file_update
27file_update_field_edit_error
28file_temporarily_unavailable
29file_update_not_successful
30format_error
31bank_not_supported
32completed_partially
33expired_card
34suspected_fraud
35contact_acquirer
36restricted_card
37call_acquirer_security
38pin_tries_exceeded
39no_credit_account
40function_not_supported
41pickup_lost_card
42no_universal_account
43pickup_stolen_card
44no_investment_account
45account_closed
46identification_required
47identification_cross_check_required
51insufficient_funds
52no_checking_account
53no_savings_account
54expired_card
55invalid_pin
56no_card_record
57transaction_not_permitted_cardholder
58transaction_not_permitted_terminal
59suspected_fraud
60contact_acquirer
61daily_limit_exceeded
62restricted_card
63security_violation
64original_amount_incorrect
65withdrawal_frequency_exceeded
66call_acquirer_security
67hard_capture
68response_received_too_late
69advice_received_too_late
75pin_tries_exceeded
76unable_to_locate_previous_message
77previous_message_inconsistent
78card_blocked_first_use
80credit_issuer_unavailable
81pin_cryptographic_error
82cvv_verification_failed
83unable_to_verify_pin
85verification_no_decline
90cutoff_in_progress
91issuer_or_switch_inoperative
92routing_destination_not_found
93legal_violation
94duplicate_transmission
95reconcile_error
96system_malfunction
97transaction_timeout
9Gblocked_by_cardholder

Amex cards

Unlike other card providers that make use of a 2-digit ISO 8583 code, Amex makes use of a 3-digt code as shown in the table below:

Response codeGateway response code
000approved
001honour_with_identification
002partial_approval
100declined
101expired_card
106pin_tries_exceeded
109invalid_merchant
110invalid_amount
111invalid_account_number
115function_not_supported
117invalid_pin
119transaction_not_permitted_cardholder
122invalid_cvv
125invalid_from_date
130identification_required
181format_error
183unsupported_currency
187card_replaced
189account_closed
200pickup_card
911transaction_timeout
912bank_unavailable