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

# Visão geral

> Base URL, autenticação e como usar a API da Zapfy.

A API da Zapfy é REST sobre HTTPS. Você envia mensagens e gerencia instâncias e
webhooks por uma superfície única — a conexão com o WhatsApp fica abstraída.

**Base URL**

```
https://api.zapfy.io
```

## Autenticação

Tudo via `Authorization: Bearer <token>`. Há **dois tokens**, cada um com seu escopo:

<CardGroup cols={2}>
  <Card title="Token de conta" icon="key">
    Prefixo `zpfy_acct_`. Gerencia **instâncias e webhooks** (criar, listar, editar, remover).
  </Card>

  <Card title="Token de instância" icon="message-dots">
    Prefixo `zpfy_inst_`. **Envia mensagens** por um número específico.
  </Card>
</CardGroup>

```bash theme={null}
# enviar mensagem (token de instância)
curl -X POST https://api.zapfy.io/v1/messages/send-text \
  -H "Authorization: Bearer zpfy_inst_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{ "to": "5511999998888", "text": "Olá!" }'
```

<Note>
  Cada endpoint indica qual token usar no seletor **Authorization** do playground à
  direita. Mensagens usam o token de instância; instâncias e webhooks, o de conta.
</Note>

## Identificadores

A Zapfy usa **dois** identificadores, abstraindo os JIDs internos do WhatsApp:

| Campo   | Representa                    | Formato                                                | Exemplo                   |
| ------- | ----------------------------- | ------------------------------------------------------ | ------------------------- |
| `phone` | uma pessoa                    | telefone em E.164 (com ou sem `+`, espaços ou máscara) | `5511999998888`           |
| `id`    | um grupo, comunidade ou canal | valor opaco devolvido pela API                         | `120363012345678901@g.us` |

* **`phone`** é só o número da pessoa — nunca `...@s.whatsapp.net`.
* **`id`** é o valor exato que a API te devolve (em `GET /groups`, `GET /communities`,
  `GET /newsletters`). Ele é opaco: pode parecer `...@g.us` (grupo/comunidade) ou
  `...@newsletter` (canal) — **use como veio**, não reconstrua nem derive de um telefone.

<Note>
  **No envio**, o destinatário vai no campo `to`, que aceita um `phone` (pessoa) **ou** o
  `id` de um grupo. A resposta traz `{ messageId }` — guarde-o pra reusar nas ações sobre a
  mensagem (status, reação, `delete`, `edit`).
</Note>

## Webhooks

Eventos inbound (mensagem recebida, status, conexão) chegam nos webhooks que você
cadastrar — uma URL, vários eventos. Veja [Configuração](/pt-br/webhooks/configuration) e
[Eventos](/pt-br/webhooks/events).
