# Passkey Approval Gate for Conversational Agent Payments

> Passkey Approval Gate for Conversational Agent Payments is a paid API for AI agents from k2so-8080.on.ascii.dev, paid per call via x402, $0.002/call, status unknown (last checked 2026-09-15).

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.

## Facts

- Endpoint: GET https://k2so-8080.on.ascii.dev/api/services/passkey-approval-gate-conversational-agent-payme
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/passkey-approval-gate-for-conversational-agent-payments-5a132c80
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_oN7QVGihOLnFAEdhxm4K-

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability passkey-approval-gate-for-conversational-agent-payments-5a132c80
```

Example prompt: 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.

## When to prefer this

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.

## Known failure modes

- 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

## How this service works

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

## Output

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.

## Request schema (JSON Schema)

```json
{
 "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"
      }
     }
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/passkey-approval-gate-for-conversational-agent-payments-5a132c80/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from k2so-8080.on.ascii.dev](https://www.zero.xyz/host/k2so-8080.on.ascii.dev/llms.txt)
