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.