What's new, 21 October 2026: A customer who sends several messages before the bot's first reply no longer gets the opening sequence of a Chat Flow twice
WASync · Developers

Sua primeira chamada

Liste as conexões que a sua chave alcança e confira se você tem capacidade antes de provisionar outra.

URL base https://developers.wasync.app/api/v1.

Liste as conexões que você pode usar

GET /connections
curl https://developers.wasync.app/api/v1/connections \
  -H "Authorization: Bearer $WASYNC_API_KEY"

Só aparecem conexões com licença ativa. Cada uma traz um provider com valor qr ou cloud_api, um id (um cuid — o identificador estável que você deve guardar junto ao registro do seu próprio cliente) e um status. Usa whatsapp.read.

Já chama cloudapi.wasync.app/api/v1? Continue chamando.

developers.wasync.app é o host canônico, mas cloudapi.wasync.app é um alias permanente para exatamente a mesma API — mesmas chaves, mesmos caminhos, mesmas respostas — e continua válido por tempo indeterminado. Nenhuma integração existente precisa mudar nada. Os endpoints OAuth, os documentos /.well-known/… e a URL do servidor MCP são identificadores de protocolo registrados pelos clientes: eles ficam em cloudapi.wasync.app de propósito.

Confira a sua capacidade antes de prometê-la

GET /account
curl https://developers.wasync.app/api/v1/account \
  -H "Authorization: Bearer $WASYNC_API_KEY"
200 response
{
  "slots": {
    "total": 30,
    "used": 28,
    "available": 2,
    "nextExpiry": "2027-08-08T09:00:00.000Z"
  },
  "connections": {
    "total": 28,
    "connected": 27,
    "needsReconnect": 1
  }
}

slots.available mostra se você pode cadastrar mais um número agora, e nextExpiry é a data antes da qual você precisa faturar o seu próprio cliente — assim, um slot nunca expira na mão de quem já pagou a você. connections.needsReconnect conta os números que, neste momento, esperam que o dono escaneie um QR; assine os eventos de conexão para ser avisado assim que esse número mudar, em vez de consultar o tempo todo. Usa whatsapp.read.

Um slot é capacidade, não um número de telefone. Se você exclui uma conexão, o slot volta para o seu conjunto com o tempo que ainda restava nele — o próximo número que você conectar o aproveita automaticamente. É isso que permite transferir um slot pago de um cliente que está saindo para um novo, sem pagar duas vezes.

Conecte um número

Uma única chamada cria a conexão e devolve um QR code para escanear. Ela funciona em um workspace novinho, sem nenhuma conexão — com uma chave, não há nada para clicar antes em um portal.

POST /connections
curl -X POST https://developers.wasync.app/api/v1/connections \
  -H "Authorization: Bearer $WASYNC_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"label":"Support line"}'
201 response
{
  "connection": {
    "id": "conn_8f3a21",
    "status": "connecting",
    "qr": "data:image/png;base64,iVBORw0KGgo…"
  }
}

O QR que você recebe aqui não continua válido

O WhatsApp troca o código de pareamento a cada 20 segundos, mais ou menos; por isso, o qr da resposta de criação já está vencido poucos segundos depois de exibido. A falha é silenciosa: o telefone nunca pareia e nada na tela explica o motivo. Consulte GET /connections/{id} a cada 3–5 s e renderize de novo o qr de cada resposta. Não o guarde em cache e não esconda a atualização atrás de um botão que o usuário precise apertar. Código de pareamento e QR traz a alternativa para um único dispositivo.

Usa whatsapp.manage. As conexões criadas assim são números qr; os números cloud_api são cadastrados pelo Meta Embedded Signup. Este endpoint vale apenas para workspaces independentes — um portal Bitrix24 recebe 403 forbidden_portal_kind, porque nele as conexões são criadas pelo administrador do portal dentro do WASync. Envie um Idempotency-Key: criar uma conexão consome um slot pago, e uma nova tentativa depois de um timeout, sem essa chave, faz você comprar dois. Erros e idempotência traz os quatro casos que você precisa tratar.

Esta página foi útil?

On this page