# Encaisser des majorations Compensez vos frais de traitement des cartes bancaires grâce à des majorations. Les majorations vous permettent de compenser une partie des coûts liés à l’acceptation des paiements par carte. Si vous êtes une plateforme qui détermine et perçoit des frais de paiement auprès de vos comptes connectés, les majorations permettent à ces derniers de compenser ces coûts. ## Conformité Si vous appliquez une majoration sur vos paiements par carte, vous devez être conforme avec l’ensemble des lois, réglementations et règles des réseaux de cartes applicables. Les exigences en matière de majoration varient selon les régions et les types de cartes et peuvent inclure des obligations telles que : - Calculez avec précision les montants de majoration autorisés afin qu’ils ne dépassent pas les limites imposées par la législation applicable, les réseaux de cartes ou votre coût d’acceptation (que vous devez [déterminer](https://support.stripe.com/questions/exporting-payment-data)). - Informer votre acquéreur ou le réseau de cartes bancaires de votre intention d’appliquer une majoration. - Appliquer des majorations homogènes sur vos différents réseaux ou produits de cartes. - Indiquez de manière claire et visible les montants de majoration applicables à chaque transaction ainsi que le coût total pour le titulaire de la carte avant l’achat, et faites apparaître la majoration séparément sur le reçu de la transaction. - Offrez la possibilité d’annuler la transaction ou de choisir un autre moyen de paiement après que le montant de la majoration a été communiqué au titulaire de la carte. Même lorsque la fonctionnalité de majoration est disponible, vous devez vous assurer que la majoration est autorisée et que le montant que vous appliquez ne dépasse pas les limites fixées par la législation, les réglementations ou les réseaux de cartes applicables. Il vous incombe de comprendre et d’être conforme à toutes les exigences ou restrictions propres à un pays ou une région (y compris celles d’un État, d’une province ou d’un territoire). Les informations présentées sur cette page concernant votre conformité à ces exigences sont fournies à titre indicatif et ne constituent pas un conseil juridique, fiscal, comptable ou professionnel. Consultez un expert si vous avez des doutes sur vos obligations. > Vous êtes entièrement responsable du paiement de toute amende, pénalité ou perte liée au non-respect des exigences applicables en matière de majoration. ## Disponibilité L’application d’une majoration est disponible dans les pays et pour les moyens de paiement suivants : | Pays | Moyens de paiement autorisés | Montant maximal de la majoration | | ---------------- | ---------------------------- | -------------------------------- | | États-Unis | Cartes bancaires uniquement | 3 % | | Canada | Cartes bancaires uniquement | 2,4 % | | Australie | Toutes les cartes | 4 % | | Nouvelle-Zélande | Toutes les cartes | 4 % | ## Before you begin - Votre intégration doit utiliser la version API [2026-03-25.preview](https://docs.stripe.com/changelog.md?channel=preview#2026-03-25.preview). Vous devez utiliser les [SDK en version bêta publique](https://docs.stripe.com/sdks/versioning.md?#public-preview-release-channel) ou spécifier cette [version de Stripe](https://docs.stripe.com/api/versioning.md) dans l’en-tête de votre requête pour accéder aux fonctionnalités en version bêta. - Consultez les [modifications de l’API](https://docs.stripe.com/payments/cards/surcharge.md#migrate-to-public-preview) si vous participez actuellement à la version bêta privée des frais supplémentaires. ## Déterminer la disponibilité de la majoration Lorsque vous envoyez `surcharge.amount` ou `surcharge.enforce_validation` et que vous associez un moyen de paiement à votre [PaymentIntent](https://docs.stripe.com/api/payment_intents/create.md?api-version=preview#create_payment_intent-amount_details-surcharge), la réponse inclut les attributs suivants pour vous aider à déterminer la disponibilité de la majoration : - L’attribut `surcharge.status` indique si la surcharge est disponible en fonction du pays et du type de financement du moyen de paiement. - Cela renvoie `available` ou `unavailable`. - `surcharge.maximum_amount` indique le montant maximum de majoration que vous pouvez transmettre. Toutefois, cette valeur correspond à une restriction technique et non à un montant recommandé par Stripe. Les limites de majoration imposées par les lois ou les exigences des réseaux de cartes dans votre juridiction peuvent différer de `surcharge.maximum_amount`. Il vous incombe de vous assurer que la majoration que vous appliquez ne dépasse pas ces limites. - Par défaut, Stripe valide la majoration que vous appliquez à un `PaymentIntent` donné par rapport au montant maximum de majoration. Si vous tentez d’appliquer une majoration supérieure à ce montant maximum, une erreur est générée. ### Désactiver la validation des montants de majoration - Vous pouvez désactiver la validation du montant maximum de majoration en passant `enforce_validation: disabled`. Si vous désactivez la validation en définissant `enforce_validation: disabled`, Stripe ne renvoie pas le champ `maximum_amount` et la restriction technique par défaut sur le montant de la majoration ne s’applique pas. - Vous pouvez désactiver la validation du montant maximum de majoration au moment de créer, mettre à jour ou confirmer un PaymentIntent. Une fois que vous avez activé ou désactivé cette validation, il n’est plus possible de modifier `surcharge.enforce_validation`. - Le fait de passer `enforce_validation: disabled` ne supprime aucune autre restriction de disponibilité, y compris celles liées au type de financement de la carte ou à d’autres restrictions régionales. Vous devez vous assurer que la majoration que vous appliquez respecte toutes les lois applicables et les exigences des réseaux de cartes, que vous désactiviez ou non la validation du montant maximum de majoration. - Vous pouvez également passer `enforce_validation: enabled` pour activer explicitement la validation technique du montant maximum de majoration. Une fois cette opération effectuée, il n’est plus possible de modifier `surcharge.enforce_validation`. - Par défaut, Stripe applique les restrictions techniques sur le montant maximum de majoration. Si vous ne transmettez aucun champ dans `surcharge.enforce_validation`, la réponse inclut `enforce_validation: automatic` pour indiquer ce comportement. #### Scénario 1 : Activer la validation et utiliser `maximum_amount` Créez un `PaymentIntent` avec la validation activée afin de recevoir `maximum_amount` : ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -H "Stripe-Version: 2026-03-25.preview" \ -d amount=1000 \ -d currency=usd \ -d "payment_method={{PAYMENTMETHOD_ID}}" \ -d "payment_method_types[]=card" \ -d "amount_details[surcharge][enforce_validation]=enabled" ``` ```json { "id": "pi_123", "object": "payment_intent", "amount": 1000, "amount_capturable": 0, "amount_details": { "surcharge": { "enforce_validation": "enabled", "maximum_amount": 24, "status": "available" } }, "status": "requires_confirmation" } ``` #### Scénario 2 : Désactiver la validation ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -H "Stripe-Version: 2026-03-25.preview" \ -d amount=1000 \ -d currency=usd \ -d "payment_method={{PAYMENTMETHOD_ID}}" \ -d "payment_method_types[]=card" \ -d "amount_details[surcharge][enforce_validation]=disabled" ``` Stripe ne renvoie pas `maximum_amount` lorsque vous désactivez la validation. ```json { "id": "pi_123", "object": "payment_intent", "amount": 1000, "amount_capturable": 0, "amount_details": { "surcharge": { "enforce_validation": "disabled", "status": "available" } }, "status": "requires_confirmation" } ``` ## Calculer le montant de la majoration Vous devez calculer des montants de majoration conformes aux exigences juridiques, réglementaires et des réseaux de cartes pour chaque transaction. Vos coûts de traitement des paiements varient selon la marque de la carte bancaire, le type de financement et les réseaux disponibles. Si Stripe renvoie le montant maximum de majoration, comparez toujours votre majoration calculée avec `surcharge.maximum_amount` renvoyé dans le PaymentIntent pour le moyen de paiement sélectionné afin d’éviter des erreurs. Les règles des réseaux de cartes et de votre juridiction concernant les majorations peuvent évoluer au fil du temps. Stripe peut modifier le montant maximum de majoration. Il vous incombe de prendre en compte `surcharge.maximum_amount`. Si vous appliquez une majoration supérieure à `surcharge.maximum_amount`, vous risquez de rencontrer des erreurs de validation. ## Confirmer le paiement avec des frais supplémentaires Après avoir calculé la majoration et l’avoir communiquée au client, vous pouvez appliquer la majoration lors de la confirmation ou de la capture du PaymentIntent. > #### Indiquez le montant total incluant la majoration > > Stripe ne facture que le montant indiqué dans le champ `amount` de premier niveau et n’ajoute aucun montant supplémentaire. Vous devez donc indiquer dans ce champ `amount` le montant total incluant la majoration. Par exemple, pour un sous-total de 10,00 USD avec une majoration de 0,20 USD, vous devez passer 10,20 USD dans le champ `amount` de premier niveau. Le montant de la majoration de 0,20 USD sera spécifié séparément dans `amount_details[surcharge][amount]`. ```curl curl https://api.stripe.com/v1/payment_intents/{{PAYMENTINTENT_ID}}/confirm \ -u "<>:" \ -H "Stripe-Version: 2026-03-25.preview" \ -d amount_to_confirm=1020 \ -d "amount_details[surcharge][enforce_validation]=enabled" \ -d "amount_details[surcharge][amount]=20" ``` ```json { "id": "pi_123", "object": "payment_intent", "amount": 1020, "amount_capturable": 1020, "amount_details": { "surcharge": { "enforce_validation": "enabled", "amount": 20, "maximum_amount": 24, "status": "available" } }, "status": "requires_capture" } ``` ## Appliquer une majoration lors de la création d’un PaymentIntent Indiquez dans le champ `amount` de premier niveau le montant total incluant la majoration lors de la création d’un PaymentIntent : ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -H "Stripe-Version: 2026-03-25.preview" \ -d amount=1020 \ -d currency=usd \ -d "payment_method={{PAYMENTMETHOD_ID}}" \ -d "payment_method_types[]=card" \ -d "amount_details[surcharge][enforce_validation]=enabled" \ -d "amount_details[surcharge][amount]=20" ``` ## Appliquer la majoration lors de la capture Vous pouvez également appliquer la majoration lors de la capture. Ce comportement peut être utilisé dans différents scénarios : - **Ajuster la majoration après confirmation** : si vous devez modifier le montant de la majoration après confirmation, vous ne pouvez que le réduire. Il n’est pas possible d’augmenter le montant de la majoration lors de la capture. - **Scénarios de multicapture** : lors de captures multiples sur un même PaymentIntent, vous pouvez spécifier le montant de la majoration pour chaque capture individuelle. La somme des montants de majoration appliqués lors des multicaptures ne peut pas dépasser le montant de majoration indiqué lors de la confirmation. ```curl curl https://api.stripe.com/v1/payment_intents/{{PAYMENTINTENT_ID}}/capture \ -u "<>:" \ -H "Stripe-Version: 2026-03-25.preview" \ -d amount_to_capture=1020 \ -d "amount_details[surcharge][enforce_validation]=enabled" \ -d "amount_details[surcharge][amount]=20" ``` ## Remboursements Vous devez mettre en place une logique pour rembourser les majorations au client lors d’un remboursement. Les règles des réseaux de cartes ainsi que certaines lois et réglementations exigent de rembourser la totalité de la majoration en cas de remboursement intégral, et de rembourser une majoration au prorata en cas de remboursement partiel. Par exemple, si un client retourne un article d’une valeur de 60,00 USD sur une commande totale de 100,00 USD, et que vous avez appliqué une majoration de 1,50 USD, le remboursement de la majoration au prorata doit être de 60,90 USD (60,00 USD + 60/100 de la majoration de 1,50 USD). ## Reçus Les reçus préconçus Stripe affichent automatiquement la majoration. Si vous créez des reçus personnalisés, affichez le montant de la majoration séparément. Par exemple, pour un achat totalisant 10,20 USD avec une majoration de 0,20 USD, vous devez afficher 10,00 USD et 0,20 USD comme postes séparés sur le reçu. Consultez `amount_details.surcharge.amount` dans le PaymentIntent pour voir la majoration appliquée. ## Rapports Le champ `amount_details_surcharge_amount` est disponible dans la table `payment_intents` de Sigma pour plus de commodité. Ce champ représente le montant de la majoration appliquée à la transaction que vous transmettez au réseau de cartes. ## Interopérabilité des fonctionnalités - Vous pouvez utiliser la majoration avec les [postes de paiement](https://docs.stripe.com/payments/payment-line-items/flexible-payment-scenarios.md#add-a-surcharge). - Vous pouvez utiliser la majoration avec [Multicapture](https://docs.stripe.com/payments/multicapture.md) et spécifier des montants de majoration différents pour chaque capture. - Vous ne pouvez pas capturer un montant de majoration supérieur à celui indiqué lors de la confirmation. - La somme des montants de majoration appliqués lors de multicaptures ne peut pas dépasser le montant de majoration indiqué lors de la confirmation. - Si vous utilisez la majoration avec l’[autorisation complémentaire](https://docs.stripe.com/payments/incremental-authorization.md), vous pouvez réduire le montant de la majoration via l’endpoint de capture du PaymentIntent si vous capturez moins que le montant autorisé. En revanche, vous ne pouvez pas augmenter la majoration, quel que soit le montant supplémentaire autorisé lors de l’autorisation complémentaire. - La majoration n’est pas disponible lors de la capture automatique avec des autorisations partielles. ## Migration des modifications d’API en version bêta privée Si vous utilisez actuellement la version bêta privée de la majoration, voici les principales modifications à apporter pour bénéficier du comportement de la version bêta publique : | Version bêta privée | Version bêta publique | | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | | `amount_surcharge` (niveau supérieur) | `amount_details[surcharge][amount]` | | Stripe incrémente automatiquement le champ `amount`. | Vous indiquez le montant total dans le champ `amount`, incluant la majoration. | | La validation des montants est toujours appliquée | `amount_details[surcharge][enforce_validation]` | | Application de la majoration uniquement sur `/update` et `/confirm` | Majoration disponible sur `/create`, `/update`, `/confirm`, et `/capture` | | `maximum_amount` et `status` renvoyés dans le hachage `payment_method_options`. | `maximum_amount` et `status` renvoyés dans le hachage `amount_details` |