{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://ucp.dev/2026-01-23/schemas/payment_handler.json",
  "title": "Payment Handler",
  "description": "Schema for UCP payment handlers. Handlers define how payment instruments are processed.",
  "$defs": {
    "base": {
      "allOf": [
        {
          "$ref": "https://ucp.dev/2026-01-23/schemas/ucp.json#/$defs/entity"
        },
        {
          "type": "object",
          "required": [
            "id"
          ]
        }
      ]
    },
    "platform_schema": {
      "title": "Payment Handler (Platform Schema)",
      "description": "Platform declaration for discovery profiles. May include partial config state required for discovery.",
      "allOf": [
        {
          "$ref": "#/$defs/base"
        },
        {
          "required": [
            "spec",
            "schema"
          ]
        }
      ]
    },
    "business_schema": {
      "title": "Payment Handler (Business Schema)",
      "description": "Business declaration for discovery profiles. May include partial config state required for discovery.",
      "allOf": [
        {
          "$ref": "#/$defs/base"
        }
      ]
    },
    "response_schema": {
      "title": "Payment Handler (Response Schema)",
      "description": "Handler reference in responses. May include full config state for runtime usage of the handler.",
      "allOf": [
        {
          "$ref": "#/$defs/base"
        }
      ]
    }
  }
}