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).
| Status | Codes |
|---|---|
| 400 | invalid_request, invalid_email, password_too_short, invalid_status, invalid_sort, invalid_count, invalid_quantity, invalid_billing_interval, invalid_action |
| 401 | missing_api_key, invalid_api_key (also for a portal sign-in token: it is not an API key), api_key_revoked, api_key_expired |
| 402 | insufficient_credit (top up your wallet in the portal) |
| 403 | ip_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 |
| 404 | not_found, code_not_found |
| 409 | email_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 |
| 422 | idempotency_key_reused |
| 429 | rate_limited, too_many_failed_attempts, notification_daily_limit |
| 5xx | Our side. Retry with back-off, using the same Idempotency-Key. |