Duplicitná správa je druhá a každá ďalšia správa s rovnakým textom pre rovnaké číslo. Vzniká málokedy úmyselne — skôr opakovaným volaním API po vypršaní timeoutu, dvojitým kliknutím na tlačidlo alebo tým, že sa jedno číslo dostane do zoznamu príjemcov niekoľkokrát. BulkGate má proti tomu ochranu, ale [transakčná a propagačná cesta](https://www.bulkgate.com/sk/centrum-pomoci/vseobecne-informacie/rozdiel-propagacna-transakcna-sprava/) ju riešia každá inak.

## Čím sa obe ochrany líšia

|                  | Transakčná správa                          | Propagačná správa                      |
|:-----------------|:-------------------------------------------|:---------------------------------------|
| Čo stráži        | opakovanie tej istej správy v čase         | duplicitných príjemcov v jednom zozname |
| Dosah            | naprieč požiadavkami, okno 5 minút         | iba v rámci jednej požiadavky          |
| Predvolený stav  | vypnuté                                    | vypnuté                                |
| Ako sa to prejaví| správa skončí chybou `duplicity_message`   | príjemca zo zoznamu potichu zmizne     |

## Transakčné správy: opakovanie tej istej správy v čase

Zapnete ju parametrom `duplicates_check` v [transakčnom](https://www.bulkgate.com/sk/dokumentacia/advanced-api/advanced-transactional/2.0/) alebo [jednoduchom transakčnom](https://www.bulkgate.com/sk/dokumentacia/simple-api/simple-transactional/) API. Prijíma hodnoty `on` a `off` (rozumie aj `true`/`false`, `1`/`0`, `yes`/`no`), predvolená je `off`.

Keď je zapnutá, BulkGate si pri každej odoslanej správe zapamätá kombináciu:

| Súčasť odtlačku   | Poznámka                                                                     |
|:------------------|:-----------------------------------------------------------------------------|
| Účet              | platí naprieč všetkými aplikáciami (`application_id`) pod jednou peňaženkou  |
| Kanál             | rovnaký text cez SMS a cez Viber sú dve rôzne správy                         |
| Telefónne číslo   | v medzinárodnom formáte                                                      |
| Text správy       | musí sedieť znak po znaku — iné meno, čas alebo kód znamená inú správu       |

Ak do piatich minút príde správa s rovnakým odtlačkom, BulkGate ju zahodí a k operátorovi vôbec neodíde.

> [!IMPORTANT]
> Okno piatich minút beží od **prvej** správy a zahodené pokusy ho nepredlžujú. Po jeho vypršaní rovnaká správa prejde znova.

Pri kaskádovej správe sa do odtlačku započítava hlavný text kaskády, nie texty jednotlivých kanálov.

### Čo uvidíte v odpovedi

- **Jedna správa** — API vráti chybu typu `duplicity_message` s kódom `400`. Prehľad nájdete medzi [typmi chýb](https://www.bulkgate.com/sk/dokumentacia/api-administracia-a-tokeny/typy-chyb-api/).
- **Hromadná transakčná správa** — zahodená správa dostane stav `duplicity_message` a započíta sa do `total.status.duplicity_message`. Ostatní príjemcovia dávky sa odošlú normálne.

> [!CAUTION]
> Pri jednorazových heslách ochranu zvážte. Ak sa kód s každým pokusom mení, neuplatní sa vôbec. Ak posielate nemenný text, druhé odoslanie do piatich minút zahodíte — a používateľ, ktorý stlačil „Poslať znova“, nedostane žiadnu správu.

## Propagačné správy: duplicitní príjemcovia v jednej dávke

Na propagačnej ceste sa medzi požiadavkami nič nepamätá. BulkGate iba pred odoslaním prejde zoznam príjemcov zostavený z jednej požiadavky a ponechá v ňom prvý výskyt. Parameter `duplicates_check` v [propagačnom](https://www.bulkgate.com/sk/dokumentacia/advanced-api/advanced-promotional/2.0/) alebo [jednoduchom propagačnom](https://www.bulkgate.com/sk/dokumentacia/simple-api/simple-promotional/) API má tri hodnoty:

| Hodnota        | Čo vyradí                                              |
|:---------------|:-------------------------------------------------------|
| `same_text`    | opakovanie rovnakej správy tomu istému číslu           |
| `same_number`  | akúkoľvek ďalšiu správu tomu istému číslu, aj s iným textom |
| nevyplnené     | nič — odošle sa zoznam tak, ako ste ho poslali         |

> [!NOTE]
> Odstránenie prebehne potichu — v odpovedi nie je žiadny stav ani počítadlo duplicít. Jedinou stopou je nižší počet príjemcov, než koľko ste ich poslali. Ak po vyradení nezostane nikto, požiadavka skončí chybou `no_recipients`.

Dve požiadavky po sebe sa navzájom nevidia. Keď rovnakého príjemcu pošlete v dvoch dávkach, odídu obe správy.

## Kampane v portáli

[Kampaň](https://www.bulkgate.com/sk/centrum-pomoci/kampan/kampane/) ide propagačnou cestou a kontrolu duplicít vykoná sama — po zostavení zoznamu príjemcov vám ukáže, koľko ich našla, pod hlavičkou **Upozornenie na duplicitné správy**:

- **Rovnaké číslo aj text** — kampaň ich odstráni vždy a bez pýtania, voľba tu nie je.
- **Rovnaké číslo, iný text** — rozhodnete sa sami. Zaškrtnutím **Odstrániť duplicitných príjemcov** dostane každé číslo iba jednu správu; bez zaškrtnutia odídu všetky.

Pri kampani s A/B testom sa duplicitní príjemcovia vyraďujú vždy, inak by jeden človek dostal viac testovaných variantov a výsledok testu by neplatil.

## Na čo si dať pozor

- **Rovnaký parameter, iný význam.** Na transakčnej ceste je `duplicates_check` vypínač a chráni naprieč požiadavkami v čase, na propagačnej je to voľba spôsobu a platí iba v rámci jednej požiadavky.
- **Zdieľaný účet znamená zdieľané okno.** Niekoľko integrácií pod jednou peňaženkou si môže navzájom zahadzovať správy, ak posielajú rovnaké texty na rovnaké čísla.
- **Zahodená správa sa neodosiela**, takže sa ani nedoručí, ani nezapíše medzi odoslané.
- **Počty si overte v odpovedi.** Na propagačnej ceste sa odstránenie nikde nehlási — kto porovnáva doručenie so vstupným zoznamom, musí s rozdielom počítať.
