## WhatsApp-objekt
| PARAMETERNAVN  | VERDI | OBLIGATORISK | STANDARDVERDI |
|:---------------|:------|:------------:|:-------------:|
| sender         | Tekstavsender. Må registreres først. For registrering kan du kontakte kundestøtten [her](https://www.bulkgate.com/no/kontakt-oss/). | **Ja** | - |
| expiration     | Tidsgrense i sekunder, og når den er utløpt, brukes en alternativ kanal. Verdier under `60` ignoreres og erstattes med standardverdien | Nei | `180` |
| template 	     | Malobjekt. Kan ikke brukes sammen med følgende parametere (Message, File, Otp, Location), se [Malobjekt](#malobjekt) | Nei | `null` |
| message 	      | Meldingsobjekt. Kan ikke brukes sammen med følgende parametere (Template, File, Otp, Location), se [Meldingsobjekt](#meldingsobjekt) | Nei | `null` |
| file   	       | Filobjekt. Kan ikke brukes sammen med følgende parametere (Template, Message, Otp, Location), se [Filobjekt](#filobjekt) | Nei | `null` |
| otp   	        | OTP-objekt. Kan ikke brukes sammen med følgende parametere (Template, Message, File, Location), se [OTP-objekt](#otp-objekt) | Nei | `null` |
| location   	   | Posisjonsobjekt. Kan ikke brukes sammen med følgende parametere (Template, Message, File, Otp), se [Posisjonsobjekt](#posisjonsobjekt) | Nei | `null` |


## Malobjekt
| PARAMETERNAVN  | VERDI | OBLIGATORISK | STANDARDVERDI |
|:---------------|:------|:------------:|:-------------:|
| template       | Navnet på malen | **Ja** | - |
| language     	 | Språk i ISO-format | **Ja** | - |
| header 	       | Objekt for malens topptekst, se [Header-objekt](#header-objekt-i-malen) | Nei | `null` |
| body 		        | Objekt for malens brødtekst, se [Body-objekt](#body-objekt-i-malen) | Nei | `null` |
| buttons   	    | Matrise med knappeobjekter for malen, se [Buttons-objekt](#buttons-objekt-i-malen) | Nei | `null` |


### Header-objekt i malen
| PARAMETERNAVN  | VERDI | OBLIGATORISK | STANDARDVERDI |
|:---------------|:------|:------------:|:-------------:|
| type           | Type topptekst (`image`, `video`, `text`, `location`) | **Ja** | - |
| url     	      | Sti til video eller bilde (brukes med typen `image`, `video`) | **Ja**, ikke sammen med følgende (`text`, `location`) | - |
| caption 	      | Bildetekst til bilde eller video (brukes med typen `image`, `video`) | **Ja**, ikke sammen med følgende (`text`, `location`) | - |
| text 		        | Tekst (brukes med typen `text`) | **Ja**, ikke sammen med følgende (`url`, `caption`, `location`) | - |
| location   	   | Posisjonsobjekt (brukes med typen `location`), se [Posisjonsobjekt](#posisjonsobjekt) | **Ja**, ikke sammen med følgende (`url`, `text`, `caption`) | - |

### Body-objekt i malen
| PARAMETERNAVN  | VERDI | OBLIGATORISK | STANDARDVERDI |
|:---------------|:------|:------------:|:-------------:|
| type           | Type brødtekst (`text`, `price`, `currency`) | Nei | `text` |
| text 		        | Tekst (brukes med typen `text`) | **Ja**, ikke sammen med følgende (`amount`, `currency`) | - |
| amount   	     | Beløp i angitt valuta | **Ja**, ikke sammen med følgende (`text`) | - |
| currency   	   | Valuta | **Ja**, ikke sammen med følgende (`text`) | - |

### Buttons-objekt i malen
| PARAMETERNAVN  | VERDI | OBLIGATORISK | STANDARDVERDI |
|:---------------|:------|:------------:|:-------------:|
| type           | Type knapp (`payload`, `url`) | **Ja** | - |
| index 	        | Indeksen til den definerte knappen | **Ja** | - |
| payload   	    | Metadata som sendes når knappen klikkes | **Ja**, kun med typen `payload` | - |
| text   	       | URL som mottakeren blir videresendt til | **Ja**, kun med typen `url` | - |


**Eksempel på forespørsel med malobjekt:**
```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"
					}
				]
			}
		}
	}
}
```

### Eksempel på malobjekt
![Eksempel på malobjekt](docs:advanced-whatsapp/whatsapp_template_example)



## Meldingsobjekt
| PARAMETERNAVN  | VERDI | OBLIGATORISK | STANDARDVERDI |
|:---------------|:------|:---------:|:-------------:|
| text           | Teksten i meldingen | **Ja** | - |
| preview_url 	  | Vis den sendte URL-en som en miniatyrforhåndsvisning | Nei | `true` |


**Eksempel på meldingsobjekt:**
```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
			}
		}
	}
}
```


## Filobjekt
| PARAMETERNAVN  | VERDI | OBLIGATORISK | STANDARDVERDI |
|:---------------|:------|:---------:|:-------------:|
| type           | Filtype (`image`, `video`, `audio`, `document`, `sticker`) | Nei | `image` |
| url 	  	       | Sti til filen | **Ja** | - |
| caption 	      | Bildetekst til den sendte filen | Nei | "" |


**Eksempel på filobjekt:**
```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"
			}
		}
	}
}
```


### Eksempel på filobjekt
![Eksempel på filobjekt](docs:advanced-whatsapp/whatsapp_file_example)


## OTP-objekt 
| PARAMETERNAVN  | VERDI | OBLIGATORISK | STANDARDVERDI |
|:---------------|:------|:---------:|:-------------:|
| template       | Mal for tekstmeldingen som sendes med koden | **Ja** | - |
| code 	  	      | Engangskode | **Ja** | - |
| language 	     | Språket meldingen med koden sendes på (hvis `null` brukes, gjenkjennes språket ut fra telefonnummeret) | **Ja** | - |


**Eksempel på OTP-objekt:**
```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"
			}
		}
	}
}
```


## Posisjonsobjekt
| PARAMETERNAVN   | VERDI | OBLIGATORISK | STANDARDVERDI |
|:----------------|:------|:---------:|:-------------:|
| latitude      	 | Breddegrad som desimaltall | Nei | - |
| longitude		     | Lengdegrad som desimaltall | Nei | - |
| name			         | Navnet på den sendte posisjonen | Nei | - |
| address 		      | Adressen til den sendte posisjonen | Nei | - |


**Eksempel på forespørsel med posisjonsobjekt:**
```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"
			}
		}
	}
}
```

### Eksempel på posisjonsobjekt
![Eksempel på posisjonsobjekt](docs:advanced-whatsapp/whatsapp_location_example)

## Eksempel på fullstendig forespørsel

En godkjent mal med topptekst, parametere i brødteksten og en URL-knapp, med SMS som reserve. WhatsApp-delen ignorerer `text` på toppnivå, som er der for SMS-delen.

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

Den samme meldingen som fritekst. Den kan bare brukes innenfor det 24 timer lange servicevinduet; utenfor det kreves en mal.

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

Svaret er det samme for alle kanaler – se [Advanced transactional](https://www.bulkgate.com/no/dokumentasjon/advanced-api/advanced-transactional/2.0/).
