Enviar RCS
A operação transaccional de RCS consiste no envio de uma mensagem RCS para um ou mais destinatários que não pertencem à audiência da organização. Como tal, não depende de um schema previamente definido para a audiência de contactos.
Existe um limite de 10 mensagens RCS por pedido HTTP à API Arpoone, configuradas através do campo messages.
Cada elemento do array messages representa uma mensagem RCS independente e pode especificar um destinatário, remetente, data de expiração e conteúdo diferentes.
Deve ser dada especial atenção ao campo to no payload transaccional de RCS. O número de telefone de destino deve ser um MSISDN válido e incluir o indicativo telefónico do país. Por exemplo, um MSISDN português deve começar por 351 (por exemplo, 351913462111).
Estrutura do pedido
{
"organizationId": "<uuid>",
"messages": [
{
"to": "<msisdn>",
"from": "<string>",
"expirationDateTime": "<dateTime>",
"contentMessage": {
"<contentType>": {}
}
}
]
}
A estrutura acima é uma representação simplificada do pedido. As propriedades aceites por contentMessage dependem do tipo de conteúdo RCS seleccionado.
Propriedades do pedido
Objecto raiz
| Propriedade | Tipo | Obrigatório | Descrição |
|---|---|---|---|
organizationId | UUID | Sim | Identificador único da Organização Arpoone onde a operação será realizada, uma vez que um utilizador pode ter acesso a mais do que uma Organização. |
messages | Array | Sim | Colecção de mensagens RCS a enviar. O array deve conter entre 1 e 10 elementos. |
Objecto de mensagem
| Propriedade | Tipo | Obrigatório | Descrição |
|---|---|---|---|
to | String | Sim | Número de telemóvel do destinatário, incluindo o indicativo telefónico do país. |
from | String | Sim | Identificador do remetente ou agente RCS configurado para a organização. |
expirationDateTime | DateTime | Não | Data e hora após as quais a mensagem já não deverá ser entregue. O valor deve utilizar o formato ISO 8601, incluindo o desvio UTC aplicável. |
contentMessage | Object | Sim | Conteúdo RCS a enviar. O objecto deve conter um tipo de conteúdo primário suportado. |
Regras de conteúdo
Cada mensagem deve conter um contentMessage.
Os tipos de conteúdo primário suportados são:
textcontentInforichCard
Apenas deve ser incluído um tipo de conteúdo primário no mesmo contentMessage. Por exemplo, uma mensagem não deve conter simultaneamente text e richCard.
A propriedade suggestions não é considerada um tipo de conteúdo primário e pode ser combinada com conteúdo de texto.
Exemplos
{
"contentMessage": {
"text": "Your order is ready."
}
}
{
"contentMessage": {
"contentInfo": {
"fileUrl": "https://cdn.example.com/order-confirmation.pdf",
"mimeType": "application/pdf"
}
}
}
{
"contentMessage": {
"richCard": {
"standaloneCard": {}
}
}
}
Limites do pedido
| Limite | Valor |
|---|---|
| Máximo de mensagens por pedido HTTP | 10 |
| Tamanho máximo por mensagem | 250 KB |
| Comprimento máximo de uma mensagem de texto | 3 072 caracteres |
| Máximo de sugestões ao nível da mensagem | 11 |
| Máximo de sugestões por rich card | 4 |
| Máximo de cartões num carrossel | 10 |
| Mínimo de cartões num carrossel | 2 |
O limite de 250 KB aplica-se individualmente a cada elemento do array messages e não ao pedido HTTP completo.
O envio em lote não combina os elementos numa única mensagem RCS. Cada mensagem é validada e processada de forma independente.
Mensagens de texto
Uma mensagem de texto é enviada através da propriedade text.
O comprimento máximo do texto é de 3 072 caracteres.
Exemplo de mensagem de texto
curl --location 'https://api.arpoone.com/v1.2/rcs/send' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <YOUR_API_KEY>' \
--data '{
"organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
"messages": [
{
"to": "351912345678",
"from": "MyBrand",
"expirationDateTime": "2026-09-02T16:00:00Z",
"contentMessage": {
"text": "Your order is ready for collection."
}
}
]
}'
Mensagem de texto com respostas sugeridas
As mensagens de texto podem incluir respostas sugeridas e acções sugeridas através do array suggestions.
Uma mensagem pode conter até 11 sugestões ao nível da mensagem.
curl --location 'https://api.arpoone.com/v1.2/rcs/send' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <YOUR_API_KEY>' \
--data '{
"organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
"messages": [
{
"to": "351912345678",
"from": "MyBrand",
"expirationDateTime": "2026-09-02T16:00:00Z",
"contentMessage": {
"text": "Would you like to confirm your appointment?",
"suggestions": [
{
"reply": {
"text": "Confirm",
"postbackData": "appointment-confirm"
}
},
{
"reply": {
"text": "Reschedule",
"postbackData": "appointment-reschedule"
}
}
]
}
}
]
}'
Mensagens multimédia
Uma mensagem exclusivamente multimédia é enviada através de contentInfo.
A API Arpoone não aceita ficheiros multimédia como conteúdo Base64 nem como uploads de ficheiros multipart para esta operação. O ficheiro multimédia deve ser disponibilizado pelo cliente através de um URL antes do envio da mensagem.
Propriedades das informações de conteúdo
| Propriedade | Tipo | Obrigatório | Descrição |
|---|---|---|---|
fileUrl | String | Sim | URL HTTPS publicamente acessível através do qual o ficheiro multimédia pode ser obtido. |
thumbnailUrl | String | Não | URL HTTPS publicamente acessível da miniatura associada ao ficheiro multimédia. Comprimento máximo: 2 048 caracteres. |
mimeType | String | Sim | Tipo MIME do recurso multimédia. O valor deve corresponder a um dos tipos de multimédia suportados. |
Requisitos do URL de multimédia
Para conteúdo multimédia referenciado por URL, a Arpoone exige as seguintes condições para garantir que o ficheiro pode ser obtido e processado de forma fiável:
- utilizar HTTPS;
- estar acessível externamente através de um pedido HTTP GET;
- devolver directamente o conteúdo multimédia;
- não exigir uma sessão de utilizador autenticada;
- permanecer acessível durante o processamento e a entrega da mensagem;
- devolver conteúdo consistente com o
mimeTypedeclarado.
O cliente é responsável pelo alojamento do ficheiro e por assegurar a sua disponibilidade contínua.
Tipos de multimédia suportados
Imagens
image/jpegimage/jpgimage/gifimage/png
Vídeo
video/h263video/m4vvideo/mp4video/mpegvideo/mpeg4video/webm
Documentos
application/pdf
Estes são os tipos de multimédia actualmente identificados como suportados pela integração Arpoone.
A Google indica que o suporte de PDF em rich cards pode depender da geografia e do cliente de mensagens do destinatário. Especificamente, a documentação actual de rich cards indica que as rich cards com PDF estão disponíveis apenas na Índia, no cliente Google Messages.
Exemplo de mensagem multimédia
curl --location 'https://api.arpoone.com/v1.2/rcs/send' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <YOUR_API_KEY>' \
--data '{
"organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
"messages": [
{
"to": "351912345678",
"from": "MyBrand",
"expirationDateTime": "2026-09-02T16:00:00Z",
"contentMessage": {
"contentInfo": {
"fileUrl": "https://cdn.example.com/media/product.jpg",
"thumbnailUrl": "https://cdn.example.com/media/product-thumbnail.jpg",
"mimeType": "image/jpeg"
}
}
}
]
}'
Rich cards
As rich cards podem combinar conteúdo multimédia, um título, uma descrição e sugestões numa única mensagem.
A API suporta:
- rich cards autónomas;
- carrosséis de rich cards.
As rich cards podem combinar conteúdo multimédia, texto de título, texto de descrição, respostas sugeridas e acções sugeridas. O suporte e a apresentação podem variar consoante as capacidades do dispositivo do destinatário.
Propriedades do conteúdo do cartão
Uma rich card deve conter conteúdo significativo. Deve ser fornecido, pelo menos, um title, description ou media.
O material de integração especifica ainda que, quando um cartão horizontal contém conteúdo multimédia, deve também incluir, pelo menos, um title, description ou suggestion.
| Propriedade | Tipo | Obrigatório | Descrição |
|---|---|---|---|
title | String | Condicional | Título da rich card. Comprimento máximo: 200 caracteres. |
description | String | Condicional | Descrição da rich card. Comprimento máximo: 2 000 caracteres. |
media | Object | Condicional | Conteúdo multimédia apresentado na rich card. Segue as mesmas restrições de multimédia aplicáveis a uma mensagem exclusivamente multimédia. |
suggestions | Array | Não | Respostas ou acções sugeridas associadas ao cartão. Máximo: 4 elementos por cartão. |
Rich card autónoma
Propriedades do cartão autónomo
| Propriedade | Tipo | Obrigatório | Descrição |
|---|---|---|---|
cardOrientation | Enum | Sim | Orientação do cartão. Valores aceites: VERTICAL ou HORIZONTAL. |
thumbnailImageAlignment | Enum | Condicional | Alinhamento da miniatura num cartão horizontal. Valores aceites: LEFT ou RIGHT. |
cardContent | Object | Sim | Conteúdo apresentado no cartão. |