vellTRDocs

Webhooks

Register endpoints and inspect deliveries. Kvell sends signed event POSTs with tiered retries and a dead-letter queue.

6 endpoints
GET/v1/stores/{storeId}/webhooksCore

List the webhook endpoints configured for a store.

JSONResponse Example
{
  "items": [
    {
      "id": "whe_9a2e6b4d4e8a",
      "url": "https://merchant.example.com/kvell/webhook",
      "eventTypes": [
        "payment.captured",
        "payment.refunded"
      ],
      "active": true,
      "status": "active",
      "createdAt": "2026-04-13T10:00:00Z"
    }
  ]
}
POST/v1/stores/{storeId}/webhooksCore

Register a webhook endpoint for a store. The signing secret is returned once. Kvell signs every delivery as X-Kvell-Signature: sha256=<hex HMAC-SHA256 over the raw body using this secret>.

Request Parameters

NameTypeRequiredDescription
urlstringRequiredHTTPS URL to deliver events to
eventTypesarrayOptionalEvent types to receive (e.g. ["payment.captured"])
JSONRequest Example
{
  "url": "https://merchant.example.com/kvell/webhook",
  "eventTypes": [
    "payment.captured",
    "payment.refunded",
    "payout.succeeded"
  ]
}
JSONResponse Example
{
  "id": "whe_9a2e6b4d4e8a",
  "merchantId": "mrc_8a1b2c3d4e5f",
  "url": "https://merchant.example.com/kvell/webhook",
  "secret": "whsec_2b3c4d5e6f708192a3b4c5d6",
  "eventTypes": [
    "payment.captured",
    "payment.refunded",
    "payout.succeeded"
  ],
  "active": true,
  "status": "active",
  "createdAt": "2026-04-13T10:00:00Z"
}
PATCH/v1/stores/{storeId}/webhooks/{webhookId}Core

Enable or disable a webhook endpoint.

Request Parameters

NameTypeRequiredDescription
activebooleanOptionalEnable/disable delivery
JSONRequest Example
{
  "active": false
}
JSONResponse Example
{
  "id": "whe_9a2e6b4d4e8a",
  "url": "https://merchant.example.com/kvell/webhook",
  "active": false,
  "status": "active"
}
DELETE/v1/stores/{storeId}/webhooks/{webhookId}Core

Remove a webhook endpoint. Returns 204 No Content.

JSONResponse Example
{}
GET/v1/merchants/{id}/webhook-deliveriesRecommended

List delivery attempts across the merchant, with filters for store and delivery status.

Request Parameters

NameTypeRequiredDescription
storeIdstringOptionalFilter by store
statusstringOptionalpending|in_progress|delivered|failed|exhausted
limitintegerOptionalPage size
offsetintegerOptionalOffset
JSONResponse Example
{
  "items": [
    {
      "id": "whd_0f1a2b3c4d5e",
      "endpointId": "whe_9a2e6b4d4e8a",
      "eventType": "payment.captured",
      "status": "delivered",
      "attemptCount": 1,
      "lastResponseCode": 200,
      "createdAt": "2026-04-13T10:00:03Z"
    }
  ]
}
POST/v1/deliveries/{id}/resendRecommended

Manually re-queue a webhook delivery (resets the attempt count).

JSONRequest Example
{}
JSONResponse Example
{
  "deliveryId": "whd_0f1a2b3c4d5e",
  "status": "queued"
}

Category Summary

Total Endpoints

6

Base Domain

api.pay.kvell.group