> ## Documentation Index
> Fetch the complete documentation index at: https://primer.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Payment method decline codes

## What are payment method decline codes?

If a payment is rejected, some processors surface the decline reason of the underlying card network or payment method. Where possible, Primer maps these decline reasons to our [unified mapping standard](https://primer.io/docs/concepts/decline-codes/mapping-standard.md).

Additionally, to facilitate precise decline analysis across your payment stack, Primer exposes the underlying decline code in a unified way across all supported processors.

## Payment method decline codes

Below are the fields we expose on the Payments API when a payment is not successful:

| Field | Description | Payment Object fields |
| :- | :- | :- |
| Payment Method Result Code | The result code from the payment method or card network, unified across all processors | `statusReason.paymentMethodResultCode`  `transactions[x].processorStatusReason.paymentMethodResultCode` |
| Payment Method Result Message | Human-readable version of the result code, unified across all processors | `statusReason.paymentMethodResultMessage`  `transactions[x].processorStatusReason.paymentMethodResultMessage` |

These fields are returned in the output of the Payments App in Workflows, as well as the API response and the payment status webhook. For example:

```json JSON theme={"dark"}
{
    "status": "DECLINED",
		...
    "statusReason": {
        // Payment method results (here, for Visa)
        "paymentMethodResultCode": "91",
        "paymentMethodResultMessage": "Issuer unavailable or switch inoperative",

        // Primer decline code mapping
        "type": "ISSUER_DECLINED",
        "declineType": "SOFT_DECLINE",
        "code": "ISSUER_TEMPORARILY_UNAVAILABLE"
    },
    "transactions": [
        {

            "processorStatus": "DECLINED",
            ...
            "processorStatusReason": {
                // Payment method results (here, for Visa)
                "paymentMethodResultCode": "91",
                "paymentMethodResultMessage": "Issuer unavailable or switch inoperative",

                // Primer decline code mapping
                "type": "ISSUER_DECLINED",
                "declineType": "SOFT_DECLINE",
                "code": "ISSUER_TEMPORARILY_UNAVAILABLE"
            }
        }
    ]
}
```

> [!NOTE]
>
> **What is the difference between the payment and transaction fields?**
>
> A Primer payment can have multiple processor transactions.
>
> * The payment fields represent the latest/final values
> * The transaction fields represent the values for that specific processor transaction
>
> *For example, if a payment is first declined on Stripe then successfully authorized on Adyen using fallback, the payment level reflects the final successful transaction, while the transaction fields shows all attempts.*

These fields are also available in the output of the Payments App in Workflows, enabling you to run specific actions based on the underlying decline reasons.

## Supported processors and card networks

The result codes are exposed for payments made with Visa and Mastercard on the following processors:

* Stripe
* Braintree
* Adyen

> [!NOTE]
>
> Please reach out to us directly via our [Service Desk](https://portal.support.primer.io/servicedesk/customer/portal/11) if you need support for additional processors.

## Card network decline codes

### Mastercard

| Code | Message |
| - | - |
| 01 | Refer to card issuer |
| 03 | Invalid merchant |
| 04 | Capture card |
| 05 | Do not honor |
| 08 | Honor with ID |
| 12 | Invalid transaction |
| 13 | Invalid amount |
| 14 | Invalid card number |
| 15 | Invalid issuer |
| 30 | Format error |
| 41 | Lost card |
| 43 | Stolen card |
| 46 | Closed account |
| 51 | Insufficient funds/over credit limit |
| 54 | Expired card |
| 55 | Invalid PIN |
| 57 | Transaction not permitted to issuer/cardholder |
| 58 | Transaction not permitted to acquirer/terminal |
| 61 | Exceeds withdrawal amount limit |
| 62 | Restricted card |
| 63 | Security violation |
| 65 | Exceeds withdrawal count limit |
| 70 | Contact Card Issuer |
| 71 | PIN Not Changed |
| 72 | Account not yet activated |
| 75 | Allowable number of PIN tries exceeded |
| 76 | Invalid/nonexistent “To Account” specified |
| 77 | Invalid/nonexistent “From Account” specified |
| 78 | Invalid/nonexistent account specified (general) |
| 79 | Life cycle (Mastercard use only) |
| 80 | System not available |
| 81 | Domestic Debit Transaction Not Allowed (Regional use only) |
| 82 | Policy (Mastercard use only) |
| 83 | Fraud/Security (Mastercard use only) |
| 84 | Invalid Authorization Life Cycle |
| 86 | PIN Validation not possible |
| 87 | Purchase Amount Only, No Cash Back Allowed |
| 88 | Cryptographic failure |
| 89 | Unacceptable PIN—Transaction Declined—Retry |
| 90 | Cutoff is in progress |
| 91 | Authorization System or issuer system inoperative |
| 92 | Unable to route transaction |
| 94 | Duplication transaction detected |
| 96 | System error |
| 1Z | Authorization System or issuer system inoperative |
| R0 | Stop payment order |
| R1 | Revocation of authorization order |
| R3 | Revocation of all authorizations order |

### Visa

| Code | Message |
| - | - |
| 01 | Refer to card issuer |
| 02 | Refer to card issuer’s special conditions |
| 03 | Invalid merchant |
| 04 | Pickup card (no fraud) |
| 05 | Do not honor |
| 06 | Error |
| 07 | Pickup card, special condition (fraud account) |
| 12 | Invalid transaction |
| 13 | Invalid amount or currency conversion field overflow |
| 14 | Invalid account number (no such number) |
| 15 | No such issuer |
| 19 | Re-enter transaction |
| 30 | Format error |
| 31 | Bank not supported by switch |
| 34 | Suspected fraud |
| 36 | Restricted card |
| 39 | No credit account |
| 40 | Requested function not supported |
| 41 | Lost card, pick up (fraud account) |
| 42 | Invalid account |
| 43 | Stolen card, pick up (fraud account) |
| 44 | Lost/stolen card |
| 46 | Closed account |
| 51 | Insufficient funds / Over credit limit |
| 52 | No checking account |
| 53 | No savings account |
| 54 | Expired card or expiration date is missing |
| 55 | Incorrect PIN or PIN missing |
| 57 | Transaction not permitted to issuer/cardholder |
| 58 | Transaction not permitted to acquirer |
| 59 | Suspected fraud |
| 60 | Exceeds approval amount limit |
| 61 | Exceeds approval amount limit |
| 62 | Restricted card (card invalid in region or country) |
| 63 | Security violation (source is not correct issuer) |
| 65 | Exceeds withdrawal frequency limit |
| 70 | PIN data required |
| 75 | Allowable number of PIN entry tries exceeded |
| 76 | Unsolicited reversal |
| 78 | “Blocked, first used” - Transaction from new cardholder, and card not properly unblocked |
| 79 | Already reversed (by Switch) |
| 81 | Cryptographic error found in PIN |
| 82 | Negative Online CAM, dCVV, iCVV, or CVV results |
| 86 | Cannot verify PIN |
| 89 | Ineligible to receive financial position information (GIV) |
| 91 | Issuer unavailable or switch inoperative |
| 92 | Financial institution or intermediate network facility cannot be found for routing |
| 93 | Transaction cannot be completed; violation of law |
| 94 | Request is identified as a duplicate |
| 96 | System malfunction |
| 1A | Additional customer authentication required (Europe only) |
| 5C | Transaction not supported/blocked by issuer |
| 6P | Verification data failed |
| 9G | Blocked by cardholder/contact cardholder |
| N3 | Cash service not available |
| N4 | Cash request exceeds issuer limit |
| N7 | Decline for CVV2 failure |
| P5 | Denied PIN unblock - PIN change or unblock request declined by issuer |
| Q1 | Card authentication failed |
| R0 | Stop payment order |
| R1 | Revocation of authorization order |
| R3 | Revocation of all authorizations order |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.