{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/infinihash-com/json-schema/infinihash-com-liveness-callback-request-schema.json",
  "title": "LivenessCallbackRequest",
  "description": "Provider callback payload. The handler accepts several aliases: result|status, submission_id|submissionId|metadata.submission_id|metadata.submissionId, session_id|sessionId|id. A signed timestamp (header X-Webhook-Timestamp, or signed body field sent_at/timestamp/created_at) is mandatory.",
  "x-generated": "2026-10-30",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/kyc-api-infinihash-openapi.json#/components/schemas/LivenessCallbackRequest",
  "type": "object",
  "properties": {
    "result": {
      "type": "string",
      "description": "Outcome, case-insensitive. passed | failed | expired; provider synonyms are mapped: verified -> passed, requires_input/canceled -> failed.",
      "enum": [
        "passed",
        "failed",
        "expired",
        "verified",
        "requires_input",
        "canceled"
      ]
    },
    "status": {
      "type": "string",
      "description": "Alias of result, used only when result is absent."
    },
    "submission_id": {
      "type": "string",
      "description": "KYC submission id (required, directly or via submissionId / metadata.*)."
    },
    "submissionId": {
      "type": "string",
      "description": "Alias of submission_id."
    },
    "metadata": {
      "type": "object",
      "additionalProperties": true,
      "description": "Provider metadata; may carry submission_id / submissionId.",
      "properties": {
        "submission_id": {
          "type": "string"
        },
        "submissionId": {
          "type": "string"
        }
      }
    },
    "session_id": {
      "type": "string",
      "description": "Provider verification session id."
    },
    "sessionId": {
      "type": "string",
      "description": "Alias of session_id."
    },
    "id": {
      "type": "string",
      "description": "Alias of session_id."
    },
    "reason": {
      "type": "string",
      "description": "Failure reason, stored on the liveness check and the E-07 EDD trigger."
    },
    "document_forgery": {
      "type": "boolean",
      "description": "true when the provider suspects a forged document."
    },
    "face_match": {
      "type": "number",
      "description": "Face-match score; non-numeric values are stored as null."
    }
  }
}