Relay is the API that sits between your agent's checkout and its suppliers. Send it what the customer agreed to, what got charged, and what the supplier confirmed — Relay tells you, in seconds, whether the three actually match, and what to do if they don't.
"Payment succeeded" tells you nothing about whether the ticket was actually issued, the price held, the fare rules stayed the same, or the trip completed end to end. Today a human catches this — checking payment logs, checking the supplier order, emailing an airline, filing for a refund, and following up for days. That holds up at the pace of a call center. It does not hold up once an agent is booking travel autonomously, because the same failure now happens faster and at volume.
What the user agreed to buy, what your payment provider actually charged, and what the supplier ultimately confirmed — via webhook or a direct API call.
It compares the three across amount, dates, passenger details, fare rules, and order completeness — no polling, no end-of-month batch job.
A clean match, or a specific flag with a recommended resolution: refund, retry, cancel, re-book, or escalate to a human.
Relay is API-first because the thing that needs it isn't a person watching a dashboard — it's the agent that just placed the order. Call it directly after checkout, or register it as a tool your agent framework can invoke on its own.
{
"order_id": "ord_9F2k",
"agreed": { "amount": 2480.00, "currency": "USD",
"route": "SFO-NRT", "refundable": true },
"charged": { "amount": 2480.00, "processor": "stripe",
"charge_id": "ch_1P..." },
"confirmed": { "supplier": "duffel", "status": "failed" }
}
// → 200 OK
{
"verdict": "flagged",
"flags": ["unissued_after_charge"],
"resolution": "refund",
"confidence": 0.98
}
{
"name": "check_order_integrity",
"description": "Verify a travel order
after checkout by comparing payment,
booking request, and supplier confirmation.",
"parameters": {
"order_id": "string",
"agreed": "object",
"charged": "object",
"confirmed": "object"
}
}
// any agent that can call a tool
// can call Relay after it books.
The card was charged; the ticket never came through.
A retried request after a timeout books once, charges twice.
The charged amount doesn't match what was agreed to.
Refundable becomes non-refundable somewhere downstream.
Wrong date, airport, or passenger name on the confirmed order.
The flight books; the hotel fails — or the reverse.
Marked "processed" upstream, never arrives for the customer.
Doesn't fit a known pattern — flagged for a human, not silently dropped.
We'll show you — on your own data — every payment-succeeded, booking-wrong case your team didn't catch. No integration required for the first pass. Priced per order monitored, per order recovered, or as a share of the amount recovered. We'd love to have you on board early.