Aller au contenu

Setting Up Webhooks

Ce contenu n’est pas encore disponible dans votre langue.

Webhooks allow your application to receive real-time notifications when events occur in your Acme account.

Terminal window
curl -X POST "https://api.acme.com/v2/webhooks" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://yourapp.com/webhooks/acme",
"events": ["user.created", "user.updated", "user.deleted"]
}'

Response:

{
"id": "wh_abc123",
"url": "https://yourapp.com/webhooks/acme",
"events": ["user.created", "user.updated", "user.deleted"],
"secret": "whsec_xyz789...",
"status": "active"
}
EventDescription
user.createdA new user was created
user.updatedA user’s details changed
user.deletedA user was deleted
payment.completedA payment was processed
payment.failedA payment attempt failed
{
"id": "evt_abc123",
"type": "user.created",
"created_at": "2024-01-15T10:30:00Z",
"data": {
"id": "usr_xyz789",
"email": "newuser@example.com",
"name": "New User"
}
}

Always verify webhook signatures to ensure requests are from Acme:

const crypto = require('crypto');
function verifyWebhook(payload, signature, secret) {
const expected = crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(`sha256=${expected}`)
);
}

Failed webhook deliveries are retried up to 5 times with exponential backoff.