Error codes

Errors return a JSON envelope with a stable code, a human-readable message, an optional offending param, and a request_id to reference in support requests. The same codes appear in your API request logs with this catalog’s guidance attached. See the error handling guide for retry patterns.

HTTP status codes

StatusMeaning
400Bad request: validation failed or the JSON could not be parsed.
401Missing or invalid API key.
403The key is valid but lacks a required scope.
404The resource does not exist or belongs to another merchant.
409Conflict: usually an idempotency key reuse or state conflict.
429Rate limited. Honor the Retry-After header.
5xxFlint server error. Retry with exponential backoff.

Error codes

API_KEY_EXPIREDauthenticationNot retryable

The API key exists but is past its expiration time.

Fix: Create or use an active API key for the target mode and merchant, then retry.

API_KEY_MODE_MISMATCHauthenticationNot retryable

The API key is not usable for its stored payment-mode binding.

Fix: Create or use an API key whose mode matches the target environment, then retry.

API_KEY_NOT_FOUNDauthenticationNot retryable

No API key matches the provided credential.

Fix: Check the API key value or create a new API key, then retry.

API_KEY_REQUIREDauthenticationNot retryable

The request did not include an API key or accepted bearer credential.

Fix: Send a Flint API key in X-API-Key or as Authorization: Bearer <API_KEY>, then retry.

API_KEY_REVOKEDauthenticationNot retryable

The API key exists but has been revoked.

Fix: Create or use an active API key for the target mode and merchant, then retry.

API_KEY_SANDBOX_UNAVAILABLEauthenticationNot retryable

The API key is bound to a sandbox that is missing, archived, inactive, or mode-incompatible.

Fix: Create or use a sandbox-bound test key for an active sandbox, then retry.

API_KEY_SCOPE_UNSUPPORTEDauthenticationNot retryable

The API key uses a legacy or unsupported scope grant.

Fix: Create a new API key with explicit public API scopes, then retry.

AUTHENTICATION_FAILEDauthenticationNot retryable

The request could not be authenticated.

Fix: Send a valid Flint API key, partner install token, checkout session credential, or dashboard session for this route, then retry.

AUTHORIZATION_FAILEDauthorizationNot retryable

The authenticated caller is not authorized for this operation.

Fix: Use credentials with access to the target merchant, environment, route, and scope, then retry.

DANGLING_EXPANSION_REFERENCEserver errorNot retryable

A public resource referenced another resource that could not be resolved during expansion.

Fix: Contact support with the request_id; this indicates a Flint data-integrity defect.

DEMO_SESSION_ROUTE_NOT_ALLOWEDauthorizationNot retryable

The demo session key cannot access this route.

Fix: Use a merchant API key for this route, or call a route supported by demo sessions.

EXPANSION_DEPENDENCY_UNAVAILABLEserver errorRetryable

A service required for an accepted expansion is unavailable.

Fix: Retry with exponential backoff. Contact support with the request_id if the error persists.

EXPANSION_LIMIT_EXCEEDEDvalidationNot retryable

The requested expansion exceeded a route fanout or response-size limit.

Fix: Request fewer expansions or use follow-up read/list endpoints.

EXPANSION_RESOLUTION_FAILEDserver errorRetryable

Flint could not resolve an accepted expansion.

Fix: Retry with exponential backoff. Contact support with the request_id if the error persists.

IDEMPOTENCY_KEY_IN_PROGRESSidempotencyRetryable

A request with the same idempotency key is still in progress.

Fix: Wait briefly and retry with the same idempotency key.

IDEMPOTENCY_KEY_REUSEDidempotencyNot retryable

The idempotency key was reused with a different request body.

Fix: Use the original request body with this idempotency key, or generate a new idempotency key for a new operation.

INSUFFICIENT_SCOPEauthorizationNot retryable

The API key is missing a required scope.

Fix: Create or use an API key with the required scope, then retry the request.

INTERNAL_ERRORserver errorRetryable

Flint returned an internal server error.

Fix: Retry with exponential backoff. Contact support with the request_id if the error persists.

INVALID_API_KEYauthenticationNot retryable

The API key credential is malformed or invalid.

Fix: Check the API key value or create a new API key, then retry.

INVALID_AUTHORIZATION_HEADERauthenticationNot retryable

The Authorization header is malformed or uses an unsupported credential.

Fix: Send a Flint API key or partner install token as Authorization: Bearer <token>, or use X-API-Key for API keys.

INVALID_EXPANDvalidationNot retryable

The request included an invalid or unsupported expand path.

Fix: Fix or remove the requested expand path; use only supported values documented for the route.

INVALID_EXPIRES_ATvalidationNot retryable

The request included an invalid or past expiration timestamp.

Fix: Send expires_at as a future RFC3339 timestamp, or omit it for a non-expiring key.

INVALID_FIELD_TYPEvalidationNot retryable

The request payload contains a field with the wrong JSON type.

Fix: Send the field using the documented JSON type, then retry with the same idempotency key if this was the same logical operation.

INVALID_JSONvalidationNot retryable

The request payload or query parameters did not pass validation.

Fix: Fix the field identified by the error response, then retry with the same idempotency key if this was the same logical operation.

INVALID_PARTNER_TOKENauthenticationNot retryable

The partner install token is invalid or expired.

Fix: Refresh or reinstall the partner app authorization, then retry with a valid partner install token.

MERCHANT_NOT_READYmerchant readinessNot retryable

The merchant is not ready for this operation.

Fix: Complete the required merchant readiness or onboarding action before retrying.

MERCHANT_ONBOARDING_REQUIREDmerchant readinessNot retryable

The merchant is not ready for this operation.

Fix: Complete the required merchant readiness or onboarding action before retrying.

METHOD_NOT_ALLOWEDrequest errorNot retryable

The route exists, but does not support the requested HTTP method.

Fix: Use one of the methods supported by the route, as listed in the Allow header.

ORDER_LINKED_PAYMENT_INTENTrequest errorNot retryable

The payment intent is attached to an order and cannot be managed through the generic payment-intent action route.

Fix: Use the order payment flow to confirm, capture, or cancel this payment intent.

RATE_LIMIT_EXCEEDEDrate limitRetryable

The request exceeded the configured rate limit.

Fix: Retry with exponential backoff and jitter. Use the Retry-After header when present.

REQUEST_FAILEDrequest errorNot retryable

The request could not be completed as submitted or in its current state.

Fix: Inspect the error response, correct the request or resource state, then retry.

REQUEST_TIMEOUTserver errorRetryable

The request timed out before Flint could complete it.

Fix: Retry with exponential backoff. Contact support with the request_id if the timeout persists.

RESOURCE_NOT_FOUNDrequest errorNot retryable

The requested resource could not be found for the authenticated merchant and environment.

Fix: Check the resource ID, mode, and merchant context, then retry.

ROUTE_NOT_FOUNDrequest errorNot retryable

No public API route matched the request path.

Fix: Check the path and remove unsupported trailing slashes or legacy routes before retrying.

SANDBOX_SELECTION_REQUIREDauthenticationNot retryable

The test-mode API key is not bound to a sandbox.

Fix: Create or use a sandbox-bound test key for the sandbox this request should target, then retry.

SERVICE_UNAVAILABLEserver errorRetryable

A service required to complete the request is temporarily unavailable.

Fix: Retry with exponential backoff. Contact support with the request_id if the error persists.

UNKNOWN_FIELDvalidationNot retryable

The request payload or query parameters did not pass validation.

Fix: Fix the field identified by the error response, then retry with the same idempotency key if this was the same logical operation.

UNSUPPORTED_CONTENT_TYPErequest errorNot retryable

The request body used an unsupported Content-Type.

Fix: Send JSON request bodies with Content-Type: application/json, then retry.

UNSUPPORTED_QUERY_PARAMvalidationNot retryable

The request included a query parameter this endpoint does not support.

Fix: Remove the unsupported query parameter or use a documented accepted expand encoding.

VALIDATION_ERRORvalidationNot retryable

The request payload or query parameters did not pass validation.

Fix: Fix the field identified by the error response, then retry with the same idempotency key if this was the same logical operation.

Rate this doc