> ## 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

> First RCS send: BASIC text, query status, and cancel while queued or scheduled.

<Tip>
  From **zero to your first RCS in the queue** in a few steps. Start with `sk_test_...` in [Sandbox](/en/guides/sandbox/index). Not every device receives RCS, keep SMS as plan B.
</Tip>

## In short

* **Send** RCS to one or more numbers in international format (E.164, no `+`).
* **Query** a send by the id returned in the response.
* **Cancel** only while status is `QUEUED` or `SCHEDULED`.

Each RCS message consumes **60 credits**. Context: [Introduction](/en/rcs-api/como-funciona/introducao). Scopes: [API Key scopes](/en/rcs-api/como-funciona/escopos-da-api-key).

## Before you start

* Key with **`rcs:send`** (and `rcs:read` / `rcs:cancel` to query or cancel)
* Numbers in **E.164** (e.g. `5511999999999`, no `+`)
* Auth: `Authorization: Bearer sk_live_...` or `x-api-key`
* Base URL: `https://api.notifique.dev`

***

## 1. Send RCS

Two paths, pick what fits your integration:

#### 1A, Via dashboard

1. RCS → **New send**
2. Choose type (**BASIC**, **CARD**, etc.) and fill content
3. Enter number(s) and dispatch

#### 1B, Via API

`to` is always an **array** (up to **100** recipients). One message is created **per number**.

```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": "Hello! This is a simple text RCS test."
  }
}
```

Expected response: **202**

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

`messageIds` is the canonical field; `rcsIds` is a compatibility alias. Scope: **`rcs:send`**.

### Send with template

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

See [template-api](/en/template-api/como-funciona/variaveis-disponiveis-e-crud).

Lowercase `type` is canonical. Uppercase `messageType` alias (e.g. `"BASIC"`) is still accepted.

**Schedule**, include `"schedule": { "sendAt": "2026-12-31T14:00:00.000Z" }` (plan-dependent).

In `options`: `priority`, per-send `webhook` (`url` + `secret`), `metadata`.

***

## 2. Other types (CARD, CAROUSEL, FILE)

Change `type` and `payload`. **CARD** example:

```json theme={null}
{
  "to": ["5511999999999"],
  "type": "card",
  "payload": {
    "message": "Check out our promotion",
    "cardImage": "https://yoursite.com/image.jpg",
    "cardTitle": "Special offer",
    "cardMessage": "Valid until Sunday",
    "buttons": [
      { "text": "View offer", "url": "https://yoursite.com/promo" }
    ]
  }
}
```

**CAROUSEL** and **FILE** payloads: **API reference** on the RCS tab.

***

## 3. Query status

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

Expected response: **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"
  }
}
```

Scope: **`rcs:read`**.

***

## 4. Cancel

Only with status **`QUEUED`** or **`SCHEDULED`**:

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

If already **SENT** or **DELIVERED**, the API returns **400**. Scheduled credits return to the workspace when applicable. Scope: **`rcs:cancel`**.

***

## 5. Avoid duplicates

**`Idempotency-Key`** header on the send `POST`. Repeats within 24 h do not create duplicate sends. See [Security and reliability](/en/guides/conceitos/seguranca-e-confiabilidade).

***

## 6. Webhooks (optional)

Configure `rcs.sent`, `rcs.delivered`, `rcs.clicked`, `rcs.failed`, and `rcs.cancelled` to track without polling.

Guide: [Webhook events](/en/rcs-api/como-funciona/eventos-do-webhooks).

***

## All send types

In the API reference (RCS tab), open **Send RCS** and pick an example in the playground: Basic, Card, Carousel, File, Template, Scheduled.

## Next steps

* [Introduction](/en/rcs-api/como-funciona/introducao): when to use and message types
* [Scopes](/en/rcs-api/como-funciona/escopos-da-api-key): key permissions
* [Webhook events](/en/rcs-api/como-funciona/eventos-do-webhooks): real-time status
* [Error responses](/en/guides/conceitos/resposta-de-erros): HTTP codes and `code`
