Skip to content
Last updated

8. Error Code Reference

Error codes are grouped by business flow because Payment, Crypto Withdrawal, and Fiat Payout use different endpoints and response semantics.

Business flowAPI scopeError behavior
Payment (Acquiring)/v1/acquiring/*Uses the standard code, message, and optional detail response
Crypto Withdrawal/v2/funds/withdraw*Core business errors can use HTTP 200 with a non-zero application code
Fiat Payout/v2/payouts*Returns a stable data.error identifier and a data.retryable hint

8.1 Payment (Acquiring) Error Codes

These codes apply to order, payment, and subscription operations documented in Acquiring API Documentation.

Minimum amount: Crypto acquiring orders must be greater than 0.1. Fiat payment methods (card, Apple Pay, and Google Pay) require an amount of at least 16.

HTTP 400 (Request Exception)

CodeDescription
400Invalid request parameters
40001request_id must be a valid UUID
40002Invalid expiration time: expires_at must be in the future
40003amount must be positive
40004Amount supports up to 6 decimal places
40005Missing expires_in parameter
40006amount must be greater than 0.1
40007Chain or token not in supported list
40008success_url does not meet specifications
40009failure_url does not meet specifications
40010Invalid amount: no matching payment method was found
40013Payment methods not enabled: the requested payment methods are not available for this merchant, or the merchant only has Pay With Card enabled but the amount is too small

HTTP 401 (Unauthorized)

CodeDescription
401Authentication failed or invalid signature

HTTP 403 (Forbidden)

CodeDescription
403Request rejected by policy
46001KYC verification required to create this payment

HTTP 404 (Resource Not Found)

CodeDescription
404Object does not exist
40401Order does not exist
40402Payment does not exist

HTTP 409 (Business Conflict)

CodeDescription
40901request_id duplicate
40902client_reference duplicate
40903An active payment already exists; use it or wait for it to expire
40904Payment processing, cannot create a new payment
40905Token unauthorized to operate this order
40906Order expired
40907Order completed or expired, cannot create payment
40908Cannot create payment due to a pending payment
40909An ongoing on-ramp order already exists for this order
40910Amount is below the minimum allowed for Pay With Card
40911Amount is above the maximum allowed for Pay With Card
40912Your region is not supported for purchase

HTTP 500 (Internal Server Error)

CodeDescription
500Internal exception; contact the support team

8.2 Crypto Withdrawal Error Codes

These codes apply to organization crypto withdrawals documented in Fund API Documentation.

CodeHTTP StatusDescription
401401The application could not authenticate the API key
403403The API key lacks fund.withdraw, the IP whitelist rejected the request, or withdrawal is disabled for the selected chain/token pair
30001200The core withdrawal configuration rejected the selected token
30002200The organization's source fund account does not exist
30003200The source account's available balance is insufficient
30005200The amount exceeds the remaining daily withdrawal limit
30007200The amount is below the minimum or is not greater than the applicable fees
30012200No withdrawal fee configuration is available for the selected chain/token pair
30013400 or 200A request parameter is invalid, such as the UUID, chain/token pair, amount, precision, source currency, or wallet address
30022200The destination is an internal Infini address; use an internal transfer instead
30023200The usable balance is insufficient after accounting for locked or reserved funds
30034200source_currency is USD, but the organization does not have a USD Cash Account
80016200A required asset price or exchange rate is temporarily unavailable
500500An unexpected internal or downstream service error occurred

Core fund-service errors use the standard application envelope and may have HTTP 200 even when code is non-zero. HMAC failures rejected by the gateway may not include an application error code.

8.3 Fiat Payout Error Codes

These codes apply to bank-account payouts documented in Fiat Payout API Documentation. This summary uses code for program control. See the detailed Payout API table for data.error, endpoint scope, and retryability metadata.

CodeHTTP StatusDescription
30013400A request field is missing, malformed, unsupported, or inconsistent. Correct the field and submit again.
401401HMAC or application authentication failed. Check the API key, signature, date, digest, and signed request target.
403403The API key lacks the required permission, the IP policy rejected the request, or the organization cannot access the resource.
40302403The organization does not have a USD payout account.
404404The quote_id or payout_id does not exist for the authenticated organization.
409409The client_reference_id was already used with different business data. Use a new reference for a different logical payout.
40901409The quote has already been consumed. Request a new quote.
40902409The quote is no longer active. Request a new quote.
40903409Another payout submission is executing for the organization. Retry with a short randomized delay.
40904409The USD payout account configuration is inconsistent. Contact Infini support.
42201422The selected amount_mode and fee_paid_by combination is unsupported.
42202422The quote expired. Request a new quote; do not retry the expired quote_id.
42204422Quote calculation or its bound destination snapshot is temporarily unavailable. Request a new quote after a short delay.
42205422The amount exceeds the supported payout amount. Lower the amount.
42206422sending_amount must be greater than 100 USD. Increase the amount.
42207422The organization's available USD balance is insufficient for sending_amount. Add funds before creating another payout.
42208422The payout would exceed the account's shared daily withdrawal limit. Wait for the next limit window or lower the amount.
100014503Payout execution or provider liquidity is temporarily unavailable. Retry later with the same client_reference_id for the same logical payout.
500500An unexpected internal error occurred. Retry safely; if it persists, contact Infini support with the request ID.