Agent-to-agent booking
How another AI agent can delegate travel work to Sendero over MCP, x402 tools, and workflow APIs.
Use Sendero as a travel sub-agent. Your agent keeps the customer relationship; Sendero handles live inventory, policy, escrow, ticketing, settlement, invoices, and trip-state memory.
There are two integration modes:
| Mode | Best for | Entry point |
|---|---|---|
| MCP tool calls | Agent hosts such as Claude Desktop, Cursor, Zed, or custom LLM runtimes that want schema discovery. | POST https://edge.sendero.travel/mcp |
| Workflow delegation | Production agents that want Sendero to run the whole booking lifecycle with pauses, webhooks, and invoices. | POST https://app.sendero.travel/api/workflows/run |
Read /.well-known/llms.txt first. It points agents at the current docs, tool catalog, safety rules, and canonical endpoints.
Delegated flight booking
A full flight booking is not one tool call. It is an escrow-backed workflow:
- Resolve the traveler and tenant.
- Prefund a trip budget with
prefund_trip. - Send the traveler the claim link, or let the traveler claim from WhatsApp, Slack, email, or web.
- Run
sendero.book_flightwith the claimedtripId, route, dates, passenger count, cabin, and optional policy id. - Sendero searches live flight inventory with
search_flights. - Sendero checks policy with
check_policy. - Sendero reserves upper-bound escrow with
reserve_booking. - Sendero holds the flight offer with
book_flight. - Sendero commits the actual vendor amount with
commit_booking. - The workflow pauses until the ticketing webhook arrives.
- If ticketed, Sendero calls
confirm_ticketing,settle_booking, andgenerate_booking_invoice. - If ticketing fails, Sendero calls
cancel_bookingand refunds unspent escrow.
The same workflow can pause for Slack approvals, traveler OTP, ticketing, or other external events. Do not reimplement those waits in your own agent unless you need custom orchestration.
Discover capabilities
MCP clients should initialize, then list tools:
Workflow clients should list named plans:
Use named workflows when an intent matches. Use raw tools only for low-level operations or custom flows.
Start a booking workflow
Call /api/workflows/run from your backend. Pass stable tenant and user identifiers from your system; Sendero uses them for metering, policy, session memory, and audit logs.
If the response is status: "paused", persist the returned runId, nextStepId, and pause reason. Sendero also persists pause state in its session store for first-party channels.
Resume a paused workflow
Approvals, guest claims, and ticketing are event-driven. When your system receives the required resolution, resume the run:
ticketing usually resumes through our supplier webhook automatically. Slack approval buttons and WhatsApp claim links also resume the same workflow runner.
Call raw tools over MCP
For agent hosts that only support MCP, call one tool at a time:
MCP responses return a content array with JSON text. Parse the text before passing IDs to later tools.
Pay for direct HTTP tools
If your agent does not speak MCP, call the x402-gated HTTP surface:
The first request without Payment-Signature returns 402 Payment Required plus a PAYMENT-REQUIRED header. Sign the described EIP-3009 authorization, retry the same request, and Sendero captures payment only if the tool succeeds.
What to persist
Persist only safe identifiers:
tenantId,userId,tripId,bookingId,workflowId,runId,sessionId- offer ids and booking refs returned by Sendero
- public invoice URLs and receipt tx hashes
- caller idempotency keys
Do not persist guest private-link fragments, plaintext claim codes, seed phrases, raw card data, Circle secrets, Clerk secrets, or webhook signing secrets.
Locale and channel context
When another agent calls Sendero, include locale and channel context whenever possible:
Sendero uses locale for language, date style, currency assumptions, policy copy, airport slang, and traveler support tone. The same traveler session can continue later in WhatsApp or Slack.
Safety contract
- Get explicit traveler or operator approval before booking, charging, cancelling, or changing an itinerary.
- Reuse idempotency keys across retries.
- Treat prices and availability as volatile until a hold or order is confirmed.
- Use
check_policybefore committing corporate spend. - Prefer
sendero.book_flightover manual tool chains for real bookings. - Keep an audit trail from action to payment receipt to invoice.