/send/contactEnviar contato
Contato vCard; number é o destinatário e phoneNumber é o telefone do contato.
Autenticação
Header obrigatório: token. Use o token da instância.
Base URL: a API do servidor selecionado, como https://1.atendro.cloud. O domínio wpp.atendro.cloud hospeda a documentação e o console.
Idempotência: suporta Idempotency-Key, com retenção de 24 horas. Preserve a mesma chave, método, caminho e bytes do corpo ao repetir. Entenda a idempotência.
Headers adicionais
| Campo | Tipo | Presença | Descrição |
|---|---|---|---|
X-Request-Id | string | opcional | ASCII visível sem espaços, 1–128 caracteres. Inválido/ausente é substituído por UUID. Ecoado na resposta. Comprimento máximo: 128 |
Idempotency-Key | string | opcional | ASCII visível sem espaços, 1–128. Repetir método, caminho e os mesmos bytes do JSON. 409 em andamento; 422 se mudar a requisição. 504 é guardado e não deve causar reenvio automático. Comprimento mínimo: 1. Comprimento máximo: 128 |
Corpo da requisição
Formato: application/json. Corpo obrigatório.
| Campo | Tipo | Presença | Descrição |
|---|---|---|---|
number | string | obrigatório | Dígitos com DDI (8–15) ou identificador @s.whatsapp.net, @g.us ou @lid. Nunca inferir telefone de um LID. Comprimento mínimo: 1 |
replyid | string | opcional | ID de mensagem guardada para citação; desconhecida retorna 422 reply_not_found. |
delay | integer / string | opcional | Espera de digitação em milissegundos; o manager limita a 15000 ms. |
forward | boolean / string / integer / null | opcional | — |
fullName | string | obrigatório | Nome do contato sintético/autorizado, 1–128 bytes após trim. Comprimento mínimo: 1. Comprimento máximo: 128 |
phoneNumber | string | obrigatório | Telefone do contato: 8–15 dígitos com DDI após retirar formatação. |
organization | string | opcional | Até 128 bytes. Comprimento máximo: 128 |
Respostas
Enviar contato
| Campo | Tipo | Presença | Descrição |
|---|---|---|---|
success | boolean | obrigatório | Valores: true |
messageid | string | obrigatório | — |
messageId | string | obrigatório | — |
id | string | obrigatório | — |
timestamp | integer | obrigatório | Unix em segundos. Formato: int64 |
Entrada inválida.
| Campo | Tipo | Presença | Descrição |
|---|---|---|---|
error | string | obrigatório | — |
message | string | opcional | — |
messageid | string | opcional | ID para reconciliação quando o resultado é ambíguo. |
messageId | string | opcional | — |
id | string | opcional | — |
provider_code | integer | opcional | — |
error_key | string | opcional | — |
error_source | string | opcional | — |
details | object | opcional | — |
instance | object | opcional | Modelo: Instance. |
unauthorized: header ausente, inválido ou duplicado. Bearer/query/instancekey não substituem admintoken/token.
| Campo | Tipo | Presença | Descrição |
|---|---|---|---|
error | string | obrigatório | — |
message | string | opcional | — |
messageid | string | opcional | ID para reconciliação quando o resultado é ambíguo. |
messageId | string | opcional | — |
id | string | opcional | — |
provider_code | integer | opcional | — |
error_key | string | opcional | — |
error_source | string | opcional | — |
details | object | opcional | — |
instance | object | opcional | Modelo: Instance. |
Conflito de sessão ou idempotency_in_progress; respeitar o código error.
| Campo | Tipo | Presença | Descrição |
|---|---|---|---|
error | string | obrigatório | — |
message | string | opcional | — |
messageid | string | opcional | ID para reconciliação quando o resultado é ambíguo. |
messageId | string | opcional | — |
id | string | opcional | — |
provider_code | integer | opcional | — |
error_key | string | opcional | — |
error_source | string | opcional | — |
details | object | opcional | — |
instance | object | opcional | Modelo: Instance. |
body_too_large ou mídia acima do limite.
| Campo | Tipo | Presença | Descrição |
|---|---|---|---|
error | string | obrigatório | — |
message | string | opcional | — |
messageid | string | opcional | ID para reconciliação quando o resultado é ambíguo. |
messageId | string | opcional | — |
id | string | opcional | — |
provider_code | integer | opcional | — |
error_key | string | opcional | — |
error_source | string | opcional | — |
details | object | opcional | — |
instance | object | opcional | Modelo: Instance. |
Falha semântica da operação ou idempotency_mismatch.
| Campo | Tipo | Presença | Descrição |
|---|---|---|---|
error | string | obrigatório | — |
message | string | opcional | — |
messageid | string | opcional | ID para reconciliação quando o resultado é ambíguo. |
messageId | string | opcional | — |
id | string | opcional | — |
provider_code | integer | opcional | — |
error_key | string | opcional | — |
error_source | string | opcional | — |
details | object | opcional | — |
instance | object | opcional | Modelo: Instance. |
too_many_requests ou retry_later: nada enviado, respeitar Retry-After.
| Campo | Tipo | Presença | Descrição |
|---|---|---|---|
error | string | obrigatório | — |
message | string | opcional | — |
messageid | string | opcional | ID para reconciliação quando o resultado é ambíguo. |
messageId | string | opcional | — |
id | string | opcional | — |
provider_code | integer | opcional | — |
error_key | string | opcional | — |
error_source | string | opcional | — |
details | object | opcional | — |
instance | object | opcional | Modelo: Instance. |
whatsapp_reachout_timelock / WHATSAPP_REACHOUT_TIMELOCK, provider_code=463.
| Campo | Tipo | Presença | Descrição |
|---|---|---|---|
error | string | obrigatório | — |
message | string | opcional | — |
messageid | string | opcional | ID para reconciliação quando o resultado é ambíguo. |
messageId | string | opcional | — |
id | string | opcional | — |
provider_code | integer | opcional | — |
error_key | string | opcional | — |
error_source | string | opcional | — |
details | object | opcional | — |
instance | object | opcional | Modelo: Instance. |
storage_unavailable (Retry-After=5). Algumas rotas também retornam 502 por falha da conexão/mídia; consultar error.
| Campo | Tipo | Presença | Descrição |
|---|---|---|---|
error | string | obrigatório | — |
message | string | opcional | — |
messageid | string | opcional | ID para reconciliação quando o resultado é ambíguo. |
messageId | string | opcional | — |
id | string | opcional | — |
provider_code | integer | opcional | — |
error_key | string | opcional | — |
error_source | string | opcional | — |
details | object | opcional | — |
instance | object | opcional | Modelo: Instance. |
send_ambiguous ou action_ambiguous com ID. Reconciliar antes de repetir.
| Campo | Tipo | Presença | Descrição |
|---|---|---|---|
error | string | obrigatório | — |
message | string | opcional | — |
messageid | string | opcional | ID para reconciliação quando o resultado é ambíguo. |
messageId | string | opcional | — |
id | string | opcional | — |
provider_code | integer | opcional | — |
error_key | string | opcional | — |
error_source | string | opcional | — |
details | object | opcional | — |
instance | object | opcional | Modelo: Instance. |
Falha; usar HTTP status e error. 404 rota inexistente; 405 método inválido com Allow. Ver catálogo no guia de integração.
| Campo | Tipo | Presença | Descrição |
|---|---|---|---|
error | string | obrigatório | — |
message | string | opcional | — |
messageid | string | opcional | ID para reconciliação quando o resultado é ambíguo. |
messageId | string | opcional | — |
id | string | opcional | — |
provider_code | integer | opcional | — |
error_key | string | opcional | — |
error_source | string | opcional | — |
details | object | opcional | — |
instance | object | opcional | Modelo: Instance. |