Mock sandbox - no real money
Open source · local-first · mock sandbox

Let agents pay.
Keep every dollar on a leash.

SanestlyPay is a policy gateway that sits between your AI agent and the money: budgets, allow/deny rules, human approvals and a full audit trail - enforced before a single cent moves.

Try the Playground Read the docs

Atomic budget reservations

Pending approvals reserve funds the moment a policy asks for a human. Concurrent requests cannot overspend a session or a daily limit.

Human-in-the-loop

Over threshold? A single-use approval claim is issued. Approve or reject - the provider executes exactly once, outside the database transaction.

Honest provider status

Every adapter carries a capability label: mock, implemented, sandbox-verified or requires-provider-access. No fake tokens, ever.

Three lines to a policy-checked payment

from sanestlypay import SanestlyPayClient

client = SanestlyPayClient(base_url="http://127.0.0.1:8080", api_key="...")
result = client.request_payment(amount_usd=15.00, category="api_credits",
                                merchant="openai.com", session_id=session_id)

The same flow runs in the browser Playground - no API key, no registration, no real money.

Provider matrix

ProviderRoleStatusNotes
mockDeterministic simulatorverifiedDefault; used by the public demo
x402Payer-side protocolrequires accessParses real 402 bodies; needs facilitator + wallet
lithicCard issuingrequires accessTyped client; fails closed without API key
stripe-mppMerchant protocolrequires accessNot implemented; honest stub
marqeta / paypal-agenticIssuing / agenticrequires accessHonest stubs, no credentials available