PLATFORM RC-75 Webhooks (v1) — event signing + delivery log contract (contract) (v1)

Download OpenAPI specification:

Contract-only webhook endpoint registry and delivery log contracts. This document does not imply a runtime backend implementation.

Signing headers (outbound delivery, v1):

  • X-Zex-Event-Id: immutable business event id (uuid)
  • X-Zex-Delivery-Id: unique id per delivery attempt (uuid)
  • X-Zex-Timestamp: unix seconds (UTC)
  • X-Zex-Signature: v1= where is lowercase hex HMAC-SHA256 over: {timestamp}.{raw_body}
  • X-Zex-Signature-Version: v1

Replay protection (contract): reject if timestamp skew exceeds 5 minutes (default; configurable later).

Create webhook endpoint (idempotent)

header Parameters
X-Correlation-Id
required
string
X-Idempotency-Key
required
string
Request Body schema: application/json
required
url
required
string
description
string or null
requested_by
string or null

Responses

Request samples

Content type
application/json
{
  • "url": "string",
  • "description": "string",
  • "requested_by": "string"
}

Response samples

Content type
application/json
Example
{
  • "outcome": "APPLIED",
  • "reason_code": "string",
  • "endpoint": {
    },
  • "secret": {
    },
  • "correlation_id": "string",
  • "idempotency_key": "string",
  • "audit_event_id": "string"
}

List webhook endpoints (metadata only)

header Parameters
X-Correlation-Id
required
string

Responses

Response samples

Content type
application/json
{
  • "endpoints": [
    ],
  • "correlation_id": "string",
  • "audit_event_id": "string"
}

Rotate webhook signing secret (idempotent)

path Parameters
endpoint_id
required
string
header Parameters
X-Correlation-Id
required
string
X-Idempotency-Key
required
string
Request Body schema: application/json
optional
reason
string or null
requested_by
string or null

Responses

Request samples

Content type
application/json
{
  • "reason": "string",
  • "requested_by": "string"
}

Response samples

Content type
application/json
Example
{
  • "outcome": "APPLIED",
  • "reason_code": "string",
  • "endpoint": {
    },
  • "secret": {
    },
  • "correlation_id": "string",
  • "idempotency_key": "string",
  • "audit_event_id": "string"
}

Disable webhook endpoint (idempotent)

path Parameters
endpoint_id
required
string
header Parameters
X-Correlation-Id
required
string
X-Idempotency-Key
required
string
Request Body schema: application/json
optional
reason
string or null
requested_by
string or null

Responses

Request samples

Content type
application/json
{
  • "reason": "string",
  • "requested_by": "string"
}

Response samples

Content type
application/json
Example
{
  • "outcome": "APPLIED",
  • "reason_code": "string",
  • "endpoint": {
    },
  • "secret": {
    },
  • "correlation_id": "string",
  • "idempotency_key": "string",
  • "audit_event_id": "string"
}

List delivery attempts (metadata only)

header Parameters
X-Correlation-Id
required
string

Responses

Response samples

Content type
application/json
{
  • "deliveries": [
    ],
  • "correlation_id": "string",
  • "audit_event_id": "string"
}

Delivery attempt detail (metadata only)

path Parameters
delivery_id
required
string
header Parameters
X-Correlation-Id
required
string

Responses

Response samples

Content type
application/json
{
  • "delivery": {
    },
  • "correlation_id": "string",
  • "audit_event_id": "string"
}