POSTliveInbound webhook

Receive a sparse informational case event

Delivered at least once. Verify the Ed25519 signature, deduplicate by eventId across deliveryId values, use sequence only as an ordering cursor, acknowledge promptly, and fetch authoritative state before acting.

webhook: caseNotificationreceivePartnerCaseNotificationV2

Authentication and authority

Inbound callback. Verify all seven required Ed25519 signing headers; no Partner API bearer credential is sent.

Parameters

NameLocationRequirementSchema
content-digest

SHA-256 of the exact request bytes, formatted as an RFC 9530-style binary content digest. It is the final line of the canonical signature input.

headerRequired{"type":"string","pattern":"^sha-256=:[A-Za-z0-9+/]{43}=:$"}
x-pc-event-id

Stable signed event identity used for deduplication.

headerRequired{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,160}$"}
x-pc-event-timestamp

Canonical UTC ISO 8601 instant (the value must equal new Date(value).toISOString()).

headerRequired{"type":"string","format":"date-time","pattern":"^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\\.[0-9]{3}Z$"}
x-pc-key-id

Identifier of the Ed25519 verification key.

headerRequired{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,160}$"}
x-pc-schema-version

Signed body schema version; must equal the body schemaVersion.

headerRequired{"type":"string","const":"case-event-v2"}
x-pc-signature-version

Signature protocol version. It is validated as a constant; the canonical input is version-defined and does not include this header or the signature itself.

headerRequired{"type":"string","const":"pc-webhook-ed25519-v1"}
x-pc-signature

Ed25519 signature over the documented canonical input.

headerRequired{"type":"string","pattern":"^ed25519=:[A-Za-z0-9+/]{86}==:$"}

Request body

Required request body.

application/json

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schemaVersion",
    "eventId",
    "deliveryId",
    "sequence",
    "type",
    "occurredAt",
    "caseId",
    "externalCaseId",
    "actionRequired"
  ],
  "properties": {
    "schemaVersion": {
      "type": "string",
      "const": "case-event-v2"
    },
    "eventId": {
      "type": "string",
      "pattern": "^[A-Za-z0-9._:-]{1,160}$"
    },
    "deliveryId": {
      "type": "string"
    },
    "sequence": {
      "type": "integer",
      "minimum": 1
    },
    "type": {
      "type": "string"
    },
    "occurredAt": {
      "type": "string",
      "format": "date-time",
      "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\\.[0-9]{3}Z$"
    },
    "caseId": {
      "type": "string"
    },
    "externalCaseId": {
      "type": "string"
    },
    "actionRequired": {
      "type": "boolean"
    },
    "deadlineAt": {
      "type": "string",
      "format": "date-time",
      "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\\.[0-9]{3}Z$"
    }
  }
}

Responses

204

Event accepted.

Usage notes

  • Responses reflect the current authoritative resource state.
  • Callbacks are informational and at least once. Deduplicate by event ID and fetch authoritative state before acting.