Evaluator lane

Try the booking flow without reverse-engineering the platform.

This page collects machine entry points, runtime checks, sample supply IDs and example snippets needed to move from discovery to a first sandbox booking attempt.

1. Discover

Fetch capability metadata first.

Start with the Agent Card and OpenAPI before attempting writes. The booking surface is designed to be machine-discoverable.

2. Quote

Use one concrete property, room and rate.

This page hydrates one live sample when available so evaluators can avoid placeholder drift during the first quote call.

3. Confirm

Keep hold, payment and booking IDs explicit.

The flow remains reliable only when the runtime preserves quote, hold and receipt state between calls.

Live sample

Use a real property when inventory is available.

These IDs are pulled from the current catalog. If no live property is available, use the first snippet to fetch supply IDs before continuing.

Live sample supply is unavailable right now. Run the first discovery call, pick one property, then continue with quote and hold.

Example flow

Fastest path to a first sandbox booking attempt.

1. List properties
curl -s 'https://api.agenthotel.dev/v1/properties' \
  -H 'accept: application/json'
2. Create quote
curl -s -X POST 'https://api.agenthotel.dev/v1/quotes' \
  -H 'content-type: application/json' \
  -d '{
    "hotel_id": "<property_id>",
    "room_type_id": "<room_type_id>",
    "rate_plan_id": "<rate_plan_id>",
    "check_in": "2026-05-02",
    "check_out": "2026-05-04",
    "adults": 2
  }'
3. Create hold
curl -s -X POST 'https://api.agenthotel.dev/v1/holds' \
  -H 'content-type: application/json' \
  -H 'Idempotency-Key: sandbox-hold-001' \
  -H 'Authorization: Bearer <agent_secret>' \
  -d '{ "quote_id": "<quote_id>" }'
4. Confirm booking
curl -s -X POST 'https://api.agenthotel.dev/v1/bookings' \
  -H 'content-type: application/json' \
  -H 'Authorization: Bearer <agent_secret>' \
  -H 'Idempotency-Key: sandbox-booking-001' \
  -d '{
    "quote_id": "<quote_id>",
    "hold_id": "<hold_id>",
    "payment_intent_id": "<payment_intent_id>",
    "guest": { "full_name": "Alex Nguyen", "email": "alex@example.com", "phone": "+84900111222" }
  }'

Delegated booking

Run the fuller sandbox smoke when you need traveler delegation.

The admin sandbox and smoke script cover the extended delegated-payment path: agent creation, consent, mandate, authorization and booking confirmation.

Smoke command
cd apps/commerce-api
pnpm smoke:delegated-booking