# Enregistrer une carte bancaire avec MOTO pour de futurs paiements Enregistrez les informations de carte pour paiement par courrier et par téléphone (MOTO) pour une utilisation ultérieure avec Stripe Terminal. > #### Demande d’accès > > Pour activer le traitement des paiements MOTO, contactez le [support Stripe](https://support.stripe.com/). # Piloté par le serveur > This is a Piloté par le serveur for when terminal-sdk-platform is server-driven. View the full page at https://docs.stripe.com/terminal/features/mail-telephone-orders/save-directly?terminal-sdk-platform=server-driven. Pour enregistrer les informations de paiement d’une transaction MOTO en vue d’un paiement ultérieur, vous devez : 1. [Créer ou récupérer un objet Customer](https://docs.stripe.com/terminal/features/mail-telephone-orders/save-directly.md#create-customer). 1. [Créer un SetupIntent](https://docs.stripe.com/terminal/features/mail-telephone-orders/save-directly.md#create-setup-intent). 1. [Traiter le SetupIntent](https://docs.stripe.com/terminal/features/mail-telephone-orders/save-directly.md#process-setupintent). 1. [Vérifier l’état du lecteur](https://docs.stripe.com/terminal/features/mail-telephone-orders/save-directly.md#verify-reader-state). 1. [Débiter le PaymentMethod enregistré](https://docs.stripe.com/terminal/features/mail-telephone-orders/save-directly.md#charge-payment-method) ## Créer ou récupérer un objet Customer Pour débiter une carte bancaire enregistrée auprès de Stripe, celle-ci doit être associée à un objet [Customer](https://docs.stripe.com/api/customers.md). Lorsque vous incluez un objet Customer dans votre [SetupIntent](https://docs.stripe.com/api/setup_intents.md) avant de confirmer, Stripe associe automatiquement le moyen de paiement par carte bancaire généré à l’objet [Customer](https://docs.stripe.com/api/customers.md) que vous créez/récupérez. Ajoutez le code suivant sur votre serveur pour créer un nouvel objet `Customer` : #### curl ```bash curl https://api.stripe.com/v1/customers \ -u <>: \ -X "POST" ``` ## Créer un SetupIntent - [Créer un SetupIntent](https://docs.stripe.com/api/setup_intents/create.md) Un [SetupIntent](https://docs.stripe.com/api/setup_intents.md) est un objet qui représente votre intention de configurer le moyen de paiement d’un client en vue de futurs paiements. Le SetupIntent suit les étapes de ce processus de configuration. Les [payment_method_types](https://docs.stripe.com/api/setup_intents/create.md#create_setup_intent-payment_method_types) doivent inclure `card`. ```curl curl https://api.stripe.com/v1/setup_intents \ -u "<>:" \ -d "customer={{CUSTOMER_ID}}" \ -d "payment_method_types[]=card" ``` ## Traiter le SetupIntent > Le CVC est obligatoire pour les transactions MOTO. Le contournement du CVC est disponible en version bêta privée et peut être demandé pour les commandes par courrier. Contactez le [support Stripe](https://support.stripe.com/) pour y accéder. Après avoir créé le SetupIntent, utilisez [process_setup_intent](https://docs.stripe.com/api/terminal/readers/process_setup_intent.md) pour traiter le paiement, en paramétrant [process_config[moto]](https://docs.stripe.com/api/terminal/readers/process_setup_intent.md#process_setup_intent-process_config) sur la valeur `true`. Indiquez la valeur [allow_redisplay](https://docs.stripe.com/api/payment_methods/object.md#payment_method_object-allow_redisplay) comme `always` ou `restricted`, qui indique dans quelle mesure un moyen de paiement peut être affiché dans le tunnel de paiement d’un client. ```curl curl https://api.stripe.com/v1/terminal/readers/{{TERMINALREADER_ID}}/process_setup_intent \ -u "<>:" \ -d "setup_intent={{SETUPINTENT_ID}}" \ -d "process_config[moto]=true" \ -d allow_redisplay=always ``` La requête [process_setup_intent](https://docs.stripe.com/api/terminal/readers/process_setup_intent.md) est asynchrone. Après la requête, le lecteur vous invite à saisir le numéro de carte, le CVC, la date d’expiration et le code postal du titulaire de la carte. ## Vérifier l'état du lecteur Votre application doit suivre les instructions de [vérification de l’état du lecteur](https://docs.stripe.com/terminal/payments/collect-card-payment.md?terminal-sdk-platform=server-driven&reader=wpe#verify-reader) pour confirmer l’aboutissement (l’approbation) d’un SetupIntent. ## Débiter le PaymentMethod enregistré Vous pouvez désormais débiter le PaymentMethod enregistré associé au `Customer` à l’aide d’un [PaymentIntent](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method). ## En cours de test Pour tester votre intégration, utilisez le [lecteur de simulation](https://docs.stripe.com/terminal/references/testing.md#simulated-reader) et les [numéros de carte de test simulés](https://docs.stripe.com/terminal/references/testing.md#simulated-test-cards). ## Conformité Vous êtes responsable du respect de toutes les lois, réglementations et règles des réseaux applicables lorsque vous enregistrez les informations de paiement d’un client. Par exemple, le Comité européen de la protection des données a publié des recommandations sur l’enregistrement des informations de paiement. Ces exigences s’appliquent généralement si vous souhaitez enregistrer le moyen de paiement d’un client pour une utilisation ultérieure, par exemple en lui présentant le moyen de paiement dans le tunnel de paiement pour un achat futur ou en le facturant lorsqu’il n’utilise pas activement votre site Web ou votre application, ou encore en passant une commande MOTO ou en magasin. Intégrez à votre tunnel de paiement des conditions précisant la manière dont vous allez enregistrer les informations de moyen de paiement et offrant aux clients la possibilité de donner leur accord. Si vous envisagez de prélever le client alors qu’il ne paie pas activement, veillez à ce que vos conditions incluent au minimum les éléments suivants : - Le consentement du client vous autorisant à déclencher un paiement ou une série de paiements en son nom pour les transactions spécifiées - Le calendrier et la fréquence prévus des paiements (par exemple, si les paiements concernent des versements échelonnés ou d’abonnement planifiés, ou des recharges non planifiées). - La façon dont vous déterminez le montant du paiement. - Votre politique d’annulation, si vous configurez le moyen de paiement dans le cadre d’un abonnement Veillez à conserver une trace écrite de l’acceptation de ces conditions par votre client. Lors de l’enregistrement d’un moyen de paiement, celui-ci ne peut être utilisé que pour l’usage spécifié dans vos conditions. Pour prélever un client lorsqu’il n’est pas activement en train de payer et enregistrer son moyen de paiement pour un usage futur, vous devez recueillir son consentement explicite. Une option consiste à proposer une case à cocher « Enregistrer mon moyen de paiement pour une utilisation ultérieure ». # iOS > This is a iOS for when terminal-sdk-platform is ios. View the full page at https://docs.stripe.com/terminal/features/mail-telephone-orders/save-directly?terminal-sdk-platform=ios. Pour enregistrer les informations de paiement d’une transaction MOTO en vue d’un paiement ultérieur, vous devez : 1. [Créer ou récupérer un objet Customer](https://docs.stripe.com/terminal/features/mail-telephone-orders/save-directly.md#create-customer). 1. [Créer un SetupIntent](https://docs.stripe.com/terminal/features/mail-telephone-orders/save-directly.md#create-setup-intent). 1. [Traitement de la SetupIntent](https://docs.stripe.com/terminal/features/mail-telephone-orders/save-directly.md#process-setup-intent). ## Créer ou récupérer un objet Customer Pour débiter une carte bancaire enregistrée auprès de Stripe, celle-ci doit être associée à un objet [Customer](https://docs.stripe.com/api/customers.md). Lorsque vous incluez un objet Customer dans votre [SetupIntent](https://docs.stripe.com/api/setup_intents.md) avant de confirmer, Stripe associe automatiquement le moyen de paiement par carte bancaire généré à l’objet `Customer` que vous créez/récupérez. Ajoutez le code suivant sur votre serveur pour créer un nouvel objet `Customer` : #### curl ```bash curl https://api.stripe.com/v1/customers \ -u <>: \ -X "POST" ``` ## Créer un SetupIntent Un [SetupIntent](https://docs.stripe.com/api/setup_intents.md) est un objet qui représente votre intention de configurer le moyen de paiement d’un client en vue de futurs paiements. Le SetupIntent suit les étapes de ce processus de configuration. Dans le cas de Terminal, cela inclut la collecte et l’enregistrement du consentement du titulaire de carte. Les [payment_method_types](https://docs.stripe.com/api/setup_intents/create.md#create_setup_intent-payment_method_types) doivent inclure `card`. #### Swift ```swift let params = try SetupIntentParametersBuilder() .setCustomer("{{CUSTOMER_ID}}") .setOnBehalfOf("{{ON_BEHALF_OF}}") .setDescription("Customer A's Card") .setPaymentMethodTypes([.card]) .build() Terminal.shared.createSetupIntent(params) { (createdSetupIntent, createError) in if let error = createError { print("createSetupIntent failed: \(error)") } else if let setupIntent = createdSetupIntent { print("createSetupIntent succeeded") // ... } } ``` ## Traiter le SetupIntent > Le CVC est obligatoire pour les transactions MOTO. Le contournement du CVC est disponible en version bêta privée et peut être demandé pour les commandes par courrier. Contactez le [support Stripe](https://support.stripe.com/) pour y accéder. Après avoir créé une SetupIntent, l’étape suivante consiste à traiter ce dernier avec le SDK. Configurez le paramètre [allowRedisplay](https://docs.stripe.com/api/payment_methods/object.md#payment_method_object-allow_redisplay) comme `toujours` ou `limité`, indiquant dans quelle mesure un moyen de paiement peut être affiché dans un tunnel de paiement du client. Pour traiter une SetupIntent, vous devez connecter votre application à un lecteur. Dans `CollectSetupIntentConfiguration`, définissez un objet `MotoConfiguration`. Le lecteur connecté vous invite à saisir le numéro de carte, le CVC, la date d’expiration et le code postal du client après que votre application a appelé `processSetupIntent`. #### Swift ```swift let motoConfig = try MotoConfigurationBuilder().build() let config = try CollectSetupIntentConfigurationBuilder() .setMotoConfiguration(motoConfig) .setAllowRedisplay(.always) .build() let cancelable = Terminal.shared.processSetupIntent( setupIntent, collectConfig: config ) { processedSetupIntent, processError in if let error = processError { print("processSetupIntent failed: \(error)") // Placeholder for handling error } else if let setupIntent = processedSetupIntent { print("processSetupIntent succeeded") // Placeholder for handling successful operation } } ``` ## Utiliser le PaymentMethod Il est désormais possible de [débiter le PaymentMethod enregistré](https://docs.stripe.com/payments/save-and-reuse.md#charge-saved-payment-method) du client via un PaymentIntent. ## En cours de test Pour tester votre intégration, utilisez le [lecteur de simulation](https://docs.stripe.com/terminal/references/testing.md#simulated-reader) et les [numéros de carte de test simulés](https://docs.stripe.com/terminal/references/testing.md#simulated-test-cards). ## Conformité Vous êtes responsable du respect de toutes les lois, réglementations et règles des réseaux applicables lorsque vous enregistrez les informations de paiement d’un client. Par exemple, le Comité européen de la protection des données a publié des recommandations sur l’enregistrement des informations de paiement. Ces exigences s’appliquent généralement si vous souhaitez enregistrer le moyen de paiement d’un client pour une utilisation ultérieure, par exemple en lui présentant le moyen de paiement dans le tunnel de paiement pour un achat futur ou en le facturant lorsqu’il n’utilise pas activement votre site Web ou votre application, ou encore en passant une commande MOTO ou en magasin. Intégrez à votre tunnel de paiement des conditions précisant la manière dont vous allez enregistrer les informations de moyen de paiement et offrant aux clients la possibilité de donner leur accord. Si vous envisagez de prélever le client alors qu’il ne paie pas activement, veillez à ce que vos conditions incluent au minimum les éléments suivants : - Le consentement du client vous autorisant à déclencher un paiement ou une série de paiements en son nom pour les transactions spécifiées - Le calendrier et la fréquence prévus des paiements (par exemple, si les paiements concernent des versements échelonnés ou d’abonnement planifiés, ou des recharges non planifiées). - La façon dont vous déterminez le montant du paiement. - Votre politique d’annulation, si vous configurez le moyen de paiement dans le cadre d’un abonnement Veillez à conserver une trace écrite de l’acceptation de ces conditions par votre client. Lors de l’enregistrement d’un moyen de paiement, celui-ci ne peut être utilisé que pour l’usage spécifié dans vos conditions. Pour prélever un client lorsqu’il n’est pas activement en train de payer et enregistrer son moyen de paiement pour un usage futur, vous devez recueillir son consentement explicite. Une option consiste à proposer une case à cocher « Enregistrer mon moyen de paiement pour une utilisation ultérieure ». # Android > This is a Android for when terminal-sdk-platform is android. View the full page at https://docs.stripe.com/terminal/features/mail-telephone-orders/save-directly?terminal-sdk-platform=android. Pour enregistrer les informations de paiement d’une transaction MOTO en vue d’un paiement ultérieur, vous devez : 1. [Créer ou récupérer un objet Customer](https://docs.stripe.com/terminal/features/mail-telephone-orders/save-directly.md#create-customer). 1. [Créer un SetupIntent](https://docs.stripe.com/terminal/features/mail-telephone-orders/save-directly.md#create-setup-intent). 1. [Traitement de la SetupIntent](https://docs.stripe.com/terminal/features/mail-telephone-orders/save-directly.md#process-setup-intent). ## Créer ou récupérer un objet Customer Pour débiter une carte bancaire enregistrée auprès de Stripe, celle-ci doit être associée à un objet [Customer](https://docs.stripe.com/api/customers.md). Lorsque vous incluez un objet Customer dans votre [SetupIntent](https://docs.stripe.com/api/setup_intents.md) avant de confirmer, Stripe associe automatiquement le moyen de paiement par carte bancaire généré à l’objet `Customer` que vous créez/récupérez. Ajoutez le code suivant sur votre serveur pour créer un nouvel objet `Customer` : #### curl ```bash curl https://api.stripe.com/v1/customers \ -u <>: \ -X "POST" ``` ## Créer un SetupIntent Un [SetupIntent](https://docs.stripe.com/api/setup_intents.md) est un objet qui représente votre intention de configurer le moyen de paiement d’un client en vue de futurs paiements. Le SetupIntent suit les étapes de ce processus de configuration. Dans le cas de Terminal, cela inclut la collecte et l’enregistrement du consentement du titulaire de carte. Les [payment_method_types](https://docs.stripe.com/api/setup_intents/create.md#create_setup_intent-payment_method_types) doivent inclure `card`. #### Kotlin ```kotlin val params = SetupIntentParameters.Builder() .setCustomer("{{CUSTOMER_ID}}") .setOnBehalfOf("{{ON_BEHALF_OF}}") .setDescription("Customer A's Card") .setPaymentMethodTypes(listOf(PaymentMethodType.CARD)) .build() Terminal.getInstance().createSetupIntent(params, object : SetupIntentCallback { override fun onSuccess(setupIntent: SetupIntent) { // Placeholder for handling successful operation } override fun onFailure(e: TerminalException) { // Placeholder for handling exception } }) ``` ## Traiter le SetupIntent > Le CVC est obligatoire pour les transactions MOTO. Le contournement du CVC est disponible en version bêta privée et peut être demandé pour les commandes par courrier. Contactez le [support Stripe](https://support.stripe.com/) pour y accéder. Après avoir créé une SetupIntent, l’étape suivante consiste à traiter ce dernier avec le SDK. Configurez le paramètre [allowRedisplay](https://docs.stripe.com/api/payment_methods/object.md#payment_method_object-allow_redisplay) comme `toujours` ou `limité`, indiquant dans quelle mesure un moyen de paiement peut être affiché dans un tunnel de paiement du client. Pour traiter une SetupIntent, vous devez connecter votre application à un lecteur. Dans `CollectSetupIntentConfiguration`, définissez un objet `MotoConfiguration`. Le lecteur connecté vous invite à saisir le numéro de carte, le CVC, la date d’expiration et le code postal du client après que votre application a appelé `processSetupIntent`. #### Kotlin ```kotlin val config = CollectSetupIntentConfiguration.Builder() .setMotoConfiguration( MotoConfiguration.Builder() .build() ) .setAllowRedisplay(AllowRedisplay.ALWAYS) .build() val cancelable = Terminal.getInstance().processSetupIntent( setupIntent, config, object : SetupIntentCallback { override fun onSuccess(setupIntent: SetupIntent) { // Placeholder for handling successful operation } override fun onFailure(e: TerminalException) { // Placeholder for handling exception } } ) ``` ## Utiliser le PaymentMethod Il est désormais possible de [débiter le PaymentMethod enregistré](https://docs.stripe.com/payments/save-and-reuse.md#charge-saved-payment-method) du client via un PaymentIntent. ## En cours de test Pour tester votre intégration, utilisez le [lecteur de simulation](https://docs.stripe.com/terminal/references/testing.md#simulated-reader) et les [numéros de carte de test simulés](https://docs.stripe.com/terminal/references/testing.md#simulated-test-cards). ## Conformité Vous êtes responsable du respect de toutes les lois, réglementations et règles des réseaux applicables lorsque vous enregistrez les informations de paiement d’un client. Par exemple, le Comité européen de la protection des données a publié des recommandations sur l’enregistrement des informations de paiement. Ces exigences s’appliquent généralement si vous souhaitez enregistrer le moyen de paiement d’un client pour une utilisation ultérieure, par exemple en lui présentant le moyen de paiement dans le tunnel de paiement pour un achat futur ou en le facturant lorsqu’il n’utilise pas activement votre site Web ou votre application, ou encore en passant une commande MOTO ou en magasin. Intégrez à votre tunnel de paiement des conditions précisant la manière dont vous allez enregistrer les informations de moyen de paiement et offrant aux clients la possibilité de donner leur accord. Si vous envisagez de prélever le client alors qu’il ne paie pas activement, veillez à ce que vos conditions incluent au minimum les éléments suivants : - Le consentement du client vous autorisant à déclencher un paiement ou une série de paiements en son nom pour les transactions spécifiées - Le calendrier et la fréquence prévus des paiements (par exemple, si les paiements concernent des versements échelonnés ou d’abonnement planifiés, ou des recharges non planifiées). - La façon dont vous déterminez le montant du paiement. - Votre politique d’annulation, si vous configurez le moyen de paiement dans le cadre d’un abonnement Veillez à conserver une trace écrite de l’acceptation de ces conditions par votre client. Lors de l’enregistrement d’un moyen de paiement, celui-ci ne peut être utilisé que pour l’usage spécifié dans vos conditions. Pour prélever un client lorsqu’il n’est pas activement en train de payer et enregistrer son moyen de paiement pour un usage futur, vous devez recueillir son consentement explicite. Une option consiste à proposer une case à cocher « Enregistrer mon moyen de paiement pour une utilisation ultérieure ». # JavaScript > This is a JavaScript for when terminal-sdk-platform is js. View the full page at https://docs.stripe.com/terminal/features/mail-telephone-orders/save-directly?terminal-sdk-platform=js. Pour enregistrer les informations de paiement d’une transaction MOTO en vue d’un paiement ultérieur, vous devez : 1. [Créer ou récupérer un objet Customer](https://docs.stripe.com/terminal/features/mail-telephone-orders/save-directly.md#create-customer). 1. [Créer un SetupIntent](https://docs.stripe.com/terminal/features/mail-telephone-orders/save-directly.md#create-setup-intent). 1. [Collecter un PaymentMethod](https://docs.stripe.com/terminal/features/mail-telephone-orders/save-directly.md#collect-payment-method). 1. [Confirmer et utiliser le PaymentMethod](https://docs.stripe.com/terminal/features/mail-telephone-orders/save-directly.md#confirm-use-payment-method). ## Créer ou récupérer un objet Customer Pour débiter une carte bancaire enregistrée auprès de Stripe, celle-ci doit être associée à un objet [Customer](https://docs.stripe.com/api/customers.md). Lorsque vous incluez un objet Customer dans votre [SetupIntent](https://docs.stripe.com/api/setup_intents.md) avant de confirmer, Stripe associe automatiquement le moyen de paiement par carte bancaire généré à l’objet `Customer` que vous créez/récupérez. Ajoutez le code suivant sur votre serveur pour créer un nouvel objet `Customer` : #### curl ```bash curl https://api.stripe.com/v1/customers \ -u <>: \ -X "POST" ``` ## Créer un SetupIntent Un [SetupIntent](https://docs.stripe.com/api/setup_intents.md) est un objet qui représente votre intention de configurer le moyen de paiement d’un client en vue de futurs paiements. Le SetupIntent suit les étapes de ce processus de configuration. Dans le cas de Terminal, cela inclut la collecte et l’enregistrement du consentement du titulaire de carte. Les [payment_method_types](https://docs.stripe.com/api/setup_intents/create.md#create_setup_intent-payment_method_types) doivent inclure `card`. Le SetupIntent contient une [clé secrète du client](https://docs.stripe.com/api/setup_intents/object.md#setup_intent_object-client_secret), qui est une clé propre à chaque SetupIntent. Vous devez obtenir la *clé secrète du client* (The client secret is a unique key returned from Stripe as part of a PaymentIntent. This key lets the client access important fields from the PaymentIntent (status, amount, currency) while hiding sensitive ones (metadata, customer)) à partir du SetupIntent sur votre serveur et la transmettre côté client. ```curl curl https://api.stripe.com/v1/setup_intents \ -u "<>:" \ -d "customer={{CUSTOMER_ID}}" \ -d "payment_method_types[]=card" ``` ## Collecter un PaymentMethod Après avoir créé un SetupIntent, l’étape suivante consiste à recouvrer une PaymentMethod avec le SDK et à collecter le consentement du client. Configurez le paramètre [allowRedisplay](https://docs.stripe.com/api/payment_methods/object.md#payment_method_object-allow_redisplay) comme `always` ou `limited`, indiquant dans quelle mesure un moyen de paiement peut être affiché dans un tunnel de paiement client. Pour collecter un moyen de paiement, vous devez connecter votre application à un lecteur. Dans la configuration `SetupIntentConfiguration`, définissez `moto` sur `true`. Le lecteur connecté vous invite à saisir le numéro de carte, le CVC, la date d’expiration et le code postal du client après que votre application a appelé `collectSetupIntentPaymentMethod`. ```js async () => { // Pass the client_secret from the SetupIntent you created in the previous step. const result = await terminal.collectSetupIntentPaymentMethod(client_secret, "always", { config: { moto: true, } }); if (result.error) { // Placeholder for handling result.error } else { // Placeholder for confirming result.setupIntent } } ``` ## Confirmer et utiliser le PaymentMethod Vous pouvez suivre la procédure habituelle pour confirmer le [PaymentMethod](https://docs.stripe.com/terminal/features/saving-payment-details/save-directly.md?terminal-card-present-integration=terminal#submit-payment-method). Vous pouvez maintenant [prélever le PaymentMethod](https://docs.stripe.com/payments/save-and-reuse.md#charge-saved-payment-method) enregistré associé au client en utilisant un PaymentIntent. ## En cours de test Pour tester votre intégration, utilisez le [lecteur de simulation](https://docs.stripe.com/terminal/references/testing.md#simulated-reader) et les [numéros de carte de test simulés](https://docs.stripe.com/terminal/references/testing.md#simulated-test-cards). ## Conformité Vous êtes responsable du respect de toutes les lois, réglementations et règles des réseaux applicables lorsque vous enregistrez les informations de paiement d’un client. Par exemple, le Comité européen de la protection des données a publié des recommandations sur l’enregistrement des informations de paiement. Ces exigences s’appliquent généralement si vous souhaitez enregistrer le moyen de paiement d’un client pour une utilisation ultérieure, par exemple en lui présentant le moyen de paiement dans le tunnel de paiement pour un achat futur ou en le facturant lorsqu’il n’utilise pas activement votre site Web ou votre application, ou encore en passant une commande MOTO ou en magasin. Intégrez à votre tunnel de paiement des conditions précisant la manière dont vous allez enregistrer les informations de moyen de paiement et offrant aux clients la possibilité de donner leur accord. Si vous envisagez de prélever le client alors qu’il ne paie pas activement, veillez à ce que vos conditions incluent au minimum les éléments suivants : - Le consentement du client vous autorisant à déclencher un paiement ou une série de paiements en son nom pour les transactions spécifiées - Le calendrier et la fréquence prévus des paiements (par exemple, si les paiements concernent des versements échelonnés ou d’abonnement planifiés, ou des recharges non planifiées). - La façon dont vous déterminez le montant du paiement. - Votre politique d’annulation, si vous configurez le moyen de paiement dans le cadre d’un abonnement Veillez à conserver une trace écrite de l’acceptation de ces conditions par votre client. Lors de l’enregistrement d’un moyen de paiement, celui-ci ne peut être utilisé que pour l’usage spécifié dans vos conditions. Pour prélever un client lorsqu’il n’est pas activement en train de payer et enregistrer son moyen de paiement pour un usage futur, vous devez recueillir son consentement explicite. Une option consiste à proposer une case à cocher « Enregistrer mon moyen de paiement pour une utilisation ultérieure ». # React Native > This is a React Native for when terminal-sdk-platform is react-native. View the full page at https://docs.stripe.com/terminal/features/mail-telephone-orders/save-directly?terminal-sdk-platform=react-native. Pour enregistrer les informations de paiement d’une transaction MOTO en vue d’un paiement ultérieur, vous devez : 1. [Créer ou récupérer un objet Customer](https://docs.stripe.com/terminal/features/mail-telephone-orders/save-directly.md#create-customer). 1. [Créer un SetupIntent](https://docs.stripe.com/terminal/features/mail-telephone-orders/save-directly.md#create-setup-intent). 1. [Collecter un PaymentMethod](https://docs.stripe.com/terminal/features/mail-telephone-orders/save-directly.md#collect-payment-method). 1. [Confirmer et utiliser le PaymentMethod](https://docs.stripe.com/terminal/features/mail-telephone-orders/save-directly.md#confirm-use-payment-method). ## Créer ou récupérer un objet Customer Pour débiter une carte bancaire enregistrée auprès de Stripe, celle-ci doit être associée à un objet [Customer](https://docs.stripe.com/api/customers.md). Lorsque vous incluez un objet Customer dans votre [SetupIntent](https://docs.stripe.com/api/setup_intents.md) avant de confirmer, Stripe associe automatiquement le moyen de paiement par carte bancaire généré à l’objet `Customer` que vous créez/récupérez. Ajoutez le code suivant sur votre serveur pour créer un nouvel objet `Customer` : #### curl ```bash curl https://api.stripe.com/v1/customers \ -u <>: \ -X "POST" ``` ## Créer un SetupIntent Un [SetupIntent](https://docs.stripe.com/api/setup_intents.md) est un objet qui représente votre intention de configurer le moyen de paiement d’un client en vue de futurs paiements. Le SetupIntent suit les étapes de ce processus de configuration. Dans le cas de Terminal, cela inclut la collecte et l’enregistrement du consentement du titulaire de carte. Les [payment_method_types](https://docs.stripe.com/api/setup_intents/create.md#create_setup_intent-payment_method_types) doivent inclure `card`. ```js const params = { customer: '{{CUSTOMER_ID}}', onBehalfOf: '{{ON_BEHALF_OF}}', description: "Customer A's Card", paymentMethodTypes: ['card'], }; try { const setupIntent = await terminal.createSetupIntent(params); // Placeholder for handling successful operation } catch (error) { // Placeholder for handling exception } ``` ## Collecter un PaymentMethod Après avoir créé un SetupIntent, l’étape suivante consiste à recouvrer une PaymentMethod avec le SDK et à collecter le consentement du client. Configurez le paramètre [allowRedisplay](https://docs.stripe.com/api/payment_methods/object.md#payment_method_object-allow_redisplay) comme `always` ou `limited`, indiquant dans quelle mesure un moyen de paiement peut être affiché dans un tunnel de paiement client. Pour collecter un moyen de paiement, vous devez connecter votre application à un lecteur. Définissez `motoConfiguration` sur `{ skipCvc: true }` lors de l’appel à `collectSetupIntentPaymentMethod`. Le lecteur connecté vous invite à saisir le numéro de carte, le CVC, la date d’expiration et le code postal du client après que votre application a appelé `collectSetupIntentPaymentMethod`. ```js try { const result = await collectSetupIntentPaymentMethod({ setupIntent: setupIntent, allowRedisplay: 'always', motoConfiguration: { skipCvc: true }, }); // Placeholder for handling successful operation } catch (error) { // Placeholder for handling exception } ``` ## Confirmer et utiliser le PaymentMethod Vous pouvez suivre la procédure habituelle pour confirmer le [PaymentMethod](https://docs.stripe.com/terminal/features/saving-payment-details/save-directly.md?terminal-card-present-integration=terminal#submit-payment-method). Vous pouvez maintenant [prélever le PaymentMethod](https://docs.stripe.com/payments/save-and-reuse.md#charge-saved-payment-method) enregistré associé au client en utilisant un PaymentIntent. ## En cours de test Pour tester votre intégration, utilisez le [lecteur de simulation](https://docs.stripe.com/terminal/references/testing.md#simulated-reader) et les [numéros de carte de test simulés](https://docs.stripe.com/terminal/references/testing.md#simulated-test-cards). ## Conformité Vous êtes responsable du respect de toutes les lois, réglementations et règles des réseaux applicables lorsque vous enregistrez les informations de paiement d’un client. Par exemple, le Comité européen de la protection des données a publié des recommandations sur l’enregistrement des informations de paiement. Ces exigences s’appliquent généralement si vous souhaitez enregistrer le moyen de paiement d’un client pour une utilisation ultérieure, par exemple en lui présentant le moyen de paiement dans le tunnel de paiement pour un achat futur ou en le facturant lorsqu’il n’utilise pas activement votre site Web ou votre application, ou encore en passant une commande MOTO ou en magasin. Intégrez à votre tunnel de paiement des conditions précisant la manière dont vous allez enregistrer les informations de moyen de paiement et offrant aux clients la possibilité de donner leur accord. Si vous envisagez de prélever le client alors qu’il ne paie pas activement, veillez à ce que vos conditions incluent au minimum les éléments suivants : - Le consentement du client vous autorisant à déclencher un paiement ou une série de paiements en son nom pour les transactions spécifiées - Le calendrier et la fréquence prévus des paiements (par exemple, si les paiements concernent des versements échelonnés ou d’abonnement planifiés, ou des recharges non planifiées). - La façon dont vous déterminez le montant du paiement. - Votre politique d’annulation, si vous configurez le moyen de paiement dans le cadre d’un abonnement Veillez à conserver une trace écrite de l’acceptation de ces conditions par votre client. Lors de l’enregistrement d’un moyen de paiement, celui-ci ne peut être utilisé que pour l’usage spécifié dans vos conditions. Pour prélever un client lorsqu’il n’est pas activement en train de payer et enregistrer son moyen de paiement pour un usage futur, vous devez recueillir son consentement explicite. Une option consiste à proposer une case à cocher « Enregistrer mon moyen de paiement pour une utilisation ultérieure ».