curl --request GET \
--url https://api.voucher-staging.allride.io/partner/v1/webhook-deliveries \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.voucher-staging.allride.io/partner/v1/webhook-deliveries', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.voucher-staging.allride.io/partner/v1/webhook-deliveries"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)HttpResponse<String> response = Unirest.get("https://api.voucher-staging.allride.io/partner/v1/webhook-deliveries")
.header("Authorization", "Bearer <token>")
.asString();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.voucher-staging.allride.io/partner/v1/webhook-deliveries"
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))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.voucher-staging.allride.io/partner/v1/webhook-deliveries",
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;
}{
"data": {
"data": [
{
"id": 21069,
"resource": "webhook-delivery",
"webhookEndpointId": 11069,
"webhookEventId": "3f1c9a52-7b4e-4d21-9c6a-0e5d8b2f4a17",
"eventType": "redemption-created",
"url": "https://hooks.example-transit.example.com/allride-voucher",
"status": "DELIVERED",
"attemptCount": 2,
"replayCount": 0,
"lastStatusCode": 200,
"lastErrorCode": null,
"deliveredAt": "2026-11-02T09:15:42Z",
"payload": "{\"event\":{\"id\":\"3f1c9a52-7b4e-4d21-9c6a-0e5d8b2f4a17\",\"type\":\"redemption-created\",\"timestamp\":1793610900},\"payload\":{\"resource\":\"redemption\",\"id\":5021,\"issued\":{\"kind\":\"code\",\"code\":\"RI••42\",\"link\":null},\"redemptionEntity\":{\"id\":9069,\"refId\":\"••••\"}}}",
"attempts": [
{
"attemptNo": 1,
"trigger": "event",
"signature": "t=1793610901,s1=8c1f…3e,s2=02aa…91",
"statusCode": 503,
"responseBody": "upstream unavailable",
"errorCode": "http-5xx",
"durationMs": 214,
"attemptedAt": "2026-11-02T09:15:01Z"
},
{
"attemptNo": 2,
"trigger": "event",
"signature": "t=1793610941,s1=41d0…7c,s2=9be3…05",
"statusCode": 200,
"responseBody": "ok",
"errorCode": null,
"durationMs": 182,
"attemptedAt": "2026-11-02T09:15:41Z"
}
],
"createdAt": "2026-11-02T09:15:00Z",
"updatedAt": "2026-11-02T09:15:42Z",
"_links": {
"self": {
"href": "https://api.voucher.allride.io/partner/v1/webhook-deliveries/21069",
"type": "application/json"
},
"webhookEndpoint": {
"href": "https://api.voucher.allride.io/partner/v1/webhook-endpoints/11069",
"type": "application/json"
}
}
}
],
"page": 1,
"perPage": 25,
"totalPages": 1,
"total": 1
}
}List webhook deliveries
Lists the stored webhook events of the last 30 days, one entry per event and endpoint, with status (PENDING, DELIVERED, FAILED) and the attempts. An event appears as PENDING as soon as it is stored, before the first send. Billing and price-terms-* deliveries are left out unless you hold view-consumer-billing or view-consumer-pricing. See Retries, logs and replay.
Required permissions: view-webhook-deliveries · API keys: allowed
curl --request GET \
--url https://api.voucher-staging.allride.io/partner/v1/webhook-deliveries \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.voucher-staging.allride.io/partner/v1/webhook-deliveries', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.voucher-staging.allride.io/partner/v1/webhook-deliveries"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)HttpResponse<String> response = Unirest.get("https://api.voucher-staging.allride.io/partner/v1/webhook-deliveries")
.header("Authorization", "Bearer <token>")
.asString();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.voucher-staging.allride.io/partner/v1/webhook-deliveries"
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))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.voucher-staging.allride.io/partner/v1/webhook-deliveries",
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;
}{
"data": {
"data": [
{
"id": 21069,
"resource": "webhook-delivery",
"webhookEndpointId": 11069,
"webhookEventId": "3f1c9a52-7b4e-4d21-9c6a-0e5d8b2f4a17",
"eventType": "redemption-created",
"url": "https://hooks.example-transit.example.com/allride-voucher",
"status": "DELIVERED",
"attemptCount": 2,
"replayCount": 0,
"lastStatusCode": 200,
"lastErrorCode": null,
"deliveredAt": "2026-11-02T09:15:42Z",
"payload": "{\"event\":{\"id\":\"3f1c9a52-7b4e-4d21-9c6a-0e5d8b2f4a17\",\"type\":\"redemption-created\",\"timestamp\":1793610900},\"payload\":{\"resource\":\"redemption\",\"id\":5021,\"issued\":{\"kind\":\"code\",\"code\":\"RI••42\",\"link\":null},\"redemptionEntity\":{\"id\":9069,\"refId\":\"••••\"}}}",
"attempts": [
{
"attemptNo": 1,
"trigger": "event",
"signature": "t=1793610901,s1=8c1f…3e,s2=02aa…91",
"statusCode": 503,
"responseBody": "upstream unavailable",
"errorCode": "http-5xx",
"durationMs": 214,
"attemptedAt": "2026-11-02T09:15:01Z"
},
{
"attemptNo": 2,
"trigger": "event",
"signature": "t=1793610941,s1=41d0…7c,s2=9be3…05",
"statusCode": 200,
"responseBody": "ok",
"errorCode": null,
"durationMs": 182,
"attemptedAt": "2026-11-02T09:15:41Z"
}
],
"createdAt": "2026-11-02T09:15:00Z",
"updatedAt": "2026-11-02T09:15:42Z",
"_links": {
"self": {
"href": "https://api.voucher.allride.io/partner/v1/webhook-deliveries/21069",
"type": "application/json"
},
"webhookEndpoint": {
"href": "https://api.voucher.allride.io/partner/v1/webhook-endpoints/11069",
"type": "application/json"
}
}
}
],
"page": 1,
"perPage": 25,
"totalPages": 1,
"total": 1
}
}Authorizations
Your API key in Authorization: Bearer <key>. Use vk_test_… keys against the sandbox and vk_live_… keys against production.
Query Parameters
Page number, 1-100,000 (default 1). Outside the range: 400 data-failed-validation with the constraint invalid-page.
1 <= x <= 100000Items per page, 1-100 (default 25). Outside the range: 400 data-failed-validation with the constraint invalid-page.
1 <= x <= 100One sort field; prefix - for descending (sort=field or sort=-field). Allowed: createdAt. Default -createdAt. The server appends id as a tie-breaker.
"-createdAt"
Endpoint (equals).
x >= 0Endpoint (one of (comma-separated)). Comma-separated values.
Delivery status (equals).
PENDING, DELIVERED, FAILED Delivery status (one of (comma-separated)). Comma-separated values.
Event type (equals).
redemption-created, redemption-voided, redemption-entity-created, redemption-link-exhausted, redemption-link-expired, catalog-voucher-set-available, catalog-voucher-set-updated, catalog-voucher-set-activation-scheduled, catalog-voucher-set-activated, catalog-voucher-set-deactivation-scheduled, catalog-voucher-set-deactivated, catalog-voucher-set-unavailable, catalog-voucher-set-stock-low, catalog-voucher-set-depleted, webhook-endpoint-test, invoice-finalised, invoice-paid, invoice-overdue, invoice-voided, payment-failed, payment-method-deactivated, price-terms-change-scheduled, price-terms-acceptance-required, price-terms-accepted Event type (one of (comma-separated)). Comma-separated values.
Status code of the latest attempt (greater than or equal).
Status code of the latest attempt (less than or equal).
Event id (event.id of the body) (equals).
When the event was stored (download key) (greater than).
When the event was stored (download key) (greater than or equal).
When the event was stored (download key) (less than).
When the event was stored (download key) (less than or equal).
Response
OK
Page envelope of WebhookDelivery items.
The page.
Show child attributes
Show child attributes