{
  "$schema": "https://useallowance.com/schemas/ai-capabilities.v1.json",
  "name": "Allowance",
  "description": "Consumer trust layer for AI agent payments. Enables agents to spend money safely within user-defined rules.",
  "url": "https://useallowance.com/",
  "status": "pre-launch",
  "contact": "hello@useallowance.com",
  "capabilities": [
    {
      "id": "create_mandate",
      "name": "Create spending mandate",
      "description": "Define a spending permission object with budget, merchant restrictions, time limits, and approval policy. The mandate governs what the agent may spend, where, and when.",
      "endpoint": "POST /v1/mandates",
      "input_schema": { "$ref": "https://useallowance.com/openapi.json#/components/schemas/AllowanceBudget" },
      "status": "pre-launch"
    },
    {
      "id": "submit_payment_intent",
      "name": "Submit payment intent",
      "description": "Request approval for a specific purchase. Allowance checks the intent against the active mandate and returns an approval decision. The agent receives a one-time payment credential only if approved.",
      "endpoint": "POST /v1/payment_intents",
      "input_schema": { "$ref": "https://useallowance.com/openapi.json#/components/schemas/PaymentIntent" },
      "status": "pre-launch"
    },
    {
      "id": "check_decision",
      "name": "Receive approval decision",
      "description": "Synchronous or async decision response indicating whether the payment intent is approved, denied, or pending human approval. Includes confidence score and constraint details.",
      "output_schema": { "$ref": "https://useallowance.com/openapi.json#/components/schemas/DecisionResponse" },
      "status": "pre-launch"
    },
    {
      "id": "revoke_mandate",
      "name": "Revoke mandate",
      "description": "Immediately revoke a spending mandate. No further payment intents can be approved under a revoked mandate.",
      "endpoint": "DELETE /v1/mandates/{id}",
      "status": "pre-launch"
    }
  ],
  "constraints": {
    "amounts_in_minor_units": true,
    "currency_iso_4217": true,
    "no_card_numbers_exposed": true,
    "idempotency_supported": true,
    "max_mandate_duration_days": 365
  },
  "agent_instructions": "All monetary amounts are integers in minor currency units (cents for USD). Do not send floats. Amounts like 47231 = $472.31. Always set an Idempotency-Key header on POST requests. Mandates expire by default — always check expires_at. If approval_policy is 'require_approval', wait for a webhook or poll the payment intent status before proceeding. This service is pre-launch: all API endpoints return 501 Not Implemented.",
  "discovery": {
    "mcp": "https://useallowance.com/.well-known/mcp.json",
    "openapi": "https://useallowance.com/openapi.json",
    "status": "https://useallowance.com/status.json",
    "pricing": "https://useallowance.com/pricing.json",
    "examples": [
      "https://useallowance.com/examples/flight-booking.json",
      "https://useallowance.com/examples/recurring-household-item.json",
      "https://useallowance.com/examples/subscription-renewals.json"
    ],
    "human_docs": "https://useallowance.com/agents"
  }
}
