Errors
All errors return a JSON body with the same shape:
{ "error": { "type": "invalid_request_error", "code": "amount_too_small", "message": "Amount must be at least 100 (smallest unit).", "param": "amount", "request_id": "req_abc123" }}request_id is unique per request. Include it when contacting ParaSta support.
Error types
Section titled “Error types”type | HTTP | Meaning |
|---|---|---|
authentication_error | 401 | Missing or invalid API key |
permission_error | 403 | Key lacks permission for the requested action |
invalid_request_error | 400 | Malformed parameters |
not_found_error | 404 | Object does not exist |
rate_limit_error | 429 | Too many requests — see Rate Limits |
idempotency_error | 409 | Idempotency key reused with different parameters |
payment_error | 402 | Payment declined (e.g., insufficient balance, network rejected) |
network_error | 502 / 504 | Blockchain RPC unreachable; safe to retry with idempotency key |
api_error | 5xx | ParaSta internal error; report with request_id |
Handling errors
Section titled “Handling errors”- 4xx errors are usually permanent — fix the request before retrying.
- 5xx and 429 errors are transient — retry with exponential backoff and an
Idempotency-Key. - Always check
error.codefor branching logic, noterror.message(messages may change).
A full code catalog is at Reference → Error codes.