# Payments Affichez une liste des paiements avec les fonctionnalités d'exportation, de remboursement et de contestation. > Les paiements dans iOS sont en version bêta. > Payments in Android est en version bêta. La section Paiements affiche une liste de transactions correspondant aux [paiements directs](https://docs.stripe.com/connect/direct-charges.md), [paiements indirects](https://docs.stripe.com/connect/destination-charges.md) et [paiements et transferts distincts](https://docs.stripe.com/connect/separate-charges-and-transfers.md) du compte connecté. 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/payments.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. 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. 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. 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. ## Créer une session de compte Lorsque vous [créez une session de compte](https://docs.stripe.com/api/account_sessions/create.md), activez le composant paiements intégrés en spécifiant les `payments` dans le paramètre `components`. Vous pouvez activer ou désactiver une fonctionnalité individuelle du composant paiements en spécifiant le paramètre `features` sous `payments` : ```curl curl https://api.stripe.com/v1/account_sessions \ -u "<>:" \ -d "account={{CONNECTEDACCOUNT_ID}}" \ -d "components[payments][enabled]=true" \ -d "components[payments][features][refund_management]=true" \ -d "components[payments][features][dispute_management]=true" \ -d "components[payments][features][capture_payments]=true" \ -d "components[payments][features][destination_on_behalf_of_charge_management]=false" ``` Le composant payments 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. ## Afficher le composant de paiement Après avoir créé la session de compte et initialisé [ConnectJS](https://docs.stripe.com/connect/get-started-connect-embedded-components.md#account-sessions), vous pouvez effectuer le rendu du composant de paiement dans la partie frontale : #### JavaScript ```js // Include this element in your HTML const payments = stripeConnectInstance.create('payments'); container.appendChild(payments); // Optional: specify filters to apply on load // payments.setDefaultFilters({ // amount: {greaterThan: 100}, // date: {before: new Date(2024, 0, 1)}, // status: ['partially_refunded', 'refund_pending', 'refunded'], // paymentMethod: 'card',}); ``` #### HTML + JS | Moyen de paiement | Type | Description | Par défaut | | ------------------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | | `setDefaultFilters` | `PaymentsListDefaultFilters` | Au moment du chargement, affichez les paiements correspondant aux critères de filtrage. Consultez les [propriétés de PaymentsListDefaultFilters](https://docs.stripe.com/connect/supported-embedded-components/payments.md#the-object). | none | #### React | Propriété React | Type | Description | Par défaut | Obligatoire ou facultatif | | ---------------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | ------------------------- | | `defaultFilters` | `PaymentsListDefaultFilters` | Au moment du chargement, affichez les paiements correspondant aux critères de filtrage. Consultez les [propriétés de PaymentsListDefaultFilters](https://docs.stripe.com/connect/supported-embedded-components/payments.md#the-object). | none | facultatif | ### Définir les paramètres par défaut La définition des filtres par défaut de la liste des paiements est facultative. Si cette option est activée, elle applique tous les filtres valides et ignore les filtres non valides. Si la fonctionnalité `destination_on_behalf_of_charge_management` est activée, vous ne pouvez pas filtrer par état ou moyen de paiement. Ces filtres sont donc automatiquement ignorés. Vous pouvez spécifier n’importe quelle combinaison de filtres de paiement de votre choix à l’aide de l’objet `PaymentsListDefaultFilters`. #### Objet `PaymentsListDefaultFilters` Pour spécifier des filtres par défaut, passez un objet `PaymentsListDefaultFilters` dans le setter `setDefaultFilters`. L’objet possède les propriétés suivantes, qui sont toutes facultatives : | Nom | Type | Description | Exemple de valeur | | --------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------- | | `amount` | `{equals: number} | {greaterThan: number} | {lessThan: number} | {between: {lowerBound: number, upperBound: number}}` | Filtrez par montant du paiement (au centième près). | `{greaterThan: 100}` | | `date` | `{before: Date} | {after: Date} | {between: {start: Date; end: Date}` | Fournissez des objets `Date` pour filtrer par date. Le champ accepte n’importe quel format de date autorisé par un objet `Date` JavaScript. Seuls l’année, le mois et le jour sont pris en compte. | `{before: new Date(2024, 0, 1)}` | | `status` | `Status[]` | Indiquez un ou plusieurs états. Les options d’état valides sont les suivantes : `'blocked' | 'canceled' | 'disputed' | 'early_fraud_warning' | 'failed' | 'incomplete' | 'partially_refunded' | 'pending' | 'refund_pending' | 'refunded' | 'successful' | 'uncaptured'` Ce filtre est ignoré si la fonction `destination_on_behalf_of_charge_management` est activée. | `['disputed', 'canceled']` | | `paymentMethod` | `PaymentMethod` | La liste complète des moyens de paiement est disponible sous le type enum de l’[objet PaymentMethod](https://docs.stripe.com/api/payment_methods/object.md#payment_method_object-type). Pour savoir quels moyens de paiement sont disponibles, consultez vos [paramètres des moyens de paiement](https://dashboard.stripe.com/login?redirect=%2Fsettings%2Fpayment_methods%2Fconnected_accounts%3Fconfig_id%3Dpmc_1KldNkAppfGnVJgHI6jpKIek). Ce filtre est ignoré si la fonction `destination_on_behalf_of_charge_management` est activée. | `'card'` | ## Afficher le composant de paiement Après avoir créé la session de compte et configuré le SDK [StripeConnect SDK](https://docs.stripe.com/connect/get-started-connect-embedded-components.md?platform=ios#install-the-stripeconnect-sdk), vous pouvez effectuer le rendu du composant de paiement dans votre application mobile : #### Swift ```swift // Optional: specify filters to apply on load let defaultFilters = EmbeddedComponentManager.PaymentsListDefaultFiltersOptions() defaultFilters.amount = .greaterThan(10.10) // Show payments > $10.10 defaultFilters.status = [.successful, .pending] // Only successful and pending payments defaultFilters.paymentMethod = .card // Only card payments defaultFilters.date = .between(start: startDate, end: endDate) // Date range // Display this view controller in your app let paymentsViewController = embeddedComponentManager.createPaymentsViewController(defaultFilters: defaultFilters) present(paymentsViewController) ``` | Paramètres | Type | Description | Par défaut | | ---------------- | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------- | | `defaultFilters` | `PaymentsListDefaultFiltersOptions` | Au chargement, afficher les paiements correspondant aux critères du filtre. Voir les propriétés possibles [PaymentsListDefaultFiltersOptions](https://docs.stripe.com/connect/supported-embedded-components/payments.md#the-object). | none | ### Définir les paramètres par défaut La définition des filtres par défaut de la liste des paiements est facultative. Si cette option est activée, elle applique tous les filtres valides et ignore les filtres non valides. Si la fonctionnalité `destination_on_behalf_of_charge_management` est activée, vous ne pouvez pas filtrer par état ou moyen de paiement. Ces filtres sont donc automatiquement ignorés. Vous pouvez spécifier toute combinaison de filtres de paiement de votre choix à l’aide de l’objet `PaymentsListDefaultFiltersOptions`. ### L’objet `PaymentsListDefaultFiltersOptions` Pour spécifier des filtres par défaut, créez un objet `PaymentsListDefaultFiltersOptions` et passez-le dans le paramètre `defaultFilters`. L’objet possède les propriétés suivantes, qui sont toutes facultatives : | Nom | Type | Description | Exemple de valeur | | --------------- | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ | | `amount` | `AmountFilter?` | Filtrer par montant du paiement (au centième près). Utiliser les cas d’énumération : `.equals(Double)` `.greaterThan(Double)` `.lessThan(Double)` `.between(lowerBound: Double, upperBound: Double)` | `.greaterThan(100.0)` | | `date` | `DateFilter?` | Filtrez par date en utilisant les objets `Date`. Utilisez des cas d’usage : `.before(Date)` `.after(Date)` `.between(start: Date, end: Date)` Seuls l’année, le mois et le jour sont pris en considération. | `.before(Date())` | | `status` | `[Status]?` | Indiquez un ou plusieurs états. Les options d’état valides sont les suivantes : `.blocked` `.canceled` `.disputed` `.earlyFraudWarning` `.failed` `.incomplete` `.partiallyRefunded` `.pending` `.refundPending` `.refunded` `.successful` `.uncaptured` Ce filtre est ignoré si la fonction `destination_on_behalf_of_charge_management` est activée. | `[.disputed, .canceled]` | | `paymentMethod` | `PaymentMethod?` | A single payment method from the available enum cases including `.card`, `.applePay`, `.googlePay`, and many others. To see which payment methods are available to you, check your [payment method settings](https://dashboard.stripe.com/login?redirect=%2Fsettings%2Fpayment_methods%2Fconnected_accounts%3Fconfig_id%3Dpmc_1KldNkAppfGnVJgHI6jpKIek). Ce filtre est ignoré si la fonction `destination_on_behalf_of_charge_management` est activée. | `.card` | ## Afficher le composant de paiement Après avoir créé la session de compte et configuré le SDK [StripeConnect SDK](https://docs.stripe.com/connect/get-started-connect-embedded-components.md?platform=android#install-the-stripeconnect-sdk), vous pouvez effectuer le rendu du composant de paiement dans votre application mobile : #### Kotlin ```kotlin // Optional: specify filters to apply on load val defaultFilters = PaymentsProps.PaymentsListDefaultFilters( amount = PaymentsProps.AmountFilter.greaterThan(10.10), // Show payments > $10.10 status = listOf(PaymentsProps.Status.SUCCESSFUL, PaymentsProps.Status.PENDING), // Only successful and pending payments paymentMethod = PaymentsProps.PaymentMethod.CARD, // Only card payments date = PaymentsProps.DateFilter.between(startDate, endDate) // Date range ) val props = PaymentsProps(defaultFilters = defaultFilters) val paymentsView: View = embeddedComponentManager.createPaymentsView( context = activity, // Use an activity or activity-derived context props = props ) findViewById(R.id.content_view).addView(paymentsView) ``` | Paramètres | Type | Description | Par défaut | | ---------------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | | `defaultFilters` | `PaymentsListDefaultFilters` | Au moment du chargement, affichez les paiements correspondant aux critères de filtrage. Consultez les [propriétés de PaymentsListDefaultFilters](https://docs.stripe.com/connect/supported-embedded-components/payments.md#the-object). | null | ### Définir les paramètres par défaut La définition des filtres par défaut de la liste des paiements est facultative. Si cette option est activée, elle applique tous les filtres valides et ignore les filtres non valides. Si la fonctionnalité `destination_on_behalf_of_charge_management` est activée, vous ne pouvez pas filtrer par état ou moyen de paiement. Ces filtres sont donc automatiquement ignorés. Vous pouvez spécifier toute combinaison de filtres de paiement de votre choix à l’aide de l’objet `PaymentsProps.PaymentsListDefaultFilters`. ### L’objet `PaymentsProps.PaymentsListDefaultFilters` Pour spécifier des filtres par défaut, créez un objet `PaymentsProps.PaymentsListDefaultFilters` et passez-le dans le paramètre `defaultFilters` de `PaymentsProps`. L’objet possède les propriétés suivantes, qui sont toutes facultatives : | Nom | Type | Description | Exemple de valeur | | --------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------ | | `amount` | `AmountFilter?` | Filtre sur le montant du paiement (au centième près). Utilisez des méthodes statiques : `AmountFilter.equalTo(Double)` `AmountFilter.greaterThan(Double)` `AmountFilter.lessThan(Double)` `AmountFilter.between(Double, Double)` | `AmountFilter.greaterThan(100.0)` | | `date` | `DateFilter?` | Filtrez par date en utilisant les objets `Date`. Utilisez des méthodes statiques : `DateFilter.before(Date)` `DateFilter.after(Date)` `DateFilter.between(Date, Date)` Seuls l’année, le mois et le jour sont pris en considération. | `DateFilter.before(Date())` | | `status` | `List?` | Indiquez un ou plusieurs états. Les options d’état valides sont les suivantes : `Status.BLOCKED` `Status.CANCELED` `Status.DISPUTED` `Status.EARLY_FRAUD_WARNING` `Status.FAILED` `Status.INCOMPLETE` `Status.PARTIALLY_REFUNDED` `Status.PENDING` `Status.REFUND_PENDING` `Status.REFUNDED` `Status.SUCCESSFUL` `Status.UNCAPTURED` Ce filtre est ignoré si la fonction `destination_on_behalf_of_charge_management` est activée. | `listOf(Status.DISPUTED, Status.CANCELED)` | | `paymentMethod` | `PaymentMethod?` | Un seul moyen de paiement parmi les cas énumérés disponibles, notamment `PaymentMethod.CARD`, `PaymentMethod.APPLE_PAY`, `PaymentMethod.GOOGLE_PAY`, et bien d’autres. Pour connaître les moyens de paiement dont vous disposez, vérifiez les [paramètres de votre moyen de paiement](https://dashboard.stripe.com/login?redirect=%2Fsettings%2Fpayment_methods%2Fconnected_accounts%3Fconfig_id%3Dpmc_1KldNkAppfGnVJgHI6jpKIek). Ce filtre est ignoré si la fonction `destination_on_behalf_of_charge_management` est activée. | `PaymentMethod.CARD` | ## Afficher le composant de paiement Une fois l’Account Session créée et le [Stripe React Native SDK](https://docs.stripe.com/connect/get-started-connect-embedded-components.md?platform=react-native#install-the-stripe-react-native-sdk) configuré, vous pouvez intégrer le composant Paiements directement dans votre application. #### TypeScript ```javascript import { ConnectPayments } from '@stripe/stripe-react-native'; export default function PaymentsScreen() { return ; } ``` ## Demander l’accès (Private preview) Connectez-vous pour demander l’accès aux composants intégrés Connect pour React Native en version bêta privée. Si vous n’avez pas de compte Stripe, vous pouvez [vous inscrire dès maintenant](https://dashboard.stripe.com/register). ## 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. ## Personnaliser la description Si vous utilisez l’option [destination_on_behalf_of_charge_management](https://docs.stripe.com/connect/supported-embedded-components/payments.md#allow-your-connected-accounts-to-manage-destination-charges), les informations de paiement (y compris la description) affichées pour les paiements indirects avec l’attribut `on_behalf_of` correspondent au paiement créé à l’origine. Si vous souhaitez afficher une description personnalisée dans la vue détaillée du paiement 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) lorsque cette fonctionnalité est désactivée, procédez comme suit : ### Paiements indirects Pour mettre à jour la [description](https://docs.stripe.com/api/charges/object.md#charge_object-description) d’un objet Payment visible par les utilisateurs de votre plateforme, vous devez utiliser l’API Stripe. Cela concerne toutes les plateformes qui utilisent les [paiements indirects](https://docs.stripe.com/connect/destination-charges.md). 1. Recherchez l’objet Transfer que vous avez créé pour un compte en recherchant le dernier [paiement](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-charges) créé sur l’[objet PaymentIntent](https://docs.stripe.com/api/payment_intents/object.md). 1. Utilisez l’objet Charge pour rechercher l’objet [transfer](https://docs.stripe.com/api/charges/object.md#charge_object-transfer) associé au paiement. 1. Utilisez l’objet Transfer pour trouver l’ID [destination_payment](https://docs.stripe.com/api/transfers/object.md#transfer_object-destination_payment) du transfert. 1. Appelez l’[API Update Charge](https://docs.stripe.com/api/charges/update.md) pour mettre à jour la [description](https://docs.stripe.com/api/charges/update.md#update_charge-description) du paiement indirect à l’aide de l’ID `destination_payment`. > L’objet [destination_payment](https://docs.stripe.com/api/transfers/object.md#transfer_object-destination_payment) appartient au compte connecté, vous devez donc définir l’[en-tête Stripe-Account](https://docs.stripe.com/connect/authentication.md) sur l’ID du compte connecté pour effectuer cet appel. ```curl curl https://api.stripe.com/v1/charges/{{PAYMENT_ID}} \ -u "<>:" \ -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \ -d "description=My custom description" ``` Cette description apparaît sur le paiement une fois que vous avez saisi ce champ. [En savoir plus sur la création de paiements indirects sur votre plateforme](https://docs.stripe.com/connect/destination-charges.md) ### Paiements et transferts distincts Pour mettre à jour la [description](https://docs.stripe.com/api/charges/object.md#charge_object-description) d’un objet Payment visible par les utilisateurs de votre plateforme, vous devez utiliser l’API Stripe. Cela concerne les plateformes qui utilisent les [paiements et transferts distincts](https://docs.stripe.com/connect/separate-charges-and-transfers.md). 1. Utilisez l’objet Transfer pour trouver l’ID [destination_payment](https://docs.stripe.com/api/transfers/object.md#transfer_object-destination_payment) du transfert. 1. Appelez l’[API Update Charge](https://docs.stripe.com/api/charges/update.md) pour mettre à jour la [description](https://docs.stripe.com/api/charges/update.md#update_charge-description) du paiement indirect à l’aide de l’ID `destination_payment` trouvé à l’étape précédente. > L’objet [destination_payment](https://docs.stripe.com/api/transfers/object.md#transfer_object-destination_payment) appartient au compte connecté, vous devez donc définir l’[en-tête Stripe-Account](https://docs.stripe.com/connect/authentication.md) sur l’ID du compte connecté pour effectuer cet appel. ```curl curl https://api.stripe.com/v1/charges/{{PAYMENT_ID}} \ -u "<>:" \ -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \ -d "description=My custom description" ``` Cette description apparaît sur le paiement une fois que vous avez saisi ce champ. En savoir plus sur la [création de paiements et transferts distincts](https://docs.stripe.com/connect/separate-charges-and-transfers.md).