# API-Integration (/de/in-store/integration/backend_integration)





Damit Ihre Händler das Tapaya Accept SDK nutzen können, registriert Ihr Backend jeden Händler und fordert für jede
SDK-Session ein kurzlebiges Login-Token an. Beide Aufrufe verwenden Ihr Server Secret Token; wie Sie eines erzeugen,
beschreibt die [Authentifizierung der Platform API](/platform-api#authentication).

Das Onboarding von Händlern und das Abrufen von Zahlungsdaten funktionieren für alle Tapaya-Produkte gleich und sind
im gemeinsamen Bereich „Übersicht“ dokumentiert: [Merchant Onboarding API](/platform-api/merchant_onboarding) und
[Reporting und Zahlungen](/platform-api/reporting).

<Callout title="Routing nach Umgebung" type="info">
  Das Accept SDK leitet Anfragen automatisch weiter, je nachdem, wie es initialisiert wurde:

  * **Sandbox (Standard):** Verbindet sich mit der Sandbox-Umgebung unter `https://api.sandbox.tapaya.com`.
  * **Produktion:** Verbindet sich mit der Produktionsumgebung unter `https://api.tapaya.com`.
</Callout>

## Händler-Authentifizierung (Accept-SDK-Integrationen) [#merchant-authentication-accept-sdk-integrations]

<Callout title="Nur für Accept-SDK-Integrationen" type="info">
  Überspringen Sie diesen Abschnitt, wenn Sie die App **Tapaya Terminal** direkt steuern (Intent/Deeplink, ohne eingebettetes SDK);
  dann ist das in Tapaya Terminal angemeldete Konto der Merchant of Record (für die Transaktion verantwortlicher Händler),
  und Ihr Backend authentifiziert nie eine Händler-Session. Siehe [Integration ohne SDK](./card_terminal#integrate-without-the-sdk).
</Callout>

Damit Ihre Händler das Tapaya Accept SDK nutzen können, müssen Sie in Ihrem Backend die folgenden Endpoints implementieren.

<div className="fd-steps [&_h3]:fd-step">
  ### Neuen Händler registrieren [#register-a-new-merchant]

  Bevor ein Händler das SDK nutzen kann, muss er im Tapaya-System registriert sein. Das geschieht in der Regel, wenn sich ein Nutzer
  für Ihren Dienst registriert. Sie müssen den Händler nur einmal registrieren. Die Registrierung ist in der Tapaya Platform
  UI oder über die API möglich.

  **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>

  **Parameter:**

  | Feld                                                                                      | Typ      | Erforderlich | Beschreibung                                                                                   |
  | ----------------------------------------------------------------------------------------- | -------- | ------------ | ---------------------------------------------------------------------------------------------- |
  | `merchantToken`                                                                           | `string` |              | Eine eindeutige, stabile Kennung aus Ihrem System (z. B. eine Datenbank-ID), die den           |
  | Händler identifiziert. Wenn Sie keine angeben, wird ein zufälliges Token für Sie erzeugt. |          |              |                                                                                                |
  | `merchantName`                                                                            | `string` |              | Lesbarer Name, an dem Sie den Händler im Dashboard und in Berichten erkennen. Ohne Angabe wird |
  | `merchantToken` verwendet.                                                                |          |              |                                                                                                |
  | `email`                                                                                   | `string` | ✓            | Admin-E-Mail-Adresse des Händlers, verwendet für die Anmeldung und wichtige Mitteilungen.      |

  **Antworten:**

  | Code  | Beschreibung                          |
  | ----- | ------------------------------------- |
  | `200` | Händler erfolgreich registriert       |
  | `400` | Validierungsfehler der Anfrage        |
  | `401` | Nicht autorisiert                     |
  | `409` | Konflikt: Händler bereits registriert |

  **Antwort-Body:**

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

  ### Login-Token erzeugen [#generate-login-token]

  Damit ein Mobilgerät das SDK für einen bestimmten Händler initialisieren kann, müssen Sie ein kurzlebiges Login-Token erzeugen.
  Ihre mobile App fordert es bei Ihrem Backend an, und Ihr Backend fordert es bei Tapaya an. Bei jeder
  [Initialisierung](./sdk_integration#initialization) des SDK benötigen Sie ein neues Token.

  **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>

  **Parameter:**

  | Feld                                                                                                                              | Typ       | Erforderlich | Beschreibung                                                                                           |
  | --------------------------------------------------------------------------------------------------------------------------------- | --------- | ------------ | ------------------------------------------------------------------------------------------------------ |
  | `merchantToken`                                                                                                                   | `string`  | ✓            | Händlerkennung des Integrators, für die das Authentifizierungstoken                                    |
  | ausgestellt wird. Dieselbe wie in `/auth/register`.                                                                               |           |              |                                                                                                        |
  | `allowOnboarding`                                                                                                                 | `boolean` |              | `true`, wenn der Nutzer im Namen des Händlers Onboarding-/KYB-Angaben einsehen und aktualisieren, neue |
  | Zahlungsmethoden registrieren und die AGB akzeptieren darf. Muss beim ersten Aufruf `true` sein, damit der                        |           |              |                                                                                                        |
  | Händler mindestens eine Zahlungsmethode registrieren kann. `false`, wenn der Nutzer keinen Zugriff auf das Onboarding hat und nur |           |              |                                                                                                        |
  | bereits konfigurierte Zahlungsmethoden verwenden kann. Ohne Angabe gilt `true`.                                                   |           |              |                                                                                                        |
  | `employeeEmail`                                                                                                                   | `string`  |              | E-Mail-Adresse des Mitarbeiters, der das Terminal verwendet.                                           |

  **Antworten:**

  | Code  | Beschreibung                   |
  | ----- | ------------------------------ |
  | `200` | Händler erfolgreich angemeldet |
  | `400` | Validierungsfehler der Anfrage |
  | `401` | Nicht autorisiert              |
  | `404` | Nicht gefunden                 |

  **Antwort-Body:**

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

  Übergeben Sie dieses `token` an Ihre mobile App, um das SDK zu [initialisieren](./sdk_integration#initialization). Übertragen Sie
  es sicher an die mobile App und löschen Sie es unmittelbar nach der Verwendung. Das Token ist an den Händler gebunden, der durch
  `merchantToken` identifiziert wird.

  <Callout title="Sicherheitswarnung" type="warn">
    Achten Sie darauf, beim Abrufen des SDK-Tokens das richtige `merchantToken` zu verwenden. Das Tapaya SDK verwendet dieses Token, um sich
    im Namen des Händlers anzumelden, und erhält damit Zugriff auf dessen Daten und Gelder.
  </Callout>
</div>
