## Building Stripe Apps

This documentation group provides comprehensive guidance on developing and integrating applications with Stripe. It covers the entire lifecycle of building a Stripe App, from initial setup and understanding core concepts to advanced features and deployment.

### Key Areas Covered:

*   **Getting Started:** Learn the basics of Stripe Apps development, including creating your first app and understanding how they work.
*   **App Development:** Dive into the technical aspects of building Stripe Apps, including server-side logic, UI extensions, and leveraging the Stripe UI component library.
*   **Authentication and Authorization:** Understand how to secure your app and authenticate users with various methods like OAuth 2.0 and Restricted API Keys.
*   **Distribution and Deployment:** Learn how to distribute your app, whether privately to your team or publicly through the Stripe App Marketplace, including testing and publishing processes.
*   **App Management:** Discover how to manage your app's versions, releases, and handle different operational modes (sandbox vs. live).
*   **Design and Best Practices:** Follow recommended design patterns, UI guidelines, and best practices to create a user-friendly and consistent experience.
*   **Migration:** Find information on migrating legacy extensions to the modern Stripe Apps platform.
*   **UI Components:** Explore the extensive library of UI components available for building interactive and visually appealing interfaces within the Stripe Dashboard.
*   **Reference:** Access detailed references for app manifests, CLI commands, permissions, and SDK APIs.

### Core Concepts:

*   **Stripe Apps:** The primary framework for building integrations and custom UIs within the Stripe Dashboard.
*   **UI Extensions:** Allow developers to render custom user interfaces directly within Stripe products.
*   **Server-Side Logic:** Enables backend processing for app functionality, webhooks, and third-party integrations.
*   **API Authentication:** Methods like OAuth 2.0 and Restricted API Keys for secure access to Stripe APIs.
*   **App Manifest:** A configuration file (`stripe-app.json`) that describes how your app integrates with Stripe.
*   **Stripe CLI:** A command-line interface tool for creating, developing, and managing Stripe Apps.
*   **UI Components:** A library of pre-built React components for building consistent and accessible user interfaces.

### Target Audience:

This documentation is intended for developers who want to extend Stripe's functionality, integrate Stripe with other services, or build custom user experiences within the Stripe Dashboard.

---

### Full-Stack App Example

This guide shows you how to build a Stripe app that both renders a user interface in the Stripe Dashboard and performs back-end processing.

**Select the authentication type that you want to use.** If you want to build a private app, you can’t use OAuth authentication.

*   Platform key
*   OAuth 2.0
*   Restricted API key (RAK)

The following example shows how to build a Stripe app that uses platform key authentication.

**Create a Stripe account**

Before integrating with Stripe, you must create a Stripe account.

1.  Create an account by entering your email address, full name, country, and creating a password.
2.  Fill out your business profile.
3.  In the Dashboard, click Verify your email. Stripe sends a verification email to your email address.
4.  Verify your email address.

**Note:** You can continue building your app in a sandbox as you follow the steps in this guide.