Book a room over UCP: a hotel test store in Playground 0.17.0
On 24 September the Lodging Technical Council's booking capability was merged into the Universal Commerce Protocol as a draft, the first capability from a vertical other than shopping. We covered what merged and what changed in review. A spec you can read is one thing. A spec you can run an agent against is another.
UCP Playground 0.17.0 adds hotel.local, a test store for the draft dev.ucp.lodging.booking capability, next to the flower shop we already host for shopping. You can book a room on it by hand in the Tool Inspector, point any model at it in Agent runs and watch it book end to end, or connect your own agent to it over MCP or REST.
A store built from the spec's own examples
hotel.local runs two properties: Ginza Grand Hotel in Tokyo, priced in yen, and Grand Hotel in San Francisco, priced in dollars. They were chosen so that booking the right room on the right dates reproduces the specification's two worked examples field for field: "Property-Collected Taxes & Fees", where the room and service fee are paid today and a resort fee and the Tokyo Accommodation Tax are paid at the hotel, and "Flexible Payment Terms — Deposit & Balance", where the first night is paid now and the rest at check-in.
Everything a booking session carries in the draft is there to test against:
- The five operations: create, get, update, complete and cancel a booking session, over MCP and REST, with the store's profile at
/lodging-merchant/.well-known/ucp. - Price and timing kept apart.
totalsis the price;payment.termssays when each part of it is due: today, later, or at the property. - The cancellation policy extension, with refundability stated as of now: free cancellation until the cutoff, then a penalty, or non-refundable from the start.
- The rules a store enforces: room capacity and child age limits, sold-out nights, who the booking is for, and a session that expires after 30 minutes.
- Test cards:
tok_visabooks,tok_declineis declined, and nothing is ever charged.
Its responses are checked against the draft schemas with the specification's own validator. When the draft changes, the store changes with it.
Book it by hand in the Inspector
Connect to hotel.local and the Inspector swaps its product search for a booking flow in four steps: Search, Rate, Review, Book. Pick a room, pick a rate, and the store opens a booking session. Review then shows that session as the store returned it, with nothing recomputed. Errors say what the store still needs, such as who is booking. Disclosures, such as a local tax, are shown in full, and booking asks you to acknowledge them first. It works over MCP or REST, whichever you pick.
Or let an agent book it
In Agent runs, any model can search, hold and book a stay on hotel.local end to end. The chat shows hotel cards: one for each room and rate the search found, and one for the booking itself that follows its status from held to booked.
A lodging run is also read as a lodging run. A booking isn't a cart, so a session against a store that declares dev.ucp.lodging is scored on its own funnel: Search Stays, Hold Room, Book, Booked. It ends as Room Held or Booked rather than Cart Created, in the Agent, in session history, on shared replays and in comparisons. The session API says which reading applies, so the same holds for anything you build on top.
The Held state panel, which mirrors whatever a merchant is holding for you, now shows a booking session as Held, Ready or Booked, with the store's own total, expiry and message codes. Release cancels a live booking session at the store. Totals in currencies without minor units, such as yen, now display correctly everywhere.
What building against the draft shows
Three things stood out that are worth knowing if you are implementing lodging yourself.
Price and timing check each other. The entries in totals add up to the total, and the schedules of the payment term the buyer selected must add up to it too. Other terms are indicative and can differ, for example a discount for paying today. Both rules are simple sums, so a store can hold itself to them and any tool can verify them. It is one of the most useful choices the council made in review.
Discovery comes first, and it isn't part of the capability. A booking session starts from a property and a room the spec expects to come from an earlier, provisional search step, which the booking capability itself doesn't define. An agent still needs those ids from somewhere, so a lodging store has to offer some way in. hotel.local's search is its own and labels itself as not part of UCP.
The draft has no dated version yet. The spec's schemas expect a dated version string, and a draft doesn't have one. hotel.local declares the current release, 2026-08-25, and marks its lodging capabilities as draft. Expect to revisit this when lodging lands in a release.
Try it
Open the Tool Inspector on hotel.local and book a room by hand, or pick hotel.local from the try-pills in Agent runs and ask a model to book one. To test your own agent, point it at https://ucpplayground.com/lodging-merchant/.well-known/ucp. How the Inspector reads lodging stores is in the Tool Inspector docs, and the full release notes are on the Playground changelog.
About UCP Checker
UCP Checker is the independent validation and observability layer for the Universal Commerce Protocol. We crawl, validate and grade every public UCP manifest we can find, run the merchant directory, the UCP Score, live adoption stats, the vertical guides and the authority-bound vendor map, and track the spec as it evolves so you don't have to — measured from two vantages (what a business declares, and what actually happens when an agent transacts), the same way for everyone, without picking winners.
Sources
- Announcing UCP Lodging: Booking Capability Draft Spec Release, UCP announcements, 25 September 2026
- PR #780: Introduce Lodging Booking Capability and Cancellation Policy Extension, merged 24 September 2026
- Lodging Booking capability (draft), ucp.dev
- Cancellation Policy extension (draft), ucp.dev
- Payment Terms extension, ucp.dev
- ucp-schema, the specification's schema validator
- UCP release v2026-08-25
- UCP Playground changelog, 0.17.0, 25 September 2026
- hotel.local business profile, ucpplayground.com
Related coverage: UCP Lodging is merged · The lodging booking capability, as filed · What the merchant is holding for you: Playground 0.12.0 · Lodging vertical guide
Check your domain's UCP status
See if your storefront is ready for agentic commerce in seconds.
Get the agentic commerce digest every Monday
Real adoption data, ecosystem trends, new spec versions, and the stores that broke or recovered this week. Read by founders and engineers building the next generation of commerce.

