error_code value can be null (for successful transactions) or one
of the following for failed and declined transactions.
Error codes and payment service responses
Theerror_code is a normalized category. Each connector maps the codes it receives from the
payment service to one of the values on this page, so several different reasons from a payment
service can share one error_code. For example, a decline because the card exceeded a spending
limit and a decline because the account has too little money can both appear as insufficient_funds.
To see the exact reason, for example to decide when to retry a payment, read the fields that carry
the payment service’s own response. These fields are available on the
transaction in the API and in the dashboard.
Not every payment service returns every field, so any of these fields can be null.
Merchant advice codes
Gr4vy passes themerchant_advice_code through as the payment service returns it. It isn’t
normalized or mapped to another value. A transaction that returns a merchant advice code isn’t
retried with another connection. When a stored card is declined with merchant advice code 01, the
real-time account updater can check for updated card
details. See the account updater for more information.
Core failures
The system can decline or fail a transaction itself rather than a connector or payment service rejecting the transaction. When this happens, one of the following error codes can be set as theerror_code value.
Connector declines
When a payment service declines or fails the transaction the followingerror_code values can be set based on the response received
from the payment service. The original values received from the payment service are available in the
payment service response fields of a transaction record.
The amount column in the tables below specifies the
amount that can be used
to simulate the error_code when using the Card simulator connector. See
simulator test values for
all the values you can use, including for 3-D Secure, captures, voids, and refunds.