Zaplyzaply.Começar agora

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

GET/v1/onboarding/qr

Retorna 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"
StatusQuando acontece
200Retorna { base64, code } com o QR pra escanear.
401invalid_api_key — chave ausente ou incorreta.
404instance_not_found — conta sem instância provisionada.
POST/v1/otp/send

Gera e envia um código de verificação (OTP) de 6 dígitos pelo WhatsApp. Expira em 5 minutos.

CampoTipoDescrição
phoneobrigatóriostringNú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"}'
StatusQuando acontece
200{ sent: true } — código enviado.
401invalid_api_key.
402subscription_required — assinatura vencida.
409whatsapp_not_connected — precisa escanear o QR primeiro.
422whatsapp_send_rejected — o WhatsApp está conectado, mas o número não tem conta no WhatsApp (ou similar). Revise o phone.
429resend_cooldown — { error, retryAfterSeconds }, aguarde os segundos indicados antes de reenviar pro mesmo número.
502evolution_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.

POST/v1/otp/verify

Confirma se o código digitado pelo usuário bate com o que foi enviado.

CampoTipoDescrição
phoneobrigatóriostringMesmo número usado no envio.
codeobrigatóriostringCó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"}'
StatusQuando acontece
200{ ok: true } ou { ok: false, reason } — reason: not_found, expired, mismatch, too_many_attempts.
401invalid_api_key.
402subscription_required.
POST/v1/message/send

Envia texto livre pelo WhatsApp — sem template de OTP. Pra qualquer conteúdo: link de entrega, confirmação de pedido, aviso.

CampoTipoDescrição
phoneobrigatóriostringNúmero com DDI e DDD, só dígitos.
textobrigatóriostringTexto 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/..."}'
StatusQuando acontece
200{ sent: true }.
400phone_required ou text_required.
401invalid_api_key.
402subscription_required.
409whatsapp_not_connected.
422whatsapp_send_rejected — número sem conta no WhatsApp.
502evolution_api_unreachable — falha de infraestrutura, tente de novo.
GET/v1/instance/status

Checa 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"
StatusQuando acontece
200{ connected: true | false }.
401invalid_api_key.

Dúvidas técnicas: contato@zaply.com.br