Skip to main content
Prava Pay is designed to fail loudly and safely: every error tells you what happened and what to do next, and no failure ever leaves you double-charged. This page maps the messages you’ll see to a recovery step.
Exit codes let an agent branch without parsing text: 0 = success · 1 = error/declined · 2 = not linked or confirmation refused.

Linking problems

Nothing is linked on this machine yet. Run prava setup and approve in the browser.
The owner rejected the agent on the approval screen. If that was a mistake, run prava setup again and approve it.
Linking is time-sensitive. Sync the machine’s clock (enable automatic network time) and re-run prava setup.
A session or shop command ran before the agent was approved. Complete linking first (prava setup → approve → prava setup poll), then retry.

Card entry & payment sessions

The owner didn’t finish card entry within the 10-minute window. Re-create the session and have the card ready before opening the payment URL.
The card couldn’t be processed. Try the payment session again, or use a different card. If it keeps failing, contact support.
A --product value isn’t valid JSON. Use the exact shape, quoted for your shell: '{"description":"…","unit_price":"…","quantity":1}'.
The order was rejected. Check that --total-amount equals the sum of unit_price × quantity and that --merchant-url includes https://.
The token and cryptogram (the one-time card number and security code) from sessions poll are single-use and short-lived. If you wait too long to check out, mint a fresh session; don’t try to reuse old credentials.

Shopping: quotes & checkout

Quotes and checkouts drive a live merchant checkout and can take 20–40 seconds. For quotes, retry (the CLI retries once by default; raise it with --retries). For checkout, see the note on unknown outcomes below before retrying.
A quote is valid for about 15 minutes and locks the price. Once it lapses, run prava shop quote again to get a fresh checkout-session-id and total.
You’ve hit the limit on concurrent open quotes. Wait for existing quotes to be paid or to expire (~15 min), then quote again.
The account’s purchase limit has been reached. This is an owner-level guardrail: the owner needs to raise the limit or contact support. See Guardrails.
Physical goods need a delivery address and a contact phone. Add them in the Prava dashboard, or via prava shop address add … --phone "+1 …". See Agentic shopping.
quote and checkout require confirmation. At a terminal, answer y. For an agent, pass --yes only after the user has approved the seller, item, and total.

Payment outcomes

The result of a checkout is read from the payment itself rather than the network response alone, so the status you see is the real one.
The payment was declined or the merchant rejected it. This checkout is done; start a new quote to try again.
This checkout was already completed earlier. Prava recognized the repeat and did not charge again. Treat the earlier success as authoritative.
Unknown outcome (rare). If a checkout times out or the merchant response is lost, Prava does not guess: it leaves the payment un-finalized rather than risk a double charge, and asks you to wait rather than blindly retry. Do not immediately re-run checkout with the same credentials; re-quote if you need to try again, and reconcile the earlier attempt first if in doubt.

Keeping the CLI up to date

Prava tells you when a version is behind:
The CLI is too old to talk to the server. Update it, then retry the command (you do not need to re-link):
An optional bug-fix update is available. Not required, but recommended:
A Prava skill (e.g. prava-pay, prava-shopping) is behind. Update it, then retry. If the notice repeats, restart the agent session so it reloads the skill:

Still stuck?

Run prava status to confirm the agent is linked and active, and re-check the command flags against the Payment sessions and Agentic shopping references. For anything else, reach us at support@prava.space.