Gett Developer Portal
  • Welcome
  • Distribution Partners
  • Brand Partners
  • Commerce Partners
  • Ecosystem Partners
  • Errors
  • API Reference
Documentation
  • Get Started
  • Marketfront SDK
  • API Reference
Resources
  • Payments
Company
  • Gett
  • Terms of Service
  • Privacy Policy

Copyright 2026 Gett. All rights reserved.

409 Conflict403 Forbidden500 Internal Server Error400 Bad Request404 Not Found429 Too Many Requests503 Service Unavailable401 Unauthorized502 Bad Gateway422 Unprocessable EntityCATALOGSET_NOT_FOUNDCATALOGSET_REQUIREDCLIENT_CONTEXT_REQUIREDCLIENT_IP_INVALIDCLIENT_USER_AGENT_INVALIDITEM_UNAVAILABLEMODIFIER_REQUIREDORDER_TOTAL_DIFFERENTPRECISION_EXCEEDEDCARD_EXPIREDCARD_LOST_OR_STOLENINCORRECT_CVCINSUFFICIENT_FUNDSPAYMENT_DECLINEDPAYMENT_FAILEDPAYMENT_TOKEN_INVALIDPROCESSING_ERRORSESSION_USER_REQUIREDSTORE_CLOSEDSTORE_NOT_FOUND
powered by Zuplo
Errors

PAYMENT_FAILED

PAYMENT_FAILED

The payment was declined and the processor did not tell us why. This is the unattributed decline — the generic answer we return whenever a payment fails without a reason we can map to something more specific.

Summary

FieldValue
Appears aserrors[].code
ResponseHTTP 200 — Order with isValid: false and a populated errors[]
Retry the same cardNo

This is a reason code, not a top-level error code

PAYMENT_FAILED is an errors[].code value on the order. It is not a top-level ProblemDetail.errorCode, so it carries no HTTP status, errorCategory, or retryable field of its own. See Unified OrderError shape.

When This Fires

  • POST /v1/marketfront/orders/place — payment authorization failed and the decline carried no attributable reason, or carried one we deliberately do not refine (an address-verification failure, for example).

PAYMENT_FAILED is not superseded by the more specific decline reasons — it remains the correct answer for a generic decline. If you need to branch on why a payment failed, handle the specific codes and let PAYMENT_FAILED be your default case.

Recommended Action

Ask the user for a different payment method:

  1. Show a clear "your card was declined — please try another payment method" message.
  2. Open the payment-method picker.
  3. Resubmit place with the new method.

Do not retry the declined card automatically — this is a decision by the issuer, not a transient fault, so a retry will return the same answer and repeated attempts can trigger fraud lockouts.

Looking for the retryable case?

If the payment failed because of a timeout or a fault at the processor rather than a decision about the card, that is PROCESSING_ERROR — the one payment reason where retrying the same card is sensible advice, and the one that needs idempotency care to avoid a double charge.

Related codes

More specific decline reasons refine this one. All are errors[].code values:

CodeWhen you get it instead
INSUFFICIENT_FUNDSThe account does not cover the amount
INCORRECT_CVCThe security code did not match
CARD_EXPIREDThe card has expired
CARD_LOST_OR_STOLENThe credential is flagged — never retry, never explain
PROCESSING_ERRORA transient fault, not a decline

Example

Code
{ "isValid": false, "errors": [ { "code": "PAYMENT_FAILED", "message": "We couldn't process your payment. Please try a different payment method.", "pointer": null } ] }
PAYMENT_DECLINEDPAYMENT_TOKEN_INVALID
On this page
  • Summary
  • When This Fires
  • Recommended Action
  • Related codes
  • Example
JSON