# Intégration API (/fr/in-store/integration/backend_integration)





Pour que vos commerçants puissent utiliser le Tapaya Accept SDK, votre backend enregistre chaque commerçant et demande
un jeton de connexion de courte durée pour chaque session SDK. Les deux appels utilisent votre Server Secret Token ;
pour en générer un, consultez [l’authentification de la Platform API](/platform-api#authentication).

L’onboarding des commerçants et la récupération des données de paiement fonctionnent de la même manière pour tous les
produits Tapaya et sont documentés dans la section commune « Présentation » : [API d’onboarding des commerçants](/platform-api/merchant_onboarding) et
[Reporting et paiements](/platform-api/reporting).

<Callout title="Routage selon l’environnement" type="info">
  L’Accept SDK route automatiquement les requêtes selon la manière dont il a été initialisé :

  * **Sandbox (par défaut) :** se connecte à l’environnement sandbox à l’adresse `https://api.sandbox.tapaya.com`.
  * **Production :** se connecte à l’environnement de production à l’adresse `https://api.tapaya.com`.
</Callout>

## Authentification des commerçants (intégrations Accept SDK) [#merchant-authentication-accept-sdk-integrations]

<Callout title="Intégrations Accept SDK uniquement" type="info">
  Ignorez cette section si vous pilotez directement l’application **Tapaya Terminal** (intent/deeplink, sans SDK intégré) ;
  le compte connecté à Tapaya Terminal est alors le commerçant officiel (merchant of record), et votre backend
  n’authentifie jamais de session commerçant. Consultez [Intégrer sans le SDK](./card_terminal#integrate-without-the-sdk).
</Callout>

Pour permettre à vos commerçants d’utiliser le Tapaya Accept SDK, vous devez implémenter les endpoints suivants sur votre backend.

<div className="fd-steps [&_h3]:fd-step">
  ### Enregistrer un nouveau commerçant [#register-a-new-merchant]

  Avant de pouvoir utiliser le SDK, un commerçant doit être enregistré dans le système Tapaya. Cela se fait généralement
  lorsqu’un utilisateur s’inscrit à votre service. Vous n’avez besoin d’enregistrer le commerçant qu’une seule fois.
  L’enregistrement peut se faire dans la Tapaya Platform UI ou via l’API.

  **Endpoint :** `POST /merchant/auth/register`

  <CodeBlockTabs defaultValue="curl" groupId="http-client">
    <CodeBlockTabsList>
      <CodeBlockTabsTrigger value="curl">
        cURL
      </CodeBlockTabsTrigger>
    </CodeBlockTabsList>

    <CodeBlockTab value="curl">
      ```bash
      curl -X 'POST' 'https://api.tapaya.com/merchant/auth/register' \
      -H 'Content-Type: application/json' \
      -H 'Authorization: REPLACE_ME' \
      -d '{
              "merchantToken": "unique_merchant_id_from_your_db",
              "merchantName": "Acme Corp",
              "email": "admin@acme.com"
          }'
      ```
    </CodeBlockTab>
  </CodeBlockTabs>

  **Paramètres :**

  | Champ                                                                          | Type     | Obligatoire | Description                                                                                              |
  | ------------------------------------------------------------------------------ | -------- | ----------- | -------------------------------------------------------------------------------------------------------- |
  | `merchantToken`                                                                | `string` |             | Identifiant unique et stable issu de votre système (par exemple, un ID de base de données) qui identifie |
  | le commerçant. S’il n’est pas fourni, un jeton aléatoire est généré pour vous. |          |             |                                                                                                          |
  | `merchantName`                                                                 | `string` |             | Nom lisible permettant d’identifier le commerçant dans le tableau de bord et les rapports. Vaut          |
  | `merchantToken` par défaut s’il n’est pas fourni.                              |          |             |                                                                                                          |
  | `email`                                                                        | `string` | ✓           | E-mail de l’administrateur du commerçant, utilisé pour la connexion et les communications critiques.     |

  **Réponses :**

  | Code  | Description                          |
  | ----- | ------------------------------------ |
  | `200` | Commerçant enregistré avec succès    |
  | `400` | Erreur de validation de la requête   |
  | `401` | Non autorisé                         |
  | `409` | Conflit : commerçant déjà enregistré |

  **Corps de la réponse :**

  ```json
  {
      "merchantToken": "unique_merchant_id_from_your_db"
  }
  ```

  ### Générer un jeton de connexion [#generate-login-token]

  Pour qu’un appareil mobile puisse initialiser le SDK pour un commerçant donné, vous devez générer un jeton de connexion
  de courte durée. Votre application mobile le demande à votre backend, et votre backend le demande à Tapaya. Il vous faut
  un nouveau jeton à chaque [initialisation](./sdk_integration#initialization) du SDK.

  **Endpoint :** `POST /merchant/auth/login`

  <CodeBlockTabs defaultValue="curl" groupId="http-client">
    <CodeBlockTabsList>
      <CodeBlockTabsTrigger value="curl">
        cURL
      </CodeBlockTabsTrigger>
    </CodeBlockTabsList>

    <CodeBlockTab value="curl">
      ```bash
      curl -X 'POST' 'https://api.tapaya.com/merchant/auth/login' \
      -H 'Content-Type: application/json' \
      -H 'Authorization: REPLACE_ME' \
      -d '{
              "merchantToken": "unique_merchant_id_from_your_db",
              "allowOnboarding": true,
              "employeeEmail": "john@acme.com"
          }'
      ```
    </CodeBlockTab>
  </CodeBlockTabs>

  **Paramètres :**

  | Champ                                                                                                                             | Type      | Obligatoire | Description                                                                                                    |
  | --------------------------------------------------------------------------------------------------------------------------------- | --------- | ----------- | -------------------------------------------------------------------------------------------------------------- |
  | `merchantToken`                                                                                                                   | `string`  | ✓           | Identifiant du commerçant chez l’intégrateur, pour lequel le jeton d’authentification sera                     |
  | émis. Identique à celui de `/auth/register`.                                                                                      |           |             |                                                                                                                |
  | `allowOnboarding`                                                                                                                 | `boolean` |             | `true` si l’utilisateur peut consulter et mettre à jour les informations d’onboarding/KYB, activer de nouveaux |
  | moyens de paiement et accepter les CGU au nom du commerçant. Doit valoir `true` lors du premier appel pour permettre au           |           |             |                                                                                                                |
  | commerçant d’activer au moins un moyen de paiement. `false` si l’utilisateur n’a pas accès à l’onboarding et ne peut utiliser que |           |             |                                                                                                                |
  | des moyens de paiement déjà configurés. Vaut `true` par défaut.                                                                   |           |             |                                                                                                                |
  | `employeeEmail`                                                                                                                   | `string`  |             | E-mail de l’employé qui utilise le terminal.                                                                   |

  **Réponses :**

  | Code  | Description                        |
  | ----- | ---------------------------------- |
  | `200` | Commerçant connecté avec succès    |
  | `400` | Erreur de validation de la requête |
  | `401` | Non autorisé                       |
  | `404` | Introuvable                        |

  **Corps de la réponse :**

  ```json
  {
      "token": "EesrFq4PUK1WxHUj93hkrKASDFp8GxJ0"
  }
  ```

  Transmettez ce `token` à votre application mobile pour [initialiser](./sdk_integration#initialization) le SDK. Transférez-le
  de manière sécurisée vers l’application mobile et supprimez-le immédiatement après utilisation. Le jeton est lié au commerçant identifié par
  `merchantToken`.

  <Callout title="Avertissement de sécurité" type="warn">
    Veillez à utiliser le bon `merchantToken` lorsque vous récupérez le jeton du SDK. Le Tapaya SDK utilise ce jeton pour se
    connecter au nom du commerçant, ce qui donne accès à ses données et à ses fonds.
  </Callout>
</div>
