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_TOKEN_INVALID

PAYMENT_TOKEN_INVALID

The paymentToken on a CARD_ON_FILE payment cannot be used. The token is not a well-formed Gett card token, does not correspond to a usable card for the customer named on the order, or was issued in a different environment.

Summary

FieldValue
HTTP status400
errorCategorypayment
retryablefalse

When This Fires

  • POST /v1/marketfront/orders/place — payment.type is CARD_ON_FILE and the supplied payment.paymentToken cannot be resolved to a card this order may charge.

A single code covers every cause. This is deliberate: reporting why a token was refused would let a caller probe tokens to learn which ones name real stored cards, so a malformed token, an unrecognized one, and one belonging to somebody else are all answered identically.

Recommended Action

  1. Confirm you are sending the token exactly as returned by addPartnerPaymentMethod — the full string, unmodified and untruncated.
  2. Confirm the token was vaulted for the same customer.partnerUserId you are placing the order for. A card vaulted for one of your customers cannot pay for another's order.
  3. If the card was vaulted a long time ago, vault it again and use the new token.

This is not retryable with the same payload.

Environments

Tokens are environment-specific. A token issued in sandbox cannot be used in production, and vice versa — the two environments do not share stored cards. The environment is visible in the token itself: pm_test_… is sandbox, pm_live_… is production. When a token from the other environment is presented, the detail message says so explicitly.

At go-live, re-vault every card against production. Sandbox-vaulted cards are permanently unusable there.

Example

Code
{ "type": "https://developer.gett-tech.com/errors/PAYMENT_TOKEN_INVALID", "title": "Bad Request", "status": 400, "detail": "The supplied paymentToken cannot be used. Vault the card through the secure capture endpoint supplied during onboarding and quote the token it returns.", "instance": "/v1/marketfront/orders/place", "requestId": "req_abc123", "timestamp": "2026-09-01T14:30:00.000Z", "errorCode": "PAYMENT_TOKEN_INVALID", "errorCategory": "payment", "retryable": false }
PAYMENT_FAILEDPROCESSING_ERROR
On this page
  • Summary
  • When This Fires
  • Recommended Action
    • Environments
  • Example
JSON