Four steps, every vertical
Only discovery differs by what you are selling. Everything after it is the same call.
Discover
Search transfers or coaches, or browse the subscription catalog. Every result carries a price-locked quote.
Quote
The price is frozen for a short window. Read expiresAt — it differs per vertical.
Book
One vertical-agnostic call, with an idempotency key you choose. A round trip is simply two items.
Deliver
A coupon QR, a boarding code, or nothing at all where the entitlement is already active.
POST /api/v1/bookings
X-API-KEY: your-partner-key
{
"idempotencyKey": "a1f4c2e0-77b2-4c31-9c2e-6b1f0a9d3e55",
"items": [
{ "quoteId": 90188, "details": { "...": "per vertical" } }
]
}
Built for money-moving code
The three guarantees you would otherwise have to build yourself.
No partial bookings
If any item fails, the items already booked are cancelled and the order comes to rest FAILED. A half-booked order is not a state you have to handle.
Safe under retry
Every booking carries an idempotency key. Replaying it returns the original order instead of booking twice — which matters, because no supplier here offers an agent cancel.
Deterministic errors
Machine-readable reasons, validated before any money moves. A malformed request costs nothing and names every field at fault.