# Détails du paiement Affichez les détails d'un paiement donné et donnez aux utilisateurs la possibilité de gérer les litiges et d'effectuer des remboursements. Ce composant est un sous-ensemble de `payments`, qui fournit l’overlay détaillé d’un paiement donné. Les données que le composant d’informations de paiement affiche dans l’interface utilisateur sont équivalentes à l’overlay affiché par le composant `payments` quand l’utilisateur clique sur une ligne de paiement. Utilisez le composant `payment-details` pour appeler l’overlay d’informations de paiement sans avoir à intégrer la totalité de la liste `payments` sur votre site Web. Vous pouvez ainsi appeler l’overlay d’informations de paiements à partir de votre interface utilisateur existante (à partir de votre liste des paiements, par exemple) et intégrer notre vue détaillée, pour permettre à vos clients d’afficher les informations de paiement, d’effectuer des remboursements et de gérer les contestations de paiements. Par défaut, les composants intégrés fournissent des informations limitées sur les frais de destination, les frais distincts et les transferts. Ils ne donnent pas accès aux informations client, aux moyens de paiement et à certains détails relatifs au montant des frais. La fonctionnalité [destination_on_behalf_of_charge_management](https://docs.stripe.com/connect/supported-embedded-components/payment-details.md#allow-your-connected-accounts-to-manage-destination-charges) permet à un compte connecté d’effectuer des remboursements, de gérer les litiges et de voir des informations supplémentaires pour les paiements indirects, notamment les informations client, les moyens de paiement et les frais. Note: The following is a preview/demo component that behaves differently than live mode usage with real connected accounts. The actual component has more functionality than what might appear in this demo component. For example, for connected accounts without Stripe dashboard access (custom accounts), no user authentication is required in production. Lors de la [création d’une session de compte](https://docs.stripe.com/api/account_sessions/create.md), activez les informations de paiement en spécifiant `payment_details` dans le paramètre `components`. Vous pouvez activer ou désactiver une fonctionnalité du composant d’informations de paiement en spécifiant le paramètre `features` sous `payment_details` : ```curl curl https://api.stripe.com/v1/account_sessions \ -u "<>:" \ -d "account={{CONNECTEDACCOUNT_ID}}" \ -d "components[payment_details][enabled]=true" \ -d "components[payment_details][features][refund_management]=true" \ -d "components[payment_details][features][dispute_management]=true" \ -d "components[payment_details][features][capture_payments]=true" \ -d "components[payment_details][features][destination_on_behalf_of_charge_management]=false" ``` Après avoir créé la session du compte et [initialisé ConnectJS](https://docs.stripe.com/connect/get-started-connect-embedded-components.md#account-sessions), vous pouvez générer le rendu du composant d’informations de paiement dans le front-end : #### JavaScript ```js // Include this element in your HTML const paymentDetails = stripeConnectInstance.create('payment-details'); paymentDetails.setPayment('{{PAYMENT_INTENT_OR_CHARGE_ID}}'); // use setOnClose to set a callback function to close payment-details paymentDetails.setOnClose(() => { paymentDetails.remove(); }); container.appendChild(paymentDetails); ``` > Pour les [paiements indirects](https://docs.stripe.com/connect/destination-charges.md) et les [paiements et transferts distincts](https://docs.stripe.com/connect/separate-charges-and-transfers.md), le PaymentIntent n’existe pas sur le compte connecté. Transmettez plutôt l’ID de paiement associé au compte connecté. Le composant payment details affiche différentes informations et prend en charge différentes fonctionnalités pour différents types de paiements : - Dans le cas des paiements directs, vos comptes connectés peuvent consulter l’ensemble des informations. Ils peuvent également gérer les remboursements et les litiges et capturer des paiements si vous activez les fonctions correspondantes lors de la création d’une session de compte. - Dans le cas des [paiements indirects](https://docs.stripe.com/connect/destination-charges.md) et des [paiements et transferts distincts](https://docs.stripe.com/connect/separate-charges-and-transfers.md), vos comptes connectés peuvent uniquement consulter l’objet du transfert associé au paiement sélectionné, qui contient des informations limitées. - Dans le cas des paiements indirects avec l’attribut [on_behalf_of](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-on_behalf_of), vos comptes connectés peuvent visualiser l’ensemble des informations lorsque la fonctionnalité `destination_on_behalf_of_charge_management` est activée. Si tel est le cas, vous pouvez également activer la gestion des remboursements et des litiges en activant les fonctionnalités correspondantes. ### Autoriser vos comptes connectés à gérer les paiements indirects Lorsque vous attribuez la valeur `true` à la fonctionnalité `destination_on_behalf_of_charge_management`, vos comptes connectés peuvent utiliser le composant de paiement pour afficher et gérer les [paiement indirects](https://docs.stripe.com/connect/destination-charges.md) qui ont l’attribut [on_behalf_of](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-on_behalf_of). Si vous activez également la fonctionnalité `dispute_management`, vos comptes connectés peuvent [participer directement à la gestion de leurs litiges](https://docs.stripe.com/connect/supported-embedded-components/payments.md#dispute-management-for-destination-charges). L’activation de la fonctionnalité de `destination_on_behalf_of_charge_management` présente les limites suivantes : 1. Vous ne pouvez pas filtrer par état ou par moyen de paiement. 1. Vous ne pouvez pas exporter certaines colonnes de données. ## Gestion des litiges concernant les paiements indirects Lorsque vous activez `dispute_management` et `destination_on_behalf_of_charge_management`, vos comptes connectés peuvent mettre à jour et modifier les preuves de litiges, réfuter les litiges et accepter les litiges pour les paiements indirects disposant de l’attribut `on_behalf_of`. Pour les [paiements indirects](https://docs.stripe.com/connect/destination-charges.md), avec ou sans la valeur `on_behalf_of`, Stripe débite le montant du litige et les frais de votre compte de plateforme. Nous vous recommandons de configurer [un webhook](https://docs.stripe.com/webhooks.md) pour écouter les [événements créés par un litige](https://docs.stripe.com/api/events/types.md#event_types-charge.dispute.created). Dans ce cas, vous pouvez tenter de récupérer les fonds auprès du compte connecté en annulant le transfert dans le [Dashboard](https://dashboard.stripe.com/test/transfers) ou en [créant une annulation de transfert](https://docs.stripe.com/api/transfer_reversals/create.md). Lorsque le compte connecté a un solde négatif, Stripe tente de [débiter son compte externe](https://docs.stripe.com/connect/account-balances.md#automatically-debit-connected-accounts) si `debit_negative_balances` est défini sur `true`. Si vous contestez le litige et obtenez gain de cause, vous pouvez renvoyer le paiement précédemment annulé au compte connecté. Si le solde de votre plateforme est insuffisant, le transfert échoue. Pour éviter tout problème lié aux soldes insuffisants, [ajoutez des fonds à votre solde Stripe](https://docs.stripe.com/get-started/account/add-funds.md). > Le retransfert d’une annulation antérieure est soumis à des [restrictions sur les transferts transfrontaliers](https://docs.stripe.com/connect/account-capabilities.md#transfers-cross-border). Cela signifie que dans certains cas, il pourra être impossible de rembourser votre compte connecté. Dans ce cas, attendez que plutôt que le litige soit perdu avant de recouvrer les fonds de paiements indirects `on_behalf_of` par transfert transfrontalier. ## Paramètres pris en charge Ce composant intégré prend en charge les paramètres suivants : #### HTML + JS | Méthode | Type | Description | | | ------------ | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | | `setPayment` | `string` | L’ID du paiement ou PaymentIntent qui s’affiche dans l’overlay. Il doit s’agir de l’ID du paiement ou du PaymentIntent figurant sur le compte connecté. Si cet attribut n’est pas défini, le composant intégré n’affiche rien. Pour l’obtenir, interrogez l’[API Charges](https://docs.stripe.com/api/charges.md) ou utilisez un ID de paiement que vous avez créé ou enregistré dans votre intégration. | obligatoire | | `setOnClose` | `() => void` | Nous envoyons cet événement quand l’utilisateur ferme l’overlay. | | Pour activer le comportement de fermeture de ce composant, écoutez l’événement `close` en appelant `setOnClose`. #### React | Propriété React | Type | Description | | | --------------- | ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | | `payment` | `string` | L’ID du paiement ou PaymentIntent qui s’affiche dans l’overlay. Il doit s’agir de l’ID du paiement ou du PaymentIntent figurant sur le compte connecté. Si ce paramètre n’est pas transmis, le composant intégré n’affiche rien. Pour l’obtenir, interrogez l’[API Charges](https://docs.stripe.com/api/charges.md) ou utilisez un ID de paiement que vous avez créé ou enregistré dans votre intégration. | obligatoire | | `onClose` | `() => void` | Cette fonction s’exécute quand l’utilisateur ferme l’overlay. | obligatoire |