# Integrace API (/cs/in-store/integration/backend_integration)





Aby vaši obchodníci mohli používat Tapaya Accept SDK, váš backend zaregistruje každého obchodníka a pro každou relaci SDK
si vyžádá krátkodobý přihlašovací token. Obě volání používají váš Server Secret Token; jak jej vygenerovat, popisuje
[autentizace v Platform API](/platform-api#authentication).

Onboarding obchodníků a stahování platebních dat fungují pro všechny produkty Tapaya stejně a jsou popsány
ve sdílené sekci Přehled: [API pro onboarding obchodníků](/platform-api/merchant_onboarding) a
[Reporting a platby](/platform-api/reporting).

<Callout title="Směrování podle prostředí" type="info">
  Accept SDK automaticky směruje požadavky podle toho, jak bylo inicializováno:

  * **Sandbox (výchozí):** Připojuje se k sandboxu na adrese `https://api.sandbox.tapaya.com`.
  * **Produkce:** Připojuje se k produkčnímu prostředí na adrese `https://api.tapaya.com`.
</Callout>

## Autentizace obchodníků (integrace přes Accept SDK) [#merchant-authentication-accept-sdk-integrations]

<Callout title="Pouze pro integrace přes Accept SDK" type="info">
  Tuto sekci přeskočte, pokud ovládáte aplikaci **Tapaya Terminal** přímo (intent/deeplink, bez vloženého SDK);
  obchodníkem odpovědným za transakci (merchant of record) je pak účet přihlášený v Tapaya Terminal a váš backend
  nikdy neautentizuje relaci obchodníka. Viz [Integrace bez SDK](./card_terminal#integrate-without-the-sdk).
</Callout>

Aby vaši obchodníci mohli používat Tapaya Accept SDK, musíte na svém backendu implementovat následující endpointy.

<div className="fd-steps [&_h3]:fd-step">
  ### Registrace nového obchodníka [#register-a-new-merchant]

  Než může obchodník používat SDK, musí být zaregistrován v systému Tapaya. Obvykle se to provádí ve chvíli, kdy se uživatel
  zaregistruje do vaší služby. Obchodníka stačí zaregistrovat jednou. Registraci lze provést v Tapaya Platform
  UI nebo pomocí 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>

  **Parametry:**

  | Pole                                                          | Typ      | Povinné | Popis                                                                                          |
  | ------------------------------------------------------------- | -------- | ------- | ---------------------------------------------------------------------------------------------- |
  | `merchantToken`                                               | `string` |         | Jedinečný a stálý identifikátor z vašeho systému (např. ID v databázi), který identifikuje     |
  | obchodníka. Pokud jej neuvedete, vygeneruje se náhodný token. |          |         |                                                                                                |
  | `merchantName`                                                | `string` |         | Čitelný název, podle kterého obchodníka poznáte v dashboardu a reportech. Pokud jej neuvedete, |
  | použije se `merchantToken`.                                   |          |         |                                                                                                |
  | `email`                                                       | `string` | ✓       | E-mail správce obchodníka, používaný pro přihlášení a důležitou komunikaci.                    |

  **Odpovědi:**

  | Kód   | Popis                                    |
  | ----- | ---------------------------------------- |
  | `200` | Obchodník byl úspěšně zaregistrován      |
  | `400` | Chyba validace požadavku                 |
  | `401` | Neoprávněný přístup                      |
  | `409` | Konflikt: obchodník je již zaregistrován |

  **Tělo odpovědi:**

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

  ### Vygenerování přihlašovacího tokenu [#generate-login-token]

  Aby mobilní zařízení mohlo inicializovat SDK pro konkrétního obchodníka, musíte vygenerovat krátkodobý přihlašovací token.
  Vaše mobilní aplikace si jej vyžádá od vašeho backendu a váš backend si jej vyžádá od Tapaya. Nový token
  potřebujete při každé [inicializaci](./sdk_integration#initialization) 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>

  **Parametry:**

  | Pole                                                                                                                  | Typ       | Povinné | Popis                                                                                                   |
  | --------------------------------------------------------------------------------------------------------------------- | --------- | ------- | ------------------------------------------------------------------------------------------------------- |
  | `merchantToken`                                                                                                       | `string`  | ✓       | Identifikátor obchodníka u integrátora, pro kterého bude autentizační token                             |
  | vydán. Stejný jako v `/auth/register`.                                                                                |           |         |                                                                                                         |
  | `allowOnboarding`                                                                                                     | `boolean` |         | `true`, pokud uživatel smí za obchodníka zobrazovat a upravovat údaje onboardingu/KYB, registrovat nové |
  | platební metody a schvalovat obchodní podmínky. Při prvním volání musí být `true`, aby obchodník mohl                 |           |         |                                                                                                         |
  | zaregistrovat alespoň jednu platební metodu. `false`, pokud uživatel nemá přístup k onboardingu a může používat pouze |           |         |                                                                                                         |
  | již nakonfigurované platební metody. Výchozí hodnota je `true`.                                                       |           |         |                                                                                                         |
  | `employeeEmail`                                                                                                       | `string`  |         | E-mail zaměstnance, který používá terminál.                                                             |

  **Odpovědi:**

  | Kód   | Popis                           |
  | ----- | ------------------------------- |
  | `200` | Obchodník byl úspěšně přihlášen |
  | `400` | Chyba validace požadavku        |
  | `401` | Neoprávněný přístup             |
  | `404` | Nenalezeno                      |

  **Tělo odpovědi:**

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

  Předejte tento `token` své mobilní aplikaci, aby mohla SDK [inicializovat](./sdk_integration#initialization). Do mobilní aplikace
  jej přeneste bezpečně a ihned po použití jej smažte. Token je vázán na obchodníka identifikovaného pomocí
  `merchantToken`.

  <Callout title="Bezpečnostní upozornění" type="warn">
    Při získávání tokenu pro SDK se ujistěte, že používáte správný `merchantToken`. Tapaya SDK tento token používá k přihlášení
    jménem obchodníka, čímž získává přístup k jeho datům a prostředkům.
  </Callout>
</div>
