Skip to main content
A API nunca cria leads como efeito colateral de um envio: se o destinatário não existe, o envio falha com 404 lead_not_found. Criar lead é sempre uma ação explícita sua.

Buscar um lead

Por telefone (aceita E.164 ou apenas dígitos):
Em query string, o + precisa ser codificado como %2B — um + cru vira espaço. Alternativa: mande só os dígitos (?phone=5511999999999).
Por id (o lead_... retornado na criação):
As duas formas retornam o mesmo recurso:
Números brasileiros: a busca por telefone testa automaticamente a variação do nono dígito, então funciona com ou sem o 9 após o DDD.

Criar um lead

Campos: O lead criado entra na primeira etapa do funil da empresa. Se a empresa não tem funil configurado no painel, a resposta é 422 funnel_not_configured.

Telefone duplicado

Se já existe um lead com esse telefone na sua empresa, a resposta é 409 lead_already_exists. Nesse caso, recupere o lead existente com a busca por telefone — e envie a mensagem normalmente, já que o envio só precisa do telefone em to.

Fluxo recomendado: garantir lead antes do envio

1

Busque pelo telefone

GET /v1/leads?phone=.... Se retornar 200, o lead existe — siga para o envio.
2

Se 404, crie o lead

POST /v1/leads com nome e telefone. Trate 409 como sucesso (outra automação pode ter criado o lead entre as duas chamadas).
3

Envie a mensagem

POST /v1/whatsapp/messages com o telefone em to.

Editando um lead

Atualize dados cadastrais com PATCH /v1/leads/{id} — envie só o que mudou. Campo omitido fica como está; null explícito limpa o campo.
Campos editáveis: name, email, notes, source, channel, entry_point, utm_*, document + document_type (CPF ou CNPJ — enviando só document, o tipo é inferido pelo tamanho), cep, address, address_number, address_complement, neighborhood, city, state, country.
Telefone e etapa do funil não são editáveis por aqui. O telefone é a identidade WhatsApp do lead. A etapa muda pelo endpoint próprio abaixo — que registra o histórico da transição.

Movendo o lead de etapa

Primeiro, descubra as etapas da sua empresa (os ids são estáveis — sobrevivem a renomear a etapa no painel):
Depois, mova com PUT /v1/leads/{id}/stage:
  • Idempotente: mover para a etapa em que o lead já está retorna 200 com changed: false — sem log duplicado. Seguro para retries.
  • Histórico completo: a transição fica registrada no painel (origem API), com o reason como observação. Pular etapas registra as intermediárias automaticamente.
  • stage_id de outra empresa retorna 404 stage_not_found — as etapas são escopadas pela sua chave.