pk_test_*/sk_test_* keys, and you can create sessions immediately against
https://sandbox.api.prava.space.
Health check
Confirm connectivity before anything else:Test cards
Test card numbers and the test OTP live on their own reference page, organized by card network: Test Cards.What behaves differently in sandbox
Prava Pay (CLI) has no separate sandbox host. The CLI talks to the live API; agent-linked
payments use real cards. Sandbox environments apply to the SDK/API integration path.
A non-quote checkout sandbox test run
- Create a session with your
sk_test_*key. - Open the returned
iframe_url(hosted) or mountcollectPAN(embedded) and enter a test card. - Approve with a passkey when prompted.
- Poll Get Payment Result until
statusisawaiting_result; the line items now carrytoken+dynamic_cvv. - Report Status with
APPROVEDorDECLINED. - Verify the final state: payment result
statusbecomescompleted(orfailed).
transactions[].card_id, but no token, CVV,
expiry, or line-item credentials. Read the top-level status and error; when merchant
lifecycle data exists, merchant_res adds its normalized status and optional order ID.
Prava performs the merchant checkout, so you do not call Report Status.
Simulate successful payment completion
Use sandbox simulation to test your success screen and completed-order handling when a quote-backed checkout reaches a confirmed merchant payment failure. Addsandbox_simulation: { stage: "payment", outcome: "success" } when creating the session.
The request is fixed for that session; it is not an option on the result-polling request.
Use an owned, unexpired sandbox quote. Replace the example quote ID, amount, and currency
with its exact final values:
iframe_url, complete card collection and verification, and poll
Get Payment Result. The normal checkout still runs.
After an eligible terminal merchant payment outcome, the effective result is completed.
For example, a confirmed card decline can produce:
merchant_res.status: "paid". In a simulation, this is the effective test result;
observed_result still reports what actually happened at the merchant. If the merchant reports success,
observed_result contains { "stage": "payment", "status": "completed" }.
The simulated completion changes only Prava’s sandbox lifecycle. It does not settle a real
merchant payment, change merchant fulfillment, or emit payment callbacks or webhooks.
Use
observed_result to distinguish the actual payment outcome from the effective test result.