Každá zpráva odeslaná přes BulkGate dostane vlastní `ID zprávy`. Je to jediný údaj, podle kterého dohledáme jednu konkrétní zprávu — v portálu, v odpovědi API i u doručovatele. Dřív se mu říkalo `SMS ID`; jde o tutéž hodnotu, jen se mezitím přejmenovala, protože už dávno neposíláme jen SMS.

## Co je ID zprávy

`ID zprávy` je textový identifikátor jedné zprávy jednomu příjemci.

- **Přiděluje ho BulkGate automaticky** ve chvíli, kdy zprávu přijme. Nedá se zvolit ani zpětně změnit.
- **Platí pro jednu zprávu jednomu číslu.** Odeslání [kampaně](https://www.bulkgate.com/cs/centrum-napovedy/kampan/vytvareni-sms-kampane/) na tisíc čísel vytvoří tisíc různých `ID zprávy`, ne jedno společné.
- **Jeho podoba se liší** podle toho, kterým rozhraním zprávu pošlete. Berte ho jako neprůhledný řetězec — neodvozujte z něj datum, kanál ani nic jiného a nepokoušejte se ho skládat sami.

> [!TIP]
> Pokud potřebujete zprávy označit vlastní hodnotou, kterou si zvolíte sami — číslem objednávky, ID zákazníka — slouží k tomu `Štítek (TAG)`, ne `ID zprávy`. Rozdíl popisuje [Čím se liší od ostatních identifikátorů](#cim-se-lisi-od-ostatnich-identifikatoru).

## Proč se dřív jmenovalo SMS ID

Název `SMS ID` je z doby, kdy BulkGate posílal jen SMS. Dnes stejnou cestou jdou i Viber, WhatsApp a RCS, takže se identifikátor jmenuje `ID zprávy` — v portálu i v novějších rozhraních.

Starší API ale svoje pole nepřejmenovala, aby nerozbila existující integrace:

| Kde | Jak se pole jmenuje |
|:--|:--|
| Portál | `ID zprávy` |
| Simple API, Advanced API verze `1.0` | `sms_id` |
| Advanced API verze `2.0`, Integration API, jednorázová hesla | `message_id` |
| Potvrzení o doručení (webhook) | `smsID` |

Ve všech případech jde o **stejnou hodnotu**. Když tedy vezmete `sms_id` z odpovědi Simple API a vyhledáte ho v historii pod `ID zprávy`, najdete tutéž zprávu.

## Kde ID najdu v portálu

1. V menu klikněte na `Reporty`
2. Klikněte na `Historie`
3. Klikněte na řádek zprávy — rozbalí se detail
4. Vpravo v detailu je `ID zprávy`; kliknutím se označí celé a dá se zkopírovat

Opačně to jde taky: když `ID zprávy` už máte a chcete k němu dohledat zprávu, otevřete `Filtr` nad tabulkou a vložte hodnotu do pole `ID zprávy`. Stejnou hodnotu obsahuje i export historie do `CSV`.

Co všechno historie ukazuje a jak se v ní filtruje, popisuje [Historie](https://www.bulkgate.com/cs/centrum-napovedy/report/historie/).

> [!IMPORTANT]
> Text zprávy se v historii neuchovává natrvalo — u starších záznamů se místo něj zobrazí `Platnost textu této zprávy vypršela`. `ID zprávy` a ostatní údaje zůstávají.

## Kde ID najdu v odpovědi API

Rozhraní vrací `ID zprávy` hned v odpovědi na odeslání — je to jediná chvíle, kdy ho dostanete programově, takže si ho uložte už v tomto kroku.

| Rozhraní | Jak se pole jmenuje |
|:--|:--|
| [Simple API](https://www.bulkgate.com/cs/dokumentace/simple-api/simple-transactional/) | `sms_id` |
| [Advanced API `1.0`](https://www.bulkgate.com/cs/dokumentace/advanced-api/advanced-transactional/1.0/) | `sms_id` |
| [Advanced API `2.0`](https://www.bulkgate.com/cs/dokumentace/advanced-api/advanced-transactional/2.0/) | `message_id` |
| [Integration API](https://www.bulkgate.com/cs/dokumentace/integration-api/integration-transactional/) | `message_id` |
| [Jednorázová hesla](https://www.bulkgate.com/cs/dokumentace/otp-api/odeslani-jednorazoveho-hesla/) | `message_id` |

Vedle něj vrací každé z nich ještě pole `part_id` — popisuje ho [Co je part_id](#co-je-part-id).

U hromadného odeslání obsahuje odpověď pole `response` se záznamem pro každého příjemce zvlášť. `ID zprávy` je v takovém případě zakončené pořadovým číslem zprávy v dávce:

```json
{
    "data": {
        "response": [
            {
                "status": "accepted",
                "message_id": "transactional-64afe5f28ffc2-0",
                "part_id": ["transactional-64afe5f28ffc2-0"],
                "number": "420777777777",
                "channel": "sms"
            },
            {
                "status": "accepted",
                "message_id": "transactional-64afe5f28ffc2-1",
                "part_id": ["transactional-64afe5f28ffc2-1"],
                "number": "420777777778",
                "channel": "sms"
            }
        ]
    }
}
```

## Co je part_id

Dlouhá SMS se do sítě operátora nepředává vcelku — rozdělí se na několik samostatných zpráv, které telefon příjemce zase složí dohromady. Každá taková část má vlastní ID a `part_id` je jejich seznam. Kdy a proč se zpráva dělí, popisuje [Zřetězení zpráv](https://www.bulkgate.com/cs/centrum-napovedy/sms/zretezeni-zprav/).

Pole se řídí třemi pravidly:

- **Poslední prvek je vždy shodný s `ID zprávy`** — je bez přípony.
- **Předchozí části mají příponu `_1`, `_2`** a tak dál, podle pořadí, ve kterém se zpráva skládá.
- **Zpráva, která se nerozdělila, má v `part_id` jediný prvek** totožný s `ID zprávy`. Týká se to každé jednodílné SMS a také všech zpráv na Viberu, WhatsAppu a RCS — ty se na části nedělí nikdy.

Odpověď u SMS rozdělené na tři části tedy vypadá takto:

```json
{
    "data": {
        "status": "accepted",
        "sms_id": "tmpde1bcd4b1d1",
        "part_id": [
            "tmpde1bcd4b1d1_1",
            "tmpde1bcd4b1d1_2",
            "tmpde1bcd4b1d1"
        ],
        "number": "420777777777"
    }
}
```

> [!IMPORTANT]
> Každá část se účtuje jako samostatná SMS. Počet prvků v `part_id` je proto zároveň počet zpráv, které zaplatíte — v příkladu výše tři, přestože jste odeslali jednu.

> [!TIP]
> Na párování odpovědí a doručenek vám stačí `ID zprávy`. `part_id` se hodí, když chcete hned při odeslání vědět, na kolik částí se zpráva rozpadla — bez čekání na to, až se objeví v historii.

## Kde ID najdu ve webhooku

Potvrzení o doručení dorazí na adresu, kterou si nastavíte, a `ID zprávy` je v něm v parametru `smsID`. Podle něj potvrzení spárujete se zprávou, kterou jste odeslali.

- **Jednotlivě** dorazí požadavek metodou `GET`, hodnoty jsou v query stringu — viz [Potvrzení o doručení](https://www.bulkgate.com/cs/dokumentace/api-administrace-a-tokeny/api-potvrzeni-o-doruceni-a-prichozich-zpravach/).
- **Hromadně** dorazí jeden požadavek metodou `POST` s polem záznamů ve formátu `JSON` — viz [Hromadné potvrzení o doručení](https://www.bulkgate.com/cs/dokumentace/api-administrace-a-tokeny/api-hromadne-potvrzeni-o-doruceni-a-prichozich-zpravach/).

Kde se adresa pro doručenky nastavuje, popisují [Webhooky](https://www.bulkgate.com/cs/dokumentace/api-administrace-a-tokeny/webhooky/).

> [!NOTE]
> Na jednu zprávu může dorazit víc potvrzení se stejným `smsID` — stav `2` znamená, že zpráva čeká u operátora a výsledek dorazí později. Počítejte s tím, že tutéž hodnotu uvidíte opakovaně.

> [!WARNING]
> Příchozí zprávy a odpovědi, které poznáte podle `status` s hodnotou `10`, parametr `smsID` neobsahují. Nejde o doručenku k vaší odeslané zprávě, ale o novou zprávu od příjemce.

## K čemu ID zprávy slouží

- **Nahlášení problému s doručením.** Bez `ID zprávy` konkrétní zprávu u doručovatele nedohledáme. Celý postup popisuje [Zpráva nebyla doručena](https://www.bulkgate.com/cs/centrum-napovedy/obecne-informace/zprava-nebyla-dorucena/) — do jednoho hlášení můžete vložit až tři různá `ID zprávy`.
- **Párování ve vlastním systému.** Uložte si `ID zprávy` z odpovědi API k objednávce nebo zákazníkovi a přicházející potvrzení o doručení k nim přiřadíte podle parametru `smsID`.
- **Dohledání zprávy v historii.** `ID zprávy` je jediný filtr, který vede přesně na jednu zprávu; podle čísla nebo kampaně jich najdete víc.

## Čím se liší od ostatních identifikátorů

V detailu zprávy v historii vidíte vedle `ID zprávy` ještě další identifikátory. Pletou se snadno, přitom každý odpovídá na jinou otázku:

| Identifikátor | Co identifikuje | Kdo ho určuje |
|:--|:--|:--|
| `ID zprávy` | Jednu zprávu jednomu příjemci | BulkGate |
| `ID Kampaně` | Celou [kampaň](https://www.bulkgate.com/cs/centrum-napovedy/kampan/vytvareni-sms-kampane/), tedy všechny zprávy odeslané společně | BulkGate |
| `Štítek (TAG)` | Cokoli, co si označíte sami — objednávku, zákazníka, běh skriptu | Vy |
| `Application ID` | [Aplikaci](https://www.bulkgate.com/cs/dokumentace/api-administrace-a-tokeny/api-tokeny/), ze které zpráva odešla | BulkGate |

> [!TIP]
> `Štítek (TAG)` je jediný z nich, který si nastavíte sami. Když ho u odesílání vyplníte, můžete podle něj později filtrovat historii i bez znalosti `ID zprávy` — hodí se, když potřebujete najít všechny zprávy k jedné objednávce.
