## Objet RCS
| NOM DU PARAMÈTRE | VALEUR                                                                                           								                                  | OBLIGATOIRE  	 | VALEUR PAR DÉFAUT |
|:---------------|:------------------------------------------------------------------------------------------------------------------------------------------|:------------:|:-------------:|
| sender         | Expéditeur texte. Il doit d'abord être enregistré. Pour l'enregistrement, contactez le support [ici](https://www.bulkgate.com/fr/nous-contacter/).                                       |   **Oui**	   |       -       |
| expiration     | Délai en secondes après lequel le canal alternatif est utilisé. Les valeurs inférieures à `60` sont ignorées et remplacées par la valeur par défaut                                       							  	                                  |      Non      |    `60`     |
| message 	      | Objet Message. Ne peut pas être combiné avec les paramètres suivants (File, Card, Carousel), voir [Objet Message](#objet-message)		         |  Non       	  |    `null`     |
| file   	       | Objet File. Ne peut pas être combiné avec les paramètres suivants (Message, Card, Carousel), voir [Objet File](#objet-file)          	      |  Non      	   |    `null`     |
| card   	       | Objet Card. Ne peut pas être combiné avec les paramètres suivants (Message, File, Carousel), voir [Objet Card](#objet-card)           	     |      Non      |    `null`     |
| carousel   	   | Objet Carousel. Ne peut pas être combiné avec les paramètres suivants (Message, File, Card), voir [Objet Carousel](#objet-carousel)       	 |      Non      |    `null`     |


## Objet Message
| NOM DU PARAMÈTRE | VALEUR                                                      | OBLIGATOIRE | VALEUR PAR DÉFAUT |
|:---------------|:-----------------------------------------------------------|:---------:|:-------------:|
| text           | Texte du message RCS 							       	                        |  **Oui**  |       -       |
| suggestions    | Suggestions, voir [Suggestion](#objet-suggestions)       	 |    Non     |     `[]`      |


**Exemple de requête avec l'objet Message :**
```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"
					}
				]
			}
		}
	}
}
``` 


## Objet File
| NOM DU PARAMÈTRE | VALEUR                                                                                                                                                                    | OBLIGATOIRE | VALEUR PAR DÉFAUT |
|:---------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------:|:-------------:|
| url            | Chemin vers le fichier																			                                                                                                                                      |  **Oui**  |    	   - 	    |
| force_refresh  | `force_refresh` défini sur true oblige RBM à récupérer un nouveau contenu à l'URL indiquée, même si le contenu de l'URL est en cache, ce qui allonge le délai de remise du message aux utilisateurs. |    Non     |    `false`    |
| suggestions    | Suggestions, voir [Suggestion](#objet-suggestions)                                                                                    		                                 |    Non     |     `[]`      |

**Exemple de requête avec l'objet File :**
```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"
					}
				]
			}
		}
	}
}
``` 

### Exemple d'objet File
![Objet File](docs:advanced-rcs/rcs_file_message_example)


## Objet Card
| NOM DU PARAMÈTRE | VALEUR                                              |  OBLIGATOIRE   | VALEUR PAR DÉFAUT |
|:---------------|:---------------------------------------------------|:------------:|:-------------:|
| title          | Titre de la carte 									                        | 	  Non      	 |    `null`     |
| description    | Description de la carte                            |  	Non      	  |    `null`     |
| alignment      | Alignement de la carte à gauche ou à droite         |   	Non    	   |    `null`     |
| orientation    | Orientation de la carte, horizontale ou verticale  |  	Non      	  |    `null`     |
| media          | Média, voir [Objet Card Media](#objet-card-media) |  	Non      	  |    `null`     |                                             
| suggestions    | Suggestions, voir [Suggestion](#objet-suggestions) |     	Non	     |     `[]`      |                                             


### Objet Card Media
| NOM DU PARAMÈTRE | VALEUR                                                                                                                                                                    | OBLIGATOIRE  | VALEUR PAR DÉFAUT |
|:---------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------:|:-------------:|
| url            | Chemin vers l'objet média																	 	                                                                                                                              | 	  **Oui** |       -       |
| force_refresh  | force_refresh défini sur `true` oblige RBM à récupérer un nouveau contenu à l'URL indiquée, même si le contenu de l'URL est en cache, ce qui allonge le délai de remise du message aux utilisateurs. |     Non     |    `false`    |
| height         | Hauteur de l'objet média (Short, Medium, Tall)                                                                                                                             |     Non     |    `null`     |


**Exemple de requête avec l'objet Card :**
```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"
					}
				]
			}
		}
	}
}
```

### Exemple d'objet Card
![Objet Card](docs:advanced-rcs/rcs_card_message_example)


## Objet Carousel
| NOM DU PARAMÈTRE | VALEUR                                                      	 | 	OBLIGATOIRE	 | VALEUR PAR DÉFAUT |
|:---------------|:-------------------------------------------------------------|:-----------:|:-------------:|
| width          | Largeur du carrousel (small, medium) 		                  	  |   Non	  		   |   `null`  	   |
| cards          | Liste des cartes du carrousel                                     	 |   Non   		   |   `[]`    	   |



### Objet Carousel Card	
| NOM DU PARAMÈTRE | VALEUR                                                      	      	 | OBLIGATOIRE | VALEUR PAR DÉFAUT |
|:---------------|:--------------------------------------------------------------------|:---------:|:-------------:|
| title          | Titre de l'objet de carte du carrousel 					                                 |  	  Non	   |    `null`     |
| description    | Description d'une carte                                               |    	Non    |    `null`     |
| media          | Média, voir [Objet Card Media](#objet-card-media)                  |   	  Non   |    `null`     |     
| suggestions    | Suggestions, voir [Suggestion](#objet-suggestions)              | 	Non    	  |     `[]`      | 


**Exemple de requête avec l'objet Carousel :**
```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"
					}
				]
			}
		}
	}
}
```

### Exemple d'objet Carousel
![Objet Carousel](docs:advanced-rcs/rcs_carousel_message_example)

### Exemple d'objet Carousel suggestion
![Objet Carousel suggestion](docs:advanced-rcs/rcs_carousel_suggestion_message_example)


## Objet Suggestions
| NOM DU PARAMÈTRE | VALEUR                                                                                                                               		            |                              OBLIGATOIRE  									                              | VALEUR PAR DÉFAUT |
|:---------------|:--------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------:|:-------------:|
| type           | Type du bouton de suggestion, voir [Types de suggestion](#type-de-suggestion)										                                                                   |                                 Non 										                                  |  `reply`  	   |
| text    	      | Texte du bouton de suggestion                          												                                                                                   |                              **Oui**  										                               |    -     	    |
| postback 	     | Contenu envoyé en réponse lorsque le bouton de suggestion est pressé                                                                          |                                Non   										                                 |  `ok`   	   |
| location       | Lieu affiché une fois le bouton de suggestion pressé, voir [View Location](#objet-suggestions-view-location)                                   | **Oui**, pas en combinaison avec les suivants (`calendar`, `phone_number`, `url`)    	 |   -      	    |
| calendar       | L'application de calendrier s'ouvre pour créer un nouvel événement une fois le bouton de suggestion pressé, voir [Create calendar event](#objet-suggestions-create-calendar-event) |   **Oui**, pas en combinaison avec les suivants (`location`, `phone_number`, `url`)    |   -      	    |
| phone_number   | Numéro de téléphone prérempli dans le composeur lorsque le bouton de suggestion est pressé, voir [Dial Number](#objet-suggestions-dial-number)                            | **Oui**, pas en combinaison avec les suivants (`location`, `calendar`, `url`)      		  |   -      	    |
| url            | Une fois le bouton de suggestion pressé, le téléphone est redirigé vers l'URL indiquée, voir [Open url](#objet-suggestions-open-url)                             | **Oui**, pas en combinaison avec les suivants (`location`, `calendar`, `phone_number`) |   -      	    |    

## Exemple d'objet Location quick reply
![Objet Location quick reply](docs:advanced-rcs/rcs_quick_reply_location_message_example)


## Type de suggestion 
| VALEUR    		            | DESCRIPTION                   |
|:------------------------|:------------------------------|
| `reply`  		             | Réponse rapide         	      	  |
| `dial_number`   	       | Numéro prérempli           	   |
| `view_location`         | Afficher le lieu reçu   	 |
| `share_location`        | Partager la position du destinataire   	 |
| `open_url`    	         | Ouvrir l'URL reçue		           |
| `create_calendar_event` | Créer un événement de calendrier | 


## Objet Suggestions View Location
| NOM DU PARAMÈTRE | VALEUR                                                                                                                      | OBLIGATOIRE | VALEUR PAR DÉFAUT |
|:---------------|:---------------------------------------------------------------------------------------------------------------------------|:---------:|:-------------:|
| type           | `view_location`									                                                                                                   |    		     |       	       |
| text    	      | Texte du bouton de suggestion                          										                                                              |  **Oui**  |       -       |
| postback 	     | Contenu envoyé en réponse lorsque le bouton de suggestion est pressé                                                 	 |  Non   	   |    `ok`     |
| location       | [Lieu](#objet-location) affiché une fois le bouton de suggestion pressé.                                 	             |    Non     |   -      	    |

### Objet Location
| NOM DU PARAMÈTRE | VALEUR                                                                                                               |              OBLIGATOIRE     				               | VALEUR PAR DÉFAUT |
|:---------------|:--------------------------------------------------------------------------------------------------------------------|:---------------------------------------------:|:-------------:|
| latitude       | Valeur décimale (float) de la latitude									                                                                                    |   **Oui** avec longitude            	   |    `null`	    |
| longitude      | Valeur décimale (float) de la longitude                          										                                                        |      **Oui** avec latitude     		       |    `null`     |
| query 	        | Nom du lieu (chaîne) à rechercher comme lieu                                                    			        | **Oui** si longitude et latitude ne sont pas définies   	 |    `null`     |
| label       	  | Chaîne servant de libellé du lieu dans le message                                                                     		 |              Non            				               |  `null`   	   |


**Exemple de requête avec l'objet de suggestion Location :**
```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"
						}
					}
				]
			}
		}
	}
}
```


## Objet Suggestions Create calendar event
| NOM DU PARAMÈTRE | VALEUR                                                                                          | OBLIGATOIRE    	 | VALEUR PAR DÉFAUT |
|:---------------|:-----------------------------------------------------------------------------------------------|:--------------:|:-------------:|
| type           | `create_calendar_event`					                                                		                 |       		       |       	       |
| text    	      | Texte du bouton de suggestion                          										                                  | **Oui**      	 |       -       |
| postback 	     | Contenu envoyé en réponse lorsque le bouton de suggestion est pressé.                      | Non   	       	 |    `ok`     |
| calendar       | L'application [Calendar](#objet-calendar) s'ouvre pour créer un nouvel événement une fois le bouton de suggestion pressé. | Non           	 |   -      	    |


### Objet Calendar
| NOM DU PARAMÈTRE | VALEUR                                 | OBLIGATOIRE | VALEUR PAR DÉFAUT |
|:---------------|:--------------------------------------|:---------:|:-------------:|
| start      	   | DateTime du début de l'événement							 |    Non     |    `null`     |
| end      	     | DateTime de la fin de l'événement     | Non     	  |    `null`     |
| title 	        | Titre (chaîne) de l'événement         |  Non   	   |    `null`     |
| description    | Description textuelle de l'événement  |    Non     |  `null`   	   |
| timezone       | Fuseau horaire (chaîne)               |    Non     |  `null`   	   |


**Exemple de requête avec l'objet de suggestion Calendar event :**
```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"
						}
					}
				]
			}
		}
	}
}
```


## Objet Suggestions Dial Number
| NOM DU PARAMÈTRE | VALEUR                                                                     | OBLIGATOIRE | VALEUR PAR DÉFAUT |
|:---------------|:--------------------------------------------------------------------------|:---------:|:-------------:|
| type           | `dial_number`					                                                		      |    		     |       	       |
| text    	      | Texte du bouton de suggestion                          										             |  **Oui**  |       -       |
| postback 	     | Contenu envoyé en réponse lorsque le bouton de suggestion est pressé. |  Non   	   |    `ok`     |
| phone_number   | Numéro de téléphone prérempli dans le composeur lorsque le bouton de suggestion est pressé. |    Non     |   -      	    |


**Exemple de requête avec une suggestion de numéro prérempli :**
```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"
					}
				]
			}
		}
	}
}
```


## Objet Suggestions Open url
| NOM DU PARAMÈTRE | VALEUR                                                                                                                  |  OBLIGATOIRE   	  | VALEUR PAR DÉFAUT |
|:---------------|:-----------------------------------------------------------------------------------------------------------------------|:---------------:|:-------------:|
| type           | `open_url`					                                                            		                                        	 | 	             	 |       	       |
| text    	      | Texte du bouton de suggestion                          										                                                          |    **Oui** 	    |       -       |
| postback 	     | Contenu envoyé en réponse lorsque le bouton de suggestion est pressé.                                              | Non   	       	  |    `ok`     |
| url            | URL vers laquelle vous êtes redirigé si vous cliquez sur le bouton de suggestion.                                      | Non           	  |   -      	    |

**Exemple de requête avec une suggestion Open 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"
					}
				]
			}
		}
	}
}
```

## Objet Suggestions Reply
| NOM DU PARAMÈTRE | VALEUR                                                                                                                  | OBLIGATOIRE    	 | VALEUR PAR DÉFAUT |
|:---------------|:-----------------------------------------------------------------------------------------------------------------------|:--------------:|:-------------:|
| type           | `reply`							                                                                                                       	 |       	        |       	       |
| text    	      | Texte du bouton de suggestion                          									                                        	                  | **Oui**      	 |       -       |
| postback 	     | Contenu envoyé en réponse lorsque le bouton de suggestion est pressé.                                              | Non   	       	 |    `ok`     |


**Exemple de requête avec une suggestion reply :**
```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"
					}
				]
			}
		}
	}
}
```


## Objet Suggestions Share location
| NOM DU PARAMÈTRE | VALEUR                                                                     | OBLIGATOIRE    	 | VALEUR PAR DÉFAUT |
|:---------------|:--------------------------------------------------------------------------|:--------------:|:-------------:|
| type           | `share_location`							                                           	       |       		       |       	       |
| text    	      | Texte du bouton de suggestion                          										             | **Oui**      	 |       -       |
| postback 	     | Contenu envoyé en réponse lorsque le bouton de suggestion est pressé. | Non   	       	 |    `ok`     |


**Exemple de requête avec l'objet Shared location :**
```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"
					}
				]
			}
		}
	}
}
```

## Exemple de requête complète

L'objet RCS est le même sur les deux endpoints - seuls les destinataires autour de lui diffèrent.

RCS en premier, SMS en secours. La partie RCS prend son texte dans `message.text` ; le `text` de premier niveau n'atteint que la partie SMS.

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

Une carte avec un média et une suggestion, là encore avec le SMS en secours.

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

La réponse est la même pour tous les canaux - voir [Advanced transactional](https://www.bulkgate.com/fr/documentation/advanced-api/advanced-transactional/2.0/) ou [Advanced promotional](https://www.bulkgate.com/fr/documentation/advanced-api/advanced-promotional/2.0/).
