{
  "ucp": {
    "version": "2026-04-08",
    "services": {
      "dev.ucp.shopping": [{
        "version": "2026-04-08",
        "spec": "https://ucp.dev/2026-04-08/specification/overview",
        "transport": "mcp",
        "schema": "https://ucp.dev/2026-04-08/services/shopping/mcp.openrpc.json",
        "endpoint": "https://mcp.landlusthotel.de/mcp"
      }]
    },
    "capabilities": {
      "dev.ucp.shopping.catalog.search": [{
        "version": "2026-04-08",
        "spec": "https://ucp.dev/2026-04-08/specification/catalog",
        "schema": "https://ucp.dev/2026-04-08/services/shopping/mcp.openrpc.json",
        "mcp_tool": "get_offers"
      }],
      "dev.ucp.shopping.checkout": [{
        "version": "2026-04-08",
        "spec": "https://ucp.dev/2026-04-08/specification/checkout"
      }]
    },
    "payment": {
      "handlers": [{
        "id": "visa_intelligent_commerce",
        "version": "2026-04-08",
        "spec": "https://developer.visa.com/capabilities/visa-intelligent-commerce",
        "description": "Zahlung via Visa Intelligent Commerce (VIC). Agent enrollt Karte bei Visa VTS, erstellt Purchase Instruction mit FIDO-Passkey-Assurance und ruft DPAN+CAVV ab.",
        "payment_flow": "vic_credentials",
        "required_fields": ["dpan", "cavv", "exp_month", "exp_year"],
        "optional_fields": ["instruction_id", "transaction_reference_id", "dynamic_data_id"],
        "accepted_networks": ["visa"]
      }]
    },
    "payment_handlers": {
      "com.visa.vic": [{
        "id": "visa_intelligent_commerce",
        "version": "2026-04-08",
        "spec": "https://developer.visa.com/capabilities/visa-intelligent-commerce",
        "schema": "https://developer.visa.com/capabilities/visa-intelligent-commerce/docs",
        "presentation_type": "AI_AGENT",
        "protection_type": "CLOUD",
        "authentication": "FIDO_PASSKEY",
        "vts_base_url": "https://sandbox.api.visa.com",
        "vic_base_url": "https://sandbox.api.visa.com",
        "flow": [
          "1. enroll_pan → POST /vts/panEnrollments",
          "2. provision_token → POST /vts/panEnrollments/{id}/provisionedTokens",
          "3. device_binding → POST /vts/provisionedTokens/{id}/deviceBinding",
          "4. attestation_register → POST /vts/provisionedTokens/{id}/attestation/options (type=REGISTER)",
          "5. enroll_card → POST /vacp/v1/cards",
          "6. create_instruction → POST /vacp/v1/instructions",
          "7. retrieve_credentials → POST /vacp/v1/instructions/{id}/credentials → paymentToken (DPAN) + dynamicDataValue (DAVV, 3-stellig) + Ablaufdatum",
          "8. Stripe Checkout unter payment_url öffnen: DPAN als Kartennummer, Ablaufdatum, DAVV als Kartenprüfnummer (CVV2) eintragen"
        ]
      }]
    },
    "organization": {
      "@context": "https://schema.org",
      "@type": ["Hotel", "LodgingBusiness", "Organization"],
      "@id": "https://landlusthotel.de/#hotel",
      "name": "Landlust Hotel",
      "url": "https://landlusthotel.de",
      "description": "Inhaber-geführtes Hotel in Gransee, Brandenburg.",
      "priceRange": "€€",
      "currenciesAccepted": "EUR",
      "paymentAccepted": "Visa (via VIC Network Token)",
      "address": {"@type": "PostalAddress", "addressCountry": "DE", "addressLocality": "Gransee", "postalCode": "16775"},
      "contactPoint": {
        "@type": "ContactPoint",
        "contactType": "reservations",
        "availableLanguage": ["German", "English"]
      }
    },
    "merchant_return_policy": {
      "@context": "https://schema.org",
      "@type": "MerchantReturnPolicy",
      "@id": "https://landlusthotel.de/#return-policy",
      "name": "Hotel Cancellation Policy",
      "description": "Cancellations must be made at least 24 hours before the scheduled arrival date.",
      "applicableCountry": "DE",
      "returnPolicyCategory": "https://schema.org/MerchantReturnNotPermitted",
      "merchantReturnDays": 0,
      "inStoreReturnsOffered": false
    },
    "catalog": {
      "products_url": "https://landlusthotel.de/products.json",
      "currency": "EUR"
    },
    "links": [
      {"type": "privacy_policy",   "url": "https://landlusthotel.de/datenschutz.html"},
      {"type": "terms_of_service", "url": "https://landlusthotel.de/AGB.pdf"},
      {"type": "return_policy",    "url": "https://landlusthotel.de/AGB.pdf"}
    ]
  },
  "signing_keys": [
    {
      "kty": "EC",
      "crv": "P-256",
      "use": "sig",
      "alg": "ES256",
      "kid": "423301b3dc6179dd",
      "x": "ce9wzQaKYsbU9JzCaqi7Z4yhQLfj7B_dSfII0MYc_jg",
      "y": "UYfV6W9ZOvp-Z9zCX3GWnStguzmDX588Nd0Vyrp1l8Y"
    }
  ]
}
