{
  "source": {
    "repo": "ripper-ai/ripper-js",
    "commit": "54b37e17b03247b26046a9341b7afd743e1e3730",
    "tag": null
  },
  "snippet_run": {
    "id": "run_f6e90169ededc054",
    "green": true,
    "executed": 41,
    "corpus": "f6e90169ededc054"
  },
  "pages": [
    {
      "id": "home",
      "title": "Start here",
      "section": "shared",
      "group": "Get started",
      "path": "/",
      "next": [
        "how-it-works"
      ],
      "markdown_path": "docs/pages/00-home.md",
      "hash": "3f9eb158e6687a73",
      "faces": [
        "public",
        "agent"
      ],
      "personalises": [],
      "snippets": [],
      "sections": [
        {
          "id": "the-checkout-on-your-page",
          "title": "The checkout on your page",
          "level": 2,
          "path": "docs/sections/home/the-checkout-on-your-page.md",
          "hash": "4dd7b10f3cbd521b"
        },
        {
          "id": "the-api-from-your-server",
          "title": "The API from your server",
          "level": 2,
          "path": "docs/sections/home/the-api-from-your-server.md",
          "hash": "c7a90e5d643c6195"
        },
        {
          "id": "the-hosted-payment-page",
          "title": "The hosted payment page",
          "level": 2,
          "path": "docs/sections/home/the-hosted-payment-page.md",
          "hash": "16cc1f33132e21f0"
        },
        {
          "id": "if-you-are-not-sure",
          "title": "If you are not sure",
          "level": 2,
          "path": "docs/sections/home/if-you-are-not-sure.md",
          "hash": "6c0076d2ddfd391f"
        }
      ]
    },
    {
      "id": "how-it-works",
      "title": "How ripper checkout works",
      "section": "shared",
      "group": "Get started",
      "path": "/how-it-works",
      "next": [
        "quickstart"
      ],
      "markdown_path": "docs/pages/14-how-it-works.md",
      "hash": "edc699e8a1ff3045",
      "faces": [
        "public",
        "agent"
      ],
      "personalises": [],
      "snippets": [],
      "sections": [
        {
          "id": "the-pieces",
          "title": "The pieces",
          "level": 2,
          "path": "docs/sections/how-it-works/the-pieces.md",
          "hash": "776a7d8ebcc38209"
        },
        {
          "id": "what-happens-when-a-shopper-pays",
          "title": "What happens when a shopper pays",
          "level": 2,
          "path": "docs/sections/how-it-works/what-happens-when-a-shopper-pays.md",
          "hash": "7b6544b8cb1b88df"
        },
        {
          "id": "the-words-for-an-outcome",
          "title": "The words for an outcome",
          "level": 2,
          "path": "docs/sections/how-it-works/the-words-for-an-outcome.md",
          "hash": "ae9e9ad6d91d80ba"
        },
        {
          "id": "where-the-outcome-is-decided",
          "title": "Where the outcome is decided",
          "level": 2,
          "path": "docs/sections/how-it-works/where-the-outcome-is-decided.md",
          "hash": "f601d7e264dcf9ee"
        },
        {
          "id": "three-ways-in",
          "title": "Three ways in",
          "level": 2,
          "path": "docs/sections/how-it-works/three-ways-in.md",
          "hash": "8e04c6e863bd6941"
        }
      ]
    },
    {
      "id": "quickstart",
      "title": "Quickstart",
      "section": "shared",
      "group": "Get started",
      "path": "/quickstart",
      "next": [
        "collect",
        "api"
      ],
      "markdown_path": "docs/pages/01-quickstart.md",
      "hash": "6ca18ff26f834ede",
      "faces": [
        "public",
        "agent"
      ],
      "personalises": [
        "publishable_key",
        "effective_mode"
      ],
      "snippets": [
        {
          "id": "quickstart-html",
          "lang": "html",
          "runs": true
        },
        {
          "id": "quickstart-npm",
          "lang": "js",
          "runs": true
        },
        {
          "id": "quickstart-react",
          "lang": "tsx",
          "runs": false
        },
        {
          "id": "quickstart-nextjs",
          "lang": "tsx",
          "runs": false
        },
        {
          "id": "quickstart-server-create",
          "lang": "bash",
          "runs": false
        },
        {
          "id": "quickstart-server-collect",
          "lang": "js",
          "runs": false
        },
        {
          "id": "quickstart-ai-prompt",
          "lang": "text",
          "runs": false
        },
        {
          "id": "quickstart-queue",
          "lang": "js",
          "runs": true
        }
      ],
      "sections": [
        {
          "id": "choose-your-platform",
          "title": "Choose your platform",
          "level": 2,
          "path": "docs/sections/quickstart/choose-your-platform.md",
          "hash": "e9d1bd03311f4ad3"
        },
        {
          "id": "script-tag",
          "title": "Script tag",
          "level": 3,
          "path": "docs/sections/quickstart/script-tag.md",
          "hash": "5b4c9b978f570b87"
        },
        {
          "id": "npm",
          "title": "npm",
          "level": 3,
          "path": "docs/sections/quickstart/npm.md",
          "hash": "e8513ec089e1d4ea"
        },
        {
          "id": "react",
          "title": "React",
          "level": 3,
          "path": "docs/sections/quickstart/react.md",
          "hash": "779c59698bc7ab99"
        },
        {
          "id": "next-js",
          "title": "Next.js",
          "level": 3,
          "path": "docs/sections/quickstart/next-js.md",
          "hash": "071f763eb809ff6b"
        },
        {
          "id": "server-api",
          "title": "Server API",
          "level": 3,
          "path": "docs/sections/quickstart/server-api.md",
          "hash": "56d2072842b61009"
        },
        {
          "id": "ai-coding-assistant-claude-code-codex-cursor",
          "title": "AI coding assistant (Claude Code, Codex, Cursor)",
          "level": 3,
          "path": "docs/sections/quickstart/ai-coding-assistant-claude-code-codex-cursor.md",
          "hash": "0e1e54f7572d0fef"
        },
        {
          "id": "before-the-runtime-loads",
          "title": "Before the runtime loads",
          "level": 2,
          "path": "docs/sections/quickstart/before-the-runtime-loads.md",
          "hash": "16a0384bca1a3ad9"
        },
        {
          "id": "a-strict-content-security-policy",
          "title": "A strict Content-Security-Policy",
          "level": 2,
          "path": "docs/sections/quickstart/a-strict-content-security-policy.md",
          "hash": "50a63b1707ae3463"
        }
      ]
    },
    {
      "id": "integration-parameters",
      "title": "Integration parameters",
      "section": "shared",
      "group": "Configure",
      "path": "/integration-parameters",
      "next": [],
      "markdown_path": "docs/pages/05-integration-parameters.md",
      "hash": "561bddec545f1962",
      "faces": [
        "public",
        "agent"
      ],
      "personalises": [
        "integration_name"
      ],
      "snippets": [
        {
          "id": "params-integration",
          "lang": "js",
          "runs": true
        }
      ],
      "sections": [
        {
          "id": "your-confirmation-page",
          "title": "Your confirmation page",
          "level": 2,
          "path": "docs/sections/integration-parameters/your-confirmation-page.md",
          "hash": "938092590b8369f2"
        }
      ]
    },
    {
      "id": "testing",
      "title": "Testing",
      "section": "shared",
      "group": "Test",
      "path": "/testing",
      "next": [
        "test-cards"
      ],
      "markdown_path": "docs/pages/15-testing.md",
      "hash": "97ee7bc8bc8a21f8",
      "faces": [
        "public",
        "agent"
      ],
      "personalises": [],
      "snippets": [],
      "sections": [
        {
          "id": "what-makes-a-payment-live",
          "title": "What makes a payment live",
          "level": 2,
          "path": "docs/sections/testing/what-makes-a-payment-live.md",
          "hash": "1f3945f1030c6176"
        },
        {
          "id": "what-test-mode-gives-you",
          "title": "What test mode gives you",
          "level": 2,
          "path": "docs/sections/testing/what-test-mode-gives-you.md",
          "hash": "e7474fa660094600"
        },
        {
          "id": "what-test-mode-does-not-prove",
          "title": "What test mode does not prove",
          "level": 2,
          "path": "docs/sections/testing/what-test-mode-does-not-prove.md",
          "hash": "39bc7ad1a1c86332"
        }
      ]
    },
    {
      "id": "keys",
      "title": "Keys",
      "section": "shared",
      "group": "Secure",
      "path": "/keys",
      "next": [
        "security-and-csp"
      ],
      "markdown_path": "docs/pages/13-keys.md",
      "hash": "149f394fa543866c",
      "faces": [
        "public",
        "agent"
      ],
      "personalises": [],
      "snippets": [],
      "sections": [
        {
          "id": "the-publishable-key",
          "title": "The publishable key",
          "level": 2,
          "path": "docs/sections/keys/the-publishable-key.md",
          "hash": "7e06e8b6d659f582"
        },
        {
          "id": "the-secret-key",
          "title": "The secret key",
          "level": 2,
          "path": "docs/sections/keys/the-secret-key.md",
          "hash": "68b60b281bdbd75c"
        },
        {
          "id": "test-and-live",
          "title": "Test and live",
          "level": 2,
          "path": "docs/sections/keys/test-and-live.md",
          "hash": "d75f74b1d1459221"
        },
        {
          "id": "if-a-key-gets-out",
          "title": "If a key gets out",
          "level": 2,
          "path": "docs/sections/keys/if-a-key-gets-out.md",
          "hash": "83ae625084ecb97f"
        }
      ]
    },
    {
      "id": "security-and-csp",
      "title": "Security and CSP",
      "section": "shared",
      "group": "Secure",
      "path": "/security-and-csp",
      "next": [
        "test-cards"
      ],
      "markdown_path": "docs/pages/12-security-csp.md",
      "hash": "5a19f399a1be2bd4",
      "faces": [
        "public",
        "agent"
      ],
      "personalises": [],
      "snippets": [],
      "sections": [
        {
          "id": "where-the-keys-may-go",
          "title": "Where the keys may go",
          "level": 2,
          "path": "docs/sections/security-and-csp/where-the-keys-may-go.md",
          "hash": "ed2688377e6769b6"
        },
        {
          "id": "the-policy-the-checkout-needs",
          "title": "The policy the checkout needs",
          "level": 2,
          "path": "docs/sections/security-and-csp/the-policy-the-checkout-needs.md",
          "hash": "a45da4c1a3013d5e"
        },
        {
          "id": "what-verified-means-here",
          "title": "What \"verified\" means here",
          "level": 2,
          "path": "docs/sections/security-and-csp/what-verified-means-here.md",
          "hash": "292fee6ce48ec519"
        },
        {
          "id": "if-a-directive-is-missing",
          "title": "If a directive is missing",
          "level": 2,
          "path": "docs/sections/security-and-csp/if-a-directive-is-missing.md",
          "hash": "f2b6c2e77b89dc1a"
        }
      ]
    },
    {
      "id": "going-live",
      "title": "Going-live checklist",
      "section": "shared",
      "group": "Go live",
      "path": "/going-live",
      "next": [],
      "markdown_path": "docs/pages/16-going-live.md",
      "hash": "8106f228e4eb03f3",
      "faces": [
        "public",
        "agent"
      ],
      "personalises": [],
      "snippets": [],
      "sections": [
        {
          "id": "the-three-that-decide-the-mode",
          "title": "The three that decide the mode",
          "level": 2,
          "path": "docs/sections/going-live/the-three-that-decide-the-mode.md",
          "hash": "2e1fc021e07c70bf"
        },
        {
          "id": "the-configuration-a-live-charge-needs",
          "title": "The configuration a live charge needs",
          "level": 2,
          "path": "docs/sections/going-live/the-configuration-a-live-charge-needs.md",
          "hash": "8224d64f251ed7a7"
        },
        {
          "id": "the-things-that-are-yours-rather-than-ours",
          "title": "The things that are yours rather than ours",
          "level": 2,
          "path": "docs/sections/going-live/the-things-that-are-yours-rather-than-ours.md",
          "hash": "9c281511fdcd10de"
        },
        {
          "id": "what-we-have-not-verified-in-live",
          "title": "What we have not verified in live",
          "level": 2,
          "path": "docs/sections/going-live/what-we-have-not-verified-in-live.md",
          "hash": "9f9a9a6c3289e83c"
        }
      ]
    },
    {
      "id": "changes",
      "title": "Changes and versioning",
      "section": "shared",
      "group": "Changes",
      "path": "/changes",
      "next": [],
      "markdown_path": "docs/pages/17-changes.md",
      "hash": "ac0e2d47a834f9d2",
      "faces": [
        "public",
        "agent"
      ],
      "personalises": [],
      "snippets": [],
      "sections": [
        {
          "id": "ninety-days-notice-before-a-breaking-change",
          "title": "Ninety days' notice before a breaking change",
          "level": 2,
          "path": "docs/sections/changes/ninety-days-notice-before-a-breaking-change.md",
          "hash": "0109b47dffddfb7b"
        },
        {
          "id": "what-can-appear-without-notice",
          "title": "What can appear without notice",
          "level": 2,
          "path": "docs/sections/changes/what-can-appear-without-notice.md",
          "hash": "ce3f067eb15e8afc"
        },
        {
          "id": "which-sets-are-closed",
          "title": "Which sets are closed",
          "level": 2,
          "path": "docs/sections/changes/which-sets-are-closed.md",
          "hash": "2700e60f127ea55e"
        },
        {
          "id": "the-browser-runtime-is-not-pinned-and-that-is-why-this-matters",
          "title": "The browser runtime is not pinned, and that is why this matters",
          "level": 2,
          "path": "docs/sections/changes/the-browser-runtime-is-not-pinned-and-that-is-why-this-matters.md",
          "hash": "485761744869de4c"
        },
        {
          "id": "where-changes-are-announced",
          "title": "Where changes are announced",
          "level": 2,
          "path": "docs/sections/changes/where-changes-are-announced.md",
          "hash": "4c86776b40dd98bb"
        }
      ]
    },
    {
      "id": "guides/vanilla",
      "title": "Vanilla JavaScript",
      "section": "front-end",
      "group": "Accept a payment",
      "path": "/js/script-tag",
      "next": [],
      "markdown_path": "docs/pages/guides/vanilla.md",
      "hash": "d54622e28397d0f0",
      "faces": [
        "public",
        "agent"
      ],
      "personalises": [
        "publishable_key"
      ],
      "snippets": [
        {
          "id": "vanilla-tag",
          "lang": "html",
          "runs": true
        },
        {
          "id": "vanilla-track",
          "lang": "js",
          "runs": true
        },
        {
          "id": "vanilla-ids",
          "lang": "js",
          "runs": true
        },
        {
          "id": "vanilla-format",
          "lang": "js",
          "runs": true
        }
      ],
      "sections": []
    },
    {
      "id": "guides/react",
      "title": "React",
      "section": "front-end",
      "group": "Accept a payment",
      "path": "/js/react",
      "next": [],
      "markdown_path": "docs/pages/guides/react.md",
      "hash": "b3b3bb94045c126a",
      "faces": [
        "public",
        "agent"
      ],
      "personalises": [
        "publishable_key"
      ],
      "snippets": [
        {
          "id": "guides/react-1",
          "lang": "tsx",
          "runs": false
        },
        {
          "id": "react-plain",
          "lang": "js",
          "runs": true
        }
      ],
      "sections": []
    },
    {
      "id": "guides/nextjs",
      "title": "Next.js",
      "section": "front-end",
      "group": "Accept a payment",
      "path": "/js/nextjs",
      "next": [],
      "markdown_path": "docs/pages/guides/nextjs.md",
      "hash": "6c6bf0889b9f1763",
      "faces": [
        "public",
        "agent"
      ],
      "personalises": [
        "publishable_key"
      ],
      "snippets": [
        {
          "id": "guides/nextjs-1",
          "lang": "tsx",
          "runs": false
        },
        {
          "id": "nextjs-client",
          "lang": "js",
          "runs": true
        }
      ],
      "sections": []
    },
    {
      "id": "collect",
      "title": "collect() reference",
      "section": "front-end",
      "group": "Accept a payment",
      "path": "/js/collect",
      "next": [],
      "markdown_path": "docs/pages/02-collect.md",
      "hash": "c9b87f59dd74ed7f",
      "faces": [
        "public",
        "agent"
      ],
      "personalises": [
        "publishable_key",
        "integration_name"
      ],
      "snippets": [
        {
          "id": "collect-amount",
          "lang": "js",
          "runs": true
        },
        {
          "id": "collect-items",
          "lang": "js",
          "runs": true
        },
        {
          "id": "collect-customer",
          "lang": "js",
          "runs": true
        },
        {
          "id": "collect-order-reference",
          "lang": "js",
          "runs": true
        },
        {
          "id": "collect-metadata",
          "lang": "js",
          "runs": true
        },
        {
          "id": "collect-integration",
          "lang": "js",
          "runs": true
        },
        {
          "id": "collect-mount",
          "lang": "js",
          "runs": true
        },
        {
          "id": "collect-status",
          "lang": "js",
          "runs": true
        },
        {
          "id": "collect-signal",
          "lang": "js",
          "runs": true
        },
        {
          "id": "collect-session",
          "lang": "js",
          "runs": true
        },
        {
          "id": "collect-result",
          "lang": "js",
          "runs": true
        }
      ],
      "sections": [
        {
          "id": "amount-and-currency",
          "title": "Amount and currency",
          "level": 2,
          "path": "docs/sections/collect/amount-and-currency.md",
          "hash": "400c3db5ce30e19f"
        },
        {
          "id": "items-instead-of-an-amount",
          "title": "Items instead of an amount",
          "level": 2,
          "path": "docs/sections/collect/items-instead-of-an-amount.md",
          "hash": "526c2f34b4755fcd"
        },
        {
          "id": "customer",
          "title": "Customer",
          "level": 2,
          "path": "docs/sections/collect/customer.md",
          "hash": "0af6f3bd5181edd5"
        },
        {
          "id": "your-order-reference",
          "title": "Your order reference",
          "level": 2,
          "path": "docs/sections/collect/your-order-reference.md",
          "hash": "6d9dad54eb27dd3f"
        },
        {
          "id": "metadata",
          "title": "Metadata",
          "level": 2,
          "path": "docs/sections/collect/metadata.md",
          "hash": "9a011a053fd8df48"
        },
        {
          "id": "a-named-integration",
          "title": "A named integration",
          "level": 2,
          "path": "docs/sections/collect/a-named-integration.md",
          "hash": "c7b577ea7dc2ba56"
        },
        {
          "id": "where-to-mount",
          "title": "Where to mount",
          "level": 2,
          "path": "docs/sections/collect/where-to-mount.md",
          "hash": "3f4a3e853c042c11"
        },
        {
          "id": "watching-the-state",
          "title": "Watching the state",
          "level": 2,
          "path": "docs/sections/collect/watching-the-state.md",
          "hash": "f0cc2ce78d033433"
        },
        {
          "id": "cancelling",
          "title": "Cancelling",
          "level": 2,
          "path": "docs/sections/collect/cancelling.md",
          "hash": "7473d107e37c6614"
        },
        {
          "id": "a-session-your-server-created",
          "title": "A session your server created",
          "level": 2,
          "path": "docs/sections/collect/a-session-your-server-created.md",
          "hash": "1e9578e6e99473c4"
        },
        {
          "id": "the-result",
          "title": "The result",
          "level": 2,
          "path": "docs/sections/collect/the-result.md",
          "hash": "e67476710361842c"
        }
      ]
    },
    {
      "id": "hosted-page",
      "title": "The hosted page",
      "section": "front-end",
      "group": "Accept a payment",
      "path": "/js/hosted-page",
      "next": [],
      "markdown_path": "docs/pages/04-hosted-page.md",
      "hash": "ca23e446801d8d19",
      "faces": [
        "public",
        "agent"
      ],
      "personalises": [
        "hosted_page_url",
        "effective_mode"
      ],
      "snippets": [
        {
          "id": "hosted-handle",
          "lang": "js",
          "runs": true
        }
      ],
      "sections": []
    },
    {
      "id": "hold",
      "title": "Holds and the hold block",
      "section": "front-end",
      "group": "Accept a payment",
      "path": "/js/hold",
      "next": [],
      "markdown_path": "docs/pages/08-hold.md",
      "hash": "7be832dd6ed6caa7",
      "faces": [
        "public",
        "agent"
      ],
      "personalises": [],
      "snippets": [
        {
          "id": "hold-authorised",
          "lang": "js",
          "runs": true
        }
      ],
      "sections": []
    },
    {
      "id": "layout",
      "title": "Layout",
      "section": "front-end",
      "group": "Customise",
      "path": "/js/layout",
      "next": [],
      "markdown_path": "docs/pages/06-layout.md",
      "hash": "90da6073be22c54b",
      "faces": [
        "public",
        "agent"
      ],
      "personalises": [],
      "snippets": [
        {
          "id": "layout-theme",
          "lang": "js",
          "runs": true
        }
      ],
      "sections": []
    },
    {
      "id": "accessibility",
      "title": "Accessibility",
      "section": "front-end",
      "group": "Customise",
      "path": "/js/accessibility",
      "next": [],
      "markdown_path": "docs/pages/07-accessibility.md",
      "hash": "c03aa91a48e93645",
      "faces": [
        "public",
        "agent"
      ],
      "personalises": [],
      "snippets": [
        {
          "id": "a11y-options",
          "lang": "js",
          "runs": true
        },
        {
          "id": "a11y-describedby",
          "lang": "js",
          "runs": true
        }
      ],
      "sections": []
    },
    {
      "id": "test-cards",
      "title": "Test cards",
      "section": "front-end",
      "group": "Test and troubleshoot",
      "path": "/js/test-cards",
      "next": [],
      "markdown_path": "docs/pages/09-test-cards.md",
      "hash": "98e028738a17acf0",
      "faces": [
        "public",
        "agent"
      ],
      "personalises": [],
      "snippets": [
        {
          "id": "test-cards-approved",
          "lang": "js",
          "runs": true
        },
        {
          "id": "test-cards-challenge",
          "lang": "js",
          "runs": true
        },
        {
          "id": "test-cards-hard",
          "lang": "js",
          "runs": true
        }
      ],
      "sections": []
    },
    {
      "id": "errors",
      "title": "Errors",
      "section": "front-end",
      "group": "Test and troubleshoot",
      "path": "/js/errors",
      "next": [],
      "markdown_path": "docs/pages/03-errors.md",
      "hash": "58a8e4e54154c08f",
      "faces": [
        "public",
        "agent"
      ],
      "personalises": [],
      "snippets": [
        {
          "id": "errors-shape",
          "lang": "js",
          "runs": true
        }
      ],
      "sections": [
        {
          "id": "the-sdk-error-codes",
          "title": "The SDK error codes",
          "level": 2,
          "path": "docs/sections/errors/the-sdk-error-codes.md",
          "hash": "2c5d18f28290d3b6"
        },
        {
          "id": "api-error-codes",
          "title": "API error codes",
          "level": 2,
          "path": "docs/sections/errors/api-error-codes.md",
          "hash": "2fec6cb9fd60dcd2"
        },
        {
          "id": "authenticating-your-calls",
          "title": "Authenticating your calls",
          "level": 3,
          "path": "docs/sections/errors/authenticating-your-calls.md",
          "hash": "d1a6fe3fb4a8b317"
        },
        {
          "id": "setting-up-the-integration",
          "title": "Setting up the integration",
          "level": 3,
          "path": "docs/sections/errors/setting-up-the-integration.md",
          "hash": "978163f477104ec3"
        },
        {
          "id": "creating-sessions-from-your-server",
          "title": "Creating sessions from your server",
          "level": 3,
          "path": "docs/sections/errors/creating-sessions-from-your-server.md",
          "hash": "9cf8afc50424caef"
        },
        {
          "id": "in-the-browser-checkout",
          "title": "In the browser checkout",
          "level": 3,
          "path": "docs/sections/errors/in-the-browser-checkout.md",
          "hash": "19f741feafb896c4"
        },
        {
          "id": "capturing-or-voiding-holds",
          "title": "Capturing or voiding holds",
          "level": 3,
          "path": "docs/sections/errors/capturing-or-voiding-holds.md",
          "hash": "0023a5177e636446"
        },
        {
          "id": "webhooks",
          "title": "Webhooks",
          "level": 3,
          "path": "docs/sections/errors/webhooks.md",
          "hash": "668ccc2cd5518d34"
        },
        {
          "id": "transient-safe-to-retry",
          "title": "Transient — safe to retry",
          "level": 3,
          "path": "docs/sections/errors/transient-safe-to-retry.md",
          "hash": "62901d886a9472a3"
        },
        {
          "id": "what-your-page-is-told",
          "title": "What your page is told",
          "level": 2,
          "path": "docs/sections/errors/what-your-page-is-told.md",
          "hash": "19a42b0c3144fa50"
        },
        {
          "id": "only-on-the-stripe-compatible-layer",
          "title": "Only on the Stripe-compatible layer",
          "level": 2,
          "path": "docs/sections/errors/only-on-the-stripe-compatible-layer.md",
          "hash": "16d5791d7c7049b7"
        }
      ]
    },
    {
      "id": "routes-the-checkout-calls",
      "title": "Routes the checkout calls for you",
      "section": "front-end",
      "group": "Appendix",
      "path": "/js/routes",
      "next": [],
      "markdown_path": "docs/pages/11-routes.md",
      "hash": "67b98bbaffec36d3",
      "faces": [
        "public",
        "agent"
      ],
      "personalises": [],
      "snippets": [],
      "sections": [
        {
          "id": "post-v1-checkout-sessions-session-id-authenticate",
          "title": "POST /v1/checkout/sessions/{session_id}/authenticate",
          "level": 3,
          "path": "docs/sections/routes-the-checkout-calls/post-v1-checkout-sessions-session-id-authenticate.md",
          "hash": "8bec1e9b984e9edc"
        },
        {
          "id": "post-v1-checkout-sessions-session-id-confirm",
          "title": "POST /v1/checkout/sessions/{session_id}/confirm",
          "level": 3,
          "path": "docs/sections/routes-the-checkout-calls/post-v1-checkout-sessions-session-id-confirm.md",
          "hash": "25713250286a7d1f"
        },
        {
          "id": "post-v1-checkout-public-sessions",
          "title": "POST /v1/checkout/public/sessions",
          "level": 3,
          "path": "docs/sections/routes-the-checkout-calls/post-v1-checkout-public-sessions.md",
          "hash": "99fa9d705623d717"
        },
        {
          "id": "post-v1-checkout-handles-handle-sessions",
          "title": "POST /v1/checkout/handles/{handle}/sessions",
          "level": 3,
          "path": "docs/sections/routes-the-checkout-calls/post-v1-checkout-handles-handle-sessions.md",
          "hash": "f882f7f19aef656c"
        },
        {
          "id": "get-v1-checkout-config-public-key",
          "title": "GET /v1/checkout/config/{public_key}",
          "level": 3,
          "path": "docs/sections/routes-the-checkout-calls/get-v1-checkout-config-public-key.md",
          "hash": "0bec3f10c76ff21f"
        },
        {
          "id": "get-v1-checkout-methods-public-key",
          "title": "GET /v1/checkout/methods/{public_key}",
          "level": 3,
          "path": "docs/sections/routes-the-checkout-calls/get-v1-checkout-methods-public-key.md",
          "hash": "27f0c4ab06557ffb"
        },
        {
          "id": "get-v1-checkout-sessions-session-id-state",
          "title": "GET /v1/checkout/sessions/{session_id}/state",
          "level": 3,
          "path": "docs/sections/routes-the-checkout-calls/get-v1-checkout-sessions-session-id-state.md",
          "hash": "f68a816de643de25"
        },
        {
          "id": "get-v1-checkout-handles-handle",
          "title": "GET /v1/checkout/handles/{handle}",
          "level": 3,
          "path": "docs/sections/routes-the-checkout-calls/get-v1-checkout-handles-handle.md",
          "hash": "d082bcfa6e4401c7"
        }
      ]
    },
    {
      "id": "migration/stripe",
      "title": "Migrating from Stripe",
      "section": "front-end",
      "group": "Migrate",
      "path": "/js/stripe-compatibility",
      "next": [],
      "markdown_path": "docs/pages/migration/stripe.md",
      "hash": "e72ec66812a9b005",
      "faces": [
        "public",
        "agent"
      ],
      "personalises": [
        "publishable_key"
      ],
      "snippets": [
        {
          "id": "stripe-tag",
          "lang": "html",
          "runs": true
        },
        {
          "id": "stripe-card-flow",
          "lang": "js",
          "runs": true
        },
        {
          "id": "stripe-payment-flow",
          "lang": "js",
          "runs": true
        },
        {
          "id": "stripe-retrieve",
          "lang": "js",
          "runs": true
        },
        {
          "id": "stripe-receipt-email",
          "lang": "js",
          "runs": true
        },
        {
          "id": "stripe-order-reference-server",
          "lang": "js",
          "runs": false
        },
        {
          "id": "stripe-not-supported",
          "lang": "js",
          "runs": true
        }
      ],
      "sections": [
        {
          "id": "the-shopper-s-email",
          "title": "The shopper's email",
          "level": 2,
          "path": "docs/sections/migration/stripe/the-shopper-s-email.md",
          "hash": "2982497978f73745"
        },
        {
          "id": "your-order-reference",
          "title": "Your order reference",
          "level": 2,
          "path": "docs/sections/migration/stripe/your-order-reference.md",
          "hash": "ce90a3f213400578"
        },
        {
          "id": "not-emulated",
          "title": "Not emulated",
          "level": 2,
          "path": "docs/sections/migration/stripe/not-emulated.md",
          "hash": "d3658d7c08e2f1e3"
        }
      ]
    },
    {
      "id": "api",
      "title": "API reference",
      "section": "back-end",
      "group": "API reference",
      "path": "/api/reference",
      "next": [
        "api-checkout-sessions"
      ],
      "markdown_path": "docs/pages/10-api.md",
      "hash": "a26dc0b77f63a8b2",
      "faces": [
        "public",
        "agent"
      ],
      "personalises": [],
      "snippets": [],
      "sections": []
    },
    {
      "id": "api-checkout-sessions",
      "title": "Checkout sessions",
      "section": "back-end",
      "group": "API reference",
      "path": "/api/checkout-sessions",
      "next": [
        "api-payments"
      ],
      "markdown_path": "docs/pages/api/checkout-sessions.md",
      "hash": "8332a22d6bd26972",
      "faces": [
        "public",
        "agent"
      ],
      "personalises": [],
      "snippets": [],
      "sections": [
        {
          "id": "post-v1-checkout-sessions",
          "title": "POST /v1/checkout/sessions",
          "level": 3,
          "path": "docs/sections/api-checkout-sessions/post-v1-checkout-sessions.md",
          "hash": "25927de35151a112"
        },
        {
          "id": "get-v1-checkout-sessions-session-id",
          "title": "GET /v1/checkout/sessions/{session_id}",
          "level": 3,
          "path": "docs/sections/api-checkout-sessions/get-v1-checkout-sessions-session-id.md",
          "hash": "3d5379eb199d835b"
        }
      ]
    },
    {
      "id": "api-payments",
      "title": "Payments",
      "section": "back-end",
      "group": "API reference",
      "path": "/api/payments",
      "next": [
        "api-webhooks"
      ],
      "markdown_path": "docs/pages/api/payments.md",
      "hash": "cb0b5d3f63b15ee1",
      "faces": [
        "public",
        "agent"
      ],
      "personalises": [],
      "snippets": [],
      "sections": [
        {
          "id": "get-v1-payments-payment-id",
          "title": "GET /v1/payments/{payment_id}",
          "level": 3,
          "path": "docs/sections/api-payments/get-v1-payments-payment-id.md",
          "hash": "3ccc8438c73d7969"
        }
      ]
    },
    {
      "id": "api-webhooks",
      "title": "Webhooks",
      "section": "back-end",
      "group": "API reference",
      "path": "/api/webhooks",
      "next": [
        "api-stripe-compatibility"
      ],
      "markdown_path": "docs/pages/api/webhooks.md",
      "hash": "9e3a17d80bdd3a5a",
      "faces": [
        "public",
        "agent"
      ],
      "personalises": [],
      "snippets": [],
      "sections": [
        {
          "id": "the-events-we-send",
          "title": "The events we send",
          "level": 2,
          "path": "docs/sections/api-webhooks/the-events-we-send.md",
          "hash": "1cdff3ad21177475"
        },
        {
          "id": "retired-event-types",
          "title": "Retired event types",
          "level": 3,
          "path": "docs/sections/api-webhooks/retired-event-types.md",
          "hash": "d741866192981472"
        },
        {
          "id": "what-your-endpoint-receives",
          "title": "What your endpoint receives",
          "level": 2,
          "path": "docs/sections/api-webhooks/what-your-endpoint-receives.md",
          "hash": "923aa7cc8b4748df"
        },
        {
          "id": "the-data-block",
          "title": "The data block",
          "level": 3,
          "path": "docs/sections/api-webhooks/the-data-block.md",
          "hash": "f999c7e97c5e2703"
        },
        {
          "id": "checking-a-delivery-really-came-from-ripper",
          "title": "Checking a delivery really came from ripper",
          "level": 3,
          "path": "docs/sections/api-webhooks/checking-a-delivery-really-came-from-ripper.md",
          "hash": "298182cccd2d568e"
        },
        {
          "id": "an-example-payment-captured-delivery",
          "title": "An example payment.captured delivery",
          "level": 3,
          "path": "docs/sections/api-webhooks/an-example-payment-captured-delivery.md",
          "hash": "2fc01c4d6b5dbc89"
        },
        {
          "id": "an-example-payment-held-delivery",
          "title": "An example payment.held delivery",
          "level": 3,
          "path": "docs/sections/api-webhooks/an-example-payment-held-delivery.md",
          "hash": "6dd822b5fd866f57"
        },
        {
          "id": "an-example-payment-voided-delivery",
          "title": "An example payment.voided delivery",
          "level": 3,
          "path": "docs/sections/api-webhooks/an-example-payment-voided-delivery.md",
          "hash": "f2704e73cbe62ccb"
        },
        {
          "id": "an-example-payment-declined-delivery",
          "title": "An example payment.declined delivery",
          "level": 3,
          "path": "docs/sections/api-webhooks/an-example-payment-declined-delivery.md",
          "hash": "a841fec534f9511f"
        },
        {
          "id": "an-example-payment-failed-delivery",
          "title": "An example payment.failed delivery",
          "level": 3,
          "path": "docs/sections/api-webhooks/an-example-payment-failed-delivery.md",
          "hash": "62646e66241c21fb"
        },
        {
          "id": "webhook-deliveries",
          "title": "Webhook deliveries",
          "level": 2,
          "path": "docs/sections/api-webhooks/webhook-deliveries.md",
          "hash": "73756afedb53a488"
        },
        {
          "id": "get-v1-webhooks-deliveries",
          "title": "GET /v1/webhooks/deliveries",
          "level": 3,
          "path": "docs/sections/api-webhooks/get-v1-webhooks-deliveries.md",
          "hash": "1227127a65a5f385"
        },
        {
          "id": "post-v1-webhooks-deliveries-delivery-id-replay",
          "title": "POST /v1/webhooks/deliveries/{delivery_id}/replay",
          "level": 3,
          "path": "docs/sections/api-webhooks/post-v1-webhooks-deliveries-delivery-id-replay.md",
          "hash": "36b66d744460d092"
        },
        {
          "id": "webhook-endpoints",
          "title": "Webhook endpoints",
          "level": 2,
          "path": "docs/sections/api-webhooks/webhook-endpoints.md",
          "hash": "227fc3664a586e99"
        },
        {
          "id": "post-v1-webhooks-endpoints",
          "title": "POST /v1/webhooks/endpoints",
          "level": 3,
          "path": "docs/sections/api-webhooks/post-v1-webhooks-endpoints.md",
          "hash": "a05f75b6aa8b2454"
        },
        {
          "id": "delete-v1-webhooks-endpoints-endpoint-id",
          "title": "DELETE /v1/webhooks/endpoints/{endpoint_id}",
          "level": 3,
          "path": "docs/sections/api-webhooks/delete-v1-webhooks-endpoints-endpoint-id.md",
          "hash": "2df3892902685a99"
        },
        {
          "id": "get-v1-webhooks-endpoints",
          "title": "GET /v1/webhooks/endpoints",
          "level": 3,
          "path": "docs/sections/api-webhooks/get-v1-webhooks-endpoints.md",
          "hash": "c8e40a59f28ee18c"
        }
      ]
    },
    {
      "id": "api-errors",
      "title": "Errors by HTTP status",
      "section": "back-end",
      "group": "API reference",
      "path": "/api/errors",
      "next": [
        "api-stripe-compatibility"
      ],
      "markdown_path": "docs/pages/api/errors.md",
      "hash": "88b4940f5b7b4c2f",
      "faces": [
        "public",
        "agent"
      ],
      "personalises": [],
      "snippets": [],
      "sections": [
        {
          "id": "400",
          "title": "400",
          "level": 3,
          "path": "docs/sections/api-errors/400.md",
          "hash": "36b5d068dc357d4b"
        },
        {
          "id": "401",
          "title": "401",
          "level": 3,
          "path": "docs/sections/api-errors/401.md",
          "hash": "66e3a661c7a43161"
        },
        {
          "id": "403",
          "title": "403",
          "level": 3,
          "path": "docs/sections/api-errors/403.md",
          "hash": "63a13f1d6760b2d8"
        },
        {
          "id": "404",
          "title": "404",
          "level": 3,
          "path": "docs/sections/api-errors/404.md",
          "hash": "5541d38230bdd81e"
        },
        {
          "id": "409",
          "title": "409",
          "level": 3,
          "path": "docs/sections/api-errors/409.md",
          "hash": "2be4d689be1fe559"
        },
        {
          "id": "422",
          "title": "422",
          "level": 3,
          "path": "docs/sections/api-errors/422.md",
          "hash": "ffa20fa586a5ba2f"
        },
        {
          "id": "500",
          "title": "500",
          "level": 3,
          "path": "docs/sections/api-errors/500.md",
          "hash": "ac2f465f793b0c9d"
        },
        {
          "id": "503",
          "title": "503",
          "level": 3,
          "path": "docs/sections/api-errors/503.md",
          "hash": "e3cedccafa1adc4d"
        }
      ]
    },
    {
      "id": "api-stripe-compatibility",
      "title": "Stripe API compatibility",
      "section": "back-end",
      "group": "API reference",
      "path": "/api/stripe-compatibility",
      "next": [
        "api-openapi"
      ],
      "markdown_path": "docs/pages/api/stripe-compatibility.md",
      "hash": "3380e12c8b75be28",
      "faces": [
        "public",
        "agent"
      ],
      "personalises": [],
      "snippets": [],
      "sections": [
        {
          "id": "post-v1-compat-stripe-payment-intents",
          "title": "POST /v1/compat/stripe/payment_intents",
          "level": 3,
          "path": "docs/sections/api-stripe-compatibility/post-v1-compat-stripe-payment-intents.md",
          "hash": "dc10a15fd8b0768a"
        },
        {
          "id": "get-v1-compat-stripe-payment-intents-session-id",
          "title": "GET /v1/compat/stripe/payment_intents/{session_id}",
          "level": 3,
          "path": "docs/sections/api-stripe-compatibility/get-v1-compat-stripe-payment-intents-session-id.md",
          "hash": "73f56fa137549491"
        }
      ]
    },
    {
      "id": "api-openapi",
      "title": "OpenAPI document",
      "section": "back-end",
      "group": "API reference",
      "path": "/api/openapi",
      "next": [],
      "markdown_path": "docs/pages/api/openapi.md",
      "hash": "3d175cffe509249c",
      "faces": [
        "public",
        "agent"
      ],
      "personalises": [],
      "snippets": [],
      "sections": []
    }
  ],
  "npm": {
    "readme": "docs/readme.md",
    "quickstart": "docs/quickstart.md"
  },
  "openapi": {
    "path": "openapi.json",
    "source": "docs/api/openapi.yaml",
    "hash": "445d9a5053d5fde3"
  },
  "catalogues": [
    {
      "id": "csp",
      "path": "docs/catalogue/csp.json",
      "schema": "docs/catalogue/schemas/csp.schema.json",
      "hash": "041029f52658a9cc",
      "entries": 5
    },
    {
      "id": "errors",
      "path": "docs/catalogue/errors.json",
      "schema": "docs/catalogue/schemas/errors.schema.json",
      "hash": "17c38329a302db09",
      "entries": 55
    },
    {
      "id": "test-cards",
      "path": "docs/catalogue/test-cards.json",
      "schema": "docs/catalogue/schemas/test-cards.schema.json",
      "hash": "a661a8a88e0605c4",
      "entries": 9
    },
    {
      "id": "webhook-events",
      "path": "docs/catalogue/webhook-events.json",
      "schema": "docs/catalogue/schemas/webhook-events.schema.json",
      "hash": "3da9ac6ba960120e",
      "entries": 6
    }
  ],
  "samples": {
    "path": "docs/api/samples/index.json",
    "source": "docs/api/samples/index.json",
    "hash": "3030df6057456095",
    "count": 40,
    "operations": 8,
    "languages": [
      "csharp",
      "curl",
      "node",
      "php",
      "python"
    ]
  },
  "llms": {
    "index": "llms.txt",
    "full": "llms-full.txt"
  }
}
