# Tester Stripe Terminal

Apprenez comment bien tester votre intégration Terminal.

> Le processus de test de Stripe Terminal est en grande partie similaire à celui du test des paiements Stripe en ligne. De plus, vous ne pouvez pas utiliser Stripe Terminal avec des portefeuilles mobiles (par exemple, Apple Pay ou Google Pay) en modetest. Pour en savoir plus, consultez le [guide de test général de Stripe](https://docs.stripe.com/testing.md).

Le meilleur moyen de réussir votre déploiement de Terminal est de tester chaque composante de votre intégration. Nous fournissons des outils de test pour chaque étape&nbsp;:

1. Avant de commander un lecteur, testez votre intégration avec le simulateur de lecteur.
2. Testez l’intégralité de votre intégration matérielle à l’aide d’une carte bancaire de test physique.

## Lecteur de simulation

- [discoverReaders (JavaScript)](https://docs.stripe.com/terminal/references/api/js-sdk.md#discover-readers)
- [DiscoveryConfiguration (iOS)](https://stripe.dev/stripe-terminal-ios/docs/Classes/SCPDiscoveryConfiguration.html)
- [DiscoveryConfiguration (Android)](https://stripe.dev/stripe-terminal-android/external/com.stripe.stripeterminal.external.models/-discovery-configuration/index.html)

- [Détection des lecteurs](https://docs.stripe.com/api/terminal/readers/list.md)

Les SDK et l’intégration pilotée par serveur de Stripe Terminal sont livrés avec un lecteur de carte simulé intégré, ce qui vous permet de développer et de tester votre application sans avoir à vous connecter à du matériel physique. Que votre intégration soit terminée ou que vous soyez en train de la développer, utilisez le lecteur simulé pour émuler tous les flux Terminal dans votre application.

Le lecteur virtuel ne fournit pas d’interface utilisateur. Après vous y être connecté(e) dans votre application, vous pouvez la voir fonctionner lorsque les appels au SDK ou à l’API Stripe aboutissent.

Les lecteurs simulés pour SDK simulent automatiquement la présentation des cartes si nécessaire. Concernant l’intégration pilotée par serveur, mettez à jour votre intégration pour [simuler la présentation d’une carte](https://docs.stripe.com/terminal/references/testing.md#simulated-card-presentment).

## Cartes bancaires de test pour simulation

- [SimulatorConfiguration (iOS)](https://stripe.dev/stripe-terminal-ios/docs/Classes/SCPSimulatorConfiguration.html)
- [SimulatorConfiguration (Android)](https://stripe.dev/stripe-terminal-android/external/com.stripe.stripeterminal.external.models/-simulator-configuration/index.html)

Il est possible de configurer le lecteur de simulation afin d’utiliser une carte bancaire de test pour simulation, ce qui vous permet de tester différents flux dans votre application de point de vente.

Avant de collecter un moyen de paiement, configurez le lecteur de simulation afin d’utiliser l’un des numéros de carte bancaire de test ou des moyens de paiement de test suivants afin d’obtenir des réponses précises. La configuration définie lors de l’étape de collecte (comme le numéro de carte bancaire test) est maintenue pendant 30&nbsp;minutes. Cela signifie qu’une étape de confirmation ultérieure utilise la même configuration, même si vous ne la transmettez pas de nouveau explicitement. Toute configuration transmise lors de l’appel de confirmation est prioritaire sur les valeurs mises en cache de l’étape de collecte.

### Cartes bancaires de test standard

| Numéro de carte bancaire de test | Moyen de paiement de test | Marque |
| --- | --- | --- |
| 4242424242424242 | `visa` | Visa |
| 4000056655665556 | `visa_debit` | Visa (débit) |
| 5555555555554444 | `mastercard` | Mastercard |
| 5200828282828210 | `mastercard_debit` | Mastercard (débit) |
| 5105105105105100 | `mastercard_prepaid` | Mastercard (prépayée) |
| 378282246310005 | `amex` | American Express |
| 371449635398431 | `amex2` | American Express |
| 6011111111111117 | `discover` | Discover |
| 6011000990139424 | `discover2` | Discover |
| 3056930009020004 | `diners` | Diners Club |
| 36227206271667 | `diners_14digits` | Diners Club (carte à 14&nbsp;chiffres) |
| 3566002020360505 | `jcb` | JCB |
| 6200000000000005 | `unionpay` | UnionPay |
| 4506445006931933 | `interac` | Interac |
| 6280000360000978 | `eftpos_au_debit` | eftpos Australie |
| 4000050360000001 | `eftpos_au_visa_debit` | eftpos Australia/Visa |
| 5555050360000080 | `eftpos_au_mastercard_debit` | eftpos Australia/Mastercard |
| 4000002500001001 | `cartes_bancaires_visa_debit` | Cartes Bancaires (CB) / Visa |
| 5555552500001001 | `cartes_bancaires_mastercard_debit` | Cartes Bancaires (CB) / Mastercard |
| 4711009900000316877 | `girocard_debit` | Girocard |

### Cartes bancaires de test réservées à des cas de réussite particuliers

| Numéro de carte bancaire de test | Moyen de paiement de test | Résultat |
| --- | --- | --- |
| 4001007020000002 | `offline_pin_cvm` | Simule la demande émise au titulaire de la carte et sa saisie d’un *code PIN hors ligne* (Offline PIN is a card verification method for EMV chip cards. These cards store the PIN securely on the chip itself, so PIN verification can occur without a network connection). La [cardholder_verification_method](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card_present-receipt-cardholder_verification_method) du paiement qui en résulte est définie sur `offline_pin`. |
| 4000008260000075 | `offline_pin_sca_retry` | Simule un flux de relance déclenché par la [SCA](https://docs.stripe.com/strong-customer-authentication.md) dans lequel le paiement sans contact initial d’un titulaire de carte échoue&nbsp;: le lecteur invite alors l’utilisateur à insérer sa carte et à saisir son *code PIN hors ligne* (Offline PIN is a card verification method for EMV chip cards. These cards store the PIN securely on the chip itself, so PIN verification can occur without a network connection). La [cardholder_verification_method](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card_present-receipt-cardholder_verification_method) du paiement qui en résulte est défini sur `offline_pin`. |
| 4001000360000005 | `online_pin_cvm` | Simule la demande et la saisie par un titulaire de carte d’un *code PIN en ligne* (Online PIN is a card verification method for EMV chip cards. These cards require the terminal to contact the issuer over a network connection to verify the PIN). La [cardholder_verification_method](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card_present-receipt-cardholder_verification_method) du paiement qui en résulte est définie sur `online_pin`. |
| 4000002760000008 | `online_pin_sca_retry` | Simule un flux de relance déclenché par la [SCA](https://docs.stripe.com/strong-customer-authentication.md) dans lequel le paiement sans contact initial d’un titulaire de carte échoue et le lecteur invite ensuite l’utilisateur à saisir son *code PIN en ligne* (Online PIN is a card verification method for EMV chip cards. These cards require the terminal to contact the issuer over a network connection to verify the PIN). La [cardholder_verification_method](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card_present-receipt-cardholder_verification_method) du paiement final est définie sur `online_pin`. |

### Cartes bancaires de test réservées à des cas d’erreur particuliers

> L’utilisation de ces cartes pour [enregistrer directement sans débiter](https://docs.stripe.com/terminal/features/saving-payment-details/save-directly.md) et pour les [SetupIntents](https://docs.stripe.com/api/setup_intents.md) renvoie une réponse [setup_intent_authentication_failure](https://docs.stripe.com/error-codes.md#setup-intent-authentication-failure).

| Numéro de carte bancaire de test | Moyen de paiement de test | Résultat |
| --- | --- | --- |
| 4000000000000002 | `charge_declined` | Le paiement est refusé avec le code `card_declined`. |
| 4000000000009995 | `charge_declined_insufficient_funds` | Le paiement est refusé avec le code `card_declined`. L’attribut [decline_code](https://docs.stripe.com/declines/codes.md) est `insufficient_funds`. |
| 4000000000009987 | `charge_declined_lost_card` | Le paiement est refusé avec le code `card_declined`. L’attribut [decline_code](https://docs.stripe.com/declines/codes.md) est `lost_card`. |
| 4000000000009979 | `charge_declined_stolen_card` | Le paiement est refusé avec le code `card_declined`. L’attribut [decline_code](https://docs.stripe.com/declines/codes.md) est `stolen_card`. |
| 4000000000000069 | `charge_declined_expired_card` | Le paiement est refusé avec le code `expired_card`. |
| 4000000000000119 | `charge_declined_processing_error` | Le paiement est refusé avec le code `processing_error`. |
| 4000000000005126 | `refund_fail` | Le paiement réussit, mais [le remboursement d’un paiement capturé échoue](https://docs.stripe.com/refunds.md#failed-refunds) de façon asynchrone, avec un `failure_reason` défini sur `expired_or_canceled_card`. Comme les remboursements échouent de manière asynchrone, le remboursement semble d’abord réussi et ne renvoie l’état `failed` que lors des récupérations suivantes. Nous vous informons également des échecs de remboursement via l’événement `refund.failed` du [webhook](https://docs.stripe.com/api/events/types.md#event_types-refund.failed). |

## Simulation de présentation de carte

Lorsque vous utilisez l’intégration pilotée par serveur, utilisez l’endpoint [present_payment_method](https://docs.stripe.com/api/terminal/readers/present_payment_method.md) pour simuler la présentation ou l’insertion d’une carte dans le lecteur.

```curl
curl -X POST https://api.stripe.com/v1/test_helpers/terminal/readers/tmr_xxx/present_payment_method \
  -u "<<YOUR_SECRET_KEY>>:"
```

```json
{
  "id": "tmr_xxx",
  "object": "terminal.reader",
  "action": {
    "failure_code": null,
    "failure_message": null,
    "process_payment_intent": {
      "payment_intent": "pi_xxx"
    },
    "status": "succeeded",
    "type": "process_payment_intent"
  },
  …
}
```

Si vous ne spécifiez pas les paramètres, le paiement simulé sera par défaut considéré comme effectué par une [carte de test](https://docs.stripe.com/terminal/references/testing.md#standard-test-cards) valide, en fonction du type de moyen de paiement du PaymentIntent. Les cartes de test par défaut pour les types de moyens de paiement Terminal sont&nbsp;:

| Type de moyen de paiement | Numéro de carte bancaire de test | Moyen de paiement de test |
| --- | --- | --- |
| `card_present` | 4242424242424242 | `visa` |
| `card_present` et `interac_present` | 4242424242424242 | `visa` |
| `interac_present` | 4506445006931933 | `interac` |

Avec les [cartes de test standard](https://docs.stripe.com/terminal/references/testing.md#standard-test-cards), vous pouvez également utiliser des [montants de test](https://docs.stripe.com/terminal/references/testing.md#physical-test-cards) pour simuler scénarios d’échec.

## Mise à jour du lecteur de test

Utilisez des scénarios de mise à jour du logiciel du lecteur pour tester la façon dont votre intégration gère les mises à jour. Cela fonctionne avec des lecteurs mobiles simulés et physiques dans un environnement de test.

> `testReaderUpdate` est réservé aux connexions en mode test. Ne le définissez pas lors de la connexion à un lecteur en mode production.

#### iOS

- [TestReaderUpdate (iOS)](https://stripe.dev/stripe-terminal-ios/docs/Classes/SCPTestReaderUpdate.html)
- [TestReaderUpdateType (iOS)](https://stripe.dev/stripe-terminal-ios/docs/Enums/SCPTestReaderUpdateType.html)
- [BluetoothConnectionConfiguration (iOS)](https://stripe.dev/stripe-terminal-ios/docs/Classes/SCPBluetoothConnectionConfiguration.html)
- [UsbConnectionConfiguration (iOS)](https://stripe.dev/stripe-terminal-ios/docs/Classes/SCPUsbConnectionConfiguration.html)
- [TapToPayConnectionConfiguration (iOS)](https://stripe.dev/stripe-terminal-ios/docs/Classes/SCPTapToPayConnectionConfiguration.html)

Définissez la propriété `testReaderUpdate` sur [BluetoothConnectionConfiguration](https://stripe.dev/stripe-terminal-ios/docs/Classes/SCPBluetoothConnectionConfiguration.html), [UsbConnectionConfiguration](https://stripe.dev/stripe-terminal-ios/docs/Classes/SCPUsbConnectionConfiguration.html) ou [TapToPayConnectionConfiguration](https://stripe.dev/stripe-terminal-ios/docs/Classes/SCPTapToPayConnectionConfiguration.html) pour déclencher un scénario de mise à jour du lecteur lors de la connexion. Cela fonctionne avec des lecteurs mobiles simulés et physiques, ainsi qu’avec des lecteurs Tap to Pay simulés dans un environnement de test.

Créez un [TestReaderUpdate](https://stripe.dev/stripe-terminal-ios/docs/Classes/SCPTestReaderUpdate.html) avec l’une des méthodes d’usine. Vous pouvez éventuellement spécifier des valeurs [UpdateComponent](https://stripe.dev/stripe-terminal-ios/docs/Enums/SCPUpdateComponent.html) telles que `.firmware`, `.config`, `.keys` ou `.incremental`.

| TestReaderUpdate | Résultat |
| --- | --- |
| `.available(components)` | Une mise à jour facultative est disponible. Indiquez à l’utilisateur qu’une mise à jour est disponible et mettez en avant la date`requiredAt`. |
| `.required(components)` | Une mise à jour obligatoire s’exécute lors de la connexion. Votre `MobileReaderDelegate` reçoit le rappel `didStartInstallingUpdate`. |
| `.requiredOffline(components)` | Une mise à jour obligatoire existe. Si vous vous connectez [hors ligne](https://docs.stripe.com/terminal/features/operate-offline/collect-card-payments.md?terminal-card-present-integration=terminal&terminal-sdk-platform=ios&reader-type=simulated#connect-while-offline), la connexion échoue car la version du lecteur n’est pas autorisée. Si vous vous connectez en ligne, le lecteur se met à jour et se connecte normalement. |
| `.lowBattery()` | Une mise à jour obligatoire existe, mais la batterie du lecteur est trop faible pour démarrer la mise à jour. La connexion échoue. |
| `.lowBatterySucceedConnect()` | Une mise à jour obligatoire existe, mais la batterie du lecteur est trop faible pour démarrer la mise à jour. La mise à jour échoue, mais la connexion réussit car le lecteur exécute une version logicielle récente. |
| `.random()` | Sélectionne aléatoirement l’un des scénarios précédents, ou `nil` pour simuler l’absence de mise à jour disponible. |

#### Swift

```swift
// Create a TestReaderUpdate to simulate a required update during connection
let testReaderUpdate = TestReaderUpdate.required([.firmware, .config])

let connectionConfig: BluetoothConnectionConfiguration
do {
    connectionConfig = try BluetoothConnectionConfigurationBuilder(delegate: readerDelegate, locationId: ""{{LOCATION_ID}}"")
        .setTestReaderUpdate(testReaderUpdate)
        .build()
} catch {
    // Handle the error building the connection configuration
    return
}
Terminal.shared.connectReader(selectedReader, connectionConfig: connectionConfig) { reader, error in
    if let reader = reader {
        print("Successfully connected to reader: \(reader)")
    } else if let error = error {
        print("connectReader failed: \(error)")
    }
}
```

> `TapToPayConnectionConfiguration` prend uniquement en charge le scénario `.required(components)`. Les autres types renvoient une erreur.

#### Android

- [TestReaderUpdate (Android)](https://stripe.dev/stripe-terminal-android/external/com.stripe.stripeterminal.external.models/-test-reader-update/index.html)
- [TestReaderUpdateType (Android)](https://stripe.dev/stripe-terminal-android/external/com.stripe.stripeterminal.external.models/-test-reader-update/-test-reader-update-type/index.html)
- [BluetoothConnectionConfiguration (Android)](https://stripe.dev/stripe-terminal-android/external/com.stripe.stripeterminal.external.models/-connection-configuration/-bluetooth-connection-configuration/index.html)
- [UsbConnectionConfiguration (Android)](https://stripe.dev/stripe-terminal-android/external/com.stripe.stripeterminal.external.models/-connection-configuration/-usb-connection-configuration/index.html)

Définissez le paramètre `testReaderUpdate` sur [BluetoothConnectionConfiguration](https://stripe.dev/stripe-terminal-android/external/com.stripe.stripeterminal.external.models/-connection-configuration/-bluetooth-connection-configuration/index.html) ou [UsbConnectionConfiguration](https://stripe.dev/stripe-terminal-android/external/com.stripe.stripeterminal.external.models/-connection-configuration/-usb-connection-configuration/index.html) avant d’appeler `connectReader` pour déclencher une mise à jour du lecteur lors de la connexion. Cela fonctionne avec des lecteurs simulés et des lecteurs mobiles physiques dans un environnement de test.

Créez un [TestReaderUpdate](https://stripe.dev/stripe-terminal-android/external/com.stripe.stripeterminal.external.models/-test-reader-update/index.html) avec l’une des méthodes d’usine. Vous pouvez éventuellement spécifier des valeurs [UpdateComponent](https://stripe.dev/stripe-terminal-android/external/com.stripe.stripeterminal.external.models/-reader-software-update/-update-component/index.html) telles que `FIRMWARE`, `CONFIG`, `KEYS`, or `INCREMENTAL`.

| TestReaderUpdate | Résultat |
| --- | --- |
| `.available(components)` | Une mise à jour facultative est disponible. Indiquez à l’utilisateur qu’une mise à jour est disponible et mettez en avant la date`requiredAt`. |
| `.required(components)` | Une mise à jour obligatoire s’exécute lors de la connexion. Votre `MobileReaderListener` reçoit le rappel `onStartInstallingUpdate`. |
| `.requiredOffline(components)` | Une mise à jour obligatoire existe. Si vous vous connectez [hors ligne](https://docs.stripe.com/terminal/features/operate-offline/collect-card-payments.md?terminal-card-present-integration=terminal&terminal-sdk-platform=android&reader-type=simulated#connect-while-offline), la connexion échoue car la version du lecteur n’est pas autorisée. Si vous vous connectez en ligne, le lecteur se met à jour et se connecte normalement. |
| `.lowBattery()` | Une mise à jour obligatoire existe, mais la batterie du lecteur est trop faible pour démarrer la mise à jour. La connexion échoue. |
| `.lowBatterySucceedConnect()` | Une mise à jour obligatoire existe, mais la batterie du lecteur est trop faible pour démarrer la mise à jour. La mise à jour échoue, mais la connexion réussit car le lecteur exécute une version logicielle récente. |
| `.random()` | Sélectionne aléatoirement l’un des scénarios précédents, ou `null` pour simuler l’absence de mise à jour disponible. |

#### Kotlin

```kotlin
// Create a TestReaderUpdate to simulate a required update during connection
val testReaderUpdate = TestReaderUpdate.required(
    setOf(
        ReaderSoftwareUpdate.UpdateComponent.FIRMWARE,
        ReaderSoftwareUpdate.UpdateComponent.CONFIG
    )
)

val connectionConfig = BluetoothConnectionConfiguration(
    ""{{LOCATION_ID}}"",
    autoReconnectOnUnexpectedDisconnect = true,
    bluetoothReaderListener = readerListener,
    testReaderUpdate = testReaderUpdate
)

Terminal.getInstance().connectReader(
    selectedReader,
    connectionConfig,
    object : ReaderCallback {
        override fun onSuccess(reader: Reader) {
            println("Successfully connected to reader: $reader")
        }

        override fun onFailure(e: TerminalException) {
            println("connectReader failed: ${e.errorMessage}")
        }
    }
)
```

#### React&nbsp;Native

Pour déclencher la mise à jour du lecteur lors de la connexion, définissez le paramètre `testReaderUpdate` sur `ConnectBluetoothReaderParams`, `ConnectBluetoothProximityReaderParams` ou `ConnectUsbReaderParams` avant d’appeler `connectReader`. Cela fonctionne avec des lecteurs mobiles simulés et physiques dans un environnement de test.

Spécifiez un objet `TestReaderUpdate` de l’un des types suivants. Pour les types de mise à jour qui le prennent en charge, vous pouvez spécifier un tableau de valeurs `UpdateComponent` telles que `FIRMWARE`, `CONFIG`, `KEYS` ou `INCREMENTAL` dans le champ `components`.

| TestReaderUpdate | Résultat |
| --- | --- |
| `{ type: ’available’, components }` | Une mise à jour facultative est disponible. Indiquez à l’utilisateur qu’une mise à jour est disponible et mettez en avant la date`requiredAt`. |
| `{ type: ’required’, components }` | Une mise à jour s’exécute pendant la connexion. Votre instance `useStripeTerminal` reçoit le rappel `onDidStartInstallingUpdate`. |
| `{ type: ’requiredOffline’, components }` | Il existe une mise à jour obligatoire. Si vous vous connectez hors ligne, la connexion échoue, car la version du lecteur n’est pas autorisée. Si vous vous connectez en ligne, le lecteur se met à jour et se connecte normalement. |
| `{ type: ’lowBattery’ }` | Une mise à jour obligatoire existe, mais la batterie du lecteur est trop faible pour démarrer la mise à jour. La connexion échoue. |
| `{ type: ’lowBatterySucceedConnect’ }` | Une mise à jour obligatoire existe, mais la batterie du lecteur est trop faible pour démarrer la mise à jour. La mise à jour échoue, mais la connexion réussit car le lecteur exécute une version logicielle récente. |
| `{ type: ’random’ }` | Sélectionne aléatoirement l’un des scénarios précédents, ou simule l’absence de mise à jour. |

```typescript
import {
  useStripeTerminal,
  UpdateComponent,
} from '@stripe/stripe-terminal-react-native';

const { connectReader } = useStripeTerminal();

const { reader, error } = await connectReader({
  discoveryMethod: 'bluetoothScan',
  reader: selectedReader,
  locationId: '<location_id>',
  testReaderUpdate: {
    type: 'required',
    components: [UpdateComponent.FIRMWARE, UpdateComponent.CONFIG],
  },
});

if (error) {
  console.log(`connectReader failed: ${error.message}`);
  return;
}

console.log('Successfully connected to reader:', reader);
```

> `testReaderUpdate` dans `ConnectTapToPayParams` est réservé à iOS et prend en charge les types `required` et `random`. Vous pouvez également l’omettre en l’absence de mise à jour. Son utilisation sur Android renvoie une erreur.

## Cartes bancaires de test physiques

Testez les paiements avec votre lecteur Stripe Terminal à l’aide d’une carte de test physique. Vous pouvez acheter des lecteurs et des cartes de test physiques dans l’onglet Terminal du [Dashboard Stripe](https://dashboard.stripe.com/terminal/shop). Nous prenons également en charge les cartes de test physiques de fournisseurs tels que [B2](https://b2ps.com/product-category/b2-payment-testing-products/).

Cette carte de test physique prend en charge à la fois la lecture par puce et le paiement sans contact. Elle fonctionne uniquement avec les lecteurs pré-certifiés de&nbsp;Stripe&nbsp;et uniquement avec l’API&nbsp;Stripe&nbsp;dans un [environnement de test](https://docs.stripe.com/sandboxes.md). Si vous essayez d’utiliser votre carte de test physique en mode actif, l’API&nbsp;Stripe&nbsp;renverra une erreur. Sauf indication contraire, utilisez le code PIN `1234` lorsqu’il est demandé.

Lors de la création de paiements avec une carte de test physique, utilisez des montants se terminant par les valeurs décimales suivantes pour générer des réponses spécifiques&nbsp;:

| Décimale | Résultat |
| --- | --- |
| **00** | Le paiement est approuvé. |
| **01** | Le paiement est refusé avec le code `call_issuer`. |
| **02** | Lorsque vous utilisez des lecteurs dotés d’un écran client, insérez (ou présentez, le cas échéant) la carte de test. Si la carte nécessite un code PIN, le paiement est refusé avec `offline_pin_required` et demande la saisie du code PIN si le lecteur prend en charge la saisie de la puce. Saisissez `1234` pour exécuter le paiement test. |
| **03** | Lorsque vous utilisez des lecteurs dotés d’un écran client, insérez (ou présentez, le cas échéant) la carte de test. Si la carte nécessite la saisie du code PIN, le paiement est refusé avec `online_or_offline_pin_required` et demande la saisie du code PIN. Saisissez un code PIN à 4 chiffres afin d’effectuer le paiement. |
| **05** | Le paiement est refusé avec le code `generic_decline`. |
| **55** | Le paiement est refusé avec le code `incorrect_pin`. |
| **65** | Le paiement est refusé avec le code `withdrawal_count_limit_exceeded`. |
| **75** | Le paiement est refusé avec le code `pin_try_exceeded`. |

Par exemple, un paiement d’un montant de *25,00&nbsp;USD* traité à l’aide d’une carte bancaire de test physique aboutit&nbsp;; un paiement d’un montant de *10,05&nbsp;USD* est refusé.

> Certaines devises ont [zéro décimale](https://docs.stripe.com/currencies.md#zero-decimal). Pour ces devises, utilisez les deux chiffres décimaux du tableau ci-dessus comme les deux chiffres les plus à droite.
> 
> Par exemple, pour que votre paiement soit refusé avec le code `generic_decline`, vous avez besoin d’un montant de *105&nbsp;JPY*.

### Cartes bancaires de test Interac (Canada uniquement)

pour tester votre intégration Interac, vous pouvez utiliser la carte de test simulée `interac` ou une *carte de test physique interac*. Vous pouvez la commander depuis la [boutique de matériel terminal](https://dashboard.stripe.com/terminal/shop) dans le&nbsp;Dashboard. vous ne pouvez pas utiliser la carte de test physique marquée&nbsp;Stripe&nbsp;comme carte Interac.

La carte bancaire de test Interac fonctionne avec les paiements `interac_present` et les remboursements `interac_present`. Vous pouvez utiliser les mêmes [montants test](https://docs.stripe.com/terminal/references/testing.md#physical-test-cards) que ceux que vous utilisez pour tester des paiements `card_present`. Sauf indication contraire, utilisez le code PIN `1234` au moment de l’invite. Afin de tester un remboursement refusé, créez un remboursement partiel avec un montant se terminant par l’un des nombres suivants&nbsp;: `01`, `05`, `55`, `65`, ou `75`.

> La carte bancaire de test Interac ne prend pas en charge le paiement sans contact.

### Cartes bancaires de test eftpos (Australie uniquement)

pour tester votre intégration eftpos, vous pouvez utiliser la carte de test `eftpos` simulée ou une *carte physique eftpos*. Vous pouvez la commander depuis la [boutique de matériel Terminal](https://dashboard.stripe.com/terminal/shop) dans le Dashboard. Vous ne pouvez pas utiliser la carte de test physique de la marque Stripe comme carte `eftpos`.

Vous pouvez utiliser les mêmes [montants de test](https://docs.stripe.com/terminal/references/testing.md#physical-test-cards) que ceux que vous utilisez pour tester les paiements `card_present`. Sauf indication contraire, utilisez le code `1234` au moment de saisir le code PIN.

## See also

- [Passer des commandes](https://docs.stripe.com/terminal/fleet/order-and-return-readers.md)
- [Liste de vérification de l’intégration](https://docs.stripe.com/terminal/references/checklist.md)
- [Tester des moyens de paiement supplémentaires](https://docs.stripe.com/terminal/payments/additional-payment-methods.md#testing)
