Reseller API

Errors

The ZoltVPN Reseller API error format and every error code by HTTP status, from invalid_request and insufficient_credit to rate_limited.

Every error has the same shape:

{ "error": "insufficient_credit", "message": "Your wallet balance does not cover this purchase." }

error is a stable code your code can test; message is for people and may change. Some errors add fields (required, blockedUntil, retryAfterSeconds).

StatusCodes
400invalid_request, invalid_email, password_too_short, invalid_status, invalid_sort, invalid_count, invalid_quantity, invalid_billing_interval, invalid_action
401missing_api_key, invalid_api_key (also for a portal sign-in token: it is not an API key), api_key_revoked, api_key_expired
402insufficient_credit (top up your wallet in the portal)
403ip_not_allowed, api_not_enabled, account_inactive (your reseller account is suspended), api_blocked, insufficient_scope, not_your_client, plan_not_resellable, device_not_sellable, static_ip_not_sellable, notifications_not_enabled
404not_found, code_not_found
409email_taken, client_limit_reached, no_live_subscription, plan_change_needs_confirmation, static_ip_already_held, static_ip_covers_term, no_static_ip_available, code_not_active, idempotency_in_progress
422idempotency_key_reused
429rate_limited, too_many_failed_attempts, notification_daily_limit
5xxOur side. Retry with back-off, using the same Idempotency-Key.