Skip to main content
A mandate lets an agent charge the owner’s card again and again within caps after a single passkey approval. Use it for repeat or deferred spend; for a one-off purchase use a payment session instead.
The agent must be linked first. If it isn’t, mandate commands exit with Agent not linked. Run: prava setup --name "<name>".
The lifecycle is: create (owner approves once) → poll (wait for it to go active) → charge (mint credentials, no passkey) → report (settle the outcome). cancel revokes it. list shows what’s authorized.

prava mandate create

Set up a mandate. This prints a passkey approval URL — it authorizes, it does not charge.
On success:
Give the approval URL to the owner. They open it and approve with their passkey; that single approval authorizes every later charge within the caps.
For a generic budget not tied to one merchant (e.g. “$200 for groceries this week”), drop the three --merchant-* flags and add --scope any. Generic mandates are one_time only.

prava mandate poll

Wait for a just-created mandate to become active (i.e. for the owner to approve):
It waits up to 10 minutes. Once the owner approves:

prava mandate list

List the mandates authorized on this account:
Each line reads <merchant> — <remaining>/<approved> <currency>, expires|renews <date> [<state>]. Use --json to get the mandate id you’ll pass to charge.

prava mandate charge

Charge an approved mandate — no passkey — and receive single-use credentials.
On success:
These credentials are single-use and expire quickly. Check out immediately; don’t cache, log, or reuse them.
A charge over the cap (or otherwise refused by the network) is a normal outcome — it prints ✗ Charge declined: THRESHOLD_EXCEEDED (or similar) and exits 1.

prava mandate report

Settle a charge outcome after checking out:

prava mandate cancel

Revoke a mandate. This stops all future charges and is terminal.
The owner can also revoke a mandate from the dashboard at pay.prava.space. Cancelling stops future charges; past charges are unaffected.

Exit codes

Mandate commands use exit codes so an agent can branch reliably:

Common outcomes

Next: use the returned token to complete a checkout, then report the outcome.