{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/surfingdog-ai/json-schema/surfingdog-ai-pay-with-schema.json",
  "title": "PayWith",
  "description": "One way to pay a business, with the strongest evidence for it. declared: the business said so itself (its registration, its inbox's manifest, its own structured data, its own UCP or ACP profile, an agent payment protocol its door's document declares in its structure). seen: not its own word: a payment provider's own code, button, payment icon or file on its site, a door's document naming an agent payment protocol in passing, or its shop platform's standard UCP profile (via ucp). A page's words are never evidence. A card brand says a card: card comes with the brand's evidence. ucp_handlers names the UCP protocol, not a way a person pays; pages for people leave it out.",
  "x-generated": "2026-10-30",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/network-openapi.json#/components/schemas/PayWith",
  "type": "object",
  "required": [
    "token",
    "label",
    "src",
    "via"
  ],
  "properties": {
    "token": {
      "type": "string",
      "description": "A payment token of GET /v1/attributes."
    },
    "label": {
      "type": "string",
      "description": "Its English name."
    },
    "src": {
      "type": "string",
      "enum": [
        "declared",
        "seen"
      ]
    },
    "via": {
      "type": "string",
      "pattern": "^[a-z][a-z0-9_]*$",
      "description": "Where the evidence is: registration, manifest, schema_org, ucp, acp, door, file or page today; a later network may add another, so read one you do not know as evidence of its src."
    },
    "url": {
      "type": "string",
      "format": "uri",
      "description": "Where the evidence is: the page, file, profile, manifest or door. Absent for a registration."
    }
  }
}