Skip to content

Error Reference

All errors return JSON with the following structure:

{
  "error_code": "RATE_EXPIRED",
  "message": "Rate expired or invalid. Request a new quote.",
  "request_id": "req-uuid-..."
}

Use error_code for programmatic handling. message is human-readable and may change. request_id is useful when contacting support.


Error codes

Code HTTP Description
INVALID_ACCOUNT_ID 400 The account_id is not a valid UUID
ACCOUNT_NOT_FOUND 404 Account not found or does not belong to your tenant
INVALID_PROGRAM 400 program_id is invalid or does not belong to your partner account
RATE_ID_REQUIRED 400 auto_confirm_rate is false but no rate_id was supplied
RATE_EXPIRED 400 Quote has expired (10 min TTL) or was already used
RATE_ACCOUNT_MISMATCH 403 Quote was issued for a different account
RATE_TENANT_MISMATCH 403 Quote was issued for a different tenant
USER_NOT_FOUND 404 User profile not found (contact support if this occurs)
INSUFFICIENT_BALANCE 422 Withdrawal amount exceeds the account's available balance
CONCURRENT_WITHDRAWAL 409 A withdrawal is already in progress for this account
WALLET_NOT_PROVISIONED 422 Account wallet has not finished provisioning
ACCOUNT_NOT_READY 422 Account is not yet active
AMOUNT_BELOW_MINIMUM 400 Deposit or withdrawal amount is below the minimum
AMOUNT_ABOVE_MAXIMUM 400 Deposit amount exceeds the maximum
VELOCITY_LIMIT_EXCEEDED 429 Rate limit exceeded for this account
USER_NOT_ELIGIBLE 422 User is not eligible for this operation
PROVIDER_CONFIGURATION_ERROR 503 Internal provider misconfiguration; contact support
TRANSACTION_FAILED 400 Generic transaction failure; see message for details
TEST_KEY_NOT_ALLOWED 403 Sandbox key (rk_test_) used against the production API; use https://staging.api.regini.finance/partner/v1 instead
NO_FIELDS_PROVIDED 400 PATCH /accounts/{id} called with no updateable fields
INVALID_PHONE 400 Phone number is not in E.164 format
MISSING_AMOUNT 400 Neither amount_usdc nor amount_kes was provided
AMBIGUOUS_AMOUNT 400 Both amount_usdc and amount_kes were provided; supply only one
INVALID_REFERENCE 400 reference exceeds 255 characters
DEACTIVATION_BLOCKED 409 Account has an in-flight withdrawal; wait for it to complete before deactivating