Skip to content

Webhooks API

List Webhooks

GET /api/webhooks

Response:

json
{
  "items": [
    {
      "id": "whk_xxx",
      "name": "My Webhook",
      "url": "https://example.com/webhook",
      "secret": "whsec_xxx",
      "events": ["license.created", "license.activated"],
      "enabled": true,
      "lastTriggeredAt": "2025-01-15T12:00:00.000Z",
      "createdAt": "2025-01-01T00:00:00.000Z"
    }
  ],
  "events": [
    "license.created",
    "license.activated",
    "license.deactivated",
    "license.expired",
    "license.revoked",
    "customer.created",
    "customer.updated",
    "payment.completed",
    "payment.refunded",
    "subscription.created",
    "subscription.cancelled",
    "subscription.renewed"
  ]
}

Get Webhook

GET /api/webhooks/:id

Create Webhook

POST /api/webhooks
json
{
  "name": "My Webhook",
  "url": "https://example.com/webhook",
  "events": ["license.created", "license.activated"]
}

A signing secret is auto-generated if not provided.

Update Webhook

PUT /api/webhooks/:id
json
{
  "name": "Updated Name",
  "url": "https://example.com/new-webhook",
  "events": ["license.created"],
  "enabled": false
}

Regenerate Secret

POST /api/webhooks/:id/regenerate-secret

Generates a new signing secret. The old secret immediately stops working.

Test Webhook

POST /api/webhooks/:id/test

Sends a test payload to the webhook URL.

Response:

json
{
  "success": true,
  "status": 200,
  "statusText": "OK"
}

Delete Webhook

DELETE /api/webhooks/:id