← Home
GET/hyax-api/v1/webhooks/schema

Get webhook schema

Everything needed to write a receiver: every event name, the delivery contract (signature header, timeout, retry schedule), and the `order.created` field reference with descriptions. Pass `productId` to get a sample payload built from that product's live pricing, plus each variant's buy URL next to the `skuId` it would report — so a handler can branch on named combinations instead of opaque ids. Generated from the same constants the dispatcher uses, so it cannot describe a contract we do not follow.

Base URL: https://platform.hyax.com · Replace YOUR_API_KEY with your team API key.

Query parameters

NameRequiredDescription
productIdNoScope the sample payload to one product
skuIdNoWhich variant the sample should describe. Defaults to the first

Request

curl -X GET 'https://platform.hyax.com/hyax-api/v1/webhooks/schema?productId=clx_product_id' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Response

{
  "success": true,
  "data": {
    "events": ["people.created", "order.created", "product.updated", "…"],
    "deliveryContract": {
      "method": "POST",
      "contentType": "application/json",
      "userAgent": "Hyax-Webhooks/1.0",
      "requiresHttps": true,
      "timeoutMs": 10000,
      "maxAttempts": 3,
      "retryDelaysMs": [60000, 300000],
      "retrySpanMs": 360000,
      "maxStoredResponseBytes": 2048,
      "headers": {
        "signature": {
          "name": "X-Webhook-Signature",
          "description": "Lowercase hex HMAC-SHA256 of the exact raw request body…"
        },
        "deliveryId": {
          "name": "X-Webhook-Delivery-Id",
          "description": "Identical on every retry — use it as the idempotency key."
        }
      },
      "idempotency": "Persist the X-Webhook-Delivery-Id value with a unique constraint…"
    },
    "orderCreated": {
      "fields": [
        {
          "path": "data.items[].skuId",
          "type": "string | null",
          "description": "The purchased variant, or null on a product sold as a single item…"
        }
      ],
      "samplePayload": {
        "event": "order.created",
        "timestamp": "2025-01-15T12:00:00.000Z",
        "teamId": "clx…",
        "data": { "id": "ord_example", "amount": 29, "items": [] }
      }
    },
    "variants": [
      {
        "id": "clx…",
        "sku": "BLACK-XS",
        "label": "Black / XS",
        "price": 29,
        "units": null,
        "buyUrl": "https://shop.example.com/buy/studio-tee?variant=BLACK-XS"
      }
    ],
    "product": { "id": "clx…", "title": "Studio Tee", "urlIdentifier": "studio-tee" }
  }
}