---
title: "API de WhatsApp com múltiplos números | D-API"
description: "Opere vários números na API de WhatsApp em paralelo: uma sessão por número, webhook e IP próprios, roteamento por sessionId e isolamento entre as conexões."
url: https://d-api.cloud/api-whatsapp-multiplos-numeros
---

Guia da API de WhatsApp

# API de WhatsApp com múltiplos números em paralelo

Para operar vários números pela mesma API de WhatsApp, cada número vira uma sessão independente, com sessionId, webhook e IP próprios. Seu sistema escolhe por qual sessão enviar e usa o sessionId dos eventos para rotear o que chega.

Por Time de engenharia D-APIAtualizado em 24 de set de 20265 min de leitura

## Quando um número só deixa de bastar

Um número atende bem uma empresa pequena. O problema aparece quando a operação se divide, e cada parte precisa do próprio WhatsApp:

-   **Times diferentes.** Vendas, suporte e financeiro com números separados, para o cliente saber com quem está falando e cada time ter a própria fila.
-   **Filiais e unidades.** Cada loja, clínica ou franquia com o número que o cliente local já conhece, mas com os dados centralizados no mesmo sistema.
-   **Clientes de um software.** O caso mais exigente: um CRM, um helpdesk ou um ERP em que cada cliente conecta o próprio número. Aqui são dezenas ou milhares de números, de donos diferentes.
-   **Distribuir volume.** Operações que enviam muito dividem a carga entre números para respeitar o ritmo de cada um.

Em todos esses casos, o desenho da [API de WhatsApp](https://d-api.cloud/) é o mesmo: uma sessão por número, e o seu sistema como a camada que decide quem fala por onde.

## Uma sessão por número

Na D-API, criar mais um número é criar mais uma sessão. O `sessionId` é escolhido por você, então vale usar um identificador que já existe no seu banco, como o ID da filial ou do cliente. Cada sessão pode ter a própria URL de webhook desde a criação:

```
for unidade in centro zona-sul zona-norte; do
  curl -X POST https://api.d-api.cloud/api/v1/sessions \
    -H "Authorization: SUA_API_KEY" \
    -H "Content-Type: application/json" \
    -d "{ \"sessionId\": \"filial-$unidade\", \"type\": \"unofficial\",
          \"webhookUrl\": \"https://seu-app.com/wa/filial-$unidade\" }"
done
```

Depois, cada unidade lê o próprio QR. Para listar o que existe na conta, use `GET /api/v1/sessions`; para ver o estado de uma sessão específica, `GET /api/v1/sessions/{sessionId}`. Em quem vende software, esse loop costuma virar parte do onboarding: o cliente se cadastra no seu produto, seu backend cria a sessão pela API e mostra o QR na tela, sem ninguém do seu time no meio.

## Isolamento: por que um número não pode derrubar os outros

Rodar muitos números juntos cria um risco que não existe com um só: o efeito dominó. Se todos compartilham o mesmo processo, uma sessão travada consome recurso das outras. Se todos saem pelo mesmo IP, um número com comportamento ruim contamina a reputação dos vizinhos.

Na D-API, cada conexão roda isolada, com credenciais e webhook próprios, e recebe um proxy com IP único, gerenciado pela plataforma. Quando uma sessão cai, a reconexão acontece só nela. Para um SaaS, isso significa que o problema de um cliente continua sendo de um cliente, e não vira incidente geral com dezenas de tickets abertos ao mesmo tempo. Vale lembrar que isolamento reduz o estrago, mas não substitui boa prática de envio; as recomendações estão em [como evitar banimento](https://d-api.cloud/como-evitar-banimento-api-whatsapp).

## Webhook por sessão e roteamento

Há dois jeitos de receber eventos de muitos números, e os dois funcionam:

| Modelo | Como funciona | Bom para |
| --- | --- | --- |
| Uma URL para tudo | Todas as sessões apontam para o mesmo endpoint, e o `sessionId` do envelope define o destino | Sistemas com um único serviço que trata WhatsApp |
| Uma URL por sessão | Cada sessão tem o próprio webhook, configurável em `/sessions/{id}/webhook` | Filiais com sistemas diferentes, ou clientes que recebem eventos no próprio servidor |

Dentro de cada sessão, dá para ir além e mandar cada tipo de evento para uma URL diferente, com a configuração por evento. Um exemplo comum é separar mensagens recebidas, que vão para o atendimento, de mudanças de status, que vão para o monitoramento:

```
curl -X POST https://api.d-api.cloud/api/v1/sessions/filial-centro/webhook-config \
  -H "Authorization: SUA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "enabled": true,
    "type": "per_event",
    "events": {
      "messages.received": { "enabled": true, "webhookUrl": "https://seu-app.com/atendimento" },
      "connection.status": { "enabled": true, "webhookUrl": "https://seu-app.com/monitoramento" }
    }
  }'
```

No lado do seu sistema, o roteamento é uma consulta simples: dado o `sessionId`, qual cliente, qual fila e qual atendente. Guarde essa relação numa tabela e responda o webhook rápido; o processamento pesado fica numa fila sua.

## O que monitorar quando são muitos números

-   **Status por sessão.** Um painel com quantas sessões estão `connected`, quantas `disconnected` e quantas `logged_out`, alimentado pelo evento de status.
-   **Aviso ao dono do número.** Quando uma sessão fica `logged_out`, quem precisa ler o QR de novo é o cliente ou a filial. Avise essa pessoa direto, pela sua interface ou por e-mail.
-   **Envio por sessão.** Pare os envios automáticos de uma sessão que não está conectada, em vez de acumular erros.

Se o seu caso é o de software com um número por cliente, a página de [API de WhatsApp para SaaS](https://d-api.cloud/api-whatsapp-para-saas) mostra o modelo completo. Para conectar cada número, veja [conexão por QR code](https://d-api.cloud/api-whatsapp-qr-code), e para estimar o custo com muitas conexões, a [página de preços](https://d-api.cloud/pricing).

## Perguntas frequentes

### Quantos números posso conectar na mesma conta?

Cada número é uma sessão, e a conta pode ter várias sessões ativas ao mesmo tempo. O que muda com a quantidade é o custo, que na D-API é por conexão e fica menor por conexão conforme você cresce.

### Consigo usar a mesma API Key para todos os números?

Sim. A chave identifica a sua conta, e o sessionId em cada chamada diz qual número usar. Por isso a chave fica sempre no seu backend: com ela é possível operar qualquer sessão da conta.

### Posso ter números oficiais e não oficiais na mesma operação?

Sim. Cada sessão é criada com type unofficial ou cloud\_api, e as duas convivem na mesma conta, usando as mesmas rotas de envio. Seu roteamento trata ambas pelo sessionId.

### Como sei de qual número veio uma mensagem recebida?

Todo webhook traz o sessionId no envelope do evento. Se você usa uma URL por sessão, a própria URL também identifica a origem. É por esse campo que seu sistema decide para qual cliente, fila ou atendente a conversa vai.

### Se um número for banido, os outros param?

Não deveriam. Na D-API, cada conexão roda em ambiente isolado, com IP próprio, então o bloqueio ou a queda de um número não se propaga para os demais.

Teste a API de WhatsApp da D-API3 dias grátis, sem cartão.[Começar trial grátis](https://app.d-api.cloud/register)

## Continue lendo

-   [Guia da API de WhatsAppWebhook de WhatsApp](https://d-api.cloud/webhook-api-whatsapp)
-   [Guia da API de WhatsAppEnviar imagem, áudio e documento](https://d-api.cloud/api-whatsapp-enviar-midia)
-   [Guia da API de WhatsAppBotões e listas no WhatsApp](https://d-api.cloud/api-whatsapp-botoes-e-listas)
-   [Guia da API de WhatsAppAPI de grupos do WhatsApp](https://d-api.cloud/api-whatsapp-grupos)

## Teste a API de WhatsApp da D-API

Trial de 3 dias com acesso completo. Sem cartão, sem fidelidade.

[Começar trial grátis](https://app.d-api.cloud/register)[Ver documentação](https://docs.d-api.cloud/)
