What is @ovra/pay?
A TypeScript SDK that fills payment forms in your agent’s browser. The agent never sees card credentials.How it works
- Your agent navigates to a checkout page
- You call
OvraPay.checkout(page, { intentId }) - The SDK fetches a one-time credential from Ovra API
- The credential is used inside
page.evaluate()— isolated from agent code - Payment form is filled, agent gets
{ success: true }
page object can come from Playwright, Puppeteer, Stagehand, or any framework with page.evaluate().
Why not just use the card number?
When an agent has the card number in its context:- It can appear in LLM logs and training data
- It can be leaked in error messages
- It can be stored in agent memory
- It violates PCI DSS requirements
@ovra/pay, the card data only exists inside page.evaluate() for the duration of the form fill. It never enters the agent’s JavaScript scope.