Skip to main content
Each transaction that goes through the Marqeta platform is assigned a response code that represents the transaction’s final outcome. The majority of these codes describe the reason for a decline. The memos that accompany these codes provide insight as to why the transaction was declined and can be used to inform cardholder notifications. This page outlines some common transaction response codes and gives a detailed reasoning for each, as well as recommendations for reducing declines.

Compliance

This decline code appears when a cardholder attempts a transaction in a country where transactions are prohibited.

Just-in-Time (JIT) Funding response

This section outlines responses from JIT Funding gateways. These response codes all correspond to a specific action that is completed via the JIT gateway. These transactions are declined by your gateway, and followed with a specific decline_reason code that determines the response code. You should review the JIT gateway codes to determine the reason for the decline. Common response codes include the following (see the full list in Transaction response codes):
  • 1883 — JIT response invalid amount
  • 1884 — JIT response not sufficient funds
  • 1885 — JIT response transaction not permitted
  • 1886 — JIT response suspected fraud
  • 1887 — JIT response amount limit reached
  • 1888 — JIT response usage limit reached
  • 1889 — JIT response duplicate entry
  • 1016 — Not sufficient funds
To successfully trigger a decline response, the HTTP code must read 402 and a decline_reason must be included in the response payload. Marqeta recommends using the memo and tags fields in your response so that you can store internal response messages, which will later be sent to your webhook endpoint. During triage, you should check the webhook to determine what response was returned from the JIT gateway. An example of a typical response, with the webhook shortened for illustration purposes, is included here for gpa_order.funding.gateway_log.response.data. You can find further information about the decline_reason field on the Gateway JIT Funding Messages page.
JSON

Cardholder and card state

This section outlines the responses that can be returned based on the cardholder or the card’s current state. Using the API, customers can update the state of a cardholder or card, and Marqeta will maintain checks during transactions to ensure that the cardholder or card is in the correct state before proceeding with the transaction.

Strong customer authentication

The following transaction codes represent soft decline codes that are triggered based on the strong customer authentication (SCA) controls determined by your card product’s limits. A soft decline is not an outright rejection of an authorization request. It advises the merchant that the card issuer requires the cardholder to perform 3D-Secure (3DS) authentication (for e-commerce transactions) or PIN (chip) authentication, prior to approving the transaction. To perform identity verification, the cardholder must pass SCA controls, as described in the Managing SCA in Europe guide. Common SCA transaction codes include:
  • 1891 — SCA contactless cumulative amount exceeded
  • 1892 — SCA contactless transaction count limit exceeded
  • 1893 — SCA contactless transaction limit exceeded
  • 1897 — SCA LVP cumulative amount exceeded
  • 1898 — SCA LVP transaction count limit exceeded
  • 1899 — SCA LVP transaction limit exceeded
When Marqeta returns these response codes, the merchant should request SCA using either a PIN or 3DS. SCA should be completed by the merchant, and then a new authorization posted with the correct SCA credentials. Once an SCA transaction is seen at Marqeta, the cardholder limits are reset. SCA will not be required again until these limits are met.

Transaction security checks

This section defines common transaction security checks that Marqeta uses when declining a transaction on your behalf. As a part of Marqeta’s standard controls, Marqeta ensures the correctness and validity of transactions prior to moving them to the funding phase. If a transaction is declined, you may receive one of the following decline codes:

Spend controls

Spend controls can be implemented at a program, card product, or cardholder level. Marqeta adopts the lowest-first approach to spend controls. The following response codes depend on the spend controls that you have established. For each spend control decline reason, Marqeta provides a field for additional_information. This field provides the name of the spend control that has been triggered, and the conditions for the response received (for example, additional_information : LIFETIME, Cumulative transaction amount is 10.00). You should name your spend controls using concise, meaningful phrases, as the spend control name will appear in this field.

Permitted transactions

This section describes responses that are based on your card product’s configuration within your program. As a part of your program setup, you can determine which transactions are allowed to be funded and which will be blocked. These rules should align with your internal risk parameters. The following responses are the most common:

Digital wallet token service

Marqeta’s digital wallet token service (DWTS) allows for token creation using the Marqeta platform. DWTS also allows for communication with the card network or token service provider and facilitates tokenized transactions. In the provisioning flow, Marqeta receives a token.activation.request to determine whether creating tokens is allowed. If there is a failure, Marqeta has specific response codes that describe the reason for token rejection according to card network and token service provider mandates.

Technical errors

Technical errors imply that a failure has occurred at some point in the transaction leg. This error could lie with the merchant, the acquirer, the card network, or Marqeta.