hemmabo_booking_checkout
ActiveTool of com.hemmabo/hemmabo-mcp-server
Create a fallback non-VRP booking and return a host-configured Stripe checkout URL. Use only after explicit user confirmation when no signed VRP direct_booking_url is available. When get_verified_stay_offer returns a signed direct_booking_url, route the guest there instead. Requires Authorization: Bearer token (MCP_API_KEY or OAuth). Creates a pending booking and Stripe session server-side; not idempotent — check hemmabo_booking_status before retrying. Rate-limited per token. Pass quoteId to honor a price locked by hemmabo_booking_negotiate for the same propertyId/dates/guests, or omit it to price fresh at checkout; paymentMode picks the Stripe flow and channel picks the pricing channel, while guestName and guestEmail identify the guest.
Parameters schema
{
"type": "object",
"required": [
"propertyId",
"checkIn",
"checkOut",
"guests",
"guestName",
"guestEmail"
],
"properties": {
"guests": {
"type": "integer",
"minimum": 1,
"description": "Total number of guests as integer >= 1 (e.g. 4)."
},
"channel": {
"enum": [
"public",
"federation"
],
"type": "string",
"description": "Pricing channel selector. 'federation' (default for agent flows): direct host-source total. 'public': standard website rate without agent channel pricing. Omit to use federation."
},
"checkIn": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Arrival date in ISO 8601 calendar format YYYY-MM-DD (e.g. '2026-07-15'). Must be today or later in the property's timezone. Must be strictly before checkOut; together they define the stay length used for pricing and availability."
},
"quoteId": {
"type": "string",
"description": "Quote ID string from hemmabo_booking_negotiate (e.g. 'q_abc123'). Optional — omit to calculate a fresh host-source price at checkout. Provide when the guest locked a price within the 15-minute quote window."
},
"checkOut": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Departure date in ISO 8601 calendar format YYYY-MM-DD (e.g. '2026-07-22'). Must be strictly after checkIn on the same calendar. The guest does not stay the departure night."
},
"guestName": {
"type": "string",
"description": "Primary guest full name as plain text (e.g. 'Anna Svensson'). Stored on the booking for host confirmation; use the name the guest provided."
},
"guestEmail": {
"type": "string",
"format": "email",
"description": "Primary guest email in RFC 5322 format (e.g. 'anna@example.com'). Used for booking confirmation and host contact; must be deliverable."
},
"guestPhone": {
"type": "string",
"description": "Primary guest phone in E.164 format with country code (e.g. '+46701234567'). Optional; omit when unknown. Recommended for check-in coordination."
},
"propertyId": {
"type": "string",
"format": "uuid",
"description": "Stable property UUID from hemmabo_search_properties (e.g. '550e8400-e29b-41d4-a716-446655440000'). Pass the exact UUID string — never a property name, host domain, or booking URL."
},
"paymentMode": {
"enum": [
"checkout_session",
"payment_intent"
],
"type": "string",
"description": "Stripe payment flow. 'checkout_session' (default): returns a browser redirect URL. 'payment_intent': returns client_secret for embedded/agentic payment integrations. Omit to use checkout_session."
}
},
"additionalProperties": false
}Parent server
com.hemmabo/hemmabo-mcp-server
https://github.com/HemmaBo-se/hemmabo-mcp-server
2/7 registries