> ## Documentation Index
> Fetch the complete documentation index at: https://docs.notifique.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Quick Start

> Primeiro envio RCS: texto BASIC, consultar status e cancelar na fila ou agendado.

<Tip>
  Do **zero ao primeiro RCS na fila** em poucos passos. Comece com `sk_test_...` no [Sandbox](/guides/sandbox/index). Nem todo aparelho recebe RCS, tenha SMS como plano B.
</Tip>

## Em poucas palavras

* **Envie** RCS para um ou vários números em formato internacional (E.164, sem `+`).
* **Consulte** um envio pelo id retornado na resposta.
* **Cancele** só enquanto estiver `QUEUED` ou `SCHEDULED`.

Cada mensagem RCS consome **60 créditos**. Contexto: [Introdução](/rcs-api/como-funciona/introducao). Escopos: [Escopos da API Key](/rcs-api/como-funciona/escopos-da-api-key).

## Antes de começar

* Chave com **`rcs:send`** (e `rcs:read` / `rcs:cancel` se for consultar ou cancelar)
* Números em **E.164** (ex.: `5511999999999`, sem `+`)
* Autenticação: `Authorization: Bearer sk_live_...` ou `x-api-key`
* Base URL: `https://api.notifique.dev`

***

## 1. Enviar RCS

Dois caminhos, escolha o que combina com sua integração:

#### 1A, Pelo painel

1. RCS → **Novo envio**
2. Escolha o tipo (**BASIC**, **CARD**, etc.) e preencha o conteúdo
3. Informe o(s) número(s) e dispare

#### 1B, Pela API

`to` é sempre um **array** (até **100** destinatários). Uma mensagem é criada **por número**.

```http theme={null}
POST /v1/rcs/messages
Content-Type: application/json
Authorization: Bearer sk_live_xxxxx
```

```json theme={null}
{
  "to": ["5511999999999"],
  "type": "basic",
  "payload": {
    "message": "Olá! Este é um RCS de teste com texto simples."
  }
}
```

Resposta esperada: **202**

```json theme={null}
{
  "success": true,
  "data": {
    "status": "QUEUED",
    "count": 1,
    "messageIds": ["clrcs1..."],
    "rcsIds": ["clrcs1..."]
  }
}
```

`messageIds` é o campo canônico; `rcsIds` é alias de compatibilidade. Escopo: **`rcs:send`**.

### Enviar com template

```json theme={null}
{
  "to": ["5511999999999"],
  "type": "template",
  "payload": {
    "templateId": "ID_DO_TEMPLATE",
    "variables": { "code": "482910" }
  }
}
```

Referência: [template-api](/template-api/como-funciona/variaveis-disponiveis-e-crud).

`type` em minúsculo é o campo canônico. O alias `messageType` em MAIÚSCULO (ex.: `"BASIC"`) continua aceito.

**Agendar**, inclua `"schedule": { "sendAt": "2026-12-31T14:00:00.000Z" }` (depende do plano).

Em `options`: `priority`, `webhook` (`url` + `secret`) só para esse envio, `metadata`.

***

## 2. Outros tipos (CARD, CAROUSEL, FILE)

Altere `type` e o `payload`. Exemplo **CARD**:

```json theme={null}
{
  "to": ["5511999999999"],
  "type": "card",
  "payload": {
    "message": "Confira nossa promoção",
    "cardImage": "https://seusite.com/imagem.jpg",
    "cardTitle": "Oferta especial",
    "cardMessage": "Válida até domingo",
    "buttons": [
      { "text": "Ver oferta", "url": "https://seusite.com/promo" }
    ]
  }
}
```

Payloads de **CAROUSEL** e **FILE**: **referência da API** na aba RCS.

***

## 3. Consultar status

```http theme={null}
GET /v1/rcs/messages/:id
Authorization: Bearer sk_live_xxxxx
```

Resposta esperada: **200**

```json theme={null}
{
  "success": true,
  "data": {
    "rcsId": "clrcs1...",
    "to": "5511999999999",
    "messageType": "BASIC",
    "status": "DELIVERED",
    "sentAt": "2025-02-20T14:00:00.000Z",
    "deliveredAt": "2025-02-20T14:00:30.000Z"
  }
}
```

Escopo: **`rcs:read`**.

***

## 4. Cancelar

Só com status **`QUEUED`** ou **`SCHEDULED`**:

```http theme={null}
POST /v1/rcs/messages/:id/cancel
Authorization: Bearer sk_live_xxxxx
```

Se já estiver **SENT** ou **DELIVERED**, a API retorna **400**. Créditos do agendamento voltam para o workspace quando aplicável. Escopo: **`rcs:cancel`**.

***

## 5. Evitar duplicata

Header **`Idempotency-Key`** no `POST` de envio. Repetições em até 24 h não criam dois envios iguais. Veja [Segurança e confiabilidade](/guides/conceitos/seguranca-e-confiabilidade).

***

## 6. Webhooks (opcional)

Configure `rcs.sent`, `rcs.delivered`, `rcs.clicked`, `rcs.failed` e `rcs.cancelled` para acompanhar sem polling.

Guia: [Eventos dos webhooks](/rcs-api/como-funciona/eventos-do-webhooks).

***

## Todos os tipos de envio

Na referência da API (aba RCS), abra **Enviar RCS** (`POST /v1/...`) e escolha o exemplo no playground: Basic, Card, Carrossel, Arquivo, Template, Agendado.

## Próximos passos

* [Introdução](/rcs-api/como-funciona/introducao): quando usar e tipos de mensagem
* [Escopos](/rcs-api/como-funciona/escopos-da-api-key): permissões da chave
* [Eventos dos webhooks](/rcs-api/como-funciona/eventos-do-webhooks): status em tempo real
* [Respostas de erro](/guides/conceitos/resposta-de-erros): códigos HTTP e `code`
