ZynzapAPI
Mensagens

Enviar mensagem de texto

Operação paga: peça uma cotação em POST /billing/quotes e envie billing.quoteId. to_jid aceita só dígitos (E.164 sem +, ex.: 5511987654321) ou um JID completo ([email protected] ou [email protected]). O atalho POST /messages/send aceita o mesmo corpo.

Permissão: messages:send.

Operação paga: peça a cotação em POST /billing/quotes e envie billing.quoteId. Sem cotação: 428 BILLING_QUOTE_REQUIRED. Veja Cobrança e cotações.

POST
/rpc/SendMessage
AuthorizationBearer <token>

Chave de API criada no painel (API e integrações). Prefixos: zz_live_, zz_test_ (e os antigos wl_live_/wl_test_).

In: header

requestSendMessageRequest
billingobject

Obrigatório: cotação revisada em POST /billing/quotes com o mesmo method e o mesmo request.

deadlineMs?integer

Prazo máximo da operação em milissegundos.

Default30000
Range1 <= value <= 30000

Response Body

curl -X POST "https://api.zynzap.com.br/v1/rpc/SendMessage" \  -H "Authorization: Bearer $ZYNZAP_API_KEY" \  -H "Content-Type: application/json" \  -d '{  "request": {    "session_id": "8c1f7a52-4d1e-4b8a-9a43-2f6f5d0c9e11",    "to_jid": "5511987654321",    "text": "Olá! Seu pedido #1234 saiu para entrega."  },  "billing": {    "quoteId": "0b8f2c1e-3a4d-4e5f-8a9b-1c2d3e4f5a6b"  }}'
{
  "ok": true,
  "detail": "string",
  "session_id": "string",
  "to_jid": "string",
  "text": "string",
  "sent_at_unix_ms": "string",
  "sent_at_rfc3339": "string",
  "simulate_typing_used": true,
  "typing_simulation_ms": "string"
}
{
  "error": {
    "code": "VALIDATION_FAILED",
    "message": "Requisição inválida para esta operação.",
    "requestId": "7f3c1a9e-2b4d-4c6e-8f10-a1b2c3d4e5f6",
    "reason": "RPC_REQUEST_INVALID"
  }
}
{
  "error": {
    "code": "UNAUTHENTICATED",
    "message": "Credencial de API ausente, inválida ou revogada.",
    "requestId": "7f3c1a9e-2b4d-4c6e-8f10-a1b2c3d4e5f6",
    "reason": "API_AUTH_REQUIRED"
  }
}
{
  "error": {
    "code": "FORBIDDEN",
    "message": "Este endereço IP não está autorizado a usar esta chave de API.",
    "requestId": "7f3c1a9e-2b4d-4c6e-8f10-a1b2c3d4e5f6",
    "reason": "API_KEY_IP_FORBIDDEN"
  }
}
{
  "error": {
    "code": "NOT_FOUND",
    "message": "Não encontramos o recurso solicitado.",
    "requestId": "7f3c1a9e-2b4d-4c6e-8f10-a1b2c3d4e5f6"
  }
}
{
  "error": {
    "code": "CONFLICT",
    "message": "A cotação expirou. Revise os custos novamente.",
    "requestId": "7f3c1a9e-2b4d-4c6e-8f10-a1b2c3d4e5f6",
    "reason": "BILLING_QUOTE_EXPIRED"
  }
}
{
  "error": {
    "code": "VALIDATION_FAILED",
    "message": "Requisição inválida para esta operação.",
    "requestId": "7f3c1a9e-2b4d-4c6e-8f10-a1b2c3d4e5f6",
    "reason": "RPC_REQUEST_INVALID"
  }
}
{
  "error": {
    "code": "PAYMENT_REQUIRED",
    "message": "Revise os custos antes de continuar.",
    "requestId": "7f3c1a9e-2b4d-4c6e-8f10-a1b2c3d4e5f6",
    "reason": "BILLING_QUOTE_REQUIRED"
  }
}
{
  "error": {
    "code": "RATE_LIMITED",
    "message": "Limite de requisições desta chave atingido. Aguarde um instante.",
    "requestId": "7f3c1a9e-2b4d-4c6e-8f10-a1b2c3d4e5f6",
    "reason": "API_KEY_RATE_LIMITED"
  }
}
{
  "error": {
    "code": "UNAVAILABLE",
    "message": "Resultado incerto. Confira o estado antes de repetir a operação.",
    "requestId": "7f3c1a9e-2b4d-4c6e-8f10-a1b2c3d4e5f6",
    "reason": "OUTCOME_UNCERTAIN"
  }
}