Skip to main content
@wabox/sdk é o pacote oficial para TypeScript e JavaScript. Ele é gerado a partir do OpenAPI da API, então cada rota, body, parâmetro e resposta desta referência tem o tipo correspondente no editor. Toda página de endpoint mostra o equivalente em SDK na aba TypeScript.
Requer Node ≥ 20 (ou Bun, Deno, Cloudflare Workers, Vercel Edge). Sem dependências além do openapi-fetch, ~6 kB.

Enviar e consultar

O caminho é relativo à instância (/send-text, /chats/{phone}, /groups): o SDK monta https://api.wabox.me/instances/{instance_id}/token/{token} por você. Parâmetros de rota e query vão em params:
Cada chamada resolve com { data, error, response }: data tipado quando a resposta é 2xx, error tipado como { error: { code, message } } nos demais casos, e response é o Response cru (status, headers como Retry-After).

Preferir exceções

unwrap() devolve só o data e lança WaboxError (code, status, details) quando a API responde erro:

Receber webhooks

constructWebhookEvent verifica o X-Wabox-Signature (HMAC-SHA256 sobre o corpo cru, com janela de 5 minutos contra replay) e devolve o evento tipado, discriminado por type:
WaboxWebhookError.reason diz o motivo: invalid_signature (assinatura errada, ausente ou t fora da janela), invalid_json ou unknown_event. Se você só quer a verificação, use verifyWebhookSignature(secret, header, rawBody); para processar sem verificar (não recomendado), parseWebhookEvent(rawBody). O secret (whsec_…) é por instância: GET /webhooks ou o painel em Webhooks e configurações gerais.

Partner API

Integradores criam e administram instâncias com o header Partner-Token (veja Partner API):

Tipos

Todos os schemas nomeados da referência são exportados como tipos: Instance, Chat, Contact, Group, SendResponse, QueueItem, WebhookReceived, WebhookDelivery… e WebhookEvent (a união de todos os eventos). Para tipar o resto, use InstancePaths/PartnerPaths (todas as rotas) e Schemas:

Opções

O SDK não faz retry nem fila: trate 429 (Retry-After), 409 instance_not_connected e 402 como descrito em Rate limits e erros. Envios não são idempotentes — confira GET /queue antes de repetir uma chamada que falhou por rede.