{
  "schema_version": 1,
  "canonical_sources": {
    "documentation_map": "/llms.txt",
    "stripe_capabilities": "/stripe-integration-capabilities.json"
  },
  "providers": {
    "shopify": {
      "availability": "limited_access",
      "guide_url": "/guides/shopify/",
      "install_route": "shopify_managed_review_or_install_link",
      "public_self_serve_install": false,
      "terminal_action_when_unavailable": "Stop and ask the merchant's Proxy contact for approved access; do not create a custom app or use the server SDK as an install substitute."
    },
    "stripe": {
      "chooser_url": "/guides/stripe-integration-paths/",
      "paths": [
        {
          "availability": "general_availability",
          "guide_url": "/guides/stripe-checkout/#hosted",
          "label": "One-time payment with hosted Checkout",
          "object_owner": "Stripe Checkout creates the PaymentIntent",
          "path_id": "OT-CO-H",
          "payment_type": "one_time",
          "presentation": "Hosted redirect",
          "recommended_default": true,
          "tradeoff": "Fastest setup; the payer briefly leaves your site for Stripe.",
          "validation_command": "proxy stripe doctor --path OT-CO-H --format json"
        },
        {
          "availability": "general_availability",
          "guide_url": "/guides/stripe-checkout/#embedded",
          "label": "One-time payment with embedded Checkout",
          "object_owner": "Stripe Checkout creates the PaymentIntent",
          "path_id": "OT-CO-E",
          "payment_type": "one_time",
          "presentation": "Checkout embedded in your page",
          "recommended_default": false,
          "tradeoff": "Keeps the payer on your page with more client-side integration work.",
          "validation_command": "proxy stripe doctor --path OT-CO-E --format json"
        },
        {
          "availability": "general_availability",
          "guide_url": "/guides/stripe-checkout/#custom",
          "label": "One-time payment with custom Checkout",
          "object_owner": "Stripe Checkout creates the PaymentIntent",
          "path_id": "OT-CO-C",
          "payment_type": "one_time",
          "presentation": "Your Elements-based payment UI",
          "recommended_default": false,
          "tradeoff": "Most presentation control; requires current Custom Checkout SDK versions.",
          "validation_command": "proxy stripe doctor --path OT-CO-C --format json"
        },
        {
          "availability": "general_availability",
          "guide_url": "/guides/stripe-direct-payment-intent/",
          "label": "One-time payment with your PaymentIntent",
          "object_owner": "Your server creates the PaymentIntent directly",
          "path_id": "OT-PI",
          "payment_type": "one_time",
          "presentation": "Your existing Elements or native UI",
          "recommended_default": false,
          "tradeoff": "Best fit for an existing direct PaymentIntent flow; your app owns more lifecycle work.",
          "validation_command": "proxy stripe doctor --path OT-PI --format json"
        },
        {
          "availability": "general_availability",
          "guide_url": "/guides/stripe-hosted-subscriptions/#hosted-presentation",
          "label": "Subscription with hosted Checkout",
          "object_owner": "Stripe Checkout creates the Subscription",
          "path_id": "SUB-CO-H",
          "payment_type": "subscription",
          "presentation": "Hosted redirect",
          "recommended_default": true,
          "tradeoff": "Recommended starting point; Stripe owns the initial payment-method screen.",
          "validation_command": "proxy stripe doctor --path SUB-CO-H --format json"
        },
        {
          "availability": "general_availability",
          "guide_url": "/guides/stripe-hosted-subscriptions/#embedded-presentation",
          "label": "Subscription with embedded Checkout",
          "object_owner": "Stripe Checkout creates the Subscription",
          "path_id": "SUB-CO-E",
          "payment_type": "subscription",
          "presentation": "Checkout embedded in your page",
          "recommended_default": false,
          "tradeoff": "Keeps the payer on your page with an embedded Checkout client secret.",
          "validation_command": "proxy stripe doctor --path SUB-CO-E --format json"
        },
        {
          "availability": "general_availability",
          "guide_url": "/guides/stripe-hosted-subscriptions/#custom-elements-presentation",
          "label": "Subscription with custom Checkout",
          "object_owner": "Stripe Checkout creates the Subscription",
          "path_id": "SUB-CO-C",
          "payment_type": "subscription",
          "presentation": "Your Elements-based payment UI",
          "recommended_default": false,
          "tradeoff": "Fits a custom Elements UI backed by a Checkout Session.",
          "validation_command": "proxy stripe doctor --path SUB-CO-C --format json"
        },
        {
          "availability": "general_availability",
          "guide_url": "/guides/stripe-direct-subscriptions/#setup-intent",
          "label": "Subscription after collecting a payment method",
          "object_owner": "Your server creates a SetupIntent, then the Subscription",
          "path_id": "SUB-SI",
          "payment_type": "subscription",
          "presentation": "Your existing Elements or native UI",
          "recommended_default": false,
          "tradeoff": "Use when your app already owns payment-method collection and subscription creation.",
          "validation_command": "proxy stripe doctor --path SUB-SI --format json"
        },
        {
          "availability": "general_availability",
          "guide_url": "/guides/stripe-direct-subscriptions/#saved-payment-method",
          "label": "Subscription with an authorized saved payment method",
          "object_owner": "Your server creates the Subscription directly",
          "path_id": "SUB-SAVED",
          "payment_type": "subscription",
          "presentation": "No new payment UI unless Stripe requires customer action",
          "recommended_default": false,
          "tradeoff": "Shortest direct path, but only for a payment method selected by an authorized shared billing account.",
          "validation_command": "proxy stripe doctor --path SUB-SAVED --format json"
        }
      ],
      "shared_setup_url": "/guides/stripe-quickstart/#before-you-code",
      "decision_order": [
        "one_time_or_subscription",
        "checkout_creates_object_or_server_creates_directly",
        "hosted_embedded_or_custom_only_for_checkout"
      ]
    }
  }
}
