Mock sandbox - no real money · deterministic mock provider only

Policy

Scenarios

Payment request

Decision

No request yet - submit a payment or pick a scenario.

Session budget

settled $0.00 reserved $0.00 remaining $0.00 budget $0.00

Audit timeline

Events appear here as they happen.
amountcategorymerchantdecisionstatus
empty
{}
Fetch preview to see a signed webhook payload.

Python SDK

from sanestlypay import SanestlyPayClient

client = SanestlyPayClient(base_url="http://127.0.0.1:8080", api_key="agent-key")
r = client.request_payment(
    amount_usd=15.00, category="api_credits",
    merchant="openai.com", session_id="sess_...")
print(r.decision, r.status)

cURL (HMAC signed)

# see docs/HMAC.md - signature = HMAC_SHA256(secret, method + "\n" + path + "\n" + idem + "\n" + ts + "\n" + body)
curl -X POST http://127.0.0.1:8080/v1/request-payment \
  -H "X-API-Key: agent-key" -H "Idempotency-Key: $(uuidgen)" \
  -H "X-Timestamp: $TS" -H "X-Signature: $SIG" \
  -d '{"agent_id":"a1","amount_usd":15,"category":"api_credits","merchant":"openai.com"}'

Node SDK

import { SanestlyPayClient } from "@sanestly/sanestlypay";

const client = new SanestlyPayClient({ baseUrl: "http://127.0.0.1:8080", apiKey: "agent-key" });
const r = await client.requestPayment({
  amountUsd: 15, category: "api_credits", merchant: "openai.com", sessionId: "sess_...",
});