Skip to main content

Cashout Errors

Every cashout endpoint returns the standard error envelope ({ success: false, error: { code, message } }). Branch on error.code, never on message.

HTTP statusError codeMeaningHow to fix
403cashout_disabledThe cashout API is not enabled for this gateway.Ask Finomesh to enable it for your gateway.
403cashout_unavailableCashout is not available for this gateway at all (not provisioned).Contact Finomesh — cashout must be provisioned before it can be enabled.
403cashout_secret_missingNo cashout signing secret is configured for this gateway.Generate the signing secret when you enable the API; if it is already enabled, contact Finomesh.
403ip_not_allowlistedYour source IP is not on the gateway's allowlist.Add your server's public IP/CIDR under Server IP allowlist — API access. The message echoes the IP we actually observed — whitelist that one.
401signature_requiredMissing X-Timestamp / X-Signature.Send both signing headers on every request.
401signature_staleTimestamp outside the 5-minute window.Use current Unix time in seconds; keep your server clock NTP-synced.
401signature_invalidSignature did not verify (wrong secret, changed body, or X-Timestamp not valid Unix seconds).Recompute HMAC_SHA256(secret, ts + "." + rawBody) over the exact raw bytes you send; confirm the secret and that X-Timestamp is integer seconds.
400idempotency_key_requiredMissing Idempotency-Key on create.Send a unique Idempotency-Key header on POST /merchant/settlements.
409idempotency_conflictSame Idempotency-Key reused with a different body.Use a new key for a new settlement, or resend the identical body to retry the original.
409conflictamount exceeds your available balance.Request your totalAvailable for that asset — check Get Balances.
409conflictPlatform-billed gateways only — you have an overdue Finomesh invoice, or your outstanding balance with us exceeds your agreed limit. The message names the amount and the limit.Pay the outstanding invoice; settlements resume as soon as it clears. Accepting payments is never blocked by this. See Settlement / Cashout → Platform-billed gateways.
422invalid_assetUnknown assetId.Send an assetId for an asset enabled on your gateway.
422validation_errorBad amount or address (malformed, non-positive, below the network-fee floor, or invalid for the asset's chain).Send a positive decimal-string amount above the fee floor and an address valid for the asset's chain.
503cashout_not_configuredThe cashout endpoint is temporarily unavailable on our side.Transient — retry with backoff; if it persists, contact Finomesh.
503fee_estimation_unavailableThe chain fee estimate (used by estimate-fee and at create time) was momentarily unreachable.Transient — retry shortly. Nothing was created.