Referência da API
Toda chamada autenticada leva o header x-api-key com a chave gerada no checkout. Base URL: https://api.zaply.company
/v1/onboarding/qrRetorna o QR code pra conectar o WhatsApp da sua empresa à instância. Chame de novo se o QR expirar.
curl https://api.zaply.company/v1/onboarding/qr \ -H "x-api-key: SUA_API_KEY"
| Status | Quando acontece |
|---|---|
| 200 | Retorna { base64, code } com o QR pra escanear. |
| 401 | invalid_api_key — chave ausente ou incorreta. |
| 404 | instance_not_found — conta sem instância provisionada. |
/v1/otp/sendGera e envia um código de verificação (OTP) de 6 dígitos pelo WhatsApp. Expira em 5 minutos.
| Campo | Tipo | Descrição |
|---|---|---|
| phoneobrigatório | string | Número com DDI e DDD, só dígitos. |
curl -X POST https://api.zaply.company/v1/otp/send \
-H "Content-Type: application/json" \
-H "x-api-key: SUA_API_KEY" \
-d '{"phone": "5511999999999"}'| Status | Quando acontece |
|---|---|
| 200 | { sent: true } — código enviado. |
| 401 | invalid_api_key. |
| 402 | subscription_required — assinatura vencida. |
| 409 | whatsapp_not_connected — precisa escanear o QR primeiro. |
| 422 | whatsapp_send_rejected — o WhatsApp está conectado, mas o número não tem conta no WhatsApp (ou similar). Revise o phone. |
| 429 | resend_cooldown — { error, retryAfterSeconds }, aguarde os segundos indicados antes de reenviar pro mesmo número. |
| 502 | evolution_api_unreachable — falha de infraestrutura, não do número. Tente de novo. |
Modo sandbox
Pro número fixo 5500000000000, /v1/otp/send sempre responde { sent: true } sem exigir WhatsApp conectado nem disparar mensagem real, e /v1/otp/verify só aceita o código 000000. Use em CI/testes automatizados pra não gastar envio real.
/v1/otp/verifyConfirma se o código digitado pelo usuário bate com o que foi enviado.
| Campo | Tipo | Descrição |
|---|---|---|
| phoneobrigatório | string | Mesmo número usado no envio. |
| codeobrigatório | string | Código de 6 dígitos digitado pelo usuário. |
curl -X POST https://api.zaply.company/v1/otp/verify \
-H "Content-Type: application/json" \
-H "x-api-key: SUA_API_KEY" \
-d '{"phone": "5511999999999", "code": "482913"}'| Status | Quando acontece |
|---|---|
| 200 | { ok: true } ou { ok: false, reason } — reason: not_found, expired, mismatch, too_many_attempts. |
| 401 | invalid_api_key. |
| 402 | subscription_required. |
/v1/message/sendEnvia texto livre pelo WhatsApp — sem template de OTP. Pra qualquer conteúdo: link de entrega, confirmação de pedido, aviso.
| Campo | Tipo | Descrição |
|---|---|---|
| phoneobrigatório | string | Número com DDI e DDD, só dígitos. |
| textobrigatório | string | Texto da mensagem, sem limite de template. |
curl -X POST https://api.zaply.company/v1/message/send \
-H "Content-Type: application/json" \
-H "x-api-key: SUA_API_KEY" \
-d '{"phone": "5511999999999", "text": "Seu produto: https://drive.google.com/..."}'| Status | Quando acontece |
|---|---|
| 200 | { sent: true }. |
| 400 | phone_required ou text_required. |
| 401 | invalid_api_key. |
| 402 | subscription_required. |
| 409 | whatsapp_not_connected. |
| 422 | whatsapp_send_rejected — número sem conta no WhatsApp. |
| 502 | evolution_api_unreachable — falha de infraestrutura, tente de novo. |
/v1/instance/statusCheca se o WhatsApp da instância está conectado, sem precisar tentar enviar nada primeiro. Útil pra um painel admin avisar antes de um 409.
curl https://api.zaply.company/v1/instance/status \ -H "x-api-key: SUA_API_KEY"
| Status | Quando acontece |
|---|---|
| 200 | { connected: true | false }. |
| 401 | invalid_api_key. |
Dúvidas técnicas: contato@zaply.com.br
zaply