## Objeto RCS
| NOMBRE DEL PARÁMETRO | VALOR                                                                                           								                                  | OBLIGATORIO  	 | VALOR PREDETERMINADO |
|:---------------|:------------------------------------------------------------------------------------------------------------------------------------------|:------------:|:-------------:|
| sender         | Remitente de texto. Primero debe registrarse. Para el registro, contacte con el soporte [aquí](https://www.bulkgate.com/es/contacto/).                                       |   **Sí**	   |       -       |
| expiration     | Límite de tiempo en segundos tras el cual se utilizará el canal alternativo. Los valores inferiores a `60` se ignoran y se sustituyen por el valor predeterminado                                       							  	                                  |      No      |    `60`     |
| message 	      | Objeto Message. No se puede usar junto con los siguientes parámetros (File, Card, Carousel), consulte [Objeto Message](#objeto-message)		         |  No       	  |    `null`     |
| file   	       | Objeto File. No se puede usar junto con los siguientes parámetros (Message, Card, Carousel), consulte [Objeto File](#objeto-file)          	      |  No      	   |    `null`     |
| card   	       | Objeto Card. No se puede usar junto con los siguientes parámetros (Message, File, Carousel), consulte [Objeto Card](#objeto-card)           	     |      No      |    `null`     |
| carousel   	   | Objeto Carousel. No se puede usar junto con los siguientes parámetros (Message, File, Card), consulte [Objeto Carousel](#objeto-carousel)       	 |      No      |    `null`     |


## Objeto Message
| NOMBRE DEL PARÁMETRO | VALOR                                                      | OBLIGATORIO | VALOR PREDETERMINADO |
|:---------------|:-----------------------------------------------------------|:---------:|:-------------:|
| text           | Texto del mensaje RCS 							       	                        |  **Sí**  |       -       |
| suggestions    | Sugerencias, consulte [Suggestion](#objeto-suggestions)       	 |    No     |     `[]`      |


**Ejemplo de solicitud con el objeto 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"
					}
				]
			}
		}
	}
}
``` 


## Objeto File
| NOMBRE DEL PARÁMETRO | VALOR                                                                                                                                                                    | OBLIGATORIO | VALOR PREDETERMINADO |
|:---------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------:|:-------------:|
| url            | Ruta al archivo																			                                                                                                                                      |  **Sí**  |    	   - 	    |
| force_refresh  | Si `force_refresh` se establece en true, RBM obtiene de nuevo el contenido desde la URL indicada aunque esté en caché, lo que alarga el tiempo de entrega del mensaje a los usuarios. |    No     |    `false`    |
| suggestions    | Sugerencias, consulte [Suggestion](#objeto-suggestions)                                                                                    		                                 |    No     |     `[]`      |

**Ejemplo de solicitud con el objeto 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"
					}
				]
			}
		}
	}
}
``` 

### Ejemplo del objeto File
![Objeto File](docs:advanced-rcs/rcs_file_message_example)


## Objeto Card
| NOMBRE DEL PARÁMETRO | VALOR                                              |  OBLIGATORIO   | VALOR PREDETERMINADO |
|:---------------|:---------------------------------------------------|:------------:|:-------------:|
| title          | Título de la tarjeta 									                        | 	  No      	 |    `null`     |
| description    | Descripción de la tarjeta                            |  	No      	  |    `null`     |
| alignment      | Alineación de la tarjeta a la izquierda o a la derecha                        |   	No    	   |    `null`     |
| orientation    | Orientación de la tarjeta, horizontal o vertical   |  	No      	  |    `null`     |
| media          | Contenido multimedia, consulte [Objeto Card Media](#objeto-card-media) |  	No      	  |    `null`     |                                             
| suggestions    | Sugerencias, consulte [Suggestion](#objeto-suggestions) |     	No	     |     `[]`      |                                             


### Objeto Card Media
| NOMBRE DEL PARÁMETRO | VALOR                                                                                                                                                                    | OBLIGATORIO  | VALOR PREDETERMINADO |
|:---------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------:|:-------------:|
| url            | Ruta al objeto multimedia																	 	                                                                                                                              | 	  **Sí** |       -       |
| force_refresh  | Si force_refresh se establece en `true`, RBM obtiene de nuevo el contenido desde la URL indicada aunque esté en caché, lo que alarga el tiempo de entrega del mensaje a los usuarios. |     No     |    `false`    |
| height         | Altura del objeto multimedia (Short, Medium, Tall)                                                                                                                             |     No     |    `null`     |


**Ejemplo de solicitud con el objeto 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"
					}
				]
			}
		}
	}
}
```

### Ejemplo del objeto Card
![Objeto Card](docs:advanced-rcs/rcs_card_message_example)


## Objeto Carousel
| NOMBRE DEL PARÁMETRO | VALOR                                                      	 | 	OBLIGATORIO	 | VALOR PREDETERMINADO |
|:---------------|:-------------------------------------------------------------|:-----------:|:-------------:|
| width          | Anchura del carrusel (small, medium) 		                  	  |   No	  		   |   `null`  	   |
| cards          | Lista de tarjetas del carrusel                                     	 |   No   		   |   `[]`    	   |



### Objeto Carousel Card	
| NOMBRE DEL PARÁMETRO | VALOR                                                      	      	 | OBLIGATORIO | VALOR PREDETERMINADO |
|:---------------|:--------------------------------------------------------------------|:---------:|:-------------:|
| title          | Título de la tarjeta del carrusel 					                                 |  	  No	   |    `null`     |
| description    | Descripción de la tarjeta                                               |    	No    |    `null`     |
| media          | Contenido multimedia, consulte [Objeto Card Media](#objeto-card-media)                  |   	  No   |    `null`     |     
| suggestions    | Sugerencias, consulte [Suggestion](#objeto-suggestions)              | 	No    	  |     `[]`      | 


**Ejemplo de solicitud con el objeto 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"
					}
				]
			}
		}
	}
}
```

### Ejemplo del objeto Carousel
![Objeto Carousel](docs:advanced-rcs/rcs_carousel_message_example)

### Ejemplo del objeto Carousel suggestion
![Objeto Carousel suggestion](docs:advanced-rcs/rcs_carousel_suggestion_message_example)


## Objeto Suggestions
| NOMBRE DEL PARÁMETRO | VALOR                                                                                                                               		            |                              OBLIGATORIO  									                              | VALOR PREDETERMINADO |
|:---------------|:--------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------:|:-------------:|
| type           | Tipo de botón de sugerencia, consulte [Tipos de sugerencia](#tipo-de-sugerencia)										                                                                   |                                 No 										                                  |  `reply`  	   |
| text    	      | Texto del botón de sugerencia                          												                                                                                   |                              **Sí**  										                               |    -     	    |
| postback 	     | Contenido que se envía como respuesta cuando se pulsa el botón de sugerencia                                                                          |                                No   										                                 |  `ok`   	   |
| location       | Ubicación que se muestra al pulsar el botón de sugerencia, consulte [View Location](#objeto-suggestions-view-location)                                   | **Sí**, no junto con los siguientes (`calendar`, `phone_number`, `url`)    	 |   -      	    |
| calendar       | Al pulsar el botón de sugerencia se abre la aplicación de calendario para crear un nuevo evento, consulte [Create calendar event](#objeto-suggestions-create-calendar-event) |   **Sí**, no junto con los siguientes (`location`, `phone_number`, `url`)    |   -      	    |
| phone_number   | Número de teléfono que se marca previamente al pulsar el botón de sugerencia, consulte [Dial Number](#objeto-suggestions-dial-number)                            | **Sí**, no junto con los siguientes (`location`, `calendar`, `url`)      		  |   -      	    |
| url            | Al pulsar el botón de sugerencia, el teléfono se redirige a la URL indicada, consulte [Open url](#objeto-suggestions-open-url)                             | **Sí**, no junto con los siguientes (`location`, `calendar`, `phone_number`) |   -      	    |    

## Ejemplo del objeto Location quick reply
![Objeto Location quick reply](docs:advanced-rcs/rcs_quick_reply_location_message_example)


## Tipo de sugerencia
| VALOR     		            | DESCRIPCIÓN                   |
|:------------------------|:------------------------------|
| `reply`  		             | Respuesta rápida         	      	  |
| `dial_number`   	       | Marcar previamente un número           	   |
| `view_location`         | Mostrar la ubicación recibida   	 |
| `share_location`        | Compartir la ubicación del destinatario   	 |
| `open_url`    	         | Abrir la URL recibida		           |
| `create_calendar_event` | Crear un evento en el calendario         | 


## Objeto Suggestions View Location
| NOMBRE DEL PARÁMETRO | VALOR                                                                                                                      | OBLIGATORIO | VALOR PREDETERMINADO |
|:---------------|:---------------------------------------------------------------------------------------------------------------------------|:---------:|:-------------:|
| type           | `view_location`									                                                                                                   |    		     |       	       |
| text    	      | Texto del botón de sugerencia                          										                                                              |  **Sí**  |       -       |
| postback 	     | Contenido que se envía como respuesta cuando se pulsa el botón de sugerencia                                                 	 |  No   	   |    `ok`     |
| location       | [Ubicación](#objeto-location) que se muestra al pulsar el botón de sugerencia.                                 	             |    No     |   -      	    |

### Objeto Location
| NOMBRE DEL PARÁMETRO | VALOR                                                                                                               |              OBLIGATORIO     				               | VALOR PREDETERMINADO |
|:---------------|:--------------------------------------------------------------------------------------------------------------------|:---------------------------------------------:|:-------------:|
| latitude       | Latitud como número decimal (float)									                                                                                    |   **Sí**, junto con longitude            	   |    `null`	    |
| longitude      | Longitud como número decimal (float)                          										                                                        |      **Sí**, junto con latitude     		       |    `null`     |
| query 	        | Nombre del lugar (cadena) que se buscará como ubicación                                                    			        | **Sí**, si no se indican longitude y latitude   	 |    `null`     |
| label       	  | Cadena con la que se etiqueta la ubicación en el mensaje                                                                     		 |              No            				               |  `null`   	   |


**Ejemplo de solicitud con la sugerencia 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"
						}
					}
				]
			}
		}
	}
}
```


## Objeto Suggestions Create calendar event
| NOMBRE DEL PARÁMETRO | VALOR                                                                                          | OBLIGATORIO    	 | VALOR PREDETERMINADO |
|:---------------|:-----------------------------------------------------------------------------------------------|:--------------:|:-------------:|
| type           | `create_calendar_event`					                                                		                 |       		       |       	       |
| text    	      | Texto del botón de sugerencia                          										                                  | **Sí**      	 |       -       |
| postback 	     | Contenido que se envía como respuesta cuando se pulsa el botón de sugerencia.                      | No   	       	 |    `ok`     |
| calendar       | Al pulsar el botón de sugerencia se abre la aplicación de [calendario](#objeto-calendar) para crear un nuevo evento. | No           	 |   -      	    |


### Objeto Calendar
| NOMBRE DEL PARÁMETRO | VALOR                                 | OBLIGATORIO | VALOR PREDETERMINADO |
|:---------------|:--------------------------------------|:---------:|:-------------:|
| start      	   | Fecha y hora (DateTime) de inicio del evento							 |    No     |    `null`     |
| end      	     | Fecha y hora (DateTime) de finalización del evento          | No     	  |    `null`     |
| title 	        | Título del evento del calendario (cadena)        |  No   	   |    `null`     |
| description    | Descripción del evento en texto         |    No     |  `null`   	   |
| timezone       | Zona horaria (cadena)                  |    No     |  `null`   	   |


**Ejemplo de solicitud con la sugerencia 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"
						}
					}
				]
			}
		}
	}
}
```


## Objeto Suggestions Dial Number
| NOMBRE DEL PARÁMETRO | VALOR                                                                     | OBLIGATORIO | VALOR PREDETERMINADO |
|:---------------|:--------------------------------------------------------------------------|:---------:|:-------------:|
| type           | `dial_number`					                                                		      |    		     |       	       |
| text    	      | Texto del botón de sugerencia                          										             |  **Sí**  |       -       |
| postback 	     | Contenido que se envía como respuesta cuando se pulsa el botón de sugerencia. |  No   	   |    `ok`     |
| phone_number   | Número de teléfono que se marca previamente al pulsar el botón de sugerencia.       |    No     |   -      	    |


**Ejemplo de solicitud con la sugerencia de número marcado previamente:**
```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"
					}
				]
			}
		}
	}
}
```


## Objeto Suggestions Open url
| NOMBRE DEL PARÁMETRO | VALOR                                                                                                                  |  OBLIGATORIO   	  | VALOR PREDETERMINADO |
|:---------------|:-----------------------------------------------------------------------------------------------------------------------|:---------------:|:-------------:|
| type           | `open_url`					                                                            		                                        	 | 	             	 |       	       |
| text    	      | Texto del botón de sugerencia                          										                                                          |    **Sí** 	    |       -       |
| postback 	     | Contenido que se envía como respuesta cuando se pulsa el botón de sugerencia.                                              | No   	       	  |    `ok`     |
| url            | URL a la que se le redirige al hacer clic en el botón de sugerencia.                                                     | No           	  |   -      	    |

**Ejemplo de solicitud con la sugerencia 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"
					}
				]
			}
		}
	}
}
```

## Objeto Suggestions Reply
| NOMBRE DEL PARÁMETRO | VALOR                                                                                                                  | OBLIGATORIO    	 | VALOR PREDETERMINADO |
|:---------------|:-----------------------------------------------------------------------------------------------------------------------|:--------------:|:-------------:|
| type           | `reply`							                                                                                                       	 |       	        |       	       |
| text    	      | Texto del botón de sugerencia                          									                                        	                  | **Sí**      	 |       -       |
| postback 	     | Contenido que se envía como respuesta cuando se pulsa el botón de sugerencia.                                              | No   	       	 |    `ok`     |


**Ejemplo de solicitud con la sugerencia 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"
					}
				]
			}
		}
	}
}
```


## Objeto Suggestions Share location
| NOMBRE DEL PARÁMETRO | VALOR                                                                     | OBLIGATORIO    	 | VALOR PREDETERMINADO |
|:---------------|:--------------------------------------------------------------------------|:--------------:|:-------------:|
| type           | `share_location`							                                           	       |       		       |       	       |
| text    	      | Texto del botón de sugerencia                          										             | **Sí**      	 |       -       |
| postback 	     | Contenido que se envía como respuesta cuando se pulsa el botón de sugerencia. | No   	       	 |    `ok`     |


**Ejemplo de solicitud con el objeto Share 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"
					}
				]
			}
		}
	}
}
```

## Ejemplo de solicitud completa

El objeto RCS es el mismo en ambos endpoints; solo cambian los destinatarios que lo rodean.

Primero RCS, con SMS como alternativa. La parte RCS toma su texto de `message.text`; el `text` del nivel superior solo llega a la parte 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"
		}
	}
}
```

Una tarjeta con contenido multimedia y una sugerencia, de nuevo con SMS como alternativa.

```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 respuesta es la misma para todos los canales; consulte [Advanced transactional](https://www.bulkgate.com/es/documentacion/advanced-api/advanced-transactional/2.0/) o [Advanced promotional](https://www.bulkgate.com/es/documentacion/advanced-api/advanced-promotional/2.0/).
