Developer docsAPI version 2026-11-01
https://api.neofin.tech/v1StatusGet sandbox keys

Errors & status codes

Errors use conventional HTTP status codes and a consistent JSON body with a machine-readable code.

422 Unprocessable Entity
{
  "error": {
    "type": "compliance_error",
    "code": "holder_not_verified",
    "message": "The holder has not completed KYB.",
    "param": "holder.kyb_id",
    "request_id": "req_8sK2"
  }
}
HTTPtypeExample codes
400invalid_requestparameter_missing, invalid_currency, amount_too_small
401authentication_errorinvalid_key, expired_token
403permission_errorscope_missing, product_not_enabled
404not_foundresource_missing
409conflictidempotency_mismatch, account_closed
422compliance_errorholder_not_verified, restricted_industry, wallet_not_whitelisted
429rate_limittoo_many_requests (Retry-After header)
5xxapi_errorupstream_unavailable

Handling errors

  • Retry 429 after the number of seconds in Retry-After, and 5xx with exponential backoff. Always reuse the same Idempotency-Key when retrying a POST.
  • Do not retry 4xx errors other than 429 without changing the request.
  • Include request_id when contacting support.