Pular para o conteúdo

Negócios (Deals)

Base path: /api/v1/deals Scopes: deals:read | deals:write

Deals (negócios) são oportunidades de venda dentro de um pipeline. Cada deal pertence a um pipeline, está em uma etapa (stage), e pode estar vinculado a um contato e/ou empresa.

Lista deals

GET /api/v1/deals

Scope: deals:read

ParamTipoDescrição
page / pageSizenumberPaginação (default 50, máx 100)
pipelineIdstringFiltra por pipeline
stageIdstringFiltra por etapa
ownerIdstringFiltra por owner
contactIdstringDeals associados a um contato
companyIdstringDeals associados a uma empresa
isWon / isLostbooleanStatus de fechamento
valueMin / valueMaxnumberRange de valor
searchstringBusca em título
sortKeystringDefault updatedAt
sortOrderasc | descDefault desc
Terminal window
curl "https://app.indutivacrm.com.br/api/v1/deals?pipelineId=ckl4p01...&isWon=false&isLost=false" \
-H "X-API-Key: crm_live_..."

Busca um deal

GET /api/v1/deals/:id

Scope: deals:read

Retorna o deal com contato e empresa associados (objetos expandidos), além de customProperties.

Cria um deal

POST /api/v1/deals

Scope: deals:write

CampoTipoObrigatórioDescrição
titlestringTítulo do negócio
pipelineIdstringPipeline ao qual o deal pertence
stageIdstringEtapa inicial (precisa pertencer ao pipeline)
valuenumberValor monetário
currencystringISO 4217, default BRL
contactIdstringContato principal vinculado
companyIdstringEmpresa vinculada
ownerIdstringUser responsável
expectedCloseDatestring (ISO)Data prevista de fechamento
customPropertiesobject{ propertyId: value }
Terminal window
curl -X POST https://app.indutivacrm.com.br/api/v1/deals \
-H "X-API-Key: crm_live_..." \
-H "Content-Type: application/json" \
-d '{
"title": "Proposta Acme — CRM Enterprise",
"pipelineId": "ckl4p01...",
"stageId": "ckl4s01...",
"value": 24000,
"currency": "BRL",
"contactId": "ckl4z9w8v0001abcdef123456",
"companyId": "ckl4c01...",
"expectedCloseDate": "2026-06-30T00:00:00Z"
}'

Atualiza um deal

PATCH /api/v1/deals/:id

Scope: deals:write

Atualização parcial. Útil pra mover entre etapas:

Terminal window
curl -X PATCH https://app.indutivacrm.com.br/api/v1/deals/ckl4d01... \
-H "X-API-Key: crm_live_..." \
-H "Content-Type: application/json" \
-d '{"stageId": "ckl4s02..."}'

Ou fechar como ganho:

Terminal window
curl -X PATCH https://app.indutivacrm.com.br/api/v1/deals/ckl4d01... \
-H "X-API-Key: crm_live_..." \
-H "Content-Type: application/json" \
-d '{"isWon": true, "closedAt": "2026-05-22T18:00:00Z"}'

Ou perda (com motivo):

Terminal window
curl -X PATCH https://app.indutivacrm.com.br/api/v1/deals/ckl4d01... \
-H "X-API-Key: crm_live_..." \
-H "Content-Type: application/json" \
-d '{
"isLost": true,
"lossReasonId": "ckl4lr01...",
"lossNotes": "Cliente foi com concorrente por preço"
}'

Deleta um deal

DELETE /api/v1/deals/:id

Scope: deals:write

Soft-delete. Atividades vinculadas ficam.

Resposta 204 No Content.

Erros específicos

StatuserrorCenário
409stage_invalidstageId não pertence ao pipelineId informado
400validation_failedtitle, pipelineId ou stageId ausentes
422business_rule_violationTentou marcar isWon E isLost simultaneamente, ou mover deal pra stage de outro pipeline
404not_foundid não existe