Saltar para o conteúdo principal

API de Vendas

Endpoints para gerenciar oportunidades de venda e o pipeline comercial programaticamente.

Listar oportunidades

GET /v1/deals
Parâmetros de query:
ParâmetroTipoDescrição
pageintegerPágina atual (padrão: 1)
per_pageintegerItens por página (padrão: 20, máx: 100)
stagestringFiltrar por etapa do pipeline
statusstringopen, won, lost
assigned_touuidFiltrar por responsável
min_valuenumberValor mínimo
max_valuenumberValor máximo
sortstringCampo de ordenação
Resposta (200):
{
  "data": [
    {
      "id": "uuid",
      "name": "Projeto ERP - Empresa ABC",
      "value": 75000.00,
      "stage": "proposal",
      "status": "open",
      "probability": 60,
      "expected_close_date": "2026-04-15",
      "lead_id": "uuid",
      "assigned_to": "uuid",
      "company": "Empresa ABC",
      "contact": "Maria Silva",
      "tags": ["enterprise", "erp"],
      "created_at": "2026-02-20T14:00:00Z",
      "updated_at": "2026-03-12T09:45:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "per_page": 20,
    "total": 42,
    "total_pages": 3
  }
}

Buscar oportunidade por ID

GET /v1/deals/:id
Retorna a oportunidade com histórico completo de atividades e movimentações de etapa.

Criar oportunidade

POST /v1/deals
Body:
{
  "name": "Implementação CRM - Cliente Y",
  "value": 120000.00,
  "stage": "qualification",
  "lead_id": "uuid",
  "assigned_to": "uuid",
  "expected_close_date": "2026-06-30",
  "tags": ["crm", "mid-market"]
}
Campos obrigatórios: name, value, stage Resposta (201): Objeto da oportunidade criada.

Atualizar oportunidade

PATCH /v1/deals/:id
{
  "stage": "negotiation",
  "value": 110000.00,
  "probability": 75
}
Resposta (200): Objeto da oportunidade atualizada.
Ao alterar a etapa (stage), o histórico de movimentação é registrado automaticamente com data e hora.

Fechar oportunidade

Deal ganho

POST /v1/deals/:id/won
{
  "closed_value": 110000.00,
  "notes": "Contrato assinado em 15/03/2026"
}

Deal perdido

POST /v1/deals/:id/lost
{
  "loss_reason": "competitor",
  "notes": "Cliente optou pelo concorrente X"
}

Listar etapas do pipeline

GET /v1/pipeline/stages
Resposta (200):
{
  "data": [
    {
      "id": "uuid",
      "name": "Prospecção",
      "order": 1,
      "default_probability": 10
    },
    {
      "id": "uuid",
      "name": "Qualificação",
      "order": 2,
      "default_probability": 25
    }
  ]
}

Atividades da oportunidade

Listar atividades

GET /v1/deals/:id/activities

Criar atividade

POST /v1/deals/:id/activities
{
  "type": "call",
  "description": "Ligação de follow-up sobre proposta",
  "date": "2026-03-15T14:00:00Z",
  "duration_minutes": 15
}
Tipos de atividade: note, call, email, meeting, task
Use filtros combinados para criar relatórios customizados. Por exemplo, ?status=won&sort=-closed_value&per_page=10 retorna os 10 maiores deals ganhos.

Próximos passos