{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://www.interview100x.com/developers/webhooks.2026-11-01.schema.json",
  "title": "Interview100x partner webhook event (2026-11-01)",
  "description": "PLUG-001 PT-2 / D-PL-20: ids and timestamps only — never answers, scores, plans, practice or purchases per person.",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "id",
    "type",
    "api_version",
    "occurred_at",
    "livemode",
    "partner_id",
    "data"
  ],
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^evt_"
    },
    "type": {
      "type": "string",
      "enum": [
        "practice.opened",
        "practice.signed_up",
        "test.ping"
      ]
    },
    "api_version": {
      "type": "string",
      "enum": [
        "2026-11-01"
      ]
    },
    "occurred_at": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$"
    },
    "livemode": {
      "type": "boolean"
    },
    "partner_id": {
      "type": "string",
      "pattern": "^[0-9a-f-]{36}$"
    },
    "data": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "practice_invite_id",
        "external_ref",
        "sub_partner_ref"
      ],
      "properties": {
        "practice_invite_id": {
          "type": [
            "string",
            "null"
          ]
        },
        "external_ref": {
          "type": [
            "string",
            "null"
          ]
        },
        "sub_partner_ref": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    }
  }
}
