
## WhatsApp objekt
| NÁZEV PARAMETRU | HODNOTA                			                         										           		                                                                      | POVINNÝ  | VÝCHOZÍ HODNOTA |
|:----------------|:------------------------------------------------------------------------------------------------------------------------------------------------|:--------:|:---------------:|
| sender          | Textový odesílatel. Musí být nejdříve registrován. Pro registraci kontaktujte podporu [zde](https://www.bulkgate.com/cs/kontakt/).	                                   | **Ano**	 |        -        |
| expiration      | Časový limit v sekundách, po jehož vypršení bude použit alternativní kanál. Hodnoty nižší než `60` se ignorují a nahradí se výchozí hodnotou                                       							  		 	                                       |    Ne    |     `180`       |
| template 	      | Template objekt. Nemůže být použít současně s následujícími parametry (Message, File, Otp, Location), viz [Template objekt](#template-objekt) 	 |    Ne    |     `null`      |
| message 	       | Message objekt. Nemůže být použít současně s následujícími parametry (Template, File, Otp, Location), viz [Message objekt](#message-objekt)	    |    Ne    |     `null`      |
| file   	        | File objekt. Nemůže být použít současně s následujícími parametry (Template, Message, Otp, Location), viz [File objekt](#file-objekt)         	 |    Ne    |     `null`      |
| otp   	         | Otp objekt. Nemůže být použít současně s následujícími parametry (Template, Message, File, Location), viz [Otp objekt](#otp-objekt)           	 |    Ne    |     `null`      |
| location   	    | Location objekt. Nemůže být použít současně s následujícími parametry (Template, Message, File, Otp), viz [Location objekt](#location-objekt) 	 |    Ne    |     `null`      |


## Template objekt 
| NÁZEV PARAMETRU | HODNOTA                			                         				                     |   POVINNÝ   | VÝCHOZÍ HODNOTA |
|:----------------|:----------------------------------------------------------------------------|:-----------:|:---------------:|
| template        | Název šablony											                                                    |   **Ano**	   |        -        |
| language     	  | Jazyk šablony zadán v ISO formátu                                      				 |   **Ano**   |        -        |
| header 	        | Objekt hlavičky šablony, viz [Hlavička šablony](#template-header-objekt)    | Ne        	 |     `null`      |
| body 		         | Objekt těla šablony, viz [Tělo šablony](#template-body-objekt)	 	           | Ne       	  |     `null`      |
| buttons   	     | Pole objektů tlačítek šablony, viz [Tlačítka](#template-buttons-objekt)     |  Ne      	  |     `null`      |


### Template header objekt
| NÁZEV PARAMETRU | HODNOTA                			                         						                                                   |                            POVINNÝ  									                             | VÝCHOZÍ HODNOTA |
|:----------------|:------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------:|:---------------:|
| type            | Typ hlavičky (`image`, `video`, `text`, `location`)						  			                                              |                             **Ano**									                              |        -        |
| url     	       | Cesta k souboru videa, nebo obrazku (používané s typem `image`, `video`)                                 		 |    **Ano**, ne současně s následujícími typy (`text`, `location`)  		     |        -        |
| caption 	       | Popisek souboru (použivané s typem `image`, `video`)   	 			 				                                           |    **Ano**, ne současně s následujícími typy (`text`, `location`)  		     |        -        |
| text 		         | Text (použití s typem `text`)	 										                                                                   | **Ano**, ne současně s následujícími typy (`url`, `caption`, `location`)	 |        -        |
| location   	    | Objekt lokace (použití s typem `location`), viz [Objekt lokace](#location-objekt)    	                     |  **Ano**, ne současně s následujícími typy (`url`, `text`, `caption`)  	  |        -        |


### Template body objekt 
| NÁZEV PARAMETRU | HODNOTA                			       	        |                         POVINNÝ  								                         | VÝCHOZÍ HODNOTA |
|:----------------|:------------------------------------------|:-----------------------------------------------------------------:|:---------------:|
| type            | Typ těla (`text`, `price`, `currency`) 		 |                            Ne									                            |     `text`      |
| text 		         | Text (použití s typem `text`)	 		         | **Ano**, ne současně s následujícími typy (`amount`, `currency`)	 |        -        |
| amount   	      | Množství			  			                          |      **Ano**, ne současně s následujícími typy (`text`)  			      |        -        |
| currency   	    | Měna					   	                             |      **Ano**, ne současně s následujícími typy (`text`)  			      |        -        |


### Template buttons objekt
| NÁZEV PARAMETRU | HODNOTA                			       	            |                 POVINNÝ  					                 | VÝCHOZÍ HODNOTA |
|:----------------|:----------------------------------------------|:----------------------------------------------:|:---------------:|
| type            | Typ tlačítka (`payload`, `url`) 			           |                 **Ano**					                  |        -        |
| index 	         | Index definovaného tlačítka 			               |                  **Ano**					                  |        -        |
| payload   	     | Meta data zaslaná při kliknutí na tlačítko 		 | **Ano**, pouze při použití s `payload` typem 	 |        -        |
| text   	        | Url na které bude přijemne přesměrován		      |  **Ano**, pouze při použití s `url` typem  	   |        -        |


**Příklad požadavku template objektu:**
```http-json
POST /api/2.0/advanced/transactional HTTP/1.1
Host: portal.bulkgate.com
Content-Type: application/json

{
	"application_id": 451,
	"application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
	"number": [
		"420777777777"
	],
	"channel": {
		"whatsapp": {
			"sender": "420777777777",
			"template": {
				"template": "order_shipped",
				"language": "en",
				"header": {
					"type": "image",
					"url": "https://example.com/order-header.jpg",
					"caption": "Order 4517"
				},
				"body": [
					{
						"type": "text",
						"text": "John"
					},
					{
						"type": "currency",
						"amount": 20.5,
						"currency": "EUR"
					}
				],
				"buttons": [
					{
						"type": "url",
						"index": 1,
						"text": "4517"
					}
				]
			}
		}
	}
}
```

### Příklad Template objektu
![File Object](docs:advanced-whatsapp/whatsapp_template_example)


## Message objekt
| NÁZEV PARAMETRU | HODNOTA                			       	 | POVINNÝ  	 | VÝCHOZÍ HODNOTA |
|:----------------|:-----------------------------------|:----------:|:---------------:|
| text            | Text zprávy 					                  |  **Ano**	  |       - 	       |
| preview_url 	   | Náhled stránky ve zprávě		 		      |    Ne		    |     `true`      |


**Příklad message objektu:**
```http-json
POST /api/2.0/advanced/transactional HTTP/1.1
Host: portal.bulkgate.com
Content-Type: application/json

{
	"application_id": 451,
	"application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
	"number": [
		"420777777777"
	],
	"channel": {
		"whatsapp": {
			"sender": "420777777777",
			"message": {
				"text": "Your order 4517 has been shipped. Track it at https://example.com/track/4517",
				"preview_url": true
			}
		}
	}
}
```


## File objekt 
| NÁZEV PARAMETRU | HODNOTA                			       			                            | POVINNÝ  	 | VÝCHOZÍ HODNOTA |
|:----------------|:----------------------------------------------------------------|:----------:|:---------------:|
| type            | Typ souboru (`image`, `video`, `audio`, `document`, `sticker`)	 |    Ne		    |   `image`  	    |
| url 	  	        | Cesta k souboru		 					                                         |  **Ano**	  |      -  	       |
| caption 	       | Popisek souboru	 						                                         |    Ne		    |       ""        |


**Příklad požadavku File objektu:**
```http-json
POST /api/2.0/advanced/transactional HTTP/1.1
Host: portal.bulkgate.com
Content-Type: application/json

{
	"application_id": 451,
	"application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
	"number": [
		"420777777777"
	],
	"channel": {
		"whatsapp": {
			"sender": "420777777777",
			"file": {
				"type": "document",
				"url": "https://example.com/invoice-4517.pdf",
				"caption": "Invoice for order 4517"
			}
		}
	}
}
```

### Příklad File objektu
![File Object](docs:advanced-whatsapp/whatsapp_file_example)


## Otp objekt
| NÁZEV PARAMETRU | HODNOTA                			   								  	                                                                       | POVINNÝ  	 | VÝCHOZÍ HODNOTA |
|:----------------|:---------------------------------------------------------------------------------------------------------------|:----------:|:---------------:|
| template        | Šablona textové zprávy obsahující kód										                                                                |  **Ano**	  |       	-	       |
| code 	  	       | Jednorázový kód		 											                                                                                  |  **Ano**	  |      -  	       |
| language 	      | Jazyk který má být použitý při odelání kódu	(pokud je nastaven null jazyk bude detekován z telefonního čísla)	 |  **Ano**	  |        -        |


**Příklad of Otp objektu:**
```http-json
POST /api/2.0/advanced/transactional HTTP/1.1
Host: portal.bulkgate.com
Content-Type: application/json

{
	"application_id": 451,
	"application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
	"number": [
		"420777777777"
	],
	"channel": {
		"whatsapp": {
			"sender": "420777777777",
			"otp": {
				"template": "verification_code",
				"language": "en",
				"code": "0451"
			}
		}
	}
}
```


## Location objekt
| NÁZEV PARAMETRU 	 | HODNOTA              				                   | POVINNÝ  	 | VÝCHOZÍ HODNOTA |
|:------------------|:--------------------------------------------|:----------:|:---------------:|
| latitude      	   | Zeměpisná šířka ve formě desetinného čísla	 |    Ne	     |       	-	       |
| longitude		       | Zeměpisná výška ve formě desetinného čísla	 |    Ne	     |      -  	       |
| name			           | Jméno lokace					                           |    Ne	     |        -        |
| address 		        | Adresa lokace					                          |    Ne	     |        -        |


**Příklad požadavku Location objektu:**
```http-json
POST /api/2.0/advanced/transactional HTTP/1.1
Host: portal.bulkgate.com
Content-Type: application/json

{
	"application_id": 451,
	"application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
	"number": [
		"420777777777"
	],
	"channel": {
		"whatsapp": {
			"sender": "420777777777",
			"location": {
				"latitude": 50.086584,
				"longitude": 14.410763,
				"name": "Pick-up point",
				"address": "Karluv most, Praha"
			}
		}
	}
}
```


### Příklad Location objektu
![File Object](docs:advanced-whatsapp/whatsapp_location_example)

## Příklad kompletního requestu

Schválená šablona s hlavičkou, parametry těla a URL tlačítkem, SMS jako záchrana. WhatsApp větev text na nejvyšší úrovni ignoruje, ten je tam pro SMS větev.

```http-json
POST /api/2.0/advanced/transactional HTTP/1.1
Host: portal.bulkgate.com
Content-Type: application/json

{
	"application_id": 451,
	"application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
	"number": ["420777777777"],
	"text": "Your order 4517 has been shipped.",
	"channel": {
		"whatsapp": {
			"sender": "420777777777",
			"expiration": 300,
			"template": {
				"template": "order_shipped",
				"language": "en",
				"header": {
					"type": "image",
					"url": "https://example.com/order-header.jpg",
					"caption": "Order 4517"
				},
				"body": [
					{"type": "text", "text": "John"},
					{"type": "currency", "amount": 20.5, "currency": "EUR"}
				],
				"buttons": [
					{"type": "url", "index": 1, "text": "4517"}
				]
			}
		},
		"sms": {
			"sender_id": "gText",
			"sender_id_value": "BulkGate"
		}
	}
}
```

Tatáž zpráva jako volný text. Ten jde použít jen uvnitř 24hodinového servisního okna; mimo něj je potřeba šablona.

```http-json
POST /api/2.0/advanced/transactional HTTP/1.1
Host: portal.bulkgate.com
Content-Type: application/json

{
	"application_id": 451,
	"application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
	"number": ["420777777777"],
	"text": "Your order 4517 has been shipped.",
	"channel": {
		"whatsapp": {
			"sender": "420777777777",
			"message": {
				"text": "Your order 4517 has been shipped. Track it at https://example.com/track/4517",
				"preview_url": true
			}
		},
		"sms": {
			"sender_id": "gText",
			"sender_id_value": "BulkGate"
		}
	}
}
```

Odpověď je pro všechny kanály stejná - viz [Advanced transactional](https://www.bulkgate.com/cs/dokumentace/advanced-api/advanced-transactional/2.0/).
