Get Event Delivery Logs
curl --request GET \
--url https://api.example.com/v1/webhooks/events/{eventId}/logs \
--header 'Authorization: <authorization>'import requests
url = "https://api.example.com/v1/webhooks/events/{eventId}/logs"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api.example.com/v1/webhooks/events/{eventId}/logs', 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.example.com/v1/webhooks/events/{eventId}/logs",
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: <authorization>"
],
]);
$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.example.com/v1/webhooks/events/{eventId}/logs"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
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.example.com/v1/webhooks/events/{eventId}/logs")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/webhooks/events/{eventId}/logs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"event": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"eventId": "660e8400-e29b-41d4-a716-446655440001",
"tenant": "partner-name",
"eventType": "kyc.status.changed",
"payload": {
"userId": "user-123",
"status": "approved"
},
"userId": "user-123",
"sourceService": "kyc-service",
"status": "completed",
"createdAt": "2025-12-29T10:00:00.000Z",
"processedAt": "2025-12-29T10:00:05.000Z",
"queuedAt": "2025-12-29T10:00:01.000Z"
},
"logs": [
{
"id": "aaa00000-e29b-41d4-a716-446655440000",
"eventId": "660e8400-e29b-41d4-a716-446655440001",
"webhookId": "770e8400-e29b-41d4-a716-446655440002",
"attemptNumber": 1,
"requestUrl": "https://api.partner.com/webhooks/kyc",
"requestHeaders": {
"Content-Type": "application/json",
"X-Timestamp": "1704067205",
"X-Signature": "abc123def456..."
},
"requestBody": {
"eventType": "kyc.status.changed",
"userId": "user-123",
"status": "approved"
},
"responseStatus": 200,
"responseBody": "{\"received\": true}",
"errorMessage": null,
"deliveryStatus": "success",
"durationMs": 145,
"createdAt": "2025-12-29T10:00:05.000Z",
"nextRetryAt": null
}
]
}
Webhooks
Get Event Delivery Logs
Retrieve all delivery attempts for a specific event
GET
/
v1
/
webhooks
/
events
/
{eventId}
/
logs
Get Event Delivery Logs
curl --request GET \
--url https://api.example.com/v1/webhooks/events/{eventId}/logs \
--header 'Authorization: <authorization>'import requests
url = "https://api.example.com/v1/webhooks/events/{eventId}/logs"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api.example.com/v1/webhooks/events/{eventId}/logs', 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.example.com/v1/webhooks/events/{eventId}/logs",
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: <authorization>"
],
]);
$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.example.com/v1/webhooks/events/{eventId}/logs"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
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.example.com/v1/webhooks/events/{eventId}/logs")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/webhooks/events/{eventId}/logs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"event": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"eventId": "660e8400-e29b-41d4-a716-446655440001",
"tenant": "partner-name",
"eventType": "kyc.status.changed",
"payload": {
"userId": "user-123",
"status": "approved"
},
"userId": "user-123",
"sourceService": "kyc-service",
"status": "completed",
"createdAt": "2025-12-29T10:00:00.000Z",
"processedAt": "2025-12-29T10:00:05.000Z",
"queuedAt": "2025-12-29T10:00:01.000Z"
},
"logs": [
{
"id": "aaa00000-e29b-41d4-a716-446655440000",
"eventId": "660e8400-e29b-41d4-a716-446655440001",
"webhookId": "770e8400-e29b-41d4-a716-446655440002",
"attemptNumber": 1,
"requestUrl": "https://api.partner.com/webhooks/kyc",
"requestHeaders": {
"Content-Type": "application/json",
"X-Timestamp": "1704067205",
"X-Signature": "abc123def456..."
},
"requestBody": {
"eventType": "kyc.status.changed",
"userId": "user-123",
"status": "approved"
},
"responseStatus": 200,
"responseBody": "{\"received\": true}",
"errorMessage": null,
"deliveryStatus": "success",
"durationMs": 145,
"createdAt": "2025-12-29T10:00:05.000Z",
"nextRetryAt": null
}
]
}
Get Event Delivery Logs
GET https://api.baanx.com/v1/webhooks/events/{eventId}/logs Retrieves delivery logs for a specific event across all webhook endpoints.Overview
Returns the event details alongside all webhook delivery attempts for that event. Use this to debug why an event wasn’t delivered, check which webhooks received it, and verify delivery timing and responses.Authentication
This endpoint requires authentication via Bearer token:Authorization: Bearer YOUR_ACCESS_TOKEN
Request
Headers
string
required
Bearer token for authentication
Path Parameters
string (UUID)
required
Unique identifier of the event
Request Example
curl -X GET https://api.baanx.com/v1/webhooks/events/550e8400-e29b-41d4-a716-446655440000/logs \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
const eventId = '550e8400-e29b-41d4-a716-446655440000';
const response = await fetch(
`https://api.baanx.com/v1/webhooks/events/${eventId}/logs`,
{
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_ACCESS_TOKEN'
}
}
);
const data = await response.json();
console.log(data);
import requests
event_id = "550e8400-e29b-41d4-a716-446655440000"
url = f"https://api.baanx.com/v1/webhooks/events/{event_id}/logs"
headers = {
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
}
response = requests.get(url, headers=headers)
print(response.json())
const getEventLogs = async (eventId: string) => {
const response = await fetch(
`https://api.baanx.com/v1/webhooks/events/${eventId}/logs`,
{
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_ACCESS_TOKEN'
}
}
);
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
return await response.json();
};
Response
200 Success
object
The event that triggered deliveries. See List Events for field descriptions.
array
Array of delivery log entries, one per delivery attempt per webhook endpoint
string (UUID)
Unique identifier for this log entry
string (UUID)
ID of this event
string (UUID)
ID of the webhook endpoint this delivery was attempted to
integer
Delivery attempt number (1–6)
string
The URL the webhook was delivered to
object
HTTP headers sent with the delivery, including
X-Timestamp and X-Signatureobject
The webhook payload that was sent
integer | null
HTTP status code returned by your endpoint (
null if the request failed to connect)string | null
Response body returned by your endpoint
string | null
Error message if delivery failed
string
Delivery status:
pending, processing, success, or failedinteger | null
Response time in milliseconds
string (ISO 8601)
Timestamp of this delivery attempt
string (ISO 8601) | null
Scheduled time for next retry attempt, if applicable
{
"event": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"eventId": "660e8400-e29b-41d4-a716-446655440001",
"tenant": "partner-name",
"eventType": "kyc.status.changed",
"payload": {
"userId": "user-123",
"status": "approved"
},
"userId": "user-123",
"sourceService": "kyc-service",
"status": "completed",
"createdAt": "2025-12-29T10:00:00.000Z",
"processedAt": "2025-12-29T10:00:05.000Z",
"queuedAt": "2025-12-29T10:00:01.000Z"
},
"logs": [
{
"id": "aaa00000-e29b-41d4-a716-446655440000",
"eventId": "660e8400-e29b-41d4-a716-446655440001",
"webhookId": "770e8400-e29b-41d4-a716-446655440002",
"attemptNumber": 1,
"requestUrl": "https://api.partner.com/webhooks/kyc",
"requestHeaders": {
"Content-Type": "application/json",
"X-Timestamp": "1704067205",
"X-Signature": "abc123def456..."
},
"requestBody": {
"eventType": "kyc.status.changed",
"userId": "user-123",
"status": "approved"
},
"responseStatus": 200,
"responseBody": "{\"received\": true}",
"errorMessage": null,
"deliveryStatus": "success",
"durationMs": 145,
"createdAt": "2025-12-29T10:00:05.000Z",
"nextRetryAt": null
}
]
}
Error Responses
{
"message": "Not authenticated"
}
{
"message": "Not authorized"
}
{
"message": "Event not found"
}
{
"message": "Notification service is not configured for this environment"
}
Related Endpoints
GET /v1/webhooks/events/{eventId}/status- Lightweight status check for this eventPOST /v1/webhooks/events/{eventId}/retry- Retry delivery for this eventGET /v1/webhooks/{id}/logs- View all delivery logs for a specific webhook endpoint
Was this page helpful?