# Enregistrer des lecteurs

Enregistrez vos lecteurs dans un emplacement.

Vous devez enregistrer votre lecteur dans un emplacement afin de pouvoir accepter des paiements. Le processus d’enregistrement de votre lecteur diffère selon qu’il s’agit d’un [lecteur intelligent](https://docs.stripe.com/terminal/smart-readers.md) ou d’un [lecteur mobile](https://docs.stripe.com/terminal/mobile-readers.md).

Tous les [rôles utilisateur](https://docs.stripe.com/get-started/account/teams/roles.md) disposant d’autorisations en écriture peuvent enregistrer des lecteurs.

## Lecteurs intelligents

Vous pouvez enregistrer des lecteurs intelligents de trois manières différentes&nbsp;:

- Code d’inscription
- Numéro de série
- Numéro de commande

### Code d’inscription

Pour cette méthode, vous devez générer un code de jumelage (également appelé code d’enregistrement) sur le lecteur. Si un lecteur n’est pas enregistré, un code de jumelage s’affiche automatiquement à l’écran lors du déballage. Si ce n’est pas le cas, ou si vous devez réenregistrer un lecteur, vous pouvez générer un nouveau code de jumelage via les [paramètres d’administration](https://docs.stripe.com/terminal/payments/setup-reader/stripe-reader-s700-s710.md#settings). Après avoir généré le code de jumelage, vous pouvez le saisir dans le Dashboard ou via l’API pour enregistrer le lecteur.

#### Dashboard

1. Dans l’onglet **Lecteurs** de la page [Lecteurs Terminal](https://dashboard.stripe.com/terminal/readers), cliquez sur **Enregistrer le lecteur**.
2. Saisissez le code d’association sur le lecteur et cliquez sur **Suivant**.
3. Donnez un nom au lecteur.
4. Affectez le lecteur à un emplacement ou créez-en un nouveau.
5. Confirmez les détails et cliquez sur **Enregistrer**.

#### API

Utilisez l’[API Reader](https://docs.stripe.com/api/terminal/readers/create.md) pour enregistrer un lecteur avec un code d’association.

```curl
curl https://api.stripe.com/v1/terminal/readers \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d registration_code={{READER_REGISTRATION_CODE}} \
  --data-urlencode "label=Alice's reader" \
  -d "location={{TERMINALLOCATION_ID}}"
```

### Numéro de série

Vous pouvez enregistrer des lecteurs à l’aide de leur numéro de série. Pour cette méthode, il n’est pas nécessaire que quelqu’un soit physiquement en possession du lecteur pour l’enregistrer. Ainsi, le lecteur est immédiatement prêt à l’emploi. Cette méthode vous permet également de réenregistrer le lecteur et de générer un code d’association, sans être physiquement en possession du lecteur.

> L’enregistrement par numéro de série ne permet pas de transférer un lecteur enregistré sur un compte Stripe non associé. Pour enregistrer le lecteur sur ce compte, générez un code d’enregistrement sur le lecteur et utilisez le processus [Code d’enregistrement](https://docs.stripe.com/terminal/fleet/register-readers.md#registration-code), qui prend en charge le réenregistrement d’un lecteur.

Vous pouvez trouver le numéro de série de la manière suivante&nbsp;:

- À partir de la commande de matériel, dans l’onglet [Commandes de matériel](https://dashboard.stripe.com/terminal/hardware_orders)
- Sur le lecteur lui-même (sur la boîte et au dos du lecteur)
- Si le lecteur est déjà enregistré, à partir de la page relative aux informations sur le lecteur dans le Dashboard ou de l’[API Reader](https://docs.stripe.com/api/terminal/readers.md)

#### Éligibilité

- Vous ne pouvez pas enregistrer un lecteur sur un compte de plateforme si la commande a été passée directement par un [compte connecté](https://docs.stripe.com/connect.md) pour lequel votre plateforme ne dispose pas de [droits de contrôle](https://docs.stripe.com/connect/platform-controls-for-stripe-dashboard-accounts.md).
- Si la plateforme a passé la commande, les comptes connectés ne peuvent pas enregistrer eux-mêmes le lecteur sur leur propre compte. La plateforme doit enregistrer le lecteur pour le compte connecté en utilisant l’[en-tête Stripe-Account](https://docs.stripe.com/connect/authentication.md#stripe-account-header) ou la fonctionnalité «&nbsp;[Afficher le Dashboard en tant que](https://docs.stripe.com/connect/dashboard/managing-individual-accounts.md#view-the-dashboard-as-a-connected-account)&nbsp;».

> Cette méthode vous permet d’enregistrer jusqu’à 10&nbsp;lecteurs à la fois.

#### Dashboard

Après avoir trouvé le numéro de série, vous pouvez enregistrer le lecteur via le flux d’enregistrement dans le Dashboard.

1. Sur la page [Lecteurs Terminal](https://dashboard.stripe.com/terminal/readers), cliquez sur **Enregistrer un lecteur**.
2. Saisissez le numéro de série et cliquez sur **Suivant**. Pour enregistrer plusieurs appareils à la fois, vous pouvez saisir plusieurs numéros de série, séparés par des virgules.
3. Vous pouvez facultativement choisir un nom pour le lecteur.
4. Si vous avez déjà créé un emplacement, sélectionnez le nouvel emplacement du lecteur. Sinon, créez-en un en cliquant sur **+ Ajouter un emplacement**.
5. Cliquez sur **Enregistrer** pour terminer l’enregistrement de votre lecteur.

### Numéro de commande

> Cette méthode ne fonctionne que pour les lecteurs qui ont été commandés par ce compte (ou l’un de ses sous-comptes). Si le lecteur n’est pas associé à une commande de ce compte, cette méthode ne fonctionnera pas.

#### Dashboard

Dans le Dashboard, vous pouvez enregistrer des lecteurs par le numéro de commande de deux manières différentes&nbsp;:

- À partir de la commande elle-même
- Saisie du numéro de commande au cours du flux d’enregistrement

#### À partir de la commande

1. Sur la page [Commandes de matériel](https://dashboard.stripe.com/terminal/hardware_orders), trouvez une commande dont le statut est `shipped` ou `delivered`. Cliquez sur le menu déroulant (⋯) à la fin de la ligne, puis cliquez sur **Enregistrer**.
   - Si votre commande ne dispose pas de numéros de série attribués, cliquer sur **Enregistrer** ouvre le flux de pré-enregistrement. En savoir plus sur le [pré-enregistrement des lecteurs lors de la commande](https://docs.stripe.com/terminal/fleet/register-readers.md#pre-register-readers-when-ordering).
   - Si votre commande dispose de numéros de série attribués, cliquer sur **Enregistrer** ouvre la page **Enregistrer des lecteurs**. Poursuivez avec les étapes ci-dessous.
2. Sur la page **Enregistrer des lecteurs**, sélectionnez un ou plusieurs lecteurs dans la commande de matériel à enregistrer, puis cliquez sur **Enregistrer**.
3. Vous pouvez facultativement choisir un nom pour le lecteur. Si vous avez sélectionné plusieurs lecteurs, le nom sert de préfixe et nous nommons les lecteurs de manière séquentielle (par exemple, pour une entrée donnée «&nbsp;Lecteur de test&nbsp;», nous nommons les lecteurs «&nbsp;Lecteur de test&nbsp;1&nbsp;», «&nbsp;Lecteur de test&nbsp;2&nbsp;», et ainsi de suite).
4. Si vous avez déjà créé un emplacement, sélectionnez le nouvel emplacement du lecteur. Sinon, créez-en un en cliquant sur **+ Ajouter un emplacement**.
5. Cliquez sur **Enregistrer** pour terminer l’enregistrement de vos lecteurs.

#### Pré-enregistrer des lecteurs lors de la commande

Lorsque vous commandez du matériel Terminal, vous pouvez pré-sélectionner un emplacement pour vos lecteurs. Stripe associe automatiquement chaque lecteur à cet emplacement lors de l’exécution de la commande et de l’attribution des numéros de série.

##### Limites

- Chaque commande ne peut préenregistrer des lecteurs que pour un seul emplacement. Pour répartir des lecteurs issus d’une même commande sur plusieurs emplacements, utilisez le numéro de série du lecteur une fois que des numéros de série ont été attribués à la commande.
- Le pré-enregistrement n’est pas pris en charge entre comptes. Les comptes de plateforme ne peuvent pas préenregistrer des lecteurs sur l’emplacement d’un compte connecté.

#### Flux d’enregistrement

1. Sur la page [Lecteurs Terminal](https://dashboard.stripe.com/terminal/readers), cliquez sur **Enregistrer un lecteur**.
2. Saisissez le numéro de commande et cliquez sur **Suivant**. Si la commande contient des lecteurs enregistrables, continuez en cliquant sur **Enregistrer**.
3. Sur la page **Enregistrer des lecteurs**, sélectionnez un ou plusieurs lecteurs dans la commande de matériel à enregistrer, puis cliquez sur **Enregistrer**.
4. Vous pouvez facultativement choisir un nom pour le lecteur. Si vous avez sélectionné plusieurs lecteurs, le nom sert de préfixe et nous nommons les lecteurs de manière séquentielle (par exemple, pour une entrée donnée «&nbsp;Lecteur de test&nbsp;», nous nommons les lecteurs «&nbsp;Lecteur de test&nbsp;1&nbsp;», «&nbsp;Lecteur de test&nbsp;2&nbsp;», et ainsi de suite).
5. Si vous avez déjà créé un emplacement, sélectionnez le nouvel emplacement du lecteur. Sinon, créez-en un en cliquant sur **+ Ajouter un emplacement**.
6. Cliquez sur **Enregistrer** pour terminer l’enregistrement de vos lecteurs.

## Lecteurs mobiles

#### iOS

Enregistrez les lecteurs mobiles ([Stripe Reader M2](https://docs.stripe.com/terminal/readers/stripe-m2.md), [BBPOS Chipper 2X BT](https://docs.stripe.com/terminal/payments/connect-reader.md?reader-type=bluetooth#connect-reader) et [BBPOS WisePad 3](https://docs.stripe.com/terminal/payments/connect-reader.md?reader-type=bluetooth#connect-reader)) à un emplacement lors de la connexion au lecteur en spécifiant le `locationId` dans votre `BluetoothConnectionConfiguration`. Si vous préférez, vous pouvez enregistrer le lecteur sur le dernier emplacement utilisé en passant le `reader.locationId` d’un lecteur découvert.

#### Swift

```swift
// Call `connectReader` with the selected reader and a connection config
// to register to a location as set by your app.
var connectionConfig: BluetoothConnectionConfiguration
do {
    connectionConfig = try BluetoothConnectionConfigurationBuilder(delegate: yourMobileReaderDelegate, locationId: ""{{LOCATION_ID}}"")
    .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)")
    }
}
```

#### Android

Enregistrez les lecteurs mobiles ([Stripe Reader M2](https://docs.stripe.com/terminal/readers/stripe-m2.md), [BBPOS Chipper 2X BT](https://docs.stripe.com/terminal/payments/connect-reader.md?reader-type=bluetooth#connect-reader) et [BBPOS WisePad 3](https://docs.stripe.com/terminal/payments/connect-reader.md?reader-type=bluetooth#connect-reader)) à un emplacement lors de la connexion au lecteur en spécifiant le `locationId` dans votre `BluetoothConnectionConfiguration`. Si vous préférez, vous pouvez enregistrer le lecteur sur le dernier emplacement utilisé en passant le `reader.locationId` d’un lecteur découvert.

#### Kotlin

```kotlin
// Implement your MobileReaderListener
val mobileReaderListener = yourMobileReaderListener
val autoReconnectOnUnexpectedDisconnect = true

val connectionConfig = BluetoothConnectionConfiguration(
    ""{{LOCATION_ID}}"",
    autoReconnectOnUnexpectedDisconnect,
    mobileReaderListener
)

Terminal.getInstance().connectReader(
    selectedReader,
    connectionConfig,
    object : ReaderCallback {
        override fun onSuccess(reader: Reader) {
            // Placeholder for handling successful operation
        }

        override fun onFailure(e: TerminalException) {
            // Placeholder for handling exception
        }
    }
)
```

#### React Native

Enregistrez les lecteurs mobiles ([Stripe Reader&nbsp;M2](https://docs.stripe.com/terminal/readers/stripe-m2.md), [BBPOS Chipper 2X&nbsp;BT](https://docs.stripe.com/terminal/payments/connect-reader.md?reader-type=bluetooth#connect-reader) et [BBPOS WisePad&nbsp;3](https://docs.stripe.com/terminal/payments/connect-reader.md?reader-type=bluetooth#connect-reader)) à un emplacement lors de la connexion au lecteur en précisant le `locationId` dans votre appel à `connectReader`. Si vous préférez, vous pouvez enregistrer le lecteur sur le dernier emplacement utilisé en transmettant le `reader.locationId` à partir d’un lecteur détecté.

```js
const handleConnectBluetoothReader = async (id) => {
  const { reader, error } = await connectReader({
    discoveryMethod: 'bluetoothScan',
    reader: selectedReader,
    locationId: {{LOCATION_ID}},
  });

  if (error) {
    console.log('connectReader error', error);
    return;
  }

  console.log('Reader connected successfully', reader);
};
```
