
## WhatsApp objekt
| NÁZOV PARAMETRA | HODNOTA                                                                                                                                          | POVINNÝ  | PREDVOLENÁ HODNOTA |
|:----------------|:------------------------------------------------------------------------------------------------------------------------------------------------|:--------:|:---------------:|
| sender          | Textový odosielateľ. Musí byť najprv zaregistrovaný. Pre registráciu kontaktujte podporu [tu](https://www.bulkgate.com/sk/kontakt/).                             | **Áno**	 |        -        |
| expiration      | Časový limit v sekundách, po ktorého uplynutí sa použije alternatívny kanál. Hodnoty nižšie ako `60` sa ignorujú a nahradia sa predvolenou hodnotou |   Nie    |     `180`       |
| template 	      | Template objekt. Nemôže byť použitý súčasne s nasledujúcimi parametrami (Message, File, Otp, Location), pozrite [Template objekt](#template-objekt) 	 |   Nie    |     `null`      |
| message 	       | Message objekt. Nemôže byť použitý súčasne s nasledujúcimi parametrami (Template, File, Otp, Location), pozrite [Message objekt](#message-objekt)	    |   Nie    |     `null`      |
| file   	        | File objekt. Nemôže byť použitý súčasne s nasledujúcimi parametrami (Template, Message, Otp, Location), pozrite [File objekt](#file-objekt)         	 |   Nie    |     `null`      |
| otp   	         | Otp objekt. Nemôže byť použitý súčasne s nasledujúcimi parametrami (Template, Message, File, Location), pozrite [Otp objekt](#otp-objekt)           	 |   Nie    |     `null`      |
| location   	    | Location objekt. Nemôže byť použitý súčasne s nasledujúcimi parametrami (Template, Message, File, Otp), pozrite [Location objekt](#location-objekt) 	 |   Nie    |     `null`      |


## Template objekt 
| NÁZOV PARAMETRA | HODNOTA                                                                     |   POVINNÝ   | PREDVOLENÁ HODNOTA |
|:----------------|:----------------------------------------------------------------------------|:-----------:|:---------------:|
| template        | Názov šablóny                                                               |   **Áno**	   |        -        |
| language     	  | Jazyk šablóny zadaný vo formáte ISO                                         |   **Áno**   |        -        |
| header 	        | Objekt hlavičky šablóny, pozrite [Hlavička šablóny](#template-header-objekt) | Nie       	 |     `null`      |
| body 		         | Objekt tela šablóny, pozrite [Telo šablóny](#template-body-objekt)	 	        | Nie      	  |     `null`      |
| buttons   	     | Pole objektov tlačidiel šablóny, pozrite [Tlačidlá](#template-buttons-objekt) |  Nie     	  |     `null`      |


### Template header objekt
| NÁZOV PARAMETRA | HODNOTA                                                                                                     |                                  POVINNÝ                                  | PREDVOLENÁ HODNOTA |
|:----------------|:------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------:|:---------------:|
| type            | Typ hlavičky (`image`, `video`, `text`, `location`)                                                         |                                  **Áno**                                  |        -        |
| url     	       | Cesta k súboru videa alebo obrázka (používa sa s typom `image`, `video`)                                     |    **Áno**, nie súčasne s nasledujúcimi typmi (`text`, `location`)  		     |        -        |
| caption 	       | Popis súboru (používa sa s typom `image`, `video`)                                                          |    **Áno**, nie súčasne s nasledujúcimi typmi (`text`, `location`)  		     |        -        |
| text 		         | Text (použitie s typom `text`)                                                                               | **Áno**, nie súčasne s nasledujúcimi typmi (`url`, `caption`, `location`)	 |        -        |
| location   	    | Objekt lokácie (použitie s typom `location`), pozrite [Objekt lokácie](#location-objekt)                     |  **Áno**, nie súčasne s nasledujúcimi typmi (`url`, `text`, `caption`)  	  |        -        |


### Template body objekt 
| NÁZOV PARAMETRA | HODNOTA                                   |                              POVINNÝ                              | PREDVOLENÁ HODNOTA |
|:----------------|:------------------------------------------|:-----------------------------------------------------------------:|:---------------:|
| type            | Typ tela (`text`, `price`, `currency`) 		 |                                Nie                                |     `text`      |
| text 		         | Text (použitie s typom `text`)	 		       | **Áno**, nie súčasne s nasledujúcimi typmi (`amount`, `currency`)	 |        -        |
| amount   	      | Množstvo                                  |      **Áno**, nie súčasne s nasledujúcimi typmi (`text`)  			      |        -        |
| currency   	    | Mena                                      |      **Áno**, nie súčasne s nasledujúcimi typmi (`text`)  			      |        -        |


### Template buttons objekt
| NÁZOV PARAMETRA | HODNOTA                                       |                    POVINNÝ                     | PREDVOLENÁ HODNOTA |
|:----------------|:----------------------------------------------|:----------------------------------------------:|:---------------:|
| type            | Typ tlačidla (`payload`, `url`) 			          |                    **Áno**                     |        -        |
| index 	         | Index definovaného tlačidla 			              |                    **Áno**                     |        -        |
| payload   	     | Metadáta odoslané pri kliknutí na tlačidlo 		 | **Áno**, len pri použití s typom `payload` 	   |        -        |
| text   	        | URL, na ktorú bude príjemca presmerovaný	     |  **Áno**, len pri použití s typom `url`  	     |        -        |


**Príklad požiadavky s template objektom:**
```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"
					}
				]
			}
		}
	}
}
```

### Príklad Template objektu
![Príklad Template objektu](docs:advanced-whatsapp/whatsapp_template_example)


## Message objekt
| NÁZOV PARAMETRA | HODNOTA                            | POVINNÝ  	 | PREDVOLENÁ HODNOTA |
|:----------------|:-----------------------------------|:----------:|:---------------:|
| text            | Text správy                        |  **Áno**	  |       - 	       |
| preview_url 	   | Náhľad stránky v správe		 		      |    Nie	    |     `true`      |


**Prí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ÁZOV PARAMETRA | HODNOTA                                                         | POVINNÝ  	 | PREDVOLENÁ HODNOTA |
|:----------------|:----------------------------------------------------------------|:----------:|:---------------:|
| type            | Typ súboru (`image`, `video`, `audio`, `document`, `sticker`)	  |    Nie	    |   `image`  	    |
| url 	  	        | Cesta k súboru                                                  |  **Áno**	  |      -  	       |
| caption 	       | Popis súboru                                                    |    Nie	    |       ""        |


**Príklad požiadavky s File objektom:**
```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"
			}
		}
	}
}
```

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


## Otp objekt
| NÁZOV PARAMETRA | HODNOTA                                                                                                        | POVINNÝ  	 | PREDVOLENÁ HODNOTA |
|:----------------|:---------------------------------------------------------------------------------------------------------------|:----------:|:---------------:|
| template        | Šablóna textovej správy obsahujúca kód                                                                         |  **Áno**	  |       	-	       |
| code 	  	       | Jednorazový kód                                                                                                |  **Áno**	  |      -  	       |
| language 	      | Jazyk, ktorý sa má použiť pri odoslaní kódu (ak je nastavený null, jazyk sa zistí z telefónneho čísla)	         |  **Áno**	  |        -        |


**Príklad 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ÁZOV PARAMETRA 	 | HODNOTA                                     | POVINNÝ  	 | PREDVOLENÁ HODNOTA |
|:------------------|:--------------------------------------------|:----------:|:---------------:|
| latitude      	   | Zemepisná šírka vo forme desatinného čísla	 |    Nie	    |       	-	       |
| longitude		       | Zemepisná dĺžka vo forme desatinného čísla	 |    Nie	    |      -  	       |
| name			           | Názov lokácie                               |    Nie	    |        -        |
| address 		        | Adresa lokácie                              |    Nie	    |        -        |


**Príklad požiadavky s Location objektom:**
```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"
			}
		}
	}
}
```


### Príklad Location objektu
![Príklad Location objektu](docs:advanced-whatsapp/whatsapp_location_example)

## Príklad kompletnej požiadavky

Schválená šablóna s hlavičkou, parametrami tela a URL tlačidlom, SMS ako záchrana. WhatsApp vetva text na najvyššej úrovni ignoruje, ten je tam pre SMS vetvu.

```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"
		}
	}
}
```

Tá istá správa ako voľný text. Ten možno použiť len vnútri 24-hodinového servisného okna; mimo neho je potrebná šablóna.

```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"
		}
	}
}
```

Odpoveď je pre všetky kanály rovnaká - pozrite [Advanced transactional](https://www.bulkgate.com/sk/dokumentacia/advanced-api/advanced-transactional/2.0/).
