Skip to main content
Paymnt Cloud returns meaningful HTTP statuses and a JSON error body with a stable shape. Always log the request_id for correlation.

Response format

  • type — broad category for programmatic handling
  • code — short, stable identifier (useful for analytics/alerting)
  • message — concise text, safe to show to logs/ops dashboards
  • request_id — include in support requests
  • status — HTTP status mirrored in the body
  • details — optional object with extra context (e.g., invalid fields)

Common categories

  • validation_error (400) — malformed or out-of-range parameters
  • authentication_error (401) — missing/invalid api-key
  • authorization_error (403) — action not permitted for this key/profile
  • not_found (404) — resource does not exist (e.g., pay_…, cus_…)
  • conflict (409) — conflicting state (e.g., duplicate operation)
  • unprocessable_entity (422) — semantically invalid request
  • rate_limit (429) — too many requests, see Rate Limits
  • internal_error (500) — unexpected server error; safe to retry with backoff
  • connector_error (502/503/504) — upstream PSP/network issue; retry with backoff
See also: Retries & BackoffIdempotency

Examples

400 — validation_error

401 — authentication_error

403 — authorization_error

404 — not_found

409 — conflict

422 — unprocessable_entity

429 — rate_limit

5xx — internal/connector


Client-side handling (Node example)


Best practices

  • Always log request_id. Include it in support requests
  • Don’t parse by message text. Use type/code for logic and metrics
  • Implement retries with exponential backoff + jitter on 5xx/connector errors and safe 409/422 cases where applicable
  • Use idempotency on mutating requests to avoid duplicates during retries
  • Handle 429 by respecting Retry-After. See Rate Limits
  • Surface actionable context to operators (status, code, type, request_id); keep PII out of logs

Need help?

If you cannot resolve an error, contact Support and include:
  • request_id
  • endpoint and HTTP method
  • approximate timestamp (UTC)
  • high-level description of what you attempted