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

# SDKs

> Escolha o pacote da Polymorfa para o seu código de servidor ou de navegador, ou chame a API HTTP em qualquer linguagem.

A Polymorfa publica pacotes TypeScript no npm. Em qualquer outra linguagem,
chame a API HTTP diretamente.

| O que você está criando | Instale |
| - | - |
| Código de servidor em Node.js 20+, Cloudflare Workers, Deno ou Bun | `@polymorfa/sdk` |
| Um processo de servidor que fala em chamadas, como um agente de voz | `@polymorfa/sdk`, importado de `@polymorfa/sdk/calls` |
| Chamadas no navegador | `@polymorfa/browser`, com `@polymorfa/react` ou `@polymorfa/elements` para a interface |

Todos os pacotes são pré-lançamentos de desenvolvimento publicados com a tag
`dev` do npm. Fixe a versão exata que você instalar. Para chamadas no navegador,
consulte o [guia de chamadas](/pt-br/guides/calls/overview).

Gerencie as chaves da organização e os tokens de projeto no [Console](/pt-br/console/api-keys).
Os SDKs oferecem operações com tokens de cliente; eles não criam, não listam e
não revogam chaves da organização nem tokens de projeto.

## SDK para TypeScript

Comece pela [instalação](/pt-br/sdks/typescript/installation) e depois
[crie um cliente](/pt-br/sdks/typescript/client).

| Guia | Abrange |
| - | - |
| [Erros e novas tentativas](/pt-br/sdks/typescript/errors) | Classes de erro, chaves de idempotência, novas tentativas automáticas e paginação |
| [Números](/pt-br/sdks/typescript/numbers) | QuickLink, status do número, início e parada, configuração, mudanças de plano, capacidades beta do WhatsApp e restrições de grupo armazenadas |
| [Mensagens](/pt-br/sdks/typescript/messages) | Envio, respostas, reações, download de mídia, histórico armazenado |
| [Webhooks](/pt-br/sdks/typescript/webhooks) | Endpoints, verificação de assinatura, entregas de teste, rotação de segredo |
| [Eventos e operações](/pt-br/sdks/typescript/events) | Histórico de eventos, consulta periódica, streams, replay, trabalho em segundo plano |
| [Campanhas](/pt-br/sdks/typescript/campaigns) | Públicos, campanhas, acompanhamento de entregas, palavras-chave de opt-out |
| [Modelos](/pt-br/sdks/typescript/templates) | Modelos de mensagem do projeto |
| [Fluxos](/pt-br/sdks/typescript/flows) | Rascunhos de fluxos do WhatsApp |
| [Chamadas](/pt-br/sdks/typescript/calls) | Controle de chamadas, configurações de chamada, trunks SIP, política de chamadas |
| [Análises](/pt-br/sdks/typescript/analytics) | Atividade dos destinatários por país e dispositivo, engajamento com mensagens, resultados de chamadas e métricas de coletores |
| [Registros de chamadas](/pt-br/sdks/typescript/call-records) | Estatísticas, registros, exportações e retenção de chamadas |
| [Clientes](/pt-br/sdks/typescript/customers) | Clientes, links de pareamento, transferências de números |
| [Análise de dispositivos](/pt-br/sdks/typescript/devices) | Apps de envio estimados, observações de dispositivos próprios e listas de dispositivos dos destinatários em tempo real |
| [Notas de versão](/pt-br/sdks/typescript/version-notes) | Mudanças que exigem ação quando você atualiza |

Limites de gastos e prioridades de cobrança usam uma credencial da organização
com `billing:read` ou `billing:manage`. Consulte
[controles de gastos](/pt-br/sdks/typescript/client#controles-de-gastos) para fazer essas
requisições pelo SDK de servidor. Tokens de cliente do navegador não acessam
esses controles financeiros.

As [confirmações de STOP](/pt-br/guides/campaigns/opt-outs#confirmações-de-saída-opcionais)
opcionais exigem acesso ao beta e uma preferência explícita da equipe. Mantenha
o cliente instalado alinhado aos contratos HTTP de configurações e de resumo;
use as rotas HTTP documentadas se o pacote não tiver esses métodos. Atualizar o
pacote não ativa as confirmações nem concede acesso ao beta.

Para identidades da API oficial e bloqueio de contatos, use o
[contrato de identidade](/api/user-identities#official-api-identity-changes).
Mantenha os números de telefone opcionais separados dos BSUIDs e preserve os IDs
pai como metadados. Confira os tipos do pacote fixado antes de ler campos de
webhook adicionados recentemente; use as rotas HTTP documentadas quando o pacote
não tiver o contrato correspondente.

## Use a API HTTP em outras linguagens

Envie a sua chave como token bearer e fixe a versão da API:

```bash theme={null}
curl "https://api.polymorfa.com/platform/sessions" \
  -H "Authorization: Bearer $POLYMORFA_KEY" \
  -H "Polymorfa-Version: 2026-09-22"
```

Cada página de método na [referência da API](/api/overview) tem um exemplo em
cURL e um playground de requisições. Consulte [Autenticação](/api/authentication),
[Erros](/api/errors) e [Paginação](/api/pagination) para ver as regras que toda
requisição segue.

Mantenha as chaves da equipe e as credenciais de projeto no seu servidor. O
código de navegador e de apps móveis usa um [token de cliente](/pt-br/console/client-tokens)
de curta duração.

Para engajamento com mensagens do WhatsApp, resultados de chamadas e indicadores
de conexão, consulte o [guia de análises em TypeScript](/pt-br/sdks/typescript/analytics)
e a [API de análises](/pt-br/console/analytics#ler-as-análises-pela-api).
O recurso tipado do SDK está incluído na versão `0.1.0-dev.20261004011426`.

Os controles financeiros por recurso usam a Platform API com UUIDs de projeto,
cliente e número. Leia `GET /platform/billing/controls/{scope}/{resourceId}`
para obter o limite, a prioridade e as duas revisões de um recurso. Um `PUT` na
mesma rota salva os dois valores de forma atômica. Quem usa o SDK de servidor
pode usar o transporte bruto até que os métodos tipados estejam incluídos no
pacote instalado. A criação de um QuickLink real aceita o campo opcional
`billingControls: { limitCredits, priority }` com uma credencial da equipe com
`billing:manage`; conexões de teste e suplementares recusam esses valores.

### Ranking de prioridades com financiamento misto

Leia as prioridades de um projeto com `GET /platform/billing/priorities?projectId=PROJECT_UUID`.
Reordene os clientes e os números reais do projeto juntos com `PUT /platform/billing/priorities`:

```json theme={null}
{
  "scope": "resource",
  "projectId": "22222222-2222-4222-8222-222222222222",
  "resources": [
    { "scope": "number", "resourceId": "33333333-3333-4333-8333-333333333333" },
    { "scope": "customer", "resourceId": "44444444-4444-4444-8444-444444444444" }
  ],
  "expectedRevision": 5
}
```

Inclua todos os clientes ativos e números reais do projeto escolhido. Use a
revisão da leitura; alterações simultâneas retornam 409. Dentro do projeto, uma
prioridade de número mais alta passa à frente da prioridade de cliente. A
prioridade do projeto e todos os limites de gastos continuam valendo. Use o
método de requisição bruta do cliente publicado para essas chamadas.

As versões do SDK que contêm os contratos de mudança de capacidades e de
capacidades de grupo oferecem `SessionCapabilitiesUpdatedPayload`,
`GroupCapabilities` e `messaging.groups.getCapabilities`. Confira a API da
versão instalada antes de usar essas adições;
[Capacidades do número](/pt-br/guides/numbers/number-capabilities) descreve os
requisitos de inscrição no beta. SDKs de outras linguagens não expõem esses
métodos de TypeScript.

O `allow` de um token de cliente é um teto imutável, cruzado com as regras do
número em vigor. O `allow` por sessão exige inscrição no beta de tetos de ação;
a restrição por cliente mantém o formato de token existente. Os nomes de ação
regionais de chat e de contato são reservados para o acesso ao beta com
inscrição, e não indicam disponibilidade regional pública. Consulte
[Tokens de cliente](/pt-br/console/client-tokens).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.