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

# Quickstart

> Valide a key e envie a primeira mensagem em poucos minutos.

# Quickstart

## 1. Crie uma API key

No [app aidesk](https://app.aideskbr.com), crie uma key com pelo menos `messages:send` e `messages:read`. Guarde o valor `ak_live_...` imediatamente.

Veja o passo a passo em [Ajuda → API keys](https://help.aideskbr.com/integrations/api-keys).

## 2. Valide com ping

```bash theme={null}
curl -sS -i https://api.aideskbr.com/api/public/v1/ping \
  -H 'Authorization: Bearer ak_live_SUA_KEY'
```

Resposta esperada `200`:

```json theme={null}
{
  "ok": true,
  "organization_id": "uuid",
  "organization_name": "Minha Org",
  "api_key_id": "uuid",
  "api_key_prefix": "ak_live_xxxx",
  "scopes": ["messages:send", "messages:read"]
}
```

## 3. Envie um template

Fora da janela de 24h use **template**. Você precisa do `channel_id` (UUID do canal WhatsApp na aidesk).

```bash theme={null}
curl -sS -X POST https://api.aideskbr.com/api/public/v1/messages \
  -H 'Authorization: Bearer ak_live_SUA_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "channel_id": "SEU_CHANNEL_UUID",
    "to": { "kind": "whatsapp", "handle": "5511999998888" },
    "client_message_id": "demo-welcome-1",
    "type": "template",
    "template": {
      "name": "nome_do_modelo",
      "language": "pt_BR",
      "variables": {}
    }
  }'
```

`201` no primeiro envio:

```json theme={null}
{
  "message_id": "uuid",
  "thread_id": "uuid",
  "contact_id": "uuid",
  "delivery_state": "queued",
  "client_message_id": "demo-welcome-1",
  "deduplicated": false
}
```

## 4. Idempotência

Repita o **mesmo** `client_message_id` e o **mesmo** body → `200` com `deduplicated: true` (não reenvia à Meta).

Mesmo id com body diferente → `409` `idempotency_key_reused`.

## 5. Consulte o status

```bash theme={null}
curl -sS https://api.aideskbr.com/api/public/v1/messages/MESSAGE_UUID \
  -H 'Authorization: Bearer ak_live_SUA_KEY'
```

## Engajamento

O envio pela API **não** reabre conversa fechada, **não** altera snooze e **não** muda atribuição. A conversa só volta a “aberta” de verdade no inbound do contato.

## Próximo

Configure [webhooks](/webhooks) para receber `message.delivered` / `message.failed` sem polling.
