## Stripe Apps Documentation

This documentation set covers the Stripe Apps platform, a framework for building custom integrations and extending the Stripe Dashboard. It provides guidance on developing, distributing, and managing applications that can be used by Stripe users.

### Core Concepts and Getting Started

*   **Stripe Apps Overview** (`/stripe-apps`): Introduces Stripe Apps, their capabilities, and how they extend Stripe's functionality.
*   **Getting Started with Stripe Apps** (`/stripe-apps/create-app`): Guides users through building a basic "Hello, world!" app.
*   **How Stripe Apps Work** (`/stripe-apps/how-stripe-apps-work`): Explains the fundamental architecture and components of Stripe Apps.
*   **Common Use Cases** (`/stripe-apps/common-use-cases`): Outlines typical scenarios for building Stripe Apps, categorized by app type (backend, frontend, full-stack).

### Building Your App

*   **Build a UI** (`/stripe-apps/build-ui`): Details how to create custom user interfaces within the Stripe Dashboard using React and the UI Extensions SDK.
*   **How UI Extensions Work** (`/stripe-apps/how-ui-extensions-work`): Explains the system for rendering custom UIs within Stripe.
*   **Add Server-Side Logic** (`/stripe-apps/build-backend`): Covers how to implement backend functionality for your Stripe App.
*   **UI Components** (`/stripe-apps/components`): A reference for all available UI components for building your app's interface.
    *   Individual component documentation (e.g., `/stripe-apps/components/accordion`, `/stripe-apps/components/button`, `/stripe-apps/components/textfield`, etc.) provides details on their usage and props.
*   **Next Generation UI Components** (`/stripe-apps/next-ui-components`): Information on using the latest UI components for early access.
*   **Component Hierarchy Constraints** (`/stripe-apps/component-hierarchy-constraints`): Rules and guidelines for composing UI components.
*   **Design Your App** (`/stripe-apps/design`): Guidelines and philosophy for designing user-friendly Stripe Apps.
*   **Style Your App** (`/stripe-apps/style`): Information on applying custom styles and using design tokens.
*   **Design Patterns** (`/stripe-apps/patterns`): Recommended patterns for building consistent and scalable Stripe Apps.
    *   Specific patterns include: Action buttons, Onboarding flow, Additional context, Back link, Communicating state, Demo content, Empty state, Filter controls, Full page apps, Lists, Loading, Progress stepping, Redirects, Settings sign in, Sign in template, Sign out, and Waiting screens.

### Authentication and Authorization

*   **API Authentication Methods** (`/stripe-apps/api-authentication`): Explains the different ways your app can authenticate with the Stripe API.
*   **OAuth 2.0** (`/stripe-apps/api-authentication/oauth`): Details the OAuth 2.0 authentication flow.
*   **Restricted API Key Authentication** (`/stripe-apps/api-authentication/rak`): Covers using Restricted API Keys (RAKs) for authentication.
*   **Add Authorization Flows** (`/stripe-apps/pkce-oauth-flow`): Implements PKCE OAuth workflows.
*   **Store Secret Credentials and Tokens** (`/stripe-apps/store-secrets`): Securely storing sensitive data using the Secret Store API.

### App Management and Distribution

*   **App Manifest Reference** (`/stripe-apps/reference/app-manifest`): Documentation for the `stripe-app.json` file.
*   **Stripe Apps CLI Reference** (`/stripe-apps/reference/cli`): Usage of the command-line interface for managing Stripe Apps.
*   **Permissions Reference** (`/stripe-apps/reference/permissions`): Details on available permissions for your app.
*   **Upload and Install Your Stripe App** (`/stripe-apps/upload-install-app`): Steps to upload and install apps for team members.
*   **Distribution Options** (`/stripe-apps/distribution-options`): Explains how to share your apps publicly or privately.
*   **Publish Your App to the Stripe App Marketplace** (`/stripe-apps/publish-app`): Guide to publishing your app on the marketplace.
*   **Stripe Apps Quality Requirements** (`/stripe-apps/review-requirements`): Requirements for app review before marketplace listing.
*   **Test Your App Externally** (`/stripe-apps/test-app`): Setting up and distributing test versions of your app.
*   **Manage Your App's Versions and Releases** (`/stripe-apps/versions-and-releases`): Information on app versioning and releases.
*   **Using Install Links** (`/stripe-apps/install-links`): Allowing users to install apps outside the App Marketplace.
*   **Add Deep Links** (`/stripe-apps/deep-links`): Creating deep links to navigate users within your app.
*   **Using Roles in UI Extensions** (`/stripe-apps/using-roles-in-ui-extensions`): Tailoring functionality based on user roles.

### Advanced Features and Integrations

*   **Enable Sandbox Support** (`/stripe-apps/enable-sandbox-support`): Configuring your app for testing in sandboxes.
*   **Handle Different Modes** (`/stripe-apps/handling-modes`): Adapting your app for live mode and sandboxes.
*   **Enable Local Network Access** (`/stripe-apps/enable-local-network-access`): Allowing local network access for app preview.
*   **App Settings Page** (`/stripe-apps/app-settings`): Creating a page for users to configure app settings.
*   **Post-Install Actions** (`/stripe-apps/post-install-actions`): Supporting configurations that occur after app installation.
*   **Embedded Stripe Apps** (`/stripe-apps/embedded-apps`): Integrating third-party Stripe Apps into your platform.
*   **Marketing Software Integrations** (`/stripe-apps/embedded-apps/marketing-integrations`): Examples of marketing integrations.
*   **Migrating to Stripe Apps** (`/stripe-apps/migrate-extension`): Guidance on migrating legacy extensions to Stripe Apps.
    *   Includes specific migration paths for OAuth 2.0 (`/stripe-apps/plugins/oauth`) and RAKs (`/stripe-apps/plugins/rak`).
*   **App Analytics** (`/stripe-apps/analytics`): Accessing data to understand app performance.
*   **Developer Tools** (`/stripe-apps/ui-extension-developer-tools`): Tools for type checking, linting, and testing UI extensions.
*   **UI Testing** (`/stripe-apps/ui-testing`): Utilities for testing your app's UI.
*   **Extension SDK API Reference** (`/stripe-apps/reference/extensions-sdk-api`): Documentation for the Extension SDK.
*   **Viewports Reference** (`/stripe-apps/reference/viewports`): Available viewports for placing UI extensions.
*   **Navigate within the Dashboard using Route Descriptors** (`/stripe-apps/route-descriptors`): Implementing soft navigation within the Dashboard.
*   **Sample Apps** (`/stripe-apps/sample-apps`): Examples of working Stripe Apps.
*   **Back-end App Example** (`/stripe-apps/back-end-app-example`): A guide to building a backend-only app.
*   **Front-end App Example** (`/stripe-apps/front-end-app-example`): A guide to building a frontend-only app.
*   **Full-stack App Example** (`/stripe-apps/full-stack-app-example`): A guide to building a full-stack app.

### Legacy Integrations

*   **Legacy Extensions** (`/building-extensions`): Information about the deprecated extensions integration pattern.