Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.veridianhp.com/llms.txt

Use this file to discover all available pages before exploring further.

Errors

The Veridian API returns errors in a consistent envelope:
{
  "error": {
    "code": "session_not_found",
    "message": "No session with that id.",
    "requestId": "req_01HZX9ABCDEF"
  }
}
Always include the requestId when contacting support — it lets us trace the exact path of your request through our system in seconds.

HTTP status codes

CodeMeaning
200OK — request succeeded.
201Created — a resource was created (sessions, keys).
204No Content — succeeded, nothing to return.
400Bad Request — your request is malformed. Don’t retry as-is.
401Unauthorized — missing, malformed, or revoked API key.
403Forbidden — key is valid but lacks permission for this action.
404Not Found — the referenced resource doesn’t exist.
409Conflict — request conflicts with current state.
422Unprocessable — request is well-formed but semantically wrong.
429Too Many Requests — slow down. Respect Retry-After.
500Internal — Veridian’s problem. Safe to retry with backoff.
503Service Unavailable — temporary. Safe to retry with backoff.

Error codes

Codes are stable strings, safe to match on. Messages are human-readable and may change.

Authentication

CodeStatusMeaning
missing_authorization401No Authorization header.
malformed_authorization401Header present but not a valid bearer token.
invalid_api_key401Key not recognized.
revoked_api_key401Key was revoked. Issue a new one.
environment_mismatch401Sandbox key on production host, or vice versa.

Validation

CodeStatusMeaning
missing_field400A required field is missing. See field.
invalid_field400A field’s value is malformed. See field.
amount_too_small422Amount below the minimum.
amount_too_large422Amount above the per-session limit.
unsupported_currency422Currency is not USD.

Sessions

CodeStatusMeaning
session_not_found404No session with that id (for this practice).
session_already_terminal409Tried to cancel a terminal session.
session_expired410The session passed its expiry.
invoice_already_paid409A previous session for this invoice succeeded.

Webhooks

CodeStatusMeaning
endpoint_url_invalid400Endpoint URL must be HTTPS.
endpoint_unreachable422We could not reach the endpoint during validation.

Rate limiting

CodeStatusMeaning
rate_limited429Per-key rate limit exceeded. See Retry-After.

Server

CodeStatusMeaning
internal_error500Unexpected error on our side.
service_unavailable503Temporary capacity or maintenance.

Retry guidance

A simple rule that won’t get you into trouble:
  • 2xx: done, move on.
  • 4xx (other than 408, 429): your bug, do not retry.
  • 408, 429, 5xx: retry with exponential backoff and jitter, give up after a sane cap (e.g. 6 attempts over 5 minutes).

What’s next

Rate limits

Limits, headers, and backoff patterns.

Troubleshooting

Common errors in practice and how to fix them.