Skip to main content
The lite API returns structured errors that help you understand what failed, fix the request, and retry safely when the outcome is uncertain. Use the first sections to understand the error model. Use Errors by API to see the exact responses returned by each operation. Payment states such as AUTHORIZED, CAPTURED, VOIDED, and REFUNDED describe the payment lifecycle and are documented separately.

Read an error

Standard API errors return an errors array and a request_id.
A validation response can contain one item for each field that failed validation.
Fields such as retry_after_seconds, documentation_url, routing_attempts, error_id, business_id, and entity_id are not currently returned.

Validation errors

Field-level validation returns MISSING_REQUIRED_FIELD or INVALID_FIELD_VALUE. The field value identifies the property that failed.
Fix all fields listed in the response before resubmitting the request.

HTTP status codes

The HTTP status identifies the general class of failure. Use the error code for application logic.

Error categories

Every error belongs to a category. Use it as a fallback when your integration receives a code it does not recognize.

Error codes

The table below lists the error codes currently returned by the payment, payment-link, instrument, device-payment, POS, and 3D Secure services.

Retry failed requests

Branch on code. For an unknown code, use category to identify the type of problem and retriable to determine whether a retry may succeed. Never branch on message. A retriable: true response permits a controlled retry. It does not confirm that the original payment operation failed. For payment operations, retrieve the payment status before retrying or creating another payment attempt. This prevents duplicate authorizations, captures, voids, or refunds. Use exponential backoff and cap the number of attempts. Stop retrying when the operation reaches a final state or when the retry limit is reached. A retriable: false response requires a change before another attempt, such as correcting the request, using another payment instrument, or waiting for a valid workflow state. Log the request_id for every failed request and include it when contacting lite support.

Errors by API

Find the errors each lite API can return. Open an example to see the exact response body. Values such as <request-id> and <status> are generated at runtime.

Common errors

These responses are shared by several APIs. Each endpoint section identifies the shared responses that apply.
Returned by: Payment APIs under /api/v1/payments/*HTTP 401 Unauthorized · UNAUTHORIZED · Retriable: No
Returned by: Instruments, POS, Payment Links, device payments, and some 3D Secure browser flowsHTTP 401 Unauthorized · UNAUTHORIZED · Retriable: No
Returned by: Payment and instrument APIsHTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
Returned by: Endpoints with request validationHTTP 400 Bad Request · MISSING_REQUIRED_FIELD · Retriable: No
Returned by: Endpoints with request validationHTTP 400 Bad Request · INVALID_FIELD_VALUE · Retriable: No
Returned by: Payment and instrument APIsHTTP 500 Internal Server Error · INTERNAL_ERROR · Retriable: Yes

Payments

Authorize a payment

POST /api/v1/payments Also returned: missing merchant context, malformed request, field validation, and internal errors.
HTTP 400 Bad Request · INVALID_AMOUNT · Retriable: No
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 404 Not Found · TOKEN_NOT_FOUND · Retriable: No
HTTP 422 Unprocessable Entity · EXPIRED_TOKEN · Retriable: No
HTTP 422 Unprocessable Entity · INVALID_TOKEN · Retriable: No
HTTP 422 Unprocessable Entity · INVALID_TOKEN · Retriable: No
HTTP 409 Conflict · DUPLICATE_ENTITY · Retriable: No
HTTP 409 Conflict · DUPLICATE_REQUEST · Retriable: No
HTTP 504 Gateway Timeout · PROVIDER_TIMEOUT · Retriable: Yes
HTTP 502 Bad Gateway · PROVIDER_CONNECTION_ERROR · Retriable: Yes
HTTP 503 Service Unavailable · WORKFLOW_SUBMISSION_FAILED · Retriable: Yes
HTTP 500 Internal Server Error · INTERNAL_ERROR · Retriable: Yes
HTTP 500 Internal Server Error · INTERNAL_ERROR · Retriable: Yes
If an earlier request with the same idempotency key already failed, lite replays the original HTTP status and error body.

Capture a payment

POST /api/v1/payments/:paymentId/capture Also returned: missing merchant context, malformed request, field validation, and internal errors.
HTTP 400 Bad Request · MISSING_REQUIRED_FIELD · Retriable: No
HTTP 404 Not Found · PAYMENT_NOT_FOUND · Retriable: No
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 409 Conflict · INVALID_STATE · Retriable: No
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 503 Service Unavailable · WORKFLOW_SUBMISSION_FAILED · Retriable: Yes

Void a payment

POST /api/v1/payments/:paymentId/void Also returned: missing merchant context, malformed request, field validation, and internal errors. Missing-payment and build-input errors match the capture operation.
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 403 Forbidden · FORBIDDEN · Retriable: No
HTTP 404 Not Found · PAYMENT_NOT_FOUND · Retriable: No
HTTP 409 Conflict · INVALID_STATE · Retriable: No
HTTP 422 Unprocessable Entity · DECLINED · Retriable: No
HTTP 422 Unprocessable Entity · FRAUD_DETECTED · Retriable: No
HTTP 422 Unprocessable Entity · RISK_DECLINED · Retriable: No
HTTP 422 Unprocessable Entity · AUTHENTICATION_FAILED · Retriable: No
HTTP 422 Unprocessable Entity · AUTHENTICATION_UNAVAILABLE · Retriable: Yes
HTTP 502 Bad Gateway · PROVIDER_CONNECTION_ERROR · Retriable: Yes
HTTP 500 Internal Server Error · INTERNAL_ERROR · Retriable: Yes
HTTP 503 Service Unavailable · WORKFLOW_SUBMISSION_FAILED · Retriable: Yes

Refund a payment

POST /api/v1/payments/:paymentId/refund Also returned: missing merchant context, malformed request, field validation, and internal errors. Missing-payment and build-input errors match the capture operation.
HTTP 503 Service Unavailable · WORKFLOW_SUBMISSION_FAILED · Retriable: Yes
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 409 Conflict · INVALID_STATE · Retriable: No
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 503 Service Unavailable · WORKFLOW_SUBMISSION_FAILED · Retriable: Yes

Extend an authorization

POST /api/v1/payments/:paymentId/extend-authorization Also returned: missing merchant context, malformed request, field validation, and internal errors. Missing-payment and build-input errors match the capture operation.
HTTP 500 Internal Server Error · INTERNAL_ERROR · Retriable: Yes
HTTP 404 Not Found · PAYMENT_NOT_FOUND · Retriable: No
HTTP 409 Conflict · INVALID_STATE · Retriable: No
HTTP 503 Service Unavailable · WORKFLOW_SUBMISSION_FAILED · Retriable: Yes

Retrieve a payment

GET /api/v1/payments/:paymentId GET /api/v1/payments/orders/:orderId This endpoint can also return the shared missing-merchant and internal errors.
HTTP 404 Not Found · PAYMENT_NOT_FOUND · Retriable: No

List payments

GET /api/v1/payments This endpoint can also return the shared missing-merchant and internal errors. All query validation failures return 400 INVALID_FIELD_VALUE with retriable: false.
HTTP 400 Bad Request · INVALID_FIELD_VALUE · Retriable: No
HTTP 400 Bad Request · INVALID_FIELD_VALUE · Retriable: No
HTTP 400 Bad Request · INVALID_FIELD_VALUE · Retriable: No
HTTP 400 Bad Request · INVALID_FIELD_VALUE · Retriable: No
HTTP 400 Bad Request · INVALID_FIELD_VALUE · Retriable: No
HTTP 400 Bad Request · INVALID_FIELD_VALUE · Retriable: No
HTTP 400 Bad Request · INVALID_FIELD_VALUE · Retriable: No

POS payments

/api/v1/pos/payments Also returned: missing authentication context, malformed request, field validation, and internal errors.

Initialize a POS payment

POST /api/v1/pos/payments/init
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 503 Service Unavailable · WORKFLOW_SUBMISSION_FAILED · Retriable: Yes

Update a POS payment

POST /api/v1/pos/payments/:paymentId/update
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
Response: Varies
Retriable: Varies
Message: lite returns the underlying error’s HTTP status, code, and message unchanged.
HTTP 503 Service Unavailable · WORKFLOW_SUBMISSION_FAILED · Retriable: Yes

Retrieve the latest POS payment

GET /api/v1/pos/payments/latest
HTTP 404 Not Found · PAYMENT_NOT_FOUND · Retriable: No
GET /api/v1/pos/payments/operations and GET /api/v1/pos/payments/transactions return only the shared authentication-context, query-validation, and internal errors documented above.

3D Secure

3D Secure API

/api/v1/threeds This endpoint can also return the shared malformed-request, field-validation, and internal errors. These endpoints do not use the merchant guard.
HTTP 500 Internal Server Error · INTERNAL_ERROR · Retriable: Yes
HTTP 404 Not Found · ENTITY_NOT_FOUND · Retriable: No
HTTP 404 Not Found · ENTITY_NOT_FOUND · Retriable: No
HTTP 409 Conflict · INVALID_STATE · Retriable: No
HTTP 500 Internal Server Error · INTERNAL_ERROR · Retriable: Yes
HTTP 500 Internal Server Error · INTERNAL_ERROR · Retriable: Yes
Response: Varies
Retriable: Varies
Message: lite returns the underlying error’s HTTP status, code, and message unchanged.

Browser challenge

/v1/threeds/redirect These are browser-facing routes. Some errors do not use the standard API envelope.
GET /challenge
HTTP 401 Unauthorized · UNAUTHORIZED · Retriable: No
HTTP 404 Not Found · ENTITY_NOT_FOUND · Retriable: No
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 409 Conflict · INVALID_STATE · Retriable: No
POST /confirm
When the token is invalid, the route renders an HTML error page with HTTP 200 and errorCode: invalid_token. It does not return JSON.
GET /status
This route returns raw JSON rather than the standard error envelope: /api/v1/payment-links Also returned: missing authentication context, field validation, and internal errors.
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 409 Conflict · DUPLICATE_REQUEST · Retriable: No
GET /pay/:token This is a customer-facing route. When a payment-link status URL is configured, errors redirect to that page with one of these query values:
No JSON body is returned in this channel. Without a status URL, the route returns JSON errors:
HTTP 502 Bad Gateway · PROVIDER_CONNECTION_ERROR · Retriable: Yes
HTTP 500 Internal Server Error · INTERNAL_ERROR · Retriable: Yes

Instruments

/api/v1/instruments Also returned: missing authentication context, malformed request, field validation, and internal errors.

Create an instrument

POST /api/v1/instruments Field-level validation can return several errors in one response. Missing fields use MISSING_REQUIRED_FIELD; other constraints use INVALID_FIELD_VALUE.
HTTP 400 Bad Request · MISSING_REQUIRED_FIELD or INVALID_FIELD_VALUE · Retriable: No
Other create errors:
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 500 Internal Server Error · INTERNAL_ERROR · Retriable: Yes
HTTP 500 Internal Server Error · INTERNAL_ERROR · Retriable: Yes
A duplicate fingerprint with future_usage returns the existing instrument with HTTP 201. It is not returned as an error.

List instruments

GET /api/v1/instruments
Response: 400 MISSING_REQUIRED_FIELD or 400 INVALID_FIELD_VALUE
Retriable: No
Field validation can return one error per invalid field:
HTTP 500 Internal Server Error · INTERNAL_ERROR · Retriable: Yes

Retrieve an instrument

GET /api/v1/instruments/:id
HTTP 404 Not Found · ENTITY_NOT_FOUND · Retriable: No
HTTP 403 Forbidden · ENTITY_ACCESS_DENIED · Retriable: No
HTTP 500 Internal Server Error · INTERNAL_ERROR · Retriable: Yes

Update an instrument

PUT /api/v1/instruments/action
Response: 400 MISSING_REQUIRED_FIELD or 400 INVALID_FIELD_VALUE
Retriable: No
Field validation can return one error per invalid field:
HTTP 404 Not Found · ENTITY_NOT_FOUND · Retriable: No
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 409 Conflict · INVALID_STATE · Retriable: No
HTTP 500 Internal Server Error · INTERNAL_ERROR · Retriable: Yes
An action that leaves the instrument in its existing state returns success rather than an error.

Device payments

/api/v1/device-payment/* merchant-mapping/* Also returned: missing authentication context, field validation, and internal errors.
HTTP 400 Bad Request · INVALID_REQUEST · Retriable: No
HTTP 401 Unauthorized · UNAUTHORIZED · Retriable: No
HTTP 403 Forbidden · FORBIDDEN · Retriable: No
HTTP 404 Not Found · ENTITY_NOT_FOUND · Retriable: No
HTTP 409 Conflict · DUPLICATE_REQUEST · Retriable: No
HTTP 502 Bad Gateway · PROVIDER_CONNECTION_ERROR · Retriable: Yes
HTTP 503 Service Unavailable · PROVIDER_UNAVAILABLE · Retriable: Yes
HTTP 504 Gateway Timeout · GATEWAY_TIMEOUT · Retriable: Yes
HTTP 500 Internal Server Error · INTERNAL_ERROR · Retriable: Yes