## RCS-objekt
| PARAMETERNAVN | VERDI | OBLIGATORISK | STANDARDVERDI |
|:---------------|:-----------|:------------:|:-------------:|
| sender         | Tekstavsender. Må registreres først. Kontakt brukerstøtten for registrering [her](https://www.bulkgate.com/no/kontakt-oss/). | **Ja** | - |
| expiration     | Tidsgrense i sekunder, deretter brukes en alternativ kanal. Verdier under `60` ignoreres og erstattes med standardverdien | Nei | `60` |
| message        | Meldingsobjekt. Kan ikke kombineres med følgende parametere (File, Card, Carousel), se [Meldingsobjekt](#meldingsobjekt) | Nei | `null` |
| file           | Filobjekt. Kan ikke kombineres med følgende parametere (Message, Card, Carousel), se [Filobjekt](#filobjekt) | Nei | `null` |
| card           | Kortobjekt. Kan ikke kombineres med følgende parametere (Message, File, Carousel), se [Kortobjekt](#kortobjekt) | Nei | `null` |
| carousel       | Karusellobjekt. Kan ikke kombineres med følgende parametere (Message, File, Card), se [Karusellobjekt](#karusellobjekt) | Nei | `null` |


## Meldingsobjekt
| PARAMETERNAVN | VERDI | OBLIGATORISK | STANDARDVERDI |
|:---------------|:-----------|:---------:|:-------------:|
| text           | Teksten i RCS-meldingen | **Ja** | - |
| suggestions    | Forslag, se [Forslag](#forslagsobjekt) | Nei | `[]` |


**Eksempel på forespørsel med 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": {
		"rcs": {
			"sender": "BulkGate",
			"message": {
				"text": "Your order 4517 has been shipped.",
				"suggestions": [
					{
						"type": "reply",
						"text": "Thanks",
						"postback": "order_thanks"
					},
					{
						"type": "open_url",
						"text": "Track the parcel",
						"url": "https://example.com/track/4517"
					}
				]
			}
		}
	}
}
``` 


## Filobjekt
| PARAMETERNAVN | VERDI | OBLIGATORISK | STANDARDVERDI |
|:---------------|:-----------|:---------:|:-------------:|
| url            | Sti til filen | **Ja** | - |
| force_refresh  | `force_refresh` satt til true tvinger RBM til å hente nytt innhold fra den angitte URL-en, selv om innholdet er bufret, noe som øker leveringstiden for brukerne. | Nei | `false` |
| suggestions    | Forslag, se [Forslag](#forslagsobjekt) | Nei | `[]` |

**Eksempel på forespørsel med 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": {
		"rcs": {
			"sender": "BulkGate",
			"file": {
				"url": "https://example.com/invoice-4517.pdf",
				"force_refresh": false,
				"suggestions": [
					{
						"type": "reply",
						"text": "Got it",
						"postback": "invoice_received"
					}
				]
			}
		}
	}
}
``` 

### Eksempel på filobjekt
![Filobjekt](docs:advanced-rcs/rcs_file_message_example)


## Kortobjekt
| PARAMETERNAVN | VERDI | OBLIGATORISK | STANDARDVERDI |
|:---------------|:-----------|:------------:|:-------------:|
| title          | Tittelen på kortet | Nei | `null` |
| description    | Beskrivelse av kortet | Nei | `null` |
| alignment      | Justering av kortet til venstre eller høyre | Nei | `null` |
| orientation    | Kortets retning, horisontal eller vertikal | Nei | `null` |
| media          | Medier, se [Medieobjekt for kort](#medieobjekt-for-kort) | Nei | `null` |
| suggestions    | Forslag, se [Forslag](#forslagsobjekt) | Nei | `[]` |


### Medieobjekt for kort
| PARAMETERNAVN | VERDI | OBLIGATORISK | STANDARDVERDI |
|:---------------|:-----------|:----------:|:-------------:|
| url            | Sti til medieobjektet | **Ja** | - |
| force_refresh  | force_refresh satt til `true` tvinger RBM til å hente nytt innhold fra den angitte URL-en, selv om innholdet er bufret, noe som øker leveringstiden for brukerne. | Nei | `false` |
| height         | Høyden på medieobjektet (Short, Medium, Tall) | Nei | `null` |


**Eksempel på forespørsel med kortobjekt:**
```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": {
		"rcs": {
			"sender": "BulkGate",
			"card": {
				"title": "Order 4517",
				"description": "Shipped today, delivery in two working days.",
				"orientation": "vertical",
				"alignment": "left",
				"media": {
					"url": "https://example.com/order-4517.jpg",
					"height": "medium",
					"force_refresh": false
				},
				"suggestions": [
					{
						"type": "reply",
						"text": "Thanks",
						"postback": "order_thanks"
					}
				],
				"card_suggestions": [
					{
						"type": "open_url",
						"text": "Open the order",
						"url": "https://example.com/orders/4517"
					}
				]
			}
		}
	}
}
```

### Eksempel på kortobjekt
![Kortobjekt](docs:advanced-rcs/rcs_card_message_example)


## Karusellobjekt
| PARAMETERNAVN | VERDI | OBLIGATORISK | STANDARDVERDI |
|:---------------|:-----------|:-----------:|:-------------:|
| width          | Bredden på karusellen (small, medium) | Nei | `null` |
| cards          | Liste over kort i karusellen | Nei | `[]` |



### Kortobjekt i karusell
| PARAMETERNAVN | VERDI | OBLIGATORISK | STANDARDVERDI |
|:---------------|:-----------|:---------:|:-------------:|
| title          | Tittelen på kortet i karusellen | Nei | `null` |
| description    | Beskrivelse av kortet | Nei | `null` |
| media          | Medier, se [Medieobjekt for kort](#medieobjekt-for-kort) | Nei | `null` |
| suggestions    | Forslag, se [Forslag](#forslagsobjekt) | Nei | `[]` |


**Eksempel på forespørsel med karusellobjekt:**
```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": {
		"rcs": {
			"sender": "BulkGate",
			"carousel": {
				"width": "medium",
				"cards": [
					{
						"title": "Spring jacket",
						"description": "Now 30 % off.",
						"media": {
							"url": "https://example.com/jacket.jpg",
							"height": "short"
						},
						"suggestions": [
							{
								"type": "open_url",
								"text": "Buy",
								"url": "https://example.com/p/jacket"
							}
						]
					},
					{
						"title": "Running shoes",
						"description": "Now 20 % off.",
						"media": {
							"url": "https://example.com/shoes.jpg",
							"height": "short"
						},
						"suggestions": [
							{
								"type": "open_url",
								"text": "Buy",
								"url": "https://example.com/p/shoes"
							}
						]
					}
				],
				"suggestions": [
					{
						"type": "reply",
						"text": "Show more",
						"postback": "carousel_more"
					}
				]
			}
		}
	}
}
```

### Eksempel på karusellobjekt
![Karusellobjekt](docs:advanced-rcs/rcs_carousel_message_example)

### Eksempel på forslagsobjekt i karusell
![Forslagsobjekt i karusell](docs:advanced-rcs/rcs_carousel_suggestion_message_example)


## Forslagsobjekt
| PARAMETERNAVN | VERDI | OBLIGATORISK | STANDARDVERDI |
|:---------------|:-----------|:-----------:|:-------------:|
| type           | Typen forslagsknapp, se [Forslagstyper](#forslagstyper) | Nei | `reply` |
| text           | Teksten på forslagsknappen | **Ja** | - |
| postback       | Innhold som sendes som svar når forslagsknappen trykkes. | Nei | `ok` |
| location       | Posisjon som vises når forslagsknappen trykkes, se [Vise posisjon](#forslagsobjekt-for-visning-av-posisjon) | **Ja**, ikke sammen med (`calendar`, `phone_number`, `url`) | - |
| calendar       | Kalenderappen åpnes for å opprette en ny hendelse når forslagsknappen trykkes, se [Opprette kalenderhendelse](#forslagsobjekt-for-oppretting-av-kalenderhendelse) | **Ja**, ikke sammen med (`location`, `phone_number`, `url`) | - |
| phone_number   | Telefonnummer som forhåndsslås når forslagsknappen trykkes, se [Ringe nummer](#forslagsobjekt-for-oppringing-av-nummer) | **Ja**, ikke sammen med (`location`, `calendar`, `url`) | - |
| url            | Når forslagsknappen trykkes, sendes telefonen videre til den angitte URL-en, se [Åpne URL](#forslagsobjekt-for-apning-av-url) | **Ja**, ikke sammen med (`location`, `calendar`, `phone_number`) | - |

## Eksempel på hurtigsvarobjekt med posisjon
![Hurtigsvarobjekt med posisjon](docs:advanced-rcs/rcs_quick_reply_location_message_example)


## Forslagstyper
| VERDI | BESKRIVELSE |
|:------------------------|:------------------------------|
| `reply`                 | Hurtigsvar |
| `dial_number`           | Forhåndsslå nummer |
| `view_location`         | Vise mottatt posisjon |
| `share_location`        | Dele mottakerens posisjon |
| `open_url`              | Åpne mottatt URL |
| `create_calendar_event` | Opprette kalenderhendelse |


## Forslagsobjekt for visning av posisjon
| PARAMETERNAVN | VERDI | OBLIGATORISK | STANDARDVERDI |
|:---------------|:-----------|:---------:|:-------------:|
| type           | `view_location` | | |
| text           | Teksten på forslagsknappen | **Ja** | - |
| postback       | Innhold som sendes som svar når forslagsknappen trykkes. | Nei | `ok` |
| location       | [Posisjon](#posisjonsobjekt) som vises når forslagsknappen trykkes. | Nei | - |

### Posisjonsobjekt
| PARAMETERNAVN | VERDI | OBLIGATORISK | STANDARDVERDI |
|:---------------|:-----------|:-----------:|:-------------:|
| latitude       | Breddegrad som desimaltall (float) | **Ja** sammen med longitude | `null` |
| longitude      | Lengdegrad som desimaltall (float) | **Ja** sammen med latitude | `null` |
| query          | Navn på stedet som tekststreng, som slås opp som posisjon | **Ja** hvis longitude og latitude ikke er angitt | `null` |
| label          | Tekststreng som brukes som etikett for posisjonen i meldingen | Nei | `null` |


**Eksempel på forespørsel med posisjonsforslag:**
```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": {
		"rcs": {
			"sender": "BulkGate",
			"message": {
				"text": "Your order 4517 has been shipped.",
				"suggestions": [
					{
						"type": "view_location",
						"text": "Show the pick-up point",
						"postback": "show_pickup",
						"location": {
							"latitude": 50.086584,
							"longitude": 14.410763,
							"query": "Karluv most",
							"label": "Pick-up point"
						}
					}
				]
			}
		}
	}
}
```


## Forslagsobjekt for oppretting av kalenderhendelse
| PARAMETERNAVN | VERDI | OBLIGATORISK | STANDARDVERDI |
|:---------------|:-----------|:--------------:|:-------------:|
| type           | `create_calendar_event` | | |
| text           | Teksten på forslagsknappen | **Ja** | - |
| postback       | Innhold som sendes som svar når forslagsknappen trykkes. | Nei | `ok` |
| calendar       | [Kalender](#kalenderobjekt)-appen åpnes for å opprette en ny hendelse når forslagsknappen trykkes. | Nei | - |


### Kalenderobjekt
| PARAMETERNAVN | VERDI | OBLIGATORISK | STANDARDVERDI |
|:---------------|:-----------|:---------:|:-------------:|
| start          | Dato og klokkeslett (DateTime) for start av hendelsen | Nei | `null` |
| end            | Dato og klokkeslett (DateTime) for slutt på hendelsen | Nei | `null` |
| title          | Tittelen på kalenderhendelsen som tekststreng | Nei | `null` |
| description    | Tekstbeskrivelse av hendelsen | Nei | `null` |
| timezone       | Tidssone som tekststreng | Nei | `null` |


**Eksempel på forespørsel med forslag om kalenderhendelse:**
```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": {
		"rcs": {
			"sender": "BulkGate",
			"message": {
				"text": "Your order 4517 has been shipped.",
				"suggestions": [
					{
						"type": "create_calendar_event",
						"text": "Add delivery to calendar",
						"postback": "add_delivery",
						"calendar": {
							"start": "2026-09-14T09:00:00+02:00",
							"end": "2026-09-14T12:00:00+02:00",
							"title": "Delivery of order 4517",
							"description": "The courier will arrive in this window.",
							"timezone": "Europe/Prague"
						}
					}
				]
			}
		}
	}
}
```


## Forslagsobjekt for oppringing av nummer
| PARAMETERNAVN | VERDI | OBLIGATORISK | STANDARDVERDI |
|:---------------|:-----------|:---------:|:-------------:|
| type           | `dial_number` | | |
| text           | Teksten på forslagsknappen | **Ja** | - |
| postback       | Innhold som sendes som svar når forslagsknappen trykkes. | Nei | `ok` |
| phone_number   | Telefonnummer som forhåndsslås når forslagsknappen trykkes. | Nei | - |


**Eksempel på forespørsel med forslag om forhåndsslått nummer:**
```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": {
		"rcs": {
			"sender": "BulkGate",
			"message": {
				"text": "Your order 4517 has been shipped.",
				"suggestions": [
					{
						"type": "dial_number",
						"text": "Call the courier",
						"postback": "call_courier",
						"phone_number": "420777777779"
					}
				]
			}
		}
	}
}
```


## Forslagsobjekt for åpning av URL
| PARAMETERNAVN | VERDI | OBLIGATORISK | STANDARDVERDI |
|:---------------|:-----------|:---------------:|:-------------:|
| type           | `open_url` | | |
| text           | Teksten på forslagsknappen | **Ja** | - |
| postback       | Innhold som sendes som svar når forslagsknappen trykkes. | Nei | `ok` |
| url            | URL du sendes videre til når du klikker på forslagsknappen. | Nei | - |

**Eksempel på forespørsel med forslag om å åpne URL:**
```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": {
		"rcs": {
			"sender": "BulkGate",
			"message": {
				"text": "Your order 4517 has been shipped.",
				"suggestions": [
					{
						"type": "open_url",
						"text": "Track the parcel",
						"postback": "track_parcel",
						"url": "https://example.com/track/4517"
					}
				]
			}
		}
	}
}
```

## Forslagsobjekt for svar
| PARAMETERNAVN | VERDI | OBLIGATORISK | STANDARDVERDI |
|:---------------|:-----------|:--------------:|:-------------:|
| type           | `reply` | | |
| text           | Teksten på forslagsknappen | **Ja** | - |
| postback       | Innhold som sendes som svar når forslagsknappen trykkes. | Nei | `ok` |


**Eksempel på forespørsel med svarforslag:**
```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": {
		"rcs": {
			"sender": "BulkGate",
			"message": {
				"text": "Your order 4517 has been shipped.",
				"suggestions": [
					{
						"type": "reply",
						"text": "Thanks",
						"postback": "order_thanks"
					}
				]
			}
		}
	}
}
```


## Forslagsobjekt for deling av posisjon
| PARAMETERNAVN | VERDI | OBLIGATORISK | STANDARDVERDI |
|:---------------|:-----------|:--------------:|:-------------:|
| type           | `share_location` | | |
| text           | Teksten på forslagsknappen | **Ja** | - |
| postback       | Innhold som sendes som svar når forslagsknappen trykkes. | Nei | `ok` |


**Eksempel på forespørsel med objekt for deling av posisjon:**
```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": {
		"rcs": {
			"sender": "BulkGate",
			"message": {
				"text": "Your order 4517 has been shipped.",
				"suggestions": [
					{
						"type": "share_location",
						"text": "Share your location",
						"postback": "share_location"
					}
				]
			}
		}
	}
}
```

## Eksempel på fullstendig forespørsel

RCS-objektet er det samme på begge endepunktene - bare mottakerne rundt det er forskjellige.

RCS først, SMS som reserve. RCS-delen henter teksten fra `message.text`; `text` på øverste nivå når bare 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": {
		"rcs": {
			"sender": "BulkGate",
			"expiration": 120,
			"message": {
				"text": "Your order 4517 has been shipped.",
				"suggestions": [
					{"type": "open_url", "text": "Track the parcel", "url": "https://example.com/track/4517"},
					{"type": "reply", "text": "Thanks", "postback": "thanks"}
				]
			}
		},
		"sms": {
			"sender_id": "gText",
			"sender_id_value": "BulkGate"
		}
	}
}
```

Et kort med medier og et forslag, igjen med SMS som reserve.

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

{
	"application_id": 451,
	"application_token": "NKN02TWE6NfBkfl-your-secret-token-Wf05GaqLIWLW4aBj",
	"number": ["420777777777", "420777777778"],
	"text": "Spring sale starts today, up to 50 % off.",
	"channel": {
		"rcs": {
			"sender": "BulkGate",
			"card": {
				"title": "Spring sale",
				"description": "Up to 50 % off, this week only.",
				"orientation": "vertical",
				"media": {
					"url": "https://example.com/spring-sale.jpg",
					"height": "medium"
				},
				"suggestions": [
					{"type": "open_url", "text": "Open the offer", "url": "https://example.com/spring-sale"}
				]
			}
		},
		"sms": {
			"sender_id": "gText",
			"sender_id_value": "BulkGate"
		}
	}
}
```

Svaret er det samme for alle kanaler - se [Advanced transaksjoner](https://www.bulkgate.com/no/dokumentasjon/advanced-api/advanced-transactional/2.0/) eller [Advanced markedsføring](https://www.bulkgate.com/no/dokumentasjon/advanced-api/advanced-promotional/2.0/).
