Diagram illustrating the ISO 8583 F39 response code field

F39 - RESPONSE CODE:  This is the code that shows whether the transaction was approved or declined. 
It is 2-digit alphanumeric.

When approved, the value 00 is usually sent. (Although not very common, in some transactions - for example Pin Change - 85 can also be seen being sent.) When declined, a decline reason code is sent. Whether the transaction was approved or not is checked from this field. If the transaction is approved, the F39 value should be: 00, and the F38 value should be a 6-digit numeric value: xxxxxx.


In which messages is F39 found?

F39 comes not from the party sending the request, but from the party giving the response. It appears in response messages such as the authorization response (0110), the financial transaction response (0210), and the reversal response (0410). This field is not sent in request messages (0100, 0200).

Commonly encountered response codes

  • 00: Approved
  • 05: Do not honor. This is a general decline code, used when the bank does not want to explain the reason.
  • 12: Invalid transaction
  • 14: Invalid card number
  • 41 / 43: Lost card / Stolen card
  • 51: Insufficient funds or limit
  • 54: Expired card
  • 55: Incorrect PIN
  • 57: Transaction not permitted to cardholder
  • 61: Withdrawal amount limit exceeded
  • 75: PIN tries exceeded
  • 91: Issuer or system not available
  • 96: System malfunction

Points to keep in mind

These codes are defined in the ISO 8583 standard, but card schemes (Visa, Mastercard, Troy) and banks may use some codes differently according to their own rules. For this reason, the counterparty's message specification should be taken as the reference when carrying out an integration.

On the merchant side, it is good practice to convert decline codes into an understandable message for the customer rather than showing them directly. For example, for code 51, something like "Your card does not have sufficient limit." For technical codes such as 91 and 96, the transaction can be retried. For codes such as 05 and 57, the cardholder needs to contact their bank.