## Stripe Apps: Building and Managing Integrations

This documentation section provides comprehensive guidance on developing, deploying, and managing applications within the Stripe ecosystem, referred to as "Stripe Apps." Stripe Apps allow developers to extend Stripe's functionality, integrate with third-party services, and create custom user interfaces directly within the Stripe Dashboard.

### Core Concepts and Getting Started

*   **What are Stripe Apps?** Understand the fundamental concept of Stripe Apps, their capabilities, and how they enhance the Stripe platform. (Page 30)
*   **Getting Started:** Learn the basics of app development, including building, previewing, and updating your first Stripe App. (Page 18)
*   **How Stripe Apps Work:** Gain an overview of the architecture and components of Stripe Apps, including frontend and backend interactions. (Page 21)
*   **Common Use Cases:** Explore various scenarios and examples of how Stripe Apps can be leveraged to solve business needs, categorized by app type (backend, frontend, full-stack). (Page 14)

### Development and Building

*   **Building a UI:** Discover how to create custom user interfaces within the Stripe Dashboard using React and Stripe's UI Extensions SDK. (Page 17)
    *   **UI Components:** Familiarize yourself with the extensive library of pre-built UI components for building your app's interface, from basic elements like Buttons and TextFields to more complex components like DataTables and Charts. (Pages 49-94)
    *   **Component Hierarchy Constraints:** Understand the rules and limitations for composing UI components to ensure a consistent and functional user experience. (Page 7)
    *   **Next Generation UI Components:** Get early access to upcoming UI components with updated APIs. (Page 28)
    *   **Design Patterns:** Follow recommended design patterns for a consistent, clear, and scalable app experience. (Page 95)
*   **Adding Server-Side Logic:** Implement backend code to validate user actions, process data, and integrate with third-party systems. (Page 6)
*   **API Authentication:** Choose and implement the appropriate method for authenticating requests to the Stripe API on behalf of your users. (Page 2)
    *   **OAuth 2.0:** Learn how to use the industry-standard OAuth 2.0 for secure authentication. (Page 3)
    *   **Restricted API Keys (RAKs):** Understand how to use RAKs for granting specific, limited permissions to your app. (Page 4)
    *   **Platform Key:** Utilize your account's secret API key for certain use cases. (Page 13)
*   **Authorization Flows:** Implement secure authorization flows, including PKCE OAuth workflows. (Page 39)
*   **Storing Secrets:** Securely persist sensitive data like authentication credentials using the Secret Store API. (Page 46)
*   **Handling Modes:** Adapt your app to work seamlessly with both live Stripe environments and sandboxes for testing. (Page 19)
*   **Enabling Sandbox Support:** Configure your app to be installable in Stripe's testing environments. (Page 12)
*   **Enabling Local Network Access:** Understand and configure local network access for app previewing. (Page 11)

### App Management and Deployment

*   **App Manifest Reference:** Understand the `stripe-app.json` file, which describes how your app integrates with Stripe. (Page 35)
*   **Stripe Apps CLI:** Learn how to use the command-line interface to manage your app's lifecycle. (Page 36)
*   **Permissions Reference:** Understand how to request and manage permissions for your app to access user data and Stripe API objects. (Page 37)
*   **Distribution Options:** Explore how to make your app available to users, either privately or publicly on the Stripe App Marketplace. (Page 20)
*   **Uploading and Installing Apps:** Learn the process of uploading your app for testing and making it available to your team. (Page 115)
*   **Publishing to the App Marketplace:** Follow the steps and requirements to get your app approved and listed on the Stripe App Marketplace. (Page 24)
*   **App Review Requirements:** Familiarize yourself with the quality standards and guidelines for app review. (Page 25)
*   **Testing Your App:** Implement strategies for testing your app, including external testing before publication. (Page 26)
*   **Managing Versions and Releases:** Learn how to version your app and manage updates over time. (Page 117)
*   **Using Install Links:** Allow users to install your app outside of the Stripe App Marketplace. (Page 23)
*   **Post-Install Actions:** Configure additional steps users may need to complete after installing your app. (Page 40)
*   **App Analytics:** Access and export data to understand how your app is being used and its performance. (Page 5)

### Migration and Legacy Information

*   **Migrating Extensions:** Understand why and how to migrate legacy extensions to the newer Stripe Apps platform. (Page 27)
    *   **Migrate to Stripe Apps or Stripe Connect:** Decide on your migration path for legacy plugins. (Page 32)
    *   **Migrate to OAuth 2.0 App:** Learn how to migrate your plugin to use OAuth 2.0 authentication. (Page 31)
    *   **Migrate to a RAK App:** Learn how to migrate your plugin to use Restricted API Key (RAK) authentication. (Page 33)
*   **Legacy Extensions:** Find historical reference information about the deprecated extensions integration pattern. (Page 1)

### UI and User Experience

*   **Build a UI:** Detailed guide on building custom UIs within the Stripe Dashboard. (Page 17)
*   **How UI Extensions Work:** Understand the system for rendering your own UI within Stripe's products. (Page 22)
*   **Onboarding:** Guide users through a smooth and intuitive sign-in and setup process after installation. (Page 29)
    *   **Onboarding Flow Design Patterns:** Follow best practices for creating effective onboarding experiences. (Page 101)
*   **App Settings Page:** Create a dedicated page for users to configure their app settings. (Page 45)
*   **Deep Links:** Create URLs that navigate users directly to specific parts of your app within the Dashboard. (Page 8)
*   **Route Descriptors:** Implement soft, context-preserving navigation between Dashboard pages from your Stripe App. (Page 43)
*   **Using Roles in UI Extensions:** Tailor app functionality based on user roles within the Stripe Dashboard. (Page 116)
*   **Styling Your App:** Learn how to style UI components to match the Stripe Dashboard's visual identity. (Page 113)
*   **Design Your App:** Access design tools, guidelines, and philosophy for creating a cohesive app experience. (Page 114)
*   **Embedded Stripe Apps:** Integrate third-party Stripe Apps using embedded components, allowing users to manage payments data within other applications. (Page 9)
    *   **Marketing Software Integrations:** Embed integrations like Mailchimp for enhanced marketing workflows. (Page 10)

### Reference and Tools

*   **App Manifest Reference:** A detailed guide to all fields, types, and descriptions for your app manifest file. (Page 35)
*   **Stripe Apps CLI Reference:** Information on installing and using the command-line interface for app management. (Page 36)
*   **Permissions Reference:** A list of available events and their required permissions. (Page 37)
*   **Extension SDK API Reference:** Documentation for the Extension SDK API, including context props and utility functions. (Page 38)
*   **Viewports Reference:** A list of available viewports within the Stripe Dashboard where your app's UI can appear. (Page 42)
*   **Sample Apps:** Explore working examples of Stripe Apps from design to code to use as a starting point. (Page 44)
*   **Developer Tools:** Utilize bundled developer tools for type checking, linting, and testing your app's code. (Page 47)
*   **UI Testing:** Learn how to test your app's user interface using provided utilities and helpers. (Page 41)