curl --request GET \
--url https://api.voucher-staging.allride.io/consumer/v1/redemptions \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.voucher-staging.allride.io/consumer/v1/redemptions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.voucher-staging.allride.io/consumer/v1/redemptions"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)HttpResponse<String> response = Unirest.get("https://api.voucher-staging.allride.io/consumer/v1/redemptions")
.header("Authorization", "Bearer <token>")
.asString();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.voucher-staging.allride.io/consumer/v1/redemptions"
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/consumer/v1/redemptions",
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": 6017,
"resource": "redemption",
"status": "completed",
"channel": "api",
"providerPartnerId": 1030,
"voucherSetId": 2030,
"voucherSetRevisionNo": 2,
"voucherId": 5017,
"voucherSet": {
"id": 2030,
"name": {
"de": "5 € Fahrguthaben",
"en": "€5 ride credit"
},
"providerDisplayName": {
"de": "Acme Scooters",
"en": "Acme Scooters"
}
},
"issued": {
"kind": "code",
"code": "ACME5-7KQ2-M9XA",
"link": "https://acme-scooters.example.com/r?c=ACME5-7KQ2-M9XA"
},
"validFrom": null,
"validUntil": "2026-12-31T22:59:59Z",
"redemptionEntity": {
"id": 9017,
"resource": "redemption-entity",
"refId": "customer:48213",
"_links": {
"self": {
"href": "https://api.voucher.allride.io/consumer/v1/redemption-entities/9017",
"type": "application/json"
}
}
},
"redemptionLink": null,
"batchId": null,
"metadata": {
"redemptionReason": "standard",
"forMonth": "2026-10"
},
"actor": {
"type": "api-key",
"id": 12017,
"label": "Production integration"
},
"idempotencyKey": "order-8812:line-1",
"legacyRef": null,
"redeemedAt": "2026-10-21T17:42:10.120Z",
"voidedAt": null,
"voidedBy": null,
"voidReason": null,
"_links": {
"self": {
"href": "https://api.voucher.allride.io/consumer/v1/redemptions/6017",
"type": "application/json"
},
"voucherSet": {
"href": "https://api.voucher.allride.io/consumer/v1/catalog/voucher-sets/2030",
"type": "application/json"
},
"redemptionEntity": {
"href": "https://api.voucher.allride.io/consumer/v1/redemption-entities/9017",
"type": "application/json"
}
}
}
],
"page": 1,
"perPage": 25,
"totalPages": 1,
"total": 1
}
}List redemptions
Lists your redemptions, including issued codes and links. For incremental sync use filter[redeemedAt][gte]=<last seen minus 60 seconds>&sort=redeemedAt and de-duplicate by id. To check whether an intent already ran, filter by idempotencyKey. See Redeeming vouchers.
Required permissions: view-consumer-redemptions · API keys: allowed
curl --request GET \
--url https://api.voucher-staging.allride.io/consumer/v1/redemptions \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.voucher-staging.allride.io/consumer/v1/redemptions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.voucher-staging.allride.io/consumer/v1/redemptions"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)HttpResponse<String> response = Unirest.get("https://api.voucher-staging.allride.io/consumer/v1/redemptions")
.header("Authorization", "Bearer <token>")
.asString();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.voucher-staging.allride.io/consumer/v1/redemptions"
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/consumer/v1/redemptions",
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": 6017,
"resource": "redemption",
"status": "completed",
"channel": "api",
"providerPartnerId": 1030,
"voucherSetId": 2030,
"voucherSetRevisionNo": 2,
"voucherId": 5017,
"voucherSet": {
"id": 2030,
"name": {
"de": "5 € Fahrguthaben",
"en": "€5 ride credit"
},
"providerDisplayName": {
"de": "Acme Scooters",
"en": "Acme Scooters"
}
},
"issued": {
"kind": "code",
"code": "ACME5-7KQ2-M9XA",
"link": "https://acme-scooters.example.com/r?c=ACME5-7KQ2-M9XA"
},
"validFrom": null,
"validUntil": "2026-12-31T22:59:59Z",
"redemptionEntity": {
"id": 9017,
"resource": "redemption-entity",
"refId": "customer:48213",
"_links": {
"self": {
"href": "https://api.voucher.allride.io/consumer/v1/redemption-entities/9017",
"type": "application/json"
}
}
},
"redemptionLink": null,
"batchId": null,
"metadata": {
"redemptionReason": "standard",
"forMonth": "2026-10"
},
"actor": {
"type": "api-key",
"id": 12017,
"label": "Production integration"
},
"idempotencyKey": "order-8812:line-1",
"legacyRef": null,
"redeemedAt": "2026-10-21T17:42:10.120Z",
"voidedAt": null,
"voidedBy": null,
"voidReason": null,
"_links": {
"self": {
"href": "https://api.voucher.allride.io/consumer/v1/redemptions/6017",
"type": "application/json"
},
"voucherSet": {
"href": "https://api.voucher.allride.io/consumer/v1/catalog/voucher-sets/2030",
"type": "application/json"
},
"redemptionEntity": {
"href": "https://api.voucher.allride.io/consumer/v1/redemption-entities/9017",
"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: redeemedAt, voucherSetId, status. Default -redeemedAt. The server appends id as a tie-breaker.
"-redeemedAt"
Case-insensitive search (at most 255 characters) over redemptionEntity.refId, idempotencyKey.
255Status (equals).
completed, voided Status (not equal).
completed, voided Status (one of (comma-separated)). Comma-separated values.
Channel (equals).
api, dashboard, redemption-link, import Channel (one of (comma-separated)). Comma-separated values.
Provider id (equals).
x >= 0Provider id (one of (comma-separated)). Comma-separated values.
Voucher set id (equals).
x >= 0Voucher set id (one of (comma-separated)). Comma-separated values.
Redemption entity id (equals).
x >= 0Redemption entity id (one of (comma-separated)). Comma-separated values.
Redemption entity id (is null (true/false)).
refId of the entity (equals).
refId of the entity (one of (comma-separated)). Comma-separated values.
refId of the entity (starts with).
Redemption Link id (equals).
x >= 0Redemption Link id (one of (comma-separated)). Comma-separated values.
Redemption Link id (is null (true/false)).
Batch id (equals).
x >= 0Idempotency key of the request (equals).
Redemption time (greater than or equal).
Redemption time (greater than).
Redemption time (less than).
Redemption time (less than or equal).
Void time (greater than or equal).
Void time (greater than).
Void time (less than).
Void time (less than or equal).
Response
OK
Page envelope of Redemption items.
The page.
Show child attributes
Show child attributes