curl --request GET \
--url https://api.debbiecollect.com/v1/{tenantId}/webhooks \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.debbiecollect.com/v1/{tenantId}/webhooks"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.debbiecollect.com/v1/{tenantId}/webhooks', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.debbiecollect.com/v1/{tenantId}/webhooks",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.debbiecollect.com/v1/{tenantId}/webhooks"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.debbiecollect.com/v1/{tenantId}/webhooks")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.debbiecollect.com/v1/{tenantId}/webhooks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"id": "b963f219-255e-47b7-a3f2-0fe6180514a1",
"name": "ERP sync",
"url": "https://example.com/debbie/webhooks",
"events": [
"cases.create",
"cases.update"
],
"creditorId": null,
"verificationToken": "5f2e6a55-6f7d-4d0e-8f1c-2f5a2f8d7c11",
"email": "integrations@example.com",
"headers": {
"X-Custom": "value"
},
"deepFlattenBody": false,
"pull": false,
"enabled": true,
"createdAt": "2026-08-29T11:21:10.100Z",
"createdBy": {
"id": "b1a2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d",
"type": "KEY"
},
"bodyMappers": null
}
]Get webhooks
Lists the webhooks that are receiving events.
Required scope: read:webhooks
curl --request GET \
--url https://api.debbiecollect.com/v1/{tenantId}/webhooks \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.debbiecollect.com/v1/{tenantId}/webhooks"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.debbiecollect.com/v1/{tenantId}/webhooks', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.debbiecollect.com/v1/{tenantId}/webhooks",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.debbiecollect.com/v1/{tenantId}/webhooks"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.debbiecollect.com/v1/{tenantId}/webhooks")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.debbiecollect.com/v1/{tenantId}/webhooks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"id": "b963f219-255e-47b7-a3f2-0fe6180514a1",
"name": "ERP sync",
"url": "https://example.com/debbie/webhooks",
"events": [
"cases.create",
"cases.update"
],
"creditorId": null,
"verificationToken": "5f2e6a55-6f7d-4d0e-8f1c-2f5a2f8d7c11",
"email": "integrations@example.com",
"headers": {
"X-Custom": "value"
},
"deepFlattenBody": false,
"pull": false,
"enabled": true,
"createdAt": "2026-08-29T11:21:10.100Z",
"createdBy": {
"id": "b1a2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d",
"type": "KEY"
},
"bodyMappers": null
}
]Authorizations
Authentication can be done by using a bearer token in the Authorization header. This is done using the following format Authorization: Bearer {token}.
Path Parameters
Id of the tenant
Response
Successful operation
Id of the webhook
Name of the webhook
Address every delivery is POSTed to
Events the webhook is subscribed to
Id of the creditor the webhook is scoped to. null is a tenant wide webhook that receives events for every creditor.
Sent as the X-Verification-Token header on every delivery. Compare it with this value and reject requests that do not match.
Address notified when deliveries keep failing. null when no address was given.
Extra headers sent with every delivery
Show child attributes
Show child attributes
Per event field maps that reshape the body before it is sent. null when the body is sent as it is.
Whether nested objects in the body are flattened into single level keys joined by "_"
Whether deliveries wait to be pulled through the webhook items endpoints instead of being POSTed
Whether the webhook is receiving events
When the webhook was created
Who created the webhook
Show child attributes
Show child attributes