Register a webhook endpoint
The only response that carries the signing secret in full. Store it when you receive it — every later read answers with secret_preview, and there is no way to ask for it again.
Try it — POST /webhooks
Kept for this tab only — it disappears when you close it, and it is never sent anywhere except as the Authorization header on the call below.
Authorization
bearerAuth webhooks:writeAuthorization: Bearer sk_live_.... Keys in the query string or the
request body are refused — a URL is logged by every proxy it passes,
and that is how customer keys leak.
A key carries scopes. A call outside them answers 403 with
insufficient_scope and names the scope it wanted.
In: header
Scope: webhooks:write
Header Parameters
Any unique string, one per logical request. Retrying with the same key
returns the first answer instead of doing the work twice, and answers
with Idempotent-Replay: true.
length <= 255Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST https://app.sendkuy.com/api/v1/webhooks \ -H "Authorization: Bearer sk_live_YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "url": "https://example.com/hooks/sendkuy", "events": [ "message.failed" ]}'{ "data": { "object": "webhook", "id": "whk_9cBe3A1H-SLhW5fONWZ32wb-IIio5Ts3", "url": "http://example.com", "events": [ "string" ], "status": "active", "secret_preview": "string", "consecutive_failures": 0, "last_failure_at": "2019-08-24T14:15:22Z", "disabled_at": "2019-08-24T14:15:22Z", "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z", "secret": "string" }}