# Fonctionnement de Stripe Apps Comment créer des applications sur Stripe. Stripe Apps vous permet d’intégrer des expériences utilisateur personnalisées directement au Dashboard Stripe et de gérer l’API Stripe. Vous pouvez créer une application pour : - Créer et modifier des données Stripe, telles que des informations client, des commandes et des factures - Synchronisation des données Stripe avec d’autres systèmes - Ajouter des personnalisations à l’interface utilisateur de Stripe Retrouvez d’autres exemples de création avec Stripe Apps sur [cette page](https://docs.stripe.com/stripe-apps/sample-apps.md). Les composants de base de Stripe Apps : Les composants de base de Stripe Apps (See full diagram at https://docs.stripe.com/stripe-apps/how-stripe-apps-work) Avec Stripe Apps, vous pouvez créer des applications personnalisées pour votre propre compte ou mettre ces dernières à la disposition d’autres utilisateurs de Stripe sur le [Stripe App Marketplace](https://docs.stripe.com/stripe-apps/distribution-options.md). Ce guide vous présente les trois principaux types d’applications Stripe que vous pouvez créer et vous explique comment utiliser les autorisations pour accéder aux informations dont votre application a besoin. ## Applications full stack La plupart des applications Stripe sont constituées de deux éléments : - Un composant front-end dans le Dashboard Stripe, qui utilise une *extension d’interface utilisateur* (A set of APIs that allow you to inject user interface elements into the Stripe Dashboard using TypeScript and React) - Un composant back-end responsable de l’enregistrement de l’état et de l’exécution des opérations en arrière-plan ![Les composants d'une application full-stack](https://b.stripecdn.com/docs-statics-srv/assets/stripe-apps-full-stack-app.2a8251568ced0f8fa10193d8150aad23.png) Les composants d’une application full-stack L’authentification entre l’interface utilisateur d’une application et ses services back-end correspondants fonctionne en utilisant soit [OAuth](https://docs.stripe.com/stripe-apps/pkce-oauth-flow.md), soit une [clé secrète partagée](https://docs.stripe.com/stripe-apps/build-backend.md#authenticate-ui-to-backend). > Pour créer une application Stripe full stack, commencez pas vous familiariser avec le [fonctionnement des extensions d’interface utilisateur](https://docs.stripe.com/stripe-apps/how-ui-extensions-work.md), puis avec la [logique côté serveur](https://docs.stripe.com/stripe-apps/build-backend.md). ## Applications uniquement back-end Vous pouvez créer une application Stripe sans interface utilisateur. Par exemple, une application peut collecter les données relatives aux commandes sur Stripe et les envoyer à un autre service pour à des fins de traitement. Les composants d’une application uniquement back-end : Composants d'une application uniquement back-end (See full diagram at https://docs.stripe.com/stripe-apps/how-stripe-apps-work) Pour plus d’informations sur le back-end de votre application Stripe, consultez la page consacrée à la [logique côté serveur](https://docs.stripe.com/stripe-apps/build-backend.md). ## Applications uniquement front-end Vous pouvez créer une application destinée à enrichir le Dashboard Stripe sans aucune fonctionnalité back-end supplémentaire. Une application Stripe peut se composer d’une simple *interface utilisateur* (A set of APIs that allow you to inject user interface elements into the Stripe Dashboard using TypeScript and React). Avec les extensions d’interface utilisateur, vous créez une interface personnalisée et contrôlez les moments où elle s’affiche dans le Dashboard Stripe. ![Les composants d'une application uniquement front-end](https://b.stripecdn.com/docs-statics-srv/assets/stripe-apps-frontend-only-app.f8a4611260e353f1d19028ad5efda70f.png) Les composants d’une application uniquement front-end Les applications uniquement front-end utilisant des extensions d’interface utilisateur sont un bon choix si : - Votre application n’a pas besoin de communiquer avec un service back-end. - Votre application n’a besoin de communiquer avec l’API Stripe qu’au nom d’un utilisateur connecté au Dashboard Stripe. - Votre application utilise un fournisseur OAuth pour authentifier les utilisateurs et interagir avec d’autres services. Pour plus d’informations, reportez-vous à la page consacrée au [fonctionnement des extensions d’interface utilisateur](https://docs.stripe.com/stripe-apps/how-ui-extensions-work.md). ## Limites des Stripe Apps ### Accès au compte connecté Lorsqu’une plateforme Connect installe une application, celle-ci a accès aux données de la plateforme. Elle n’a pas accès aux données des comptes connectés de la plateforme et ne peut pas effectuer d’appels à l’API au nom de ces comptes connectés. Si le compte connecté installe directement l’application, celle-ci dispose de toutes les fonctionnalités. Seuls certains comptes connectés ont la possibilité d’installer des applications, comme les comptes ayant accès à l’intégralité du Dashboard Stripe (y compris les [comptes Standard](https://docs.stripe.com/connect/standard-accounts.md)) ou via les [Stripe Apps intégrées](https://docs.stripe.com/stripe-apps/embedded-apps.md). ## Autorisations pour les applications Toutes les applications Stripe, quel que soit leur type, nécessitent des autorisations explicites pour pouvoir accéder aux données. Ces autorisations se divisent en deux catégories : - Autorisations Stripe, qui déterminent les objets Stripe que l’application peut lire et écrire - Les autorisations tierces, qui déterminent quels autres services ont accès aux données Stripe d’un utilisateur Le *manifeste de l’application* (In a Stripe App, the app manifest is a stripe-app.json file in your app's root directory. It defines your app's ID, views, permissions, and other essential properties) stocke les autorisations tierces et accordées par Stripe à une application. ### Autorisations Stripe Pour qu’une application puisse accéder à des données Stripe, vous devez au préalable l’y autoriser. Consultez la liste complète des [autorisations](https://docs.stripe.com/stripe-apps/reference/permissions.md). Les autorisations peuvent s’appliquer de plusieurs manières : - Les applications ne peuvent écouter les *événements de webhook* (A webhook is a real-time push notification sent to your application as a JSON payload through HTTPS requests) qui surviennent sur un objet Stripe que si elles sont autorisées à lire cet objet. - Les applications ne peuvent appeler l’API Stripe que si elles en ont reçu l’autorisation par cette même API. - Lorsqu’une application appelle une API Stripe à partir d’une extension d’interface utilisateur, l’application et l’utilisateur connecté doivent tous deux être autorisés à accéder à l’API. Les extensions d’interface utilisateur appellent l’API Stripe au nom de l’utilisateur connecté. L’application ne peut pas accéder à des données ou exécuter des actions auxquelles l’utilisateur connecté ne peut pas accéder ou n’a pas l’autorisation d’exécuter non plus. Si l’utilisateur connecté dispose d’autorisations que l’application n’a pas demandées, celle-ci restera dans l’incapacité de lire et d’écrire les données concernées. En revanche, si l’application possède des autorisations dont l’utilisateur connecté ne dispose pas, elle pourra néanmoins exécuter l’action qui lui est autorisée. Dans ce cas, le service back-end est chargé de vérifier les autorisations de l’utilisateur. ### Services tiers Stripe Apps doit également spécifier explicitement l’URL de tout service non Stripe potentiellement amené à recevoir des données Stripe. Dans les extensions d’interface utilisateur, les URL accessibles sont contrôlées par l’application d’une politique de sécurité du contenu (CSP). Cette politique fait échouer tout appel `fetch` qui n’est pas explicitement listé dans le *manifeste de l’application* (In a Stripe App, the app manifest is a stripe-app.json file in your app's root directory. It defines your app's ID, views, permissions, and other essential properties). ### Octroi d’autorisations Le *manifeste de l’application* (In a Stripe App, the app manifest is a stripe-app.json file in your app's root directory. It defines your app's ID, views, permissions, and other essential properties) stocke toutes les autorisations définies pour une application. Pour accorder des autorisations à un objet Stripe ou à un service back-end spécifique, utilisez la commande `stripe app grant` au chargement de l’application. Pour en savoir plus, consultez la liste de toutes les [autorisations](https://docs.stripe.com/stripe-apps/reference/permissions.md). ## See also - [Créer une application](https://docs.stripe.com/stripe-apps/create-app.md) - [Documentation de la CLI Stripe Apps](https://docs.stripe.com/stripe-apps/reference/cli.md) - [Fonctionnement des extensions d’interface utilisateur](https://docs.stripe.com/stripe-apps/how-ui-extensions-work.md) - [Logique côté serveur](https://docs.stripe.com/stripe-apps/build-backend.md) - [Flux d’authentification](https://docs.stripe.com/stripe-apps/pkce-oauth-flow.md)