Hermeseus

Activity vouchers

Fetch and download the voucher for an issued activity booking.

Vouchers exist only once the booking has been issued. Poll the booking until its status is issued, then list and download. Send SessionId as a query parameter.

List vouchers

GET/Activity/v2/bookings/{uuid}/vouchers

Access requires the permission activity_get_vouchers

Returns the vouchers for the booking. The list is empty until the booking is issued.

Path parameters

NameTypeRequiredDescription
uuidstringYesThe booking reference.
curl "https://api.hermeseus.com/api/Activity/v2/bookings/1d59a17e-9726-4283-a5b7-bab7886e4709/vouchers?SessionId=8f3c81d2-4a5b-4c6d-9e0f-1a2b3c4d5e6f"
const uuid = "1d59a17e-9726-4283-a5b7-bab7886e4709";
const res = await fetch(`https://api.hermeseus.com/api/Activity/v2/bookings/${uuid}/vouchers?SessionId=8f3c81d2-4a5b-4c6d-9e0f-1a2b3c4d5e6f`);
const data = await res.json();
import requests

uuid = "1d59a17e-9726-4283-a5b7-bab7886e4709"
res = requests.get(
    f"https://api.hermeseus.com/api/Activity/v2/bookings/{uuid}/vouchers",
    params={"SessionId": "8f3c81d2-4a5b-4c6d-9e0f-1a2b3c4d5e6f"},
)

data = res.json()

Response

{
  "data": [
    {
      "uuid": "b7c1e2a4-5d6f-4a8b-9c0d-1e2f3a4b5c6d",
      "generatedAt": "2026-10-14T11:02:00.000+08:00",
      "visualId": "GBB-Z2KB84Z",
      "links": [
        { "method": "GET", "rel": "download", "href": "https://api.hermeseus.com/api/Activity/v2/bookings/1d59a17e-9726-4283-a5b7-bab7886e4709/download-voucher/b7c1e2a4-5d6f-4a8b-9c0d-1e2f3a4b5c6d" }
      ]
    }
  ],
  "timestamp": "2026-10-15T16:24:49.648+08:00"
}

Download a voucher

GET/Activity/v2/bookings/{uuid}/download-voucher/{voucher}

Access requires the permission activity_get_vouchers

Streams the voucher file as application/pdf through this gateway. Pass the booking uuid and the voucher uuid.

curl -L -o voucher.pdf \
  "https://api.hermeseus.com/api/Activity/v2/bookings/1d59a17e-9726-4283-a5b7-bab7886e4709/download-voucher/b7c1e2a4-5d6f-4a8b-9c0d-1e2f3a4b5c6d?SessionId=8f3c81d2-4a5b-4c6d-9e0f-1a2b3c4d5e6f"
Keep downloads authenticated. The download needs your session. Do not hand the link to the end customer. Fetch the file yourself and distribute it.
Skip polling where you can. Instead of polling the booking for issuance, read the booking_status_updated event on the webhooks endpoint.