Webhook API
Register, inspect, and remove webhook subscriptions for event-driven integrations.
Webhook API
Use webhooks to receive asynchronous notifications for supported platform events.
List Webhooks
GET
Required permission
webhooks:readApiAccessPermission::WEBHOOKS_READQuery Parameters
sizeintegerMaximum records per page (1-100).
pageintegerPage index (1-based).
Responses
Paginated list of webhook subscriptions.
{
"entities": "Webhook",
"count": 2,
"per_page": 100,
"pages": {
"current": 1,
"max": 1
},
"elements": [
{
"id": "wh_001",
"name": "Billing Events",
"description": "Receive invoice and payment updates",
"url": "https://example.com/webhooks/billing",
"events": [
"RecurringPayments.charge.paid"
],
"token": "redacted"
}
]
}Create Webhook
POST
Required permission
webhooks:writeApiAccessPermission::WEBHOOKS_WRITEQuery Parameters
No query parameters required.
Request Body
{
"webhook": {
"name": "Billing Events",
"description": "Receive invoice and payment updates",
"url": "https://example.com/webhooks/billing",
"events": [
"RecurringPayments.charge.paid"
]
}
}webhook.namestringRequiredDisplay name of the webhook subscription.
webhook.urlstringRequiredHTTPS endpoint that receives webhook payloads.
webhook.eventsarray|stringRequiredSubscribed event names. A single event string is also accepted.
webhook.descriptionstringOptional free-text description for internal use.
Responses
Webhook created successfully.
{
"id": "wh_001",
"name": "Billing Events",
"description": "Receive invoice and payment updates",
"url": "https://example.com/webhooks/billing",
"events": [
"RecurringPayments.charge.paid"
],
"token": "generated_webhook_token"
}Name, url, or events missing; or TLS certificate validation failed.
{
"error": "A valid \"url\" must be specified."
}URL format invalid or unsupported event specified.
{
"error": "Some events are not available"
}List Supported Webhook Types
GET
Required permission
webhooks:readApiAccessPermission::WEBHOOKS_READQuery Parameters
No query parameters required.
Responses
List of available webhook event names for the company context.
[
"RecurringPayments.charge.paid",
"RecurringPayments.charge.failed"
]Get Webhook
GET
Required permission
webhooks:readApiAccessPermission::WEBHOOKS_READQuery Parameters
webhookIdstringRequiredWebhook unique identifier.
Responses
Webhook details.
{
"id": "wh_001",
"name": "Billing Events",
"description": "Receive invoice and payment updates",
"url": "https://example.com/webhooks/billing",
"events": [
"RecurringPayments.charge.paid"
],
"token": "redacted"
}Webhook resource not found.
{
"error": "Webhook not found."
}Delete Webhook
DELETE
Required permission
webhooks:writeApiAccessPermission::WEBHOOKS_WRITEQuery Parameters
webhookIdstringRequiredWebhook unique identifier.
Responses
Webhook deletion accepted.
{
"id": "wh_001",
"deleted": true
}Webhook resource not found.
{
"error": "Webhook not found. Unable to delete unknown resource"
}