{"ucp":{"version":"2026-04-08","default_currency":"EUR","services":{"dev.ucp.shopping":[{"transport":"rest","endpoint":"https://commerce.wordlift.io/ucp/v1","schema":"https://ucp.dev/2026-04-08/schemas/shopping/rest.openapi.json","spec":"https://ucp.dev/2026-04-08/specification/overview","version":"2026-04-08"}]},"capabilities":{"dev.ucp.shopping.checkout":[{"version":"2026-04-08","spec":"https://ucp.dev/2026-04-08/specification/checkout","schema":"https://ucp.dev/2026-04-08/schemas/shopping/checkout.json"}],"dev.ucp.shopping.fulfillment":[{"version":"2026-04-08","spec":"https://ucp.dev/2026-04-08/specification/fulfillment","schema":"https://ucp.dev/2026-04-08/schemas/shopping/fulfillment.json","extends":"dev.ucp.shopping.checkout"}],"dev.ucp.shopping.discount":[{"version":"2026-04-08","spec":"https://ucp.dev/2026-04-08/specification/discount","schema":"https://ucp.dev/2026-04-08/schemas/shopping/discount.json","extends":"dev.ucp.shopping.checkout"}],"dev.ucp.shopping.catalog.search":[{"version":"2026-04-08","spec":"https://ucp.dev/2026-04-08/specification/catalog/search","schema":"https://ucp.dev/2026-04-08/schemas/shopping/catalog_search.json"}],"dev.ucp.shopping.catalog.lookup":[{"version":"2026-04-08","spec":"https://ucp.dev/2026-04-08/specification/catalog/lookup","schema":"https://ucp.dev/2026-04-08/schemas/shopping/catalog_lookup.json"}]},"payment_handlers":[{"id":"stripe","name":"com.stripe.payment","version":"2026-04-08","spec":"https://stripe.com/docs/api","config":{"publishable_key":"pk_test_51SdUV1RnIaZ28a0PDeRp6AGZ2qLWciu4udGgpr8Q0rYfja7Sz2lJPPqBEr6FXdyChWZ4UMkYtYPdJlEitCkagogC00NABgsKl7","merchant_name":"Alpina Travel","allowed_payment_methods":["card"],"supported_card_networks":["VISA","MASTERCARD","AMEX","DISCOVER","JCB"],"capture_method":"automatic","setup_future_usage":"off_session"}}]},"payment":{"handlers":[{"id":"stripe","name":"com.stripe.payment","version":"2026-04-08","spec":"https://stripe.com/docs/api","config":{"publishable_key":"pk_test_51SdUV1RnIaZ28a0PDeRp6AGZ2qLWciu4udGgpr8Q0rYfja7Sz2lJPPqBEr6FXdyChWZ4UMkYtYPdJlEitCkagogC00NABgsKl7","merchant_name":"Alpina Travel","allowed_payment_methods":["card"],"supported_card_networks":["VISA","MASTERCARD","AMEX","DISCOVER","JCB"],"capture_method":"automatic","setup_future_usage":"off_session"}}]},"signing_keys":[{"kid":"wordlift_alpina_2026","kty":"EC","crv":"P-256","x":"WbbXwVYGdJoP4Xm3qCkGvBRcRvKtEfXDbWvPzpPS8LA","y":"sP4jHHxYqC89HBo8TjrtVOAGHfJDflYxw7MFMxuFMPY","use":"sig","alg":"ES256","note":"Development key for alpina - replace with production key before launch"}],"external_capabilities":[{"id":"alpina_booking_bridge","name":"Alpina.travel Agent Booking API","type":"booking","description":"Live availability, EUR quotes, and provider-hosted checkout handoff for curated Alpina.travel stays. Hosted on alpina.travel (outside this gateway) behind a Cloudflare Worker; backed by BookingNests/Avantio.","base_url":"https://alpina.travel","endpoints":[{"method":"GET","path":"/.well-known/booking-agent.json","url":"https://alpina.travel/.well-known/booking-agent.json","description":"Capability discovery and agent policy"},{"method":"GET","path":"/api/booking/openapi.json","url":"https://alpina.travel/api/booking/openapi.json","description":"OpenAPI 3.1 contract"},{"method":"GET","path":"/api/booking/properties/samspitze-2","url":"https://alpina.travel/api/booking/properties/samspitze-2","description":"Property facts and live capability status"},{"method":"GET","path":"/api/booking/availability","url":"https://alpina.travel/api/booking/availability","description":"Zero-config public read interface for live availability. Query parameters: propertyId, checkIn (YYYY-MM-DD), checkOut, adults, childrenAges (comma-separated ages), currency, locale. Returns the same normalized payload as POST. Response includes: available, status, checkIn, checkOut, adults, childrenAges, totalGuests, checkoutUrl, checkedAt, expiresAt, requiresRevalidation. Cache-Control: no-store; CORS: *. Read-only — does not create sessions, holds, or payments."},{"method":"POST","path":"/api/booking/availability","url":"https://alpina.travel/api/booking/availability","description":"Canonical structured API for live availability. Same normalized payload as the GET variant; use when a JSON request body is preferred."},{"method":"POST","path":"/api/booking/sessions","url":"https://alpina.travel/api/booking/sessions","description":"Recheck availability and create a provider-hosted checkout handoff"}],"discovery":"https://alpina.travel/.well-known/booking-agent.json","openapi":"https://alpina.travel/api/booking/openapi.json","commerce_mode":"inquiry_only","payment":"provider_checkout_only","agent_policy":{"requireExplicitUserConfirmationBeforeBookingSession":true,"availabilityTtlSeconds":300,"revalidateBeforeCheckout":true,"checkoutPrefillGuaranteed":false,"doNotClaimBookingIsConfirmedUntilProviderConfirmation":true},"tags":["booking","availability","lodging","checkout-handoff"]}]}