# Integrácia API (/sk/in-store/integration/backend_integration)





Aby vaši obchodníci mohli používať Tapaya Accept SDK, váš backend zaregistruje každého obchodníka a pre každú reláciu SDK
si vyžiada krátkodobý prihlasovací token. Obe volania používajú váš Server Secret Token; ako ho vygenerovať, popisuje
[autentifikácia v Platform API](/platform-api#authentication).

Onboarding obchodníkov a sťahovanie platobných údajov fungujú pre všetky produkty Tapaya rovnako a sú popísané
v zdieľanej sekcii Prehľad: [API na onboarding obchodníkov](/platform-api/merchant_onboarding) a
[Reporting a platby](/platform-api/reporting).

<Callout title="Smerovanie podľa prostredia" type="info">
  Accept SDK automaticky smeruje požiadavky podľa toho, ako bolo inicializované:

  * **Sandbox (predvolené):** Pripája sa k sandboxu na adrese `https://api.sandbox.tapaya.com`.
  * **Produkcia:** Pripája sa k produkčnému prostrediu na adrese `https://api.tapaya.com`.
</Callout>

## Autentifikácia obchodníkov (integrácie cez Accept SDK) [#merchant-authentication-accept-sdk-integrations]

<Callout title="Len pre integrácie cez Accept SDK" type="info">
  Túto sekciu preskočte, ak ovládate aplikáciu **Tapaya Terminal** priamo (intent/deeplink, bez vloženého SDK);
  obchodníkom zodpovedným za transakciu (merchant of record) je potom účet prihlásený v Tapaya Terminal a váš backend
  nikdy neautentifikuje reláciu obchodníka. Pozrite si [Integrácia bez SDK](./card_terminal#integrate-without-the-sdk).
</Callout>

Aby vaši obchodníci mohli používať Tapaya Accept SDK, musíte na svojom backende implementovať nasledujúce endpointy.

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

  Predtým, ako môže obchodník používať SDK, musí byť zaregistrovaný v systéme Tapaya. Zvyčajne sa to robí vtedy, keď sa používateľ
  zaregistruje do vašej služby. Obchodníka stačí zaregistrovať raz. Registráciu môžete vykonať v Tapaya Platform
  UI alebo pomocou 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>

  **Parametre:**

  | Pole                                                       | Typ      | Povinné | Popis                                                                                          |
  | ---------------------------------------------------------- | -------- | ------- | ---------------------------------------------------------------------------------------------- |
  | `merchantToken`                                            | `string` |         | Jedinečný a stály identifikátor z vášho systému (napr. ID v databáze), ktorý identifikuje      |
  | obchodníka. Ak ho neuvediete, vygeneruje sa náhodný token. |          |         |                                                                                                |
  | `merchantName`                                             | `string` |         | Čitateľný názov, podľa ktorého obchodníka spoznáte v dashboarde a reportoch. Ak ho neuvediete, |
  | použije sa `merchantToken`.                                |          |         |                                                                                                |
  | `email`                                                    | `string` | ✓       | E-mail správcu obchodníka, ktorý sa používa na prihlásenie a dôležitú komunikáciu.             |

  **Odpovede:**

  | Kód   | Popis                                    |
  | ----- | ---------------------------------------- |
  | `200` | Obchodník bol úspešne zaregistrovaný     |
  | `400` | Chyba validácie požiadavky               |
  | `401` | Neoprávnený prístup                      |
  | `409` | Konflikt: obchodník je už zaregistrovaný |

  **Telo odpovede:**

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

  ### Vygenerovanie prihlasovacieho tokenu [#generate-login-token]

  Aby mobilné zariadenie mohlo inicializovať SDK pre konkrétneho obchodníka, musíte vygenerovať krátkodobý prihlasovací token.
  Vaša mobilná aplikácia si ho vyžiada od vášho backendu a váš backend si ho vyžiada od Tapaya. Nový token
  potrebujete pri každej [inicializácii](./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>

  **Parametre:**

  | Pole                                                                                                             | Typ       | Povinné | Popis                                                                                                       |
  | ---------------------------------------------------------------------------------------------------------------- | --------- | ------- | ----------------------------------------------------------------------------------------------------------- |
  | `merchantToken`                                                                                                  | `string`  | ✓       | Identifikátor obchodníka u integrátora, pre ktorého bude autentifikačný token                               |
  | vydaný. Rovnaký ako v `/auth/register`.                                                                          |           |         |                                                                                                             |
  | `allowOnboarding`                                                                                                | `boolean` |         | `true`, ak používateľ smie v mene obchodníka zobrazovať a upravovať údaje onboardingu/KYB, registrovať nové |
  | platobné metódy a schvaľovať obchodné podmienky. Pri prvom volaní musí byť `true`, aby obchodník mohol           |           |         |                                                                                                             |
  | zaregistrovať aspoň jednu platobnú metódu. `false`, ak používateľ nemá prístup k onboardingu a môže používať len |           |         |                                                                                                             |
  | už nakonfigurované platobné metódy. Predvolená hodnota je `true`.                                                |           |         |                                                                                                             |
  | `employeeEmail`                                                                                                  | `string`  |         | E-mail zamestnanca, ktorý používa terminál.                                                                 |

  **Odpovede:**

  | Kód   | Popis                            |
  | ----- | -------------------------------- |
  | `200` | Obchodník bol úspešne prihlásený |
  | `400` | Chyba validácie požiadavky       |
  | `401` | Neoprávnený prístup              |
  | `404` | Nenájdené                        |

  **Telo odpovede:**

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

  Odovzdajte tento `token` svojej mobilnej aplikácii, aby mohla SDK [inicializovať](./sdk_integration#initialization). Do mobilnej aplikácie
  ho preneste bezpečne a hneď po použití ho vymažte. Token je viazaný na obchodníka identifikovaného pomocou
  `merchantToken`.

  <Callout title="Bezpečnostné upozornenie" type="warn">
    Pri získavaní tokenu pre SDK sa uistite, že používate správny `merchantToken`. Tapaya SDK tento token používa na prihlásenie
    v mene obchodníka, čím získava prístup k jeho údajom a prostriedkom.
  </Callout>
</div>
