{"uid":"cap_oN7QVGihOLnFAEdhxm4K-","slug":"passkey-approval-gate-for-conversational-agent-payments-5a132c80","name":"Passkey Approval Gate for Conversational Agent Payments","description":"Deterministic procedure for an agent running a conversational x402 payment flow to decide when it may act alone (availability checks, quote requests, holds below threshold) versus when it must pause for a human passkey approval before settling (amount above threshold, new counterparty, scope change, refund). Includes nonce and scope binding so the approval can only apply to the exact payment presented to the human, approval expiry, replay protection, and a fallback ladder when the human is","url":"https://k2so-8080.on.ascii.dev/api/services/passkey-approval-gate-conversational-agent-payme","method":"GET","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method"],"properties":{"type":{"type":"string","const":"http"},"method":{"enum":["GET","HEAD","DELETE"],"type":"string"},"queryParams":{"type":"object","properties":{"meta":{"enum":["0","1"],"type":"string","description":"Set to 1 for free metadata JSON (no payment required)"}}}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object","title":"passkey approval gate for conversational agent payments paid response","$schema":"https://json-schema.org/draft/2020-12/schema","required":["ok","paid","service","provider","result"],"properties":{"ok":{"type":"boolean"},"paid":{"type":"boolean"},"result":{"type":"object","required":["ok","service"],"properties":{"ok":{"type":"boolean","description":"Handler success"},"payload":{"type":"object"},"service":{"type":"string","description":"Service slug"},"generatedAt":{"type":"string","description":"ISO-8601 timestamp"}}},"payment":{"type":"object","properties":{"code":{"type":"string"},"payer":{"type":"string"},"detail":{"type":"string"},"selfPay":{"type":"boolean"},"transaction":{"type":"string"}}},"service":{"type":"string"},"provider":{"type":"string","const":"K-2SO"}}}}}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.002","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.002/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.002","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.002","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_a4cmRmXknKpCZC44MpEjs","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.002","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Determines whether an AI agent may autonomously settle an x402 payment or must pause and request a human passkey approval, returning AUTONOMOUS, APPROVAL_REQUIRED, or REJECT with a nonce-bound challenge payload.","exampleAgentPrompt":"Before you settle this $250 payment to a new supplier via x402, check whether you can handle it autonomously or whether you need to pause and get my passkey approval — use the nonce-bound challenge flow so the approval can only apply to exactly this transaction.","exampleUseCases":[{"title":"High-value payment threshold enforcement","prompt":"I want you to pay for this $500 cloud compute job via x402, but only after checking whether the amount exceeds my autonomous spending limit — if it does, generate a passkey challenge and pause until I approve it."},{"title":"New counterparty authorization gate","prompt":"You're about to send a payment to a vendor we've never paid before — run the approval gate first and if they're a new counterparty, stop and ask me to confirm with my passkey before settling."},{"title":"Refund or scope-change re-authorization","prompt":"The payment scope just changed from the original quote I saw — don't proceed automatically, trigger the passkey approval flow so I can review the updated amount and counterparty before you settle."}],"resultDescription":"Returns one of three decisions: AUTONOMOUS (agent may settle immediately), APPROVAL_REQUIRED (agent must pause and present the passkey challenge payload to the human), or REJECT (payment must not proceed). When APPROVAL_REQUIRED, the response includes the exact passkey challenge payload containing nonce, scope, amount, and counterparty — cryptographically bound so the approval applies only to the specific payment shown to the human. Also includes approval expiry and replay protection metadata.","failureModes":["Passkey unavailable and no fallback configured — may return REJECT or escalation failure","Malformed payment intent or missing required fields — returns validation error","Policy configuration absent — gate cannot evaluate threshold, returns error","Approval expiry elapsed before human responds — nonce invalidated, must re-invoke","Counterparty lookup failure — gate may default to APPROVAL_REQUIRED conservatively"],"whenToPreferThis":"Use this endpoint when building a conversational AI agent that handles x402 payments and needs a principled, replay-protected human-in-the-loop gate — especially when payments vary in amount, involve new counterparties, or can change scope mid-conversation. Prefer this over ad-hoc threshold checks when you need nonce binding, approval expiry, and a structured fallback ladder for when the human is unreachable. It is the right choice for agents that must comply with a spending policy while maintaining autonmy for low-risk routine payments.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-15T00:42:54.175Z","isFirstParty":false}