## Stripe Apps: Building and Managing Integrations

This documentation group provides comprehensive guidance on developing, deploying, and managing applications within the Stripe ecosystem through **Stripe Apps**. It covers everything from the foundational concepts of app development to advanced features, UI components, and best practices for user experience.

### Key Areas:

*   **Getting Started with Stripe Apps:**
    *   **Overview:** Understand the purpose and capabilities of Stripe Apps for extending Stripe's functionality and embedding custom UIs. (Page 30)
    *   **Creating an App:** Learn the basics of app development, including building, previewing, and updating a sample "Hello, world!" app. (Page 18)
    *   **Common Use Cases:** Explore different app types (backend, frontend, full-stack) and their typical applications. (Page 14)
    *   **Sample Apps:** Discover ready-to-use examples to jumpstart your development. (Page 44)

*   **App Development Fundamentals:**
    *   **API Authentication:** Choose and implement the appropriate method for authenticating API requests, including Platform keys, OAuth 2.0, and Restricted API Keys (RAKs). (Page 2, Page 3, Page 4)
    *   **Server-Side Logic:** Integrate secure backend code to process user actions, handle webhooks, and manage long-lived app logic. (Page 6)
    *   **Building a UI:** Develop custom user interfaces within the Stripe Dashboard using TypeScript, React, and Stripe's UI Extensions SDK. (Page 17)
    *   **UI Components:** Utilize a rich library of pre-built UI components (e.g., Buttons, Forms, Charts, Tables) to construct your app's interface. (Page 49, Page 50, Page 51, Page 52, Page 53, Page 54, Page 55, Page 56, Page 57, Page 58, Page 59, Page 60, Page 61, Page 62, Page 63, Page 64, Page 65, Page 66, Page 67, Page 68, Page 69, Page 70, Page 71, Page 72, Page 73, Page 74, Page 75, Page 76, Page 77, Page 78, Page 79, Page 80, Page 81, Page 82, Page 83, Page 84, Page 85, Page 86, Page 87, Page 88, Page 89, Page 90, Page 91, Page 92, Page 93, Page 94)
    *   **Next Generation UI Components:** Access early versions of updated UI components for enhanced features. (Page 28)
    *   **Component Hierarchy Constraints:** Understand the rules governing component composition for predictable UI rendering. (Page 7)

*   **App Configuration and Deployment:**
    *   **App Manifest:** Define your app's integration with the Stripe platform using the `stripe-app.json` file. (Page 35)
    *   **Permissions:** Request and manage necessary permissions for your app to access user data and Stripe APIs. (Page 37)
    *   **Handling Modes:** Adapt your app to function correctly in both live and sandbox environments. (Page 19)
    *   **Sandbox Support:** Enable your app for installation in Stripe's testing environment. (Page 12)
    *   **Local Network Access:** Configure your browser to allow local network access for app previewing. (Page 11)
    *   **Store Secrets:** Securely persist sensitive data like credentials and tokens using the Secret Store API. (Page 46)
    *   **App Settings Page:** Create a dedicated page for users to configure their app settings. (Page 45)
    *   **Post-Install Actions:** Guide users through necessary configurations after app installation. (Page 40)
    *   **Upload and Install:** Make your app available to team members within your Stripe account. (Page 115)
    *   **Distribution Options:** Learn how to share your apps publicly on the Stripe App Marketplace or privately with your team. (Page 20)
    *   **Publishing an App:** Follow the steps and requirements for getting your app approved for the Stripe App Marketplace. (Page 24)
    *   **App Review Requirements:** Understand the quality standards your app must meet for marketplace listing. (Page 25)
    *   **Testing Your App:** Set up and distribute test versions of your app before publication. (Page 26)
    *   **Versions and Releases:** Manage app versions and releases to ship new updates and track changes. (Page 117)

*   **User Experience and Design:**
    *   **Design Your App:** Utilize guidelines and tools for a streamlined design process. (Page 114)
    *   **Style Your App:** Apply design tokens and custom styles to match the Stripe Dashboard's visual consistency. (Page 113)
    *   **Design Patterns:** Implement recommended patterns for consistent, clear, and scalable app design. (Page 95)
        *   **Onboarding:** Create secure and intuitive onboarding flows. (Page 29, Page 101)
        *   **Sign In:** Implement standard sign-in templates and settings sign-in flows. (Page 103, Page 104)
        *   **UI Extensions:** Understand how UI extensions work to render custom UIs within Stripe. (Page 22)
        *   **Deep Links:** Create URLs that navigate users directly to your app within the Dashboard. (Page 8)
        *   **Install Links:** Allow users to install public apps outside of the Stripe App Marketplace. (Page 23)
        *   **Route Descriptors:** Implement soft, context-preserving navigation within the Dashboard. (Page 43)
        *   **Viewports:** Specify where your app's views can appear within the Stripe Dashboard. (Page 42)
        *   **Action Buttons:** Place action buttons consistently for optimal user interaction. (Page 111)
        *   **Back Link:** Provide clear navigation back to previous pages. (Page 112)
        *   **Communicating State:** Inform users about temporary statuses or required actions. (Page 106)
        *   **Waiting Screens:** Manage user expectations during onboarding and transitions. (Page 110)
        *   **Loading:** Indicate when data is being loaded. (Page 108)
        *   **Empty State:** Clearly inform users when no data is available. (Page 107)
        *   **Filter Controls:** Enable users to filter table rows using chip components. (Page 96)
        *   **Lists:** Display collections of information effectively. (Page 75, Page 98)
        *   **Full Page Apps:** Build complete, multi-view interfaces within the Stripe Dashboard. (Page 97)
        *   **Demo Content:** Display concise demonstrations of your app's core functionality. (Page 100)
        *   **Redirects:** Create clear redirects for user navigation. (Page 102)
        *   **Sign Out:** Provide a clear mechanism for users to sign out of your app. (Page 105)
        *   **Using Roles in UI Extensions:** Tailor functionality based on user roles within the Dashboard. (Page 116)

*   **Migration and Legacy:**
    *   **Migrating Extensions:** Understand why and how to migrate legacy extensions to the modern Stripe Apps platform. (Page 27)
    *   **Migrating Plugins:** Decide on and execute the migration of plugins to Stripe Apps or Stripe Connect, focusing on secure authentication methods. (Page 31, Page 32, Page 33)
    *   **Legacy Extensions:** Information regarding the deprecated extensions integration pattern. (Page 1)

*   **Developer Tools and References:**
    *   **Stripe Apps CLI:** Install and use the command-line interface to manage your Stripe app. (Page 36)
    *   **UI Extension Developer Tools:** Utilize bundled tools for type checking, linting, and testing your UI code. (Page 47)
    *   **UI Testing:** Test your app's UI with provided utilities and helpers. (Page 41)
    *   **Extension SDK API Reference:** Documentation for the Extension SDK API. (Page 38)
    *   **App Analytics:** Access data to understand how your apps are used and perform. (Page 5)