# Documentation de l'API JavaScript Utilisez notre documentation de l'API pour naviguer dans le SDK JavaScript Stripe Terminal. ## Méthodes d’API - [StripeTerminal.create()](https://docs.stripe.com/terminal/references/api/js-sdk.md#stripeterminal-create) - [discoverReaders()](https://docs.stripe.com/terminal/references/api/js-sdk.md#discover-readers) - [connectReader()](https://docs.stripe.com/terminal/references/api/js-sdk.md#connect-reader) - [disconnectReader()](https://docs.stripe.com/terminal/references/api/js-sdk.md#disconnect) - [getConnectionStatus()](https://docs.stripe.com/terminal/references/api/js-sdk.md#get-connection-status) - [getPaymentStatus()](https://docs.stripe.com/terminal/references/api/js-sdk.md#get-payment-status) - [clearCachedCredentials()](https://docs.stripe.com/terminal/references/api/js-sdk.md#clear-cached-credentials) - [collectPaymentMethod()](https://docs.stripe.com/terminal/references/api/js-sdk.md#collect-payment-method) - [cancelCollectPaymentMethod()](https://docs.stripe.com/terminal/references/api/js-sdk.md#cancel-collect-payment-method) - [processPayment()](https://docs.stripe.com/terminal/references/api/js-sdk.md#process-payment) - [cancelProcessPayment()](https://docs.stripe.com/terminal/references/api/js-sdk.md#cancel-process-payment) - [collectSetupIntentPaymentMethod()](https://docs.stripe.com/terminal/references/api/js-sdk.md#collect-setup-intent-payment-method) - [cancelCollectSetupIntentPaymentMethod()](https://docs.stripe.com/terminal/references/api/js-sdk.md#cancel-collect-setup-intent-payment-method) - [confirmSetupIntent()](https://docs.stripe.com/terminal/references/api/js-sdk.md#confirm-setup-intent) - [cancelConfirmSetupIntent()](https://docs.stripe.com/terminal/references/api/js-sdk.md#cancel-confirm-setup-intent) - [readReusableCard()](https://docs.stripe.com/terminal/references/api/js-sdk.md#read-reusable-card) - [cancelReadReusableCard()](https://docs.stripe.com/terminal/references/api/js-sdk.md#cancel-read-reusable-card) - [setReaderDisplay()](https://docs.stripe.com/terminal/references/api/js-sdk.md#set-reader-display) - [clearReaderDisplay()](https://docs.stripe.com/terminal/references/api/js-sdk.md#clear-reader-display) - [setSimulatorConfiguration()](https://docs.stripe.com/terminal/references/api/js-sdk.md#stripeterminal-setsimulatorconfig) - [getSimulatorConfiguration()](https://docs.stripe.com/terminal/references/api/js-sdk.md#stripeterminal-getsimulatorconfig) - [collectRefundPaymentMethod()](https://docs.stripe.com/terminal/references/api/js-sdk.md#stripeterminal-collectrefundpaymentmethod) - [cancelCollectRefundPaymentMethod()](https://docs.stripe.com/terminal/references/api/js-sdk.md#stripeterminal-cancelcollectrefundpaymentmethod) - [processRefund()](https://docs.stripe.com/terminal/references/api/js-sdk.md#stripeterminal-processrefund) - [cancelProcessRefund()](https://docs.stripe.com/terminal/references/api/js-sdk.md#stripeterminal-cancelprocessrefund) - [collectInputs()](https://docs.stripe.com/terminal/references/api/js-sdk.md#collect-inputs) - [cancelCollectInputs()](https://docs.stripe.com/terminal/references/api/js-sdk.md#cancel-collect-inputs) - [print()](https://docs.stripe.com/terminal/references/api/js-sdk.md#print) ### StripeTerminal.create([options]) Crée une instance de `StripeTerminal` avec les options données : | Option | Description | | ----------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **onFetchConnectionToken** | Un gestionnaire d’événements qui [récupère un token de connexion](https://docs.stripe.com/terminal/payments/setup-integration.md?terminal-sdk-platform=js#connection-token) de votre back-end. | | **onUnexpectedReaderDisconnect** | Un gestionnaire d’événements appelé lorsqu’un lecteur se déconnecte de votre application. | | **onConnectionStatusChange** (facultatif) | Un gestionnaire d’événements appelé lorsque le ConnectionStatus du SDK change. | | **onPaymentStatusChange** (facultatif) | Un gestionnaire d’événements appelé lorsque que le PaymentStatus du SDK change. | | **readerBehavior** (optional) | Un objet qui définit le comportement sur le lecteur tout au long du cycle de vie du SDK. Consultez ci-dessous les options de configuration du readerBehavior. | ### Configuration du comportement du lecteur Aujourd’hui, il n’existe qu’une seule option de configuration du comportement : | Comportement | Description | | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **allowCustomerCancel** | Une valeur booléenne qui détermine si le client peut annuler `collectPaymentMethod` de l’interface du lecteur. La valeur par défaut est `false`. **Remarque :** cette propriété n’est pas disponible à grande échelle, et nous n’acceptons pas de nouveaux utilisateurs pour le moment. | ### discoverReaders([options]) Commence à découvrir les lecteurs avec les options données : | Option | Description | | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **simulation** (facultatif) | Une valeur booléenne indiquant s’il est nécessaire de détecter un [lecteur de simulation](https://docs.stripe.com/terminal/references/testing.md#simulated-reader). Si cette valeur n’est pas renseignée, elle est définie sur `false` par défaut. | | **emplacement** (facultatif) | Retourne uniquement les lecteurs assignés à un `location` donné. Ce paramètre est ignoré lors de la découverte d’un lecteur de simulation. Pour plus d’informations sur l’utilisation des emplacements pour filtrer des lecteurs détectés, consultez la section [Gestion des emplacements](https://docs.stripe.com/terminal/fleet/locations-and-zones.md). | Retourne une `Promise` qui résulte en un objet avec les champs suivants : - `discoveredReaders` : une liste d’objets [Reader](https://docs.stripe.com/api/terminal/readers/object.md) de simulation, si la commande a réussi. - `error`: Une [erreur](https://docs.stripe.com/terminal/references/api/js-sdk.md#errors), si la commande a échoué. > Avant de pouvoir détecter le Verifone P400 dans votre application, vous devez [enregistrer](https://docs.stripe.com/terminal/payments/connect-reader.md?reader-type=internet#register-reader) le lecteur sur votre compte. ### connectReader(reader, connectOptions) Tentatives de [connexion](https://docs.stripe.com/terminal/payments/connect-reader.md?reader-type=internet#connect-reader) au lecteur donné avec les options données : | Option | Description | | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | **fail\_if\_in\_use** (optional) | Une valeur booléenne indiquant que la connexion a échoué dans le cas où le lecteur est actuellement connecté au SDK Terminal. Si cette valeur n’est pas renseignée, elle est définie sur `false` par défaut. | Retourne une `Promise` qui résulte en un objet avec les champs suivants : - `reader` : L’objet [Reader](https://docs.stripe.com/api/terminal/readers/object.md) connecté, si la commande a abouti. - `error`: Une [erreur](https://docs.stripe.com/terminal/references/api/js-sdk.md#errors), si la commande a échoué. > Ne mettez pas en cache l’objet `Reader` dans votre application. La connexion à un objet `Reader` obsolète peut échouer si l’adresse IP du lecteur a changé. ### disconnectReader() Se déconnecte du lecteur connecté. ### getConnectionStatus() Retourne l’état de connexion en cours. ConnectionStatus peut être à l’état `connecting`, `connected` ou `not_connected`. ### getPaymentStatus() Retourne l’état du paiement du lecteur. PaymentStatus peut être à l’état `not_ready`, `ready`, `waiting_for_input` ou `processing`. ### clearCachedCredentials() Efface le [ConnectionToken](https://docs.stripe.com/terminal/payments/setup-integration.md?terminal-sdk-platform=js#connection-token) en cours, et tout autre identifiant mis en cache. Utilisez cette méthode pour passer d’un compte à l’autre dans votre application (par exemple, pour passer entre les clés API Stripe en mode production et en mode test sur votre back-end). Pour passer d’un compte à l’autre, effectuez ces étapes : 1. Si un lecteur est connecté, appelez `disconnectReader`. 1. Configurez votre gestionnaire `onFetchConnectionToken` pour retourner les tokens de connexion pour le nouveau compte. 1. Appelez `clearCachedCredentials`. 1. Reconnectez-vous à un lecteur. Le SDK demande un nouveau token de connexion à votre gestionnaire `onFetchConnectionToken`. ### collectPaymentMethod(request, options) Commence à [collecter un moyen de paiement](https://docs.stripe.com/terminal/payments/collect-card-payment.md#collect-payment) pour un PaymentIntent. Ce moyen nécessite un paramètre requis, `request` : - `request` : Le champ `clientSecret` à partir d’un objet `PaymentIntent` créé sur votre back-end. Découvrez comment [créer un PaymentIntent et transmettre la clé secrète du client](https://docs.stripe.com/payments/accept-a-payment.md?payment-ui=elements&api-integration=paymentintents#web-create-intent). - `options` : un objet contenant des paramètres de paiement supplémentaires. | Option | Description | | ------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **config\_override** (optional) | Un objet qui vous permet de spécifier des remplacements de configurations par transaction. La valeur par défaut de cet objet est null. `skip_tipping` - Facultatif, défini par défaut sur false. Si la valeur est définie sur true, le lecteur ignore l’écran des pourboires. `tipping` - Objet qui vous permet de spécifier des options de pourboire par transaction. Il est décrit ci-après. `update_payment_intent` - Une valeur booléenne qui, lorsqu’elle est associée à `payment_intent_id`, donne l’instruction à l’appel de mettre à jour le `PaymentIntent` et de renvoyer le `PaymentMethod` associé avec les informations de carte bancaire. `enable_customer_cancellation` - Ce paramètre est facultatif et adopte par défaut la valeur « false ». Si vous lui attribuez la valeur « true », les lecteurs intelligents sous Android afficheront un bouton d’annulation. `allow_redisplay` - Requis si l’option `setup_future_usage` est activée ; dans le cas contraire, la valeur par défaut est `unspecified`. Valeur d’énumération indiquant si les futurs tunnels de paiement peuvent afficher ce moyen de paiement au client. `moto` - Facultatif, la valeur par défaut est false. Si la valeur est true, les lecteurs intelligents basés sur Android commencent à collecter les données pour une transaction liée à une [commande par courrier ou par téléphone](https://docs.stripe.com/terminal/features/mail-telephone-orders/payments.md). ```json { update_payment_intent: boolean, payment_intent_id: string, enable_customer_cancellation: boolean, skip_tipping: boolean, tipping: object, allow_redisplay: string, moto: boolean, } ``` | L’option suivante est disponible pour l’objet `tipping` : | Option | Description | | ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **eligible\_amount** (optional) | Chiffre qui vous permet d’indiquer le montant de transaction à partir duquel un pourcentage sera calculé en guise de pourboire. Définissez cette valeur sur 0 ou plus. S’il est égal à 0, le pourboire est ignoré, quelle que soit la valeur de `skip_tipping`. S’il est égal au montant du PaymentIntent prévu, le paramètre est ignoré et le pourboire est calculé en fonction du montant spécifié. ```json { eligible_amount: number, } ``` | Retourne une `Promise` qui résulte en un objet avec les champs suivants : - `paymentIntent` : l’[objet PaymentIntent](https://docs.stripe.com/api/payment_intents/object.md) mis à jour, si la commande a abouti. - `error`: Une [erreur](https://docs.stripe.com/terminal/references/api/js-sdk.md#errors), si la commande a échoué. Pour obtenir plus d’informations sur l’encaissement de paiements, veuillez consulter notre guide sur l’[encaissement des paiements](https://docs.stripe.com/terminal/payments/collect-card-payment.md). ### cancelCollectPaymentMethod() Annule une commande [collectPaymentMethod](https://docs.stripe.com/terminal/references/api/js-sdk.md#collect-payment-method) en suspens. Retourne une `Promise` qui résulte en un objet vide une fois que la commande a été correctement annulée. Si l’annulation échoue, la `Promise` résulte en un objet avec une [erreur](https://docs.stripe.com/terminal/references/api/js-sdk.md#errors). ### processPayment(paymentIntent, options) [Traite](https://docs.stripe.com/terminal/payments/collect-card-payment.md#process-payment) un paiement après qu’un moyen de paiement a été [collecté](https://docs.stripe.com/terminal/payments/collect-card-payment.md#collect-payment). Cette méthode nécessite un paramètre obligatoire, `paymentIntent` : - `paymentIntent` : un objet `PaymentIntent` obtenu à partir d’un appel réussi à `collectPaymentMethod`. - `options` : un objet contenant des paramètres de paiement supplémentaires. | Option | Description | | ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **config\_override** (optional) | Un objet qui vous permet de spécifier des remplacements de configurations par transaction. La valeur par défaut de cet objet est null. `return_url` - URL vers laquelle rediriger votre client une fois qu’il s’est authentifié ou a annulé son paiement sur l’application ou le site du moyen de paiement. Nous n’utilisons ce paramètre que pour les moyens de paiement basés sur la redirection. La valeur par défaut est null. ```json { return_url: string, } ``` | Retourne une `Promise` qui résulte en un objet avec les champs suivants : - `paymentIntent` : l’[objet PaymentIntent](https://docs.stripe.com/api/payment_intents/object.md) confirmé, si la commande a abouti. - `error` : une [erreur](https://docs.stripe.com/terminal/references/api/js-sdk.md#errors), si la commande a échoué. Pour obtenir plus d’informations, veuillez consulter la section [Gestion des échecs de traitement](https://docs.stripe.com/terminal/payments/collect-card-payment.md#handling-failures). ### cancelProcessPayment() Annule un[processPayment](https://docs.stripe.com/terminal/references/api/js-sdk.md#process-payment) en attente. Retourne une `Promise` qui résulte en un objet vide une fois que la commande a été correctement annulée. Si l’annulation échoue, la `Promise` résulte en un objet avec une [erreur](https://docs.stripe.com/terminal/references/api/js-sdk.md#errors). ### collectSetupIntentPaymentMethod(clientSecret, allowRedisplay, config) Commence à [collecter un moyen de paiement pour une réutilisation en ligne](https://docs.stripe.com/terminal/features/saving-payment-details/overview.md) en lien avec un [SetupIntent](https://docs.stripe.com/api/setup_intents/object.md). Le moyen nécessite deux paramètres requis : - `clientSecret` : le champ `clientSecret` d’un objet `SetupIntent` créé sur votre back-end. - `allowRedisplay` : valeur d’énumération indiquant si les futurs tunnels de paiement peuvent afficher ce moyen de paiement au client. - `config` : un objet facultatif contenant la configuration de la collection. | Option | Description | | ---------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **enable\_customer\_cancellation** | Facultatif, défini par défaut sur false. Si défini sur true, les lecteurs intelligents basés sur Android affichent un bouton d’annulation. | | **moto** | Facultatif, défini par défaut sur false. Si la valeur est true, les lecteurs intelligents basés sur Android commencent à enregistrer une carte de [commande par courrier ou par téléphone](https://docs.stripe.com/terminal/features/mail-telephone-orders/save-directly.md). | Retourne une `Promise` qui résulte en un objet avec les champs suivants : - `setupIntent` : l’[objet SetupIntent](https://docs.stripe.com/api/setup_intents/object.md) mis à jour, si la commande a réussi. - `error`: Une [erreur](https://docs.stripe.com/terminal/references/api/js-sdk.md#errors), si la commande a échoué. Pour en savoir plus sur l’enregistrement des moyens de paiement, consultez notre guide [Enregistrement des informations de paiement pour les paiements en ligne](https://docs.stripe.com/terminal/features/saving-payment-details/overview.md). ### cancelCollectSetupIntentPaymentMethod() Annule une commande [collectSetupIntentPaymentMethod](https://docs.stripe.com/terminal/references/api/js-sdk.md#collect-setup-intent-payment-method) en suspens. Retourne une `Promise` qui résulte en un objet vide une fois que la commande a été correctement annulée. Si l’annulation échoue, la `Promise` résulte en un objet avec une [erreur](https://docs.stripe.com/terminal/references/api/js-sdk.md#errors). ### confirmSetupIntent(setupIntent) [Confirme](https://docs.stripe.com/terminal/features/saving-payment-details/save-directly.md#submit-payment-method) un SetupIntent après qu’un moyen de paiement a été [collecté](https://docs.stripe.com/terminal/features/saving-payment-details/save-directly.md#collect-payment-method). Cette méthode nécessite un seul paramètre, un objet `SetupIntent` obtenu à partir d’un appel réussi à `collectSetupIntentPaymentMethod`. Retourne une `Promise` qui résulte en un objet avec les champs suivants : - `setupIntent` : l’[objet SetupIntent](https://docs.stripe.com/api/setup_intents/object.md) confirmé, si la commande a réussi. - `error`: Une [erreur](https://docs.stripe.com/terminal/references/api/js-sdk.md#errors), si la commande a échoué. ### cancelConfirmSetupIntent() Annule un [confirmSetupIntent](https://docs.stripe.com/terminal/references/api/js-sdk.md#confirm-setup-intent) en attente. Retourne une `Promise` qui résulte en un objet vide une fois que la commande a été correctement annulée. Si l’annulation échoue, la `Promise` résulte en un objet avec une [erreur](https://docs.stripe.com/terminal/references/api/js-sdk.md#errors). ### readReusableCard() Lit une carte bancaire pour une [réutilisation en ligne](https://docs.stripe.com/terminal/features/saving-payment-details/overview.md). Les paiements en ligne initiés depuis Terminal ne bénéficient *pas* des [tarifications plus basses](https://stripe.com/terminal#pricing) et du *transfert de responsabilité* (With some 3D Secure transactions, the liability for fraudulent chargebacks (stolen or counterfeit cards) shifts from you to the card issuer) donné aux [paiements Terminal standard](https://docs.stripe.com/terminal/payments/collect-card-payment.md). La plupart des intégrations n’ont *pas* besoin d’utiliser `readReusableCard`. Pour encaisser uniquement le paiement par TPE d’un client, utilisez le [flux standard](https://docs.stripe.com/terminal/payments/collect-card-payment.md). Retourne une `Promise` qui résulte en un objet avec les champs suivants : - `payment_method` : l’[objet PaymentMethod](https://docs.stripe.com/api/payment_methods/object.md), si la commande a abouti. - `error`: Une [erreur](https://docs.stripe.com/terminal/references/api/js-sdk.md#errors), si la commande a échoué. > À l’heure actuelle, il n’est pas possible d’utiliser Stripe Terminal pour enregistrer les cartes sans contact et les portefeuilles mobiles (par exemple Apple Pay ou Google Pay) en vue d’une utilisation ultérieure. ### cancelReadReusableCard() Annule une commande [readReusableCard](https://docs.stripe.com/terminal/references/api/js-sdk.md#read-reusable-card) en suspens. Retourne une `Promise` qui résulte en un objet vide une fois que la commande a été correctement annulée. Si l’annulation échoue, la `Promise` résulte en un objet avec une [erreur](https://docs.stripe.com/terminal/references/api/js-sdk.md#errors). ### setReaderDisplay(displayInfo) Met à jour l’affichage du lecteur avec les [informations du panier](https://docs.stripe.com/terminal/features/display.md). Cette méthode nécessite un objet `DisplayInfo` comme entrée. ```json { type: 'cart', cart: { line_items: [ { description: string, amount: number, quantity: number, }, ], tax: number, total: number, currency: string, } } ``` Renvoie une `Promise` qui résulte en un objet vide si la commande aboutit. Si la commande échoue, la `Promise` résulte en un objet avec une [erreur](https://docs.stripe.com/terminal/references/api/js-sdk.md#errors). ### clearReaderDisplay() Si le lecteur affiche les informations du panier définis sur `setReaderDisplay`, cette méthode efface l’écran de présentation. Renvoie une `Promise` qui résulte en un objet vide si la commande aboutit. Si la commande échoue, la `Promise` résulte en un objet avec une [erreur](https://docs.stripe.com/terminal/references/api/js-sdk.md#errors). ### setSimulatorConfiguration(configuration) Définit l’objet de configuration pour le [lecteur de carte de simulation](https://docs.stripe.com/terminal/references/testing.md#simulated-reader). Cette méthode prend uniquement effet lorsque l’objet est connecté au lecteur de simulation, sinon elle n’effectue aucune action. Le lecteur de simulation suivra la configuration spécifiée uniquement jusqu’à ce que `processPayment` soit terminé. À ce stade, le lecteur de simulation revient à son comportement par défaut. Notez que cette méthode remplace tout objet de configuration actif actuellement. Pour ajouter des paires de clé-valeur spécifiques, assurez-vous d’utiliser une combinaison de cette méthode et de `getSimulatorConfiguration`. Les options de configuration disponibles sont : | Champ | Valeurs | Description | | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **testCardNumber** | Consultez la liste des [Cartes bancaires de test pour simulation](https://docs.stripe.com/terminal/references/testing.md#simulated-test-cards). | Configure le lecteur de simulation pour utiliser le numéro de carte bancaire comme moyen de paiement présenté par l’utilisateur. Utilisez-le pour tester divers scénarios dans votre intégration, tels que les paiements avec différentes marques de carte bancaire ou les erreurs de traitement comme un paiement refusé. | | **testPaymentMethod** | Consultez la liste des [Cartes bancaires de test pour simulation](https://docs.stripe.com/terminal/references/testing.md#simulated-test-cards). | A le même objectif que `testCardNumber`, mais se repose sur les moyens de paiement de test à la place. | | **tipAmount** | N’importe quel montant ou valeur nulle. | Configure le lecteur simulé pour simuler un montant de pourboire sélectionné par le client sur le lecteur. | | **collectInputsResult** | Nous prenons en charge le test des comportements suivants : - Réussi : - Ne pas ignorer les saisies : `{ resultType: 'succeeded', skipBehavior: 'none' }` - Ignorer les saisies non obligatoires : `{ resultType: 'succeeded', skipBehavior: 'all' }` - Délai expiré : `{ resultType: 'timeout' }` Pour en savoir plus, consultez la page [Tester votre intégration](https://docs.stripe.com/terminal/features/collect-inputs.md?terminal-sdk-platform=js#test-your-integration). | Configure le lecteur simulé pour simuler la [collecte des saisies](https://docs.stripe.com/terminal/features/collect-inputs.md?terminal-sdk-platform=js). | | **paymentMethodType** (obsolète) | - `card_present` (par défaut) - `interac_present` | Déterminez le type de moyen de paiement créé par le lecteur de simulation lorsque `collectPaymentMethod` est appelé. | ### getSimulatorConfiguration() Retourne l’objet de configuration actif actuellement. Le SDK Stripe Terminal JavaScript peut remplacer cette valeur si nécessaire, y compris (sans s’y limiter) en réinitialisant la valeur une fois processPayment terminé et en supprimant les paires clé-valeur inconnues. ### collectRefundPaymentMethod(charge_id, amount, currency, options, config) Commence à collecter un moyen de paiement pour être remboursé. La méthode nécessite deux paramètres requis : - `charge_id`, l’ID du paiement qui sera remboursé. - `amount` : un nombre qui représente le montant, en centimes, qui sera remboursé du paiement. Ce nombre peut être inférieur ou égal au montant facturé dans le paiement d’origine. - `currency` : [code ISO pour la devise](https://docs.stripe.com/currencies.md) composé de trois lettres en minuscules. Doit être une [devise prise en charge](https://docs.stripe.com/currencies.md). - `options` : un objet facultatif contenant des paramètres de remboursement supplémentaires. | Option | Description | | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **refund\_application\_fee** | Facultatif, défini par défaut sur false. Connect uniquement. Une valeur booléenne indiquant si la commission de la plateforme doit être remboursée lors du remboursement de ce paiement. Si un remboursement de paiement complet est donné, l’intégralité de la commission de la plateforme sera remboursée. Autrement, la commission de la plateforme sera remboursée à hauteur d’un montant proportionnel au montant du paiement remboursé. Une commission de la plateforme peut être remboursée uniquement par l’application qui a créé le paiement. | | **reverse\_transfer** | Facultatif, défini par défaut sur false. Connect uniquement. La valeur booléenne indiquant si le transfert doit être remboursé lors du remboursement de ce paiement. Le transfert sera remboursé proportionnellement au montant remboursé (la totalité ou une partie du montant). Un transfert peut être remboursé uniquement par l’application qui a créé le paiement. | - `config` : un objet facultatif contenant la configuration de la collection. | Option | Description | | ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | | **enable\_customer\_cancellation** | Facultatif, défini par défaut sur false. Si défini sur true, les lecteurs intelligents basés sur Android affichent un bouton d’annulation. | Retourne une `Promise` qui résulte en : - un objet vide si la collection du moyen de paiement a abouti, ou - un objet avec un champ [error](https://docs.stripe.com/terminal/references/api/js-sdk.md#errors) si une erreur est survenue lors de la collecte du moyen de paiement lié au remboursement. ### cancelCollectRefundPaymentMethod() Annule une commande `collectRefundPaymentMethod` en suspens. Retourne une `Promise` qui résulte en un objet vide une fois que la commande a été correctement annulée. Si l’annulation échoue, la `Promise` résulte en un objet avec une [erreur](https://docs.stripe.com/terminal/references/api/js-sdk.md#errors). ### processRefund() Traite un remboursement en cours. Ce moyen peut uniquement être appelé après que `collectRefundPaymentMethod` soit correctement retourné. Retourne une `Promise` qui résulte en : - un objet refund si le remboursement a réussi, ou - un objet avec un champ [error](https://docs.stripe.com/terminal/references/api/js-sdk.md#errors) s’il y a eu une erreur pendant le traitement du remboursement. ### cancelProcessRefund() Annule un [processRefund](https://docs.stripe.com/terminal/references/api/js-sdk.md#stripeterminal-processrefund) en attente. Retourne une `Promise` qui résulte en un objet vide une fois que la commande a été correctement annulée. Si l’annulation échoue, la `Promise` résulte en un objet avec une [erreur](https://docs.stripe.com/terminal/references/api/js-sdk.md#errors). ### collectInputs(collectInputsParameters) Commencez à afficher des formulaires et à collecter des informations auprès des clients à l’aide de [Collect Inputs](https://docs.stripe.com/terminal/features/collect-inputs.md). Cette méthode nécessite la saisie d’un objet `ICollectInputsParameters`. Renvoie une `Promise` qui résulte en la collecte des informations si la commande aboutit. Si la commande échoue, la `Promise` résulte en un objet avec une [erreur](https://docs.stripe.com/terminal/references/api/js-sdk.md#errors). ### cancelCollectInputs() Annule une commande `collectInputs` en suspens. Renvoie une `Promise` qui résulte en un objet vide si l’annulation aboutit. Si la commande échoue, la `Promise` résulte en un objet avec une [erreur](https://docs.stripe.com/terminal/references/api/js-sdk.md#errors). ### print(content) > L’impression n’est disponible que sur le lecteur [Verifone V660p](https://stripe.com/terminal/v660p). Consultez le [guide d’intégration](https://docs.stripe.com/terminal/features/print-content.md?terminal-sdk-platform=js) pour plus de détails. Imprime le contenu spécifié sur l’imprimante du lecteur connecté, le cas échéant. Cette méthode prend un paramètre obligatoire, `content` : - `content` : le contenu à imprimer. Il doit s’agir d’un objet `HTMLCanvasElement`. Renvoie une `Promise` qui résulte en un objet vide si la commande aboutit. Si la commande échoue, la `Promise` résulte en un objet avec une [erreur](https://docs.stripe.com/terminal/references/api/js-sdk.md#errors). ## Erreurs Les erreurs retournées par le SDK JavaScript incluent un `code` d’erreur, ainsi qu’un `message` pouvant être lu par l’utilisateur. Pour les méthodes impliquant un PaymentIntent comme [processPayment](https://docs.stripe.com/terminal/payments/collect-card-payment.md#handling-failures), l’erreur peut également inclure un objet `payment_intent`. #### Codes d’erreur | Code | Description | | ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `no_established_connection` | La commande échoue car aucun lecteur n’est connecté. | | `no_active_collect_payment_method_attempt` | `cancelCollectPaymentMethod` peut uniquement être appelé lorsque `collectPaymentMethod` est en cours. | | `no_active_read_reusable_card_attempt` | `cancelCollectReusableCard` peut uniquement être appelé quand `readReusableCard` est en cours. | | `canceled` | La commande a été annulée. | | `cancelable_already_completed` | L’annulation a échoué car l’opération est déjà terminée. | | `cancelable_already_canceled` | L’annulation a échoué car l’opération a déjà été annulée. | | `network_error` | Une erreur inconnue est survenue lors de la communication avec le serveur ou le lecteur via le réseau. Reportez-vous au message d’erreur pour plus d’informations. | | `network_timeout` | La requête a expiré lors de la communication avec le serveur ou le lecteur via le réseau. Assurez-vous que votre appareil et le lecteur sont connectés via le réseau pour des connexions stables. | | `already_connected` | `connectReader` a échoué car un lecteur est déjà connecté. | | `failed_fetch_connection_token` | Échec de récupération du token de connexion. Assurez-vous que le gestionnaire de token de connexion retourne une promesse qui résulte en un token de connexion. | | `discovery_too_many_readers` | `discoverReaders` a renvoyé trop de lecteurs. Utilisez les [emplacements](https://docs.stripe.com/terminal/fleet/locations-and-zones.md) pour filtrer les lecteurs découverts par emplacement. | | `invalid_reader_version` | Le lecteur utilise une version logicielle non prise en charge. Veuillez autoriser le lecteur à effectuer une mise à jour et réessayez. | | `reader_error` | Le lecteur a retourné une erreur pendant le traitement de la requête. Reportez-vous au message d’erreur pour plus d’informations. | | `command_already_in_progress` | L’action ne peut pas être effectuée car une action en cours l’en empêche. | | `printer_busy` | Une autre opération d’impression est déjà en cours. | | `printer_paperjam` | L’imprimante a un bourrage papier. Ouvrez le couvercle de l’imprimante et retirez manuellement le papier coincé. | | `printer_cover_open` | Le couvercle ou la tête de l’imprimante est ouvert. | | `printer_out_of_paper` | L’imprimante n’a plus de papier. | | `printer_absent` | Le lecteur n’a pas d’imprimante. | | `printer_unavailable` | Le lecteur dispose d’une imprimante, mais celle-ci n’est pas disponible pour le moment. | | `printer_error` | L’impression a échoué pour une raison non spécifiée. | ## Log des modifications Si vous utilisez une version antérieure du SDK JavaScript (antérieure au 7 juin 2019), procédez à une mise à niveau vers la dernière version en changeant l’URL du script inclus dans votre intégration. ```html ``` Pour en savoir plus sur la migration à partir de la version bêta de Stripe Terminal, consultez le [Guide de migration vers Terminal Beta](https://docs.stripe.com/terminal/references/sdk-migration-guide.md). #### 30 octobre 2025 - Mise à jour : ajout de la prise en charge de la collecte du consentement pour les frais supplémentaires dans `processPayment`. Vous pouvez désormais afficher un écran de consentement pour les frais supplémentaires sur le lecteur et inclure un message personnalisé pouvant contenir jusqu’à 220 caractères. #### 06-10-2025 - Aperçu : ajout d’une méthode `print` pour permettre l’impression d’images sur le lecteur Verifone V660p. - Si vous souhaitez participer à l’aperçu, contactez le [service de support de Stripe](https://support.stripe.com/). #### 02/06/2025 - Mise à jour : Les lecteurs de simulation prennent en charge la [collecte de saisies](https://docs.stripe.com/terminal/features/collect-inputs.md?terminal-sdk-platform=js#test-your-integration). - Mise à jour : `processPayment`, `confirmSetupIntent` et `processRefund` peuvent désormais être annulés avec `cancelProcessPayment`, `cancelConfirmSetupIntent` et `cancelProcessRefund` respectivement. Cela vous permet d’annuler l’opération dans certains cas, comme la présentation du paiement par QR code. #### v1 - `confirmPaymentIntent` renommé en `processPayment`. - Valeurs pour PaymentStatus renommées. PaymentStatus peut être à l’état `not_ready`, `ready`, `waiting_for_input` ou `processing`. - Informations de carte supprimées des réponses à `collectPaymentMethod`, précédemment disponibles dans `response.paymentIntent.payment_method.card_payment`. - Les informations de reçu sont désormais situées dans le hachage `payment_intent.charges[0].payment_method_details.card_present`. - Modification de l’API permettant de découvrir un lecteur de simulation en `discoverReaders({ simulated: true })`. - `readSource` renommé en `readReusableCard`. Un appel fructueux à `readReusableCard` renvoie un [PaymentMethod](https://docs.stripe.com/api/payment_methods.md) au lieu d’une source. Les moyens de paiement doivent être utilisés avec des PaymentIntents. Pour en savoir plus, consultez l’aperçu de l’[API Payment Methods](https://docs.stripe.com/payments/payment-methods.md). - La réponse `connectReader` a été modifiée en `{ reader: Reader }`. L’objet `Connection` de wrapper a été supprimé. - Suppression des méthodes `startReaderDiscovery` et `stopReaderDiscovery`. Pour découvrir des lecteurs de manière répétée, vous pouvez utiliser la méthode `setInterval` JavaScript. - `clearConnectionToken` renommé en `clearCachedCredentials`.