## Stripe Apps: Building and Managing Integrations

This documentation suite focuses on **Stripe Apps**, a platform for building and distributing custom integrations within the Stripe Dashboard. It covers the entire lifecycle of app development, from initial setup and authentication to UI design, deployment, and ongoing management.

### Core Concepts and Getting Started

*   **Overview of Stripe Apps** (`/stripe-apps`): Introduces the concept of Stripe Apps, their capabilities, and how they extend Stripe's functionality.
*   **Getting Started with Stripe Apps** (`/stripe-apps/create-app`): Guides users through the initial steps of 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`): Provides examples of what can be built with Stripe Apps, categorized by app type (backend, frontend, full-stack).

### Building Your App

*   **App Manifest Reference** (`/stripe-apps/reference/app-manifest`): Details the structure and fields of the `stripe-app.json` file, which configures app settings and permissions.
*   **API Authentication Methods** (`/stripe-apps/api-authentication`): Explains the different ways your app can authenticate with the Stripe API, including:
    *   **OAuth 2.0** (`/stripe-apps/api-authentication/oauth`): For secure, user-delegated access.
    *   **Restricted API Keys (RAK)** (`/stripe-apps/api-authentication/rak`): For granting specific, limited permissions.
    *   **Platform Key**: The default authentication method.
*   **Authorization Flows** (`/stripe-apps/pkce-oauth-flow`): Describes how to implement authorization workflows, including PKCE OAuth.
*   **Server-Side Logic** (`/stripe-apps/build-backend`): Guides on integrating backend code for processing user actions, webhooks, and long-running tasks.
*   **Build a UI** (`/stripe-apps/build-ui`): Covers creating custom user interfaces within the Stripe Dashboard using React and the UI Extensions SDK.
    *   **UI Extension SDK API Reference** (`/stripe-apps/reference/extensions-sdk-api`): Documents the available APIs for UI extensions.
    *   **Next Generation UI Components** (`/stripe-apps/next-ui-components`): Introduces upcoming UI component updates.
    *   **UI Components** (`/stripe-apps/components`): A comprehensive reference of all available UI components for building interfaces. This includes detailed documentation for individual components such as:
        *   Layout and Structural: `Accordion`, `Box`, `ButtonGroup`, `ContextView`, `Divider`, `FocusView`, `FormFieldGroup`, `FullPageTabs`, `FullPageView`, `Inline`, `List`, `Menu`, `OnboardingView`, `OverviewPage`, `PropertyList`, `SettingsView`, `SignInView`, `Tabs`, `TaskList`, `TextArea`, `TextField`.
        *   Data Visualization: `BarChart`, `LineChart`, `Sparkline`.
        *   Informational: `Badge`, `Banner`, `Icon`, `Img`, `Spinner`, `Toast`, `Tooltip`.
        *   Interactive: `Button`, `Checkbox`, `Chip`, `DateField`, `DetailPageModule`, `DetailPagePropertyList`, `DetailPageTable`, `Link`, `Radio`, `SearchField`, `Select`, `Switch`, `Table`.
    *   **Component Hierarchy Constraints** (`/stripe-apps/component-hierarchy-constraints`): Explains rules for composing UI components.
    *   **Viewports Reference** (`/stripe-apps/reference/viewports`): Details the available areas within the Stripe Dashboard where your app's UI can be rendered.
*   **App Settings Page** (`/stripe-apps/app-settings`): How to create a dedicated page for users to configure app settings.
*   **Store Secret Credentials and Tokens** (`/stripe-apps/store-secrets`): Securely persisting sensitive data using the Secret Store API.

### Testing and Deployment

*   **Enable Sandbox Support** (`/stripe-apps/enable-sandbox-support`): Configuring your app to work with Stripe's testing environments.
*   **Handle Different Modes** (`/stripe-apps/handling-modes`): Adapting your app for live and sandbox environments.
*   **Enable Local Network Access** (`/stripe-apps/enable-local-network-access`): Allowing your app to connect to local development servers during preview.
*   **Test Your App Externally** (`/stripe-apps/test-app`): Setting up and distributing test versions of your app.
*   **Distribution Options** (`/stripe-apps/distribution-options`): Understanding how to share your apps publicly or privately.
*   **Upload and Install Your App** (`/stripe-apps/upload-install-app`): Steps for making your app available to team members.
*   **Publish Your App to the Stripe App Marketplace** (`/stripe-apps/publish-app`): The process for making your app publicly available.
*   **Stripe Apps Quality Requirements** (`/stripe-apps/review-requirements`): Guidelines for app review to ensure quality and compliance.
*   **Manage Your App's Versions and Releases** (`/stripe-apps/versions-and-releases`): Strategies for versioning and shipping updates.

### Migration and Advanced Topics

*   **Migrate an Extension to Stripe Apps** (`/stripe-apps/migrate-extension`): Guidance on moving from legacy extensions to the new Stripe Apps platform.
    *   **Migrate a Plugin to Stripe Apps or Stripe Connect** (`/stripe-apps/plugins/decide-migration`): Decision guide for migration paths.
    *   **Migrate a Plugin to an OAuth 2.0 App** (`/stripe-apps/plugins/oauth`): Specific steps for OAuth migration.
    *   **Migrate a Plugin to a RAK App** (`/stripe-apps/plugins/rak`): Specific steps for Restricted API Key migration.
*   **Legacy Extensions** (`/building-extensions`): Information on the deprecated extensions integration pattern.
*   **Deep Links** (`/stripe-apps/deep-links`): Creating links that navigate users directly to your app within the Dashboard.
*   **Install Links** (`/stripe-apps/install-links`): Allowing users to install apps outside the App Marketplace.
*   **Embedded Stripe Apps** (`/stripe-apps/embedded-apps`): Integrating Stripe Apps into third-party applications.
    *   **Marketing Software Integrations** (`/stripe-apps/embedded-apps/marketing-integrations`): Example of embedding marketing integrations.
*   **App Analytics** (`/stripe-apps/analytics`): Accessing data on your app's performance.
*   **UI Extension Developer Tools** (`/stripe-apps/ui-extension-developer-tools`): Utilizing bundled tools for type checking, linting, and testing.
*   **UI Testing** (`/stripe-apps/ui-testing`): Strategies for testing your app's user interface.
*   **Design Your App** (`/stripe-apps/design`): Guidelines and philosophy for designing user-friendly Stripe Apps.
*   **Style Your App** (`/stripe-apps/style`): How to style UI components using provided design tokens.
*   **Design Patterns** (`/stripe-apps/patterns`): Recommended patterns for common app functionalities:
    *   Action Buttons (`/stripe-apps/patterns/action-buttons`)
    *   Additional Context (`/stripe-apps/patterns/additional-context`)
    *   Back Link (`/stripe-apps/patterns/back-link`)
    *   Communicating State (`/stripe-apps/patterns/communicating-state`)
    *   Demo Content (`/stripe-apps/patterns/demo`)
    *   Empty State (`/stripe-apps/patterns/empty-state`)
    *   Filter Controls (`/stripe-apps/patterns/filter-controls`)
    *   Full Page Apps (`/stripe-apps/patterns/full-page-apps`)
    *   Lists (`/stripe-apps/patterns/lists`)
    *   Loading (`/stripe-apps/patterns/loading`)
    *   Onboarding (`/stripe-apps/patterns/onboarding-experience`)
    *   Progress Stepping (`/stripe-apps/patterns/progress-stepping`)
    *   Redirects (`/stripe-apps/patterns/redirects`)
    *   Settings Sign In (`/stripe-apps/patterns/settings-signin`)
    *   Sign In Template (`/stripe-apps/patterns/sign-in`)
    *   Sign Out (`/stripe-apps/patterns/sign-out`)
    *   Waiting Screens (`/stripe-apps/patterns/waiting-screens`)
*   **Using Roles in UI Extensions** (`/stripe-apps/using-roles-in-ui-extensions`): Tailoring functionality based on user roles.
*   **Stripe Apps CLI Reference** (`/stripe-apps/reference/cli`): Documentation for the command-line interface used to manage Stripe Apps.
*   **Permissions Reference** (`/stripe-apps/reference/permissions`): A list of available permissions and their requirements.
*   **Route Descriptors** (`/stripe-apps/route-descriptors`): Enabling soft navigation within the Dashboard.
*   **Sample Apps** (`/stripe-apps/sample-apps`): Examples of complete and minimal Stripe Apps to use as starting points.