VendeeDocs
Referência

Negócios

Listar, consultar, criar e atualizar negócios, além das ações de ganhar, perder e mover de etapa.

GET   {BASE_URL}/api-v1-deals               # lista
GET   {BASE_URL}/api-v1-deals/:id            # detalhe (+ contato, empresa, última atividade)
POST  {BASE_URL}/api-v1-deals               # cria
PATCH {BASE_URL}/api-v1-deals/:id            # atualiza
POST  {BASE_URL}/api-v1-deals/:id/move-stage # move de etapa
POST  {BASE_URL}/api-v1-deals/:id/win        # marca como ganho
POST  {BASE_URL}/api-v1-deals/:id/lose       # marca como perdido

Escopos: deals:read para os GET; deals:write para POST, PATCH e as ações.

O recurso Negócio

CampoTipoNotas
iduuid
workspace_iduuid
namestringNome do negócio.
statusenumaberto, ganho ou perdido.
valuenumber | nullValor único.
recurring_valuenumber | nullValor recorrente.
pipeline_iduuid
stage_iduuid
owner_iduuidResponsável (id de membro).
contact_iduuid | null
company_iduuid | null
expected_close_datedate | nullYYYY-MM-DD.
lead_source_iduuid | null
loss_reason_iduuid | nullPreenchido quando perdido (se informado).
won_atdatetime | null
lost_atdatetime | null
stage_entered_atdatetime | nullEntrada na etapa atual.
external_idstring | nullVindo da entrada de leads.
sourcestring | null
notesstring | null
custom_fieldsobject | null
created_atdatetime
updated_atdatetime

Listar negócios

GET {BASE_URL}/api-v1-deals

Filtro (query)TipoNotas
statusenumaberto, em_andamento (alias de aberto), ganho, perdido.
pipeline_iduuid
stage_iduuid
owner_iduuid
sinceISO 8601created_at >= since.
limitintPadrão 50, máx 200.
cursoruuidPróxima página (veja paginação).
curl "{BASE_URL}/api-v1-deals?status=aberto&limit=50" \
  -H "X-API-Key: vnd_sua_chave_aqui"
{
  "data": [ { "id": "8f3c...", "name": "Empresa Exemplo", "status": "aberto", "value": 12000, "...": "..." } ],
  "meta": { "next_cursor": "8f3c...", "has_more": true }
}

Consultar um negócio

GET {BASE_URL}/api-v1-deals/:id

Retorna o negócio com três blocos embutidos: contact, company (objeto ou null) e last_activity (a última atividade do negócio, ou null):

{
  "id": "8f3c...",
  "name": "Empresa Exemplo",
  "status": "aberto",
  "contact": { "id": "1a2b...", "name": "Maria Silva", "email": "maria@...", "...": "..." },
  "company": { "id": "9d8e...", "name": "Empresa Exemplo", "...": "..." },
  "last_activity": {
    "id": "5e6f...",
    "title": "Ligação de qualificação",
    "status": "concluida",
    "scheduled_at": "2026-06-26T14:00:00.000Z",
    "completed_at": "2026-06-26T14:20:00.000Z",
    "created_at": "2026-06-25T09:00:00.000Z"
  }
}

Criar um negócio

POST {BASE_URL}/api-v1-deals — escopo deals:write.

CampoTipoObrigatórioNotas
namestringSim1–255 caracteres.
pipeline_iduuidNãoOmitido → pipeline padrão.
stage_iduuidNãoOmitido → primeira etapa do pipeline.
owner_iduuidNãoOmitido → resolução automática (criador da chave → admin/gestor mais antigo).
contact_iduuidNãoDeve pertencer ao workspace.
company_iduuidNãoDeve pertencer ao workspace.
valuenumberNão≥ 0.
recurring_valuenumberNão≥ 0.
expected_close_datedateNãoYYYY-MM-DD.
lead_source_iduuidNãoDeve pertencer ao workspace.
notesstringNãoAté 10.000 caracteres.
custom_fieldsobjectNão≤ 50 chaves, ≤ 10 KB.
curl -X POST "{BASE_URL}/api-v1-deals" \
  -H "X-API-Key: vnd_sua_chave_aqui" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Projeto Q3 - Empresa Exemplo", "value": 24000, "recurring_value": 2000 }'

Resposta 201 Created:

{ "id": "8f3c...", "owner_id": "3c2d...", "pipeline_id": "7b6a...", "stage_id": "0f1e...", "status": "aberto" }

Atualizar um negócio

PATCH {BASE_URL}/api-v1-deals/:id — escopo deals:write.

Aceita os mesmos campos do POST, todos opcionais. Não muda etapa nem fecha o negócio: status, stage_id, won_at e lost_at não são editáveis por aqui — use as ações abaixo. Retorna o negócio completo atualizado (200 OK).

curl -X PATCH "{BASE_URL}/api-v1-deals/8f3c..." \
  -H "X-API-Key: vnd_sua_chave_aqui" \
  -H "Content-Type: application/json" \
  -d '{ "value": 30000, "notes": "Cliente pediu proposta revisada." }'

Mover de etapa

POST {BASE_URL}/api-v1-deals/:id/move-stage — escopo deals:write.

curl -X POST "{BASE_URL}/api-v1-deals/8f3c.../move-stage" \
  -H "X-API-Key: vnd_sua_chave_aqui" \
  -H "Content-Type: application/json" \
  -d '{ "stage_id": "0f1e..." }'

stage_id é obrigatório e deve pertencer ao pipeline do negócio (senão 422 invalid_reference). Retorna o negócio atualizado.

Marcar como ganho

POST {BASE_URL}/api-v1-deals/:id/win — escopo deals:write.

curl -X POST "{BASE_URL}/api-v1-deals/8f3c.../win" \
  -H "X-API-Key: vnd_sua_chave_aqui" \
  -H "Content-Type: application/json" \
  -d '{}'
  • won_at (opcional, ISO 8601) define a data do ganho; omitido → agora.
  • Idempotente: se o negócio já está ganho, responde 200 OK sem reescrever a data.

Marcar como perdido

POST {BASE_URL}/api-v1-deals/:id/lose — escopo deals:write.

curl -X POST "{BASE_URL}/api-v1-deals/8f3c.../lose" \
  -H "X-API-Key: vnd_sua_chave_aqui" \
  -H "Content-Type: application/json" \
  -d '{ "loss_reason_id": "2b3c...", "notes": "Escolheu concorrente." }'
  • loss_reason_id (opcional, uuid) deve pertencer ao workspace.
  • Idempotente: se o negócio já está perdido, responde 200 OK sem reprocessar.

Erros possíveis

HTTPcodeQuando
401missing_api_key / invalid_api_key / revoked_api_keyAutenticação.
403insufficient_scopeFalta deals:read (GET) ou deals:write (escrita).
404not_foundNegócio não existe nesse workspace.
400bad_requestCorpo ausente/JSON inválido (escrita).
422validation_errorCampo ou parâmetro inválido.
422invalid_referencecontact_id/company_id/stage_id/lead_source_id/loss_reason_id/owner_id fora do workspace.
422invalid_cursorcursor inválido.
422no_default_pipeline / pipeline_has_no_stage / no_owner_availableFalha ao resolver pipeline/etapa/responsável na criação.
405method_not_allowedMétodo não suportado.
500internal_errorFalha interna.

Nesta página