# Collecter des pourboires avec le lecteur Grâce à la fonctionnalité d’affichage des pourboires sur le lecteur, vous pouvez proposer différents montants de pourboire à vos clients avant qu’ils ne sélectionnent leur moyen de paiement. Le lecteur affiche automatiquement trois suggestions en fonction de l’[option de pourboire](https://docs.stripe.com/terminal/features/collecting-tips/on-reader.md#customize-tips-reader) que vous avez configurée chaque fois que vous vous apprêtez à encaisser un paiement. Lorsque vous [confirmez le paiement](https://docs.stripe.com/terminal/payments/collect-card-payment.md#confirm-payment), le `PaymentIntent` est confirmé pour un montant incluant le pourboire sélectionné. ![](https://b.stripecdn.com/docs-statics-srv/assets/wpe-darkmode-pay.fdf5e2100ca53b54e100a28b8589b1d1.png) Écran de paiement ![](https://b.stripecdn.com/docs-statics-srv/assets/wpe-darkmode-subtotal.50779461be74aa98f600aef3e7715a16.png) Écran de sélection des pourboires (pourcentage) ![](https://b.stripecdn.com/docs-statics-srv/assets/wpe-darkmode-total.eb4f25263c136bed268f68a6f5e82933.png) Écran Total ![](https://b.stripecdn.com/docs-statics-srv/assets/wpe-darkmode-approved.6eb33af4ca019de7621d07363e24dd8e.png) Écran Approuvé ### Disponibilité - AT - AU - BE - BG - CA - CH - CY - CZ - DE - DK - EE - ES - FI - FR - GB - GI - HR - HU - IE - IT - JP - LI - LT - LU - LV - MT - MY - NL - NO - NZ - PL - PT - RO - SE - SG - SI - SK - US **Lecteurs** : [Stripe Reader S700/S710](https://docs.stripe.com/terminal/readers/stripe-reader-s700-s710.md), [BBPOS WisePOS E](https://docs.stripe.com/terminal/readers/bbpos-wisepos-e.md), [BBPOS WisePad 3](https://docs.stripe.com/terminal/readers/bbpos-wisepad3.md) ## Activer et personnaliser les pourboires au lecteur Utilisez un objet [Configuration](https://docs.stripe.com/api/terminal/configuration.md) ou le [Dashboard](https://docs.stripe.com/terminal/fleet/configurations-overview.md?dashboard-or-api=dashboard#update-the-default-configuration-for-the-account) pour définir la configuration des pourboires de votre lecteur : - Suggérer des pourboires intelligents — le lecteur affiche de façon dynamique trois pourcentages ou montants, en fonction du montant avant pourboire. - Suggérer des pourcentages — le lecteur affiche trois pourcentages de pourboires. - Proposer des montants — le lecteur affiche trois montants de pourboire. Pour utiliser la fonction de pourboires intégrée de votre lecteur BBPOS WisePad 3, vous devez utiliser l’une des versions du SDK Terminal suivantes : - Android SDK 2.8.1 ou version ultérieure - SDK iOS 2.16.1 ou version ultérieure #### Suggérer des pourboires intelligents Vous pouvez suggérer trois pourcentages ou montants de pourboire sur le lecteur. Le lecteur affiche dynamiquement l’un ou l’autre de ces pourboires intelligents, en fonction d’un montant seuil avant pourboire. Créez ou mettez à jour un objet `Configuration` comme suit. Par défaut, les pourboires en pourcentage sont calculés après application des taxes. Pour suggérer des pourboires avant l’application des taxes, vous pouvez spécifier un montant maximum [sur lequel appliquer un pourboire](https://docs.stripe.com/terminal/features/collecting-tips/on-reader.md#tip-eligible). ```curl curl https://api.stripe.com/v1/terminal/configurations \ -u "<>:" \ -d "tipping[usd][percentages][]"=15 \ -d "tipping[usd][percentages][]"=20 \ -d "tipping[usd][percentages][]"=25 \ -d "tipping[usd][fixed_amounts][]"=100 \ -d "tipping[usd][fixed_amounts][]"=200 \ -d "tipping[usd][fixed_amounts][]"=300 \ -d "tipping[usd][smart_tip_threshold]"=1000 ``` Dans l’exemple ci-dessus, le lecteur choisit dynamiquement ce qu’il doit suggérer : - Si le montant du pré-pourboire se situe sous le seuil `smart_tip_threshold` (10 USD), le lecteur affiche trois boutons qui suggèrent des pourboires de 1, 2 ou 3 USD, de haut en bas. - Si le montant du pré-paiement est égal ou supérieur au seuil `smart_tip_threshold` (10 USD), le lecteur affiche trois boutons suggérant des pourboires correspondant à 15 %, 20 % ou 25 % du montant avant pourboire, de haut en bas. #### Suggérer des pourcentages Vous pouvez suggérer trois pourcentages de pourboire différents sur le lecteur. Le lecteur affiche les montants de pourboires correspondant à ces pourcentages, dans l’ordre indiqué lors de la création ou de la modification de l’objet `Configuration`. Par défaut, ces pourboires sont calculés après application des taxes. Pour suggérer des pourboires avant l’application des taxes, vous pouvez spécifier un montant maximum [sur lequel appliquer un pourboire](https://docs.stripe.com/terminal/features/collecting-tips/on-reader.md#tip-eligible). ```curl curl https://api.stripe.com/v1/terminal/configurations \ -u "<>:" \ -d "tipping[usd][percentages][]"=15 \ -d "tipping[usd][percentages][]"=20 \ -d "tipping[usd][percentages][]"=25 ``` Dans l’exemple ci-dessus, le lecteur suggère trois pourboires qui correspondent à 15 %, 20 % ou 25 % du total avant pourboire de haut en bas. #### Suggérer des montants Vous pouvez suggérer trois montants de pourboire sur le lecteur. Pour les paiements en USD, le lecteur affiche ces montants dans l’ordre indiqué lors de la création ou de la mise à jour de l’objet `Configuration`. ```curl curl https://api.stripe.com/v1/terminal/configurations \ -u "<>:" \ -d "tipping[usd][fixed_amounts][]"=100 \ -d "tipping[usd][fixed_amounts][]"=200 \ -d "tipping[usd][fixed_amounts][]"=300 ``` Dans l’exemple ci-dessus, le lecteur suggère des pourboires de 1 USD, 2 USD ou 3 USD, de haut en bas. Si vous spécifiez plusieurs devises dans votre objet `Configuration`, vous devez fournir les mêmes clés de configuration pour chacune d’entre elles. Autrement dit, si vous spécifiez uniquement `percentages` pour la devise `USD`, vous ne pouvez pas spécifier `fixed_amounts` ou `smart_tip_threshold` pour d’autres devises. Après avoir créé un objet `Configuration` avec votre configuration de pourboire, vous pouvez [assigner la configuration](https://docs.stripe.com/terminal/fleet/configurations-overview.md?dashboard-or-api=api#create-a-configuration-for-an-individual-location) à votre compte ou à un emplacement. Les lecteurs BBPOS WisePad 3 reçoivent les configurations nouvelles ou mises à jour lorsqu’ils se connectent à votre application POS. Les lecteurs BBPOS WisePOS E peuvent prendre jusqu’à 5 minutes pour recevoir des configurations nouvelles ou mises à jour. ## Encaisser le paiement Pour le versement de pourboires via un lecteur, suivez les instructions d’[encaissement des paiements](https://docs.stripe.com/terminal/payments/collect-card-payment.md). Lorsque vous [collectez un moyen de paiement](https://docs.stripe.com/terminal/payments/collect-card-payment.md#collect-payment), un écran de sélection de pourboire est présenté au client sur le lecteur. Il est alors invité à sélectionner un pourboire avant de choisir son moyen de paiement. Selon votre [configuration des pourboires](https://docs.stripe.com/terminal/features/collecting-tips/on-reader.md#customize-tips-reader), le client peut choisir un pourboire suggéré, spécifier un pourboire personnalisé ou n’en laisser aucun. Une fois que le client a fait son choix, le lecteur attend qu’il présente une carte bancaire. Lorsque vous traitez le paiement, le lecteur ajoute le pourboire sélectionné. Si le paiement aboutit, le [montant](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-amount) indiqué dans `PaymentIntent` et `Charge` est mis à jour pour inclure le montant du pourboire. Avant une confirmation PaymentIntent, le montant du pourboire est renvoyé dans le champ `amount_tip` mais pas dans le `amount`. Après la confirmation PaymentIntent, le champ `amount_tip` est défini sur zéro, `amount` inclut le montant du pourboire qui est ensuite renvoyé dans l’objet [amount_details](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-amount_details) : | Scénario | [amount_details.tip.amount](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-amount_details-tip-amount) valeur de retour | | ---------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | | Les pourboires sur le lecteur sont désactivés | `null` | | Les pourboires sur le lecteur sont activés, aucun pourboire sélectionné | `0` | | Les pourboires sur le lecteur sont activés, montant du pourboire sélectionné | Le montant sélectionné | Aucun écran de sélection des pourboires n’est présenté aux clients dans les cas suivants : 1. Aucune configuration de pourboire n’a été définie pour l’objet `Configuration`. 1. Vous avez activé `skipTipping` dans votre configuration des pourboires. 1. Le lecteur se trouve dans un pays qui n’est pas pris en charge. 1. Vous ne pouvez pas appliquer de configuration de pourboire à la devise de paiement actuellement sélectionnée (par exemple, si le paiement est en EUR mais que la configuration de l’objet `Configuration` ne prend en charge que les paiements en USD). Lorsque vous [testez des paiements](https://docs.stripe.com/terminal/references/testing.md#physical-test-cards) avec le lecteur Stripe, le montant total (avec les éventuels pourboires) peut déclencher des réponses de refus en fonction de sa valeur décimale. ## Ignorer les pourboires Vous pouvez ignorer la configuration des pourboires, ce qui vous permet de masquer l’écran de sélection des pourboires sur votre lecteur lors de l’encaissement des paiements. Vous pouvez masquer l’écran de sélection des pourboires pour des transactions spécifiques ou temporairement pour toutes les transactions, ce qui permet à vos clients d’accéder directement à l’écran de présentation de la carte. Pour votre restaurant, par exemple, il peut s’avérer plus judicieux d’accepter les pourboires sur le lecteur pour les commandes à emporter, mais de n’autoriser que les [pourboires à l’encaissement](https://docs.stripe.com/terminal/features/collecting-tips/on-receipt.md) pour les clients sur place. Utilisez l’une des options suivantes pour contourner l’écran de sélection de pourboire : #### Piloté par serveur ```curl curl https://api.stripe.com/v1/terminal/readers/tmr_xxx/process_payment_intent \ -u "<>:" \ -d payment_intent="" \ -d "process_config[skip_tipping]"=true ``` #### JavaScript ```js const result = await terminal.collectPaymentMethod( paymentIntent.secret, { config_override: { skip_tipping: true, }, }, ); if ('error' in result) { console.log(`collectPayment failed: ${result.error}`); return; } console.log('collectPayment succeeded'); ``` #### iOS ```swift let collectConfig = try CollectPaymentIntentConfigurationBuilder().setSkipTipping(true).build() let cancelable = Terminal.shared.collectPaymentMethod(intent, collectConfig: collectConfig) { intentWithPaymentMethod, attachError in if let error = attachError { // Placeholder for handling exception } else if let intent = intentWithPaymentMethod { // Placeholder for processing paymentIntent } } ``` #### Android ```kotlin val cancelable = Terminal.getInstance().collectPaymentMethod( paymentIntent, object : PaymentIntentCallback { override fun onSuccess(paymentIntent: PaymentIntent) { // Placeholder for handling successful operation } override fun onFailure(e: TerminalException) { // Placeholder for handling exception } }, CollectPaymentIntentConfiguration.Builder() .skipTipping(true) .build() ) ``` #### React Native ```js const { paymentIntent, error } = await collectPaymentMethod({ paymentIntent: paymentIntent, skipTipping: true, }); if (error) { console.log(`collectPayment failed: ${error.message}`); return; } console.log('collectPayment succeeded'); ``` ## Montants admissibles à un pourboire ![](https://b.stripecdn.com/docs-statics-srv/assets/wpe-tip-eligible-amount.4c189af877d87bd89aaf405409f16548.png) Lorsque vous encaissez un paiement, vous pouvez définir un montant admissible à un pourboire différent du montant du pourboire anticipé. Définir un montant admissible à un pourboire modifie la valeur à partir de laquelle un pourcentage est calculé en guise de pourboire. Sur l’écran de sélection du pourboire, le client voit également le montant admissible au pourboire ainsi que le montant avant pourboire. Ce paramètre est utile pour les entreprises qui fournissent des services en plus de la vente de biens. Par exemple, dans le cas d’un salon proposant des services de coiffure et commercialisant des bouteilles de shampoing, il peut être utile d’informer la clientèle que le calcul des pourboires se fait uniquement sur un pourcentage du tarif des coupes de cheveux. #### Piloté par serveur ```curl curl https://api.stripe.com/v1/terminal/readers/tmr_xxx/process_payment_intent \ -u "<>:" \ -d payment_intent="" \ -d "process_config[tipping][amount_eligible]"=1500 ``` #### JavaScript ```js const result = await terminal.collectPaymentMethod( paymentIntent.secret, { config_override: { tipping: { eligible_amount: 1500, }, }, }, ); if ('error' in result) { console.log(`collectPayment failed: ${result.error}`); return; } console.log('collectPayment succeeded'); ``` #### iOS ```swift let tippingConfig = try TippingConfigurationBuilder().setEligibleAmount(1500).build() let collectConfig = try CollectPaymentIntentConfigurationBuilder().setTippingConfiguration(tippingConfig).build() let cancelable = Terminal.shared.collectPaymentMethod(intent, collectConfig: collectConfig) { intentWithPaymentMethod, attachError in if let error = attachError { // Placeholder for handling exception } else if let intent = intentWithPaymentMethod { // Placeholder for processing paymentIntent } } ``` #### Android ```kotlin val cancelable = Terminal.getInstance().collectPaymentMethod( paymentIntent, object : PaymentIntentCallback { override fun onSuccess(paymentIntent: PaymentIntent) { // Placeholder for handling successful operation } override fun onFailure(e: TerminalException) { // Placeholder for handling exception } }, CollectPaymentIntentConfiguration.Builder() .setTippingConfiguration( TippingConfiguration.Builder() .setEligibleAmount(1500) .build() ) .build() ) ``` #### React Native ```js const { paymentIntent, error } = await collectPaymentMethod({ paymentIntentId: paymentIntentId, skipTipping: false, tipEligibleAmount: 1500, }); if (error) { console.log(`collectPayment failed: ${error.message}`); return; } console.log('collectPayment succeeded'); ``` L’exemple ci-dessus définit un montant admissible à un pourboire en fonction de la devise du paiement. Pour un paiement en USD, le montant admissible à un pourboire est de 15 USD. La valeur de `eligible_amount` doit être supérieure ou égale à 0. Si `eligible_amount` est égal à 0, le pourboire est ignoré, quelle que soit la valeur de `skip_tipping`. Si `eligible_amount` est égal au montant prévu du Paymentintent, `eligible_amount` est ignoré, et le pourboire est calculé en fonction du montant spécifié. > Si vous définissez un montant supérieur à 0 admissible à un pourboire en ignorant le pourboire, une erreur se produit.