Balvinder Singh — BS monogramBalvinder SinghPaymentsAIArchitecture

Payment Lab · Trust Simulator

Can this agent make this payment, and can we prove why?

A synthetic user mandate meets a synthetic transaction. The engine walks every guardrail — currency, per-transaction cap, daily cap, MCC allow/blocklist, expiry, consent freshness, step-up thresholds — and produces an APPROVE / DENY / STEP-UP verdict with a full audit trail. Illustrative simulation. No LLM, no real network calls.

Everything inside the guardrails; decision APPROVE.

DecisionAPPROVE

All guardrails passed. Agent may proceed.

Guardrail trace

  1. PASSMandate exists and identifies the agent + principal

    agent=agent_shop_helper_42 · principal=principal_bs

  2. PASSMandate is unexpired at requested time

    expires=2026-10-27T19:24:08.084Z · requested=2026-09-27T19:24:08.084Z

  3. PASSRequested currency matches mandate currency

    mandate=USD · requested=USD

  4. PASSPer-transaction cap (150 USD)

    requested=42.5 · limit=150

  5. PASSDaily spend cap (300 USD)

    today+txn=62.5 · limit=300

  6. PASSMonthly spend cap (2000 USD)

    month+txn=392.5 · limit=2000

  7. PASSMerchant category code (MCC) is on the allowlist

    mcc=5411 · allowlist=5411,5812,5732,4900

  8. PASSMerchant MCC is not on the blocklist

    mcc=5411 · blocklist=7995,5967

  9. PASSUser consent is fresh (within 5 minutes)

    age=2 minutes

Mandate snapshot

{
  "agentId": "agent_shop_helper_42",
  "principalId": "principal_bs",
  "currency": "USD",
  "perTransactionMax": 150,
  "dailyMax": 300,
  "monthlyMax": 2000,
  "expiresAt": "2026-10-27T19:24:08.084Z",
  "allowedMccs": [
    "5411",
    "5812",
    "5732",
    "4900"
  ],
  "blockedMccs": [
    "7995",
    "5967"
  ],
  "stepUpAbove": 100,
  "consentFreshMinutes": 2
}
Agent Payment Trust Simulator — Balvinder Singh