{"ucp":{"version":"2026-01-23","services":{"dev.ucp.shopping.checkout":[{"version":"2026-01-23","transport":"REST","endpoint":"https://aztrix.io/api/ucp/checkout/checkout-sessions","method":"POST","operation":"create_session","authentication":{"schemes":[{"type":"http-header","name":"X-API-Key","required":true,"description":"Aztrix-issued per-merchant key. Each UCP-enabled merchant has one signing key issued by Aztrix; obtain it from the merchant directly or via Aztrix support. Programmatic key minting is a planned API."}],"required_headers":[{"name":"X-API-Key","description":"Aztrix-issued agent key (see schemes above)."},{"name":"X-Merchant-Id","description":"Listing UUID for the merchant. Use the value from x-aztrix.merchant.id in this manifest. Also accepted as ?merchant_id= query param."},{"name":"Request-Id","format":"uuid-v4","description":"Per-request correlation + idempotency tag. Must be unique unless deliberately retrying."},{"name":"Content-Type","value":"application/json"}],"optional_headers":[{"name":"Idempotency-Key","description":"Reuse the same value to safely retry a POST without creating duplicate sessions."},{"name":"UCP-Agent","format":"product/version; profile=\"<url>\"","description":"Identifies the calling agent. Logged for analytics."}]},"request_example":{"merchant_domain":"cafeaurora.eu","currency":"EUR","items":[{"id":"d76dcc3d-c414-430d-bf52-f391fabaf87b","quantity":1}],"buyer":{"first_name":"<string>","last_name":"<string>","email":"<rfc5322>"},"shipping_address":{"street":"<string>","city":"<string>","postal_code":"<string>","country":"<string>","country_code":"<iso-3166-1-alpha-2>"}},"response_example":{"session_id":"<uuid>","status":"pending","next_actions":["get_shipping_methods","update_session","complete_session","cancel_session"]},"follow_up_operations":[{"id":"get_session","method":"GET","endpoint":"https://aztrix.io/api/ucp/checkout/checkout-sessions/{session_id}"},{"id":"get_shipping_methods","method":"GET","endpoint":"https://aztrix.io/api/ucp/checkout/checkout-sessions/{session_id}/shipping-methods"},{"id":"update_session","method":"POST","alternate_methods":["PUT"],"endpoint":"https://aztrix.io/api/ucp/checkout/checkout-sessions/{session_id}"},{"id":"complete_session","method":"POST","endpoint":"https://aztrix.io/api/ucp/checkout/checkout-sessions/{session_id}/complete"},{"id":"cancel_session","method":"POST","endpoint":"https://aztrix.io/api/ucp/checkout/checkout-sessions/{session_id}/cancel"}]}],"dev.ucp.shopping.fulfillment":[{"version":"2026-01-23","transport":"REST","endpoint":"https://aztrix.io/api/ucp/checkout/checkout-sessions/{session_id}/shipping-methods","method":"GET","operation":"list_shipping_methods","requires":"dev.ucp.shopping.checkout/create_session","authentication":{"schemes":[{"type":"http-header","name":"X-API-Key","required":true,"description":"Aztrix-issued per-merchant key. Each UCP-enabled merchant has one signing key issued by Aztrix; obtain it from the merchant directly or via Aztrix support. Programmatic key minting is a planned API."}],"required_headers":[{"name":"X-API-Key","description":"Aztrix-issued agent key (see schemes above)."},{"name":"X-Merchant-Id","description":"Listing UUID for the merchant. Use the value from x-aztrix.merchant.id in this manifest. Also accepted as ?merchant_id= query param."},{"name":"Request-Id","format":"uuid-v4","description":"Per-request correlation + idempotency tag. Must be unique unless deliberately retrying."},{"name":"Content-Type","value":"application/json"}],"optional_headers":[{"name":"Idempotency-Key","description":"Reuse the same value to safely retry a POST without creating duplicate sessions."},{"name":"UCP-Agent","format":"product/version; profile=\"<url>\"","description":"Identifies the calling agent. Logged for analytics."}]},"response_example":{"shipping_methods":[{"id":"<string>","label":"<string>","price":0,"currency":"EUR","eta_business_days":0}]}}],"dev.ucp.shopping.catalog":[{"version":"2026-01-23","transport":"REST","endpoint":"https://aztrix.io/api/ucp/catalog"}],"dev.ucp.shopping.returns":[{"version":"2026-01-23","transport":"REST","endpoint":"https://aztrix.io/api/ucp/return"}]},"capabilities":{"dev.ucp.shopping.checkout":{"version":"2026-01-23","spec":"https://ucp.dev/specification/checkout/"},"dev.ucp.shopping.fulfillment":{"version":"2026-01-23","spec":"https://ucp.dev/specification/fulfillment/","extends":"dev.ucp.shopping.checkout"},"dev.ucp.shopping.discount":{"version":"2026-01-23","spec":"https://ucp.dev/specification/discount/","extends":"dev.ucp.shopping.checkout"},"dev.ucp.shopping.catalog":{"version":"2026-01-23","spec":"https://ucp.dev/specification/catalog/","extends":"dev.ucp.shopping.checkout"},"dev.ucp.shopping.tax":{"version":"2026-01-23","spec":"https://ucp.dev/specification/tax/","extends":"dev.ucp.shopping.checkout"},"dev.ucp.shopping.returns":{"version":"2026-01-23","spec":"https://ucp.dev/specification/returns/","extends":"dev.ucp.shopping.checkout"}}},"x-aztrix":{"merchant":{"id":"7781906e-c4dc-4586-a4e5-27f96e7e148e","name":"Cafe Aurora","description":"Specialty coffee bar and bakery in Brussels. Single-origin espresso, homemade pastries, and light bites. Order ahead for pickup.","industry":"restaurants","schema_type":"LocalBusiness","url":"https://cafeaurora.eu","profile_url":"https://aztrix.io/@cafeaurora-eu","logo":"https://images.unsplash.com/photo-1559339352-11d035aa65de?w=200&h=200&fit=crop&crop=center","email":"karel.ribbens@gmail.com","phone":"+32 2 123 45 67","website":"https://cafeaurora.eu"},"address":{"street":"Rue de la Colline 42","city":"Brussels","postal_code":"1000","country":"Belgium","country_code":"BE"},"opening_hours":{"friday":{"open":"08:00","close":"23:00"},"monday":{"open":"08:00","close":"22:00"},"sunday":{"open":"09:00","close":"16:00"},"tuesday":{"open":"08:00","close":"22:00"},"saturday":{"open":"09:00","close":"23:00"},"thursday":{"open":"08:00","close":"23:00"},"wednesday":{"open":"08:00","close":"22:00"}},"catalog_summary":{"total_items":10,"item_types":["product"],"currency":"EUR","supported_currencies":["EUR"],"currency_conversion":true,"conversion_endpoint":"https://aztrix.io/api/ucp/catalog?display_currency={CURRENCY}","items":[{"id":"d76dcc3d-c414-430d-bf52-f391fabaf87b","title":"Flat White","description":"Double-shot single-origin espresso with velvety steamed milk. Our signature drink.","price":4.5,"currency":"EUR","type":"product","image_url":"https://images.unsplash.com/photo-1572442388796-11668a67e53d?w=600&h=400&fit=crop"},{"id":"1c0c288f-65e8-4fe5-b29b-16d210d26e26","title":"Oat Milk Latte","description":"Smooth espresso with Oatly Barista oat milk and a hint of vanilla.","price":5,"currency":"EUR","type":"product","image_url":"https://images.unsplash.com/photo-1461023058943-07fcbe16d735?w=600&h=400&fit=crop"},{"id":"6ec9046d-87f3-4b47-92e4-6490516de04f","title":"Pour-Over (V60)","description":"Hand-brewed single-origin filter coffee. Ask about today's roast.","price":5.5,"currency":"EUR","type":"product","image_url":"https://images.unsplash.com/photo-1495474472287-4d71bcdd2085?w=600&h=400&fit=crop"},{"id":"f305c77f-d4ac-4bc4-abce-2cf2c01ed970","title":"Butter Croissant","description":"Flaky, golden croissant baked fresh every morning with French butter.","price":3.5,"currency":"EUR","type":"product","image_url":"https://images.unsplash.com/photo-1555507036-ab1f4038024a?w=600&h=400&fit=crop"},{"id":"a99ae36f-fc85-4982-99a4-49893da4a37a","title":"Pain au Chocolat","description":"Buttery pastry with two bars of dark Belgian chocolate. Served warm.","price":4,"currency":"EUR","type":"product","image_url":"https://images.unsplash.com/photo-1530610476181-d83430b64dcd?w=600&h=400&fit=crop"},{"id":"d727e72f-8773-4a10-a5cc-24b30ea9c412","title":"Carrot Cake Slice","description":"Moist carrot cake with walnuts and cream cheese frosting. House recipe.","price":5.5,"currency":"EUR","type":"product","image_url":"https://images.unsplash.com/photo-1621303837174-89787a7d4729?w=600&h=400&fit=crop"},{"id":"c24205bb-7956-49e7-9c92-01fadbcecb95","title":"Avocado Toast","description":"Sourdough toast with smashed avocado, chili flakes, poached egg, and microgreens.","price":9.5,"currency":"EUR","type":"product","image_url":"https://images.unsplash.com/photo-1541519227354-08fa5d50c44d?w=600&h=400&fit=crop"},{"id":"6eefa618-ea9f-479e-9bbf-83ddf7bd41ee","title":"Croque Monsieur","description":"Grilled ham and Gruyere sandwich with bechamel. Served with a side salad.","price":8.5,"currency":"EUR","type":"product","image_url":"https://images.unsplash.com/photo-1528735602780-2552fd46c7af?w=600&h=400&fit=crop"},{"id":"3d3bd3c4-c40f-4084-aab3-5a0172fe5183","title":"Brunch Box for Two","description":"Two coffees, two croissants, avocado toast, fresh juice, and a fruit bowl. Perfect for sharing.","price":28,"currency":"EUR","type":"product","image_url":"https://images.unsplash.com/photo-1504754524776-8f4f37790ca0?w=600&h=400&fit=crop"},{"id":"b1b05ec3-f0aa-4f92-853b-e989a54a9f78","title":"Nordic IPA 6-Pack","description":"Crisp Nordic-style IPA, six-pack. Sourced from NordBrew.","price":18,"currency":"EUR","type":"product"}]},"links":{"ai_json":"https://aztrix.io/@cafeaurora-eu/.well-known/ai.json","llms_txt":"https://aztrix.io/@cafeaurora-eu/llms.txt","privacy_policy":"https://cafeaurora.eu/privacy","terms_of_service":"https://cafeaurora.eu/terms"},"powered_by":{"platform":"Aztrix","url":"https://aztrix.io"}}}