Skip to main content
All errors share one envelope:
details is optional; it’s included for validation errors to specify which fields failed. Every response also carries an X-Response-ID header; include it when contacting support@prava.space.

Authentication & validation

These can occur on any endpoint:

Create Session — POST /v1/sessions

Payment Result — GET /v1/sessions/{sessionId}/payment-result

Report Status — POST /v1/sessions/{sessionId}/report-status

Cards — GET /v1/listCards · POST /v1/deleteCard

Revoke Session — POST /v1/sessions/{id}/revoke

Mandates — /v1/mandates/*

Mandate routes authenticate with a secret key or an agent Ed25519 signature; a missing/invalid credential returns 401 AUTH_REQUIRED. Reporting a charge (/charges/{txnId}/report) can additionally return 404 CHARGE_NOT_FOUND, 409 CHARGE_NOT_REPORTABLE / CHARGE_NO_TLI, 502 VISA_CONFIRMATION_FAILED, or 500 MANDATE_CHARGE_REPORT_DB_FAILED.
THRESHOLD_EXCEEDED is not a Prava error code — it’s a Visa decline (an over-cap charge) surfaced in a failed charge’s errorCode / errorMessage, not in the error envelope. See Charge a Mandate.
The SDK has its own client-side error codes (SDK_ALREADY_ACTIVE, INVALID_CONFIG, IFRAME_LOAD_ERROR, SDK_INIT_ERROR); see Collect Card Details. CLI errors are mapped on the Prava Pay troubleshooting page.