Oportunidades
Negócios do funil, com contatos, produtos e anotações.
31 rotas. Todas exigem a chave de API no header Authorization, salvo quando marcadas como públicas. Abrir este módulo no Swagger.
Listar oportunidades de uma etapa, paginado
POST /companie/opportunity/byStepByPagination/{filter}/{date_start}/{date_end}
Devolve as oportunidades da etapa funnelStepId (veja GET /companie/funnel).
skip/take: paginação. A resposta é um array simples, sem total.- Envie sempre
salesChannelId,companieUserIderesponses_win_lose_id, nem que seja[]: sem eles a rota responde 500. status:Todos,Aberta,GanhaouPerdida.order:title_*,created_at_*ouclose_date_*(data da última mudança de status).originAutomationTypefiltra pela origem do contato.- Em funil restrito, só voltam as oportunidades do dono da chave, mesmo com
companieUserId. - Atenção: hoje o período da URL (
filter,date_start,date_end) não é aplicado nesta rota. UsefilterAdvancedse precisar filtrar por data.
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
filter | URL | all · today · yesterday · this_week · last_week · this_month · last_month · last_30_days · … | sim | Período. Com other_period, informe date_start e date_end (YYYY-MM-DD) nos segmentos seguintes da URL. |
date_start | URL | data | Opcional na URL: pode ser omitido junto com os segmentos seguintes. | |
date_end | URL | data | Opcional na URL: pode ser omitido junto com os segmentos seguintes. |
Corpo (application/json)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
order | title_asc · title_desc · created_at_asc · created_at_desc · close_date_asc · close_date_desc | sim | |
status | Todos · Aberta · Ganha · Perdida | sim | |
responses_win_lose_id | número[] | ||
companieUserId | número[] | ||
opportunityId | número ou null | ||
salesChannelId | número[] | ||
funnelStepId | número | sim | |
skip | número | sim | |
take | número | sim | |
city | string ou null | ||
state | string ou null | ||
originAutomationType | import · api · instagram · checkout · manual · `` |
Respostas
| Status | Descrição |
|---|---|
200 | Oportunidades da etapa. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. error_funnel_access_denied: a etapa não existe na empresa ou o dono da chave não tem acesso ao funil. (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Listar o funil com as oportunidades filtradas por etapa
POST /companie/opportunity/filterAdvanced/{funnelId}/{filter}/{date_start}/{date_end}
Devolve o funil com cada etapa trazendo as oportunidades filtradas.
- O período (
filter) vale para a data de criação da oportunidade. skip/takepaginam dentro de cada etapa. Em cada etapa,totalPagesé a quantidade de oportunidades do filtro etotala soma dos valores.status:Todos,Aberta,GanhaouPerdida.order:title_*,created_at_*ouclose_date_*.- Filtros por arrays de ids:
companieUserId,salesChannelId,activitieId,tagId,responses_win_lose_id. Também:opportunityId,contactId,city,state(UF),originAutomationType. - Aceitos fora do schema:
text(busca no título e no nome/WhatsApp/telefone do contato; ignorastatus),segmentId(array) eclose_date_filter+close_date_start/close_date_end(período da mudança de status). productIdeannotationFiltersão aceitos mas ignorados.- Em funil restrito, só voltam as oportunidades do dono da chave.
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
funnelId | URL | número | sim | |
filter | URL | all · today · yesterday · this_week · last_week · this_month · last_month · last_30_days · … | sim | Período. Com other_period, informe date_start e date_end (YYYY-MM-DD) nos segmentos seguintes da URL. |
date_start | URL | data | Opcional na URL: pode ser omitido junto com os segmentos seguintes. | |
date_end | URL | data | Opcional na URL: pode ser omitido junto com os segmentos seguintes. |
Corpo (application/json)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
order | title_asc · title_desc · created_at_asc · created_at_desc · close_date_asc · close_date_desc | sim | |
status | Todos · Aberta · Ganha · Perdida | sim | |
annotationFilter | string | ||
responses_win_lose_id | número[] | ||
productId | número[] | ||
activitieId | número[] | ||
companieUserId | número[] | ||
opportunityId | número ou null | ||
contactId | número ou null | ||
salesChannelId | número[] | ||
skip | número | sim | |
take | número | sim | |
close_date_start | string | ||
close_date_end | string | ||
city | string ou null | ||
state | string ou null | ||
tagId | número[] | ||
originAutomationType | import · api · instagram · checkout · manual · `` |
Respostas
| Status | Descrição |
|---|---|
200 | Funil (array com um item) e as etapas paginadas. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. error_funnel_access_denied: sem acesso ao funil. (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Listar o funil com todas as oportunidades por etapa
GET /companie/opportunity/filterFunnelByStep/{funnelId}/{filter}/{date_start}/{date_end}
Sem paginação: traz todas as oportunidades de cada etapa criadas no período. Em funis grandes, prefira filterAdvanced ou byStepByPagination. Em funil restrito, só as oportunidades do dono da chave.
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
funnelId | URL | número | sim | |
filter | URL | all · today · yesterday · this_week · last_week · this_month · last_month · last_30_days · … | sim | Período. Com other_period, informe date_start e date_end (YYYY-MM-DD) nos segmentos seguintes da URL. |
date_start | URL | data | Opcional na URL: pode ser omitido junto com os segmentos seguintes. | |
date_end | URL | data | Opcional na URL: pode ser omitido junto com os segmentos seguintes. |
Respostas
| Status | Descrição |
|---|---|
200 | Funil (array com um item) e as etapas com as oportunidades. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. error_funnel_access_denied: sem acesso ao funil. (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Listar todas as oportunidades da empresa
GET /companie/opportunity
Sem paginação e com muitos relacionamentos (etapa, contatos, atividades, anotações, histórico). Pode ser pesada; para listas use filterAdvanced. Não respeita a restrição de visibilidade dos funis.
Respostas
| Status | Descrição |
|---|---|
200 | Oportunidades, da mais nova para a mais antiga. |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Criar oportunidade
POST /companie/opportunity
companie_user_id: usuário responsável, da empresa da chave; normalmente o dono da chave.funnel_step_id: etapa de entrada (vejaGET /companie/funnel).person_id: contato principal (veja Contatos).person_owner_idtroca o contato principal por outro.sales_channel_idesegment_idinexistentes viramnullsem erro.- Se o funil não aceita oportunidade duplicada, falha quando o contato já tem oportunidade aberta nele.
Efeitos colaterais: cria as atividades automáticas da etapa, dispara a mensagem automática de WhatsApp de nova oportunidade (se configurada) e notifica o responsável.
Corpo (application/json)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
companie_user_id | número | sim | |
funnel_step_id | número | sim | |
sales_channel_id | número ou null | ||
segment_id | número ou null | ||
person_id | número | sim | |
title | string | sim | |
date_expectation | data ou null | ||
obs | string | ||
state | string | ||
city | string | ||
document_origin | string ou null | ||
name_origin | string ou null | ||
surgeries_count | número ou null | ||
person_owner_id | número |
Respostas
| Status | Descrição |
|---|---|
200 | Oportunidade criada. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_companie_user_id_not_exist, error_funnel_step_id_not_exist, error_person_id_not_exist ou error_exist_opportunity_person_open (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Detalhar oportunidade
GET /companie/opportunity/id/{id}
Traz etapa e funil, responsável, contatos (com tags), produtos, anotações, anexos (path pré-assinado), atividades, histórico de etapas e status, tags e propostas com contratos. Se o id não existir na empresa, responde 200 com null.
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
id | URL | string | sim |
Respostas
| Status | Descrição |
|---|---|
200 | Oportunidade ou null. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Editar oportunidade
PUT /companie/opportunity/{id}
Edição completa. Reexigidos em toda chamada: companie_user_id, funnel_step_id e title.
sales_channel_idesegment_idomitidos (ou inexistentes) são apagados (null). Reenvie os valores atuais para mantê-los.- Os demais campos omitidos ficam como estão.
person_idé ignorado; useperson_owner_idpara trocar o contato principal. totalé recalculado a partir dos produtos da oportunidade.- Trocar
funnel_step_idaqui registra o histórico, mas não roda as automações da etapa. Para isso usePUT /companie/opportunity/workflow/:id. - Trocar
companie_user_idnotifica o novo responsável.
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
id | URL | string | sim |
Corpo (application/json)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
companie_user_id | número | sim | |
funnel_step_id | número | sim | |
sales_channel_id | número ou null | ||
segment_id | número ou null | ||
title | string | sim | |
date_expectation | data ou null | ||
obs | string | ||
state | string | ||
city | string | ||
name_origin | string ou null | ||
document_origin | string ou null | ||
surgeries_count | número ou null | ||
person_owner_id | número |
Respostas
| Status | Descrição |
|---|---|
200 | Campos principais atualizados. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_opportunity_not_exist, error_companie_user_id_not_exist ou error_funnel_step_id_not_exist (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Excluir oportunidade
DELETE /companie/opportunity/{id}
Exclusão definitiva e em cascata: some com contatos vinculados, produtos, anotações, anexos, tags, histórico e também com as propostas e contratos ligados, sem checar se há contrato faturado. As atividades ficam, sem a oportunidade.
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
id | URL | string | sim |
Respostas
| Status | Descrição |
|---|---|
200 | Sempre true. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_opportunity_not_exist (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Mover oportunidade de etapa
PUT /companie/opportunity/workflow/{id}
Move para funnel_step_id (pode ser de outro funil da empresa) e registra o histórico.
Efeitos colaterais:
- Se a etapa mudou, envia as mensagens automáticas da etapa ao contato principal (WhatsApp, se houver instância conectada com envio automático, e e-mail).
- Cria as atividades automáticas da etapa, mesmo se a etapa não mudou.
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
id | URL | string | sim |
Corpo (application/json)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
funnel_step_id | número | sim |
Respostas
| Status | Descrição |
|---|---|
200 | Oportunidade atualizada. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_opportunity_not_exist ou error_funnel_step_id_not_exist (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Marcar como ganha, perdida ou reabrir
PUT /companie/opportunity/status/{id}
status:Aberta,GanhaouPerdida. Envie sempre.responses_win_lose_id: motivo de ganho/perda (cadastro em Cadastros).reuse_contract_id(só comGanha): reaproveita um contratoAbertoouCanceladode uma proposta desta oportunidade. O contrato recebe os produtos atuais da oportunidade e os dados do contato principal; se estava cancelado, volta aAberto; a proposta ficaFechada.- Reabrir (
Aberta) falha se a oportunidade tem contrato já faturado.
Cada chamada grava uma linha no histórico de status.
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
id | URL | string | sim |
Corpo (application/json)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
status | Aberta · Perdida · Ganha | ||
responses_win_lose_id | número ou null | ||
reuse_contract_id | objeto |
Respostas
| Status | Descrição |
|---|---|
200 | Oportunidade atualizada. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_opportunity_not_exist, error_opportunity_contract_billed (contrato faturado, ou reuse_contract_id inválido/fora de Aberto/Cancelado) ou error_opportunity_owner_required (sem contato principal para reaproveitar o contrato) (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Transferir oportunidade para outro responsável
PUT /companie/opportunity/{id}/transfer
Troca só o responsável e notifica o novo dono. Não mexe nas atividades nem grava histórico de transferência; para isso use POST /companie/transferOpportunity. Se o usuário já é o responsável, devolve 200 sem alterar.
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
id | URL | número | sim |
Corpo (application/json)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
companie_user_id | número | sim | Novo responsável, usuário da empresa da chave. |
Respostas
| Status | Descrição |
|---|---|
200 | Responsável atual. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_opportunity_not_exist ou error_companie_user_id_not_exist (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Transferir oportunidades em lote
POST /companie/transferOpportunity
Transfere as oportunidades de opportunitys (ids) para companie_user_id.
- Para mudar também de funil, envie
funnel_idefunnel_step_id(etapa de destino). - As atividades
Em andamentopassam para o novo responsável, o histórico de transferência é gravado e o novo dono é notificado. - Se algum id não for da empresa, nada é alterado.
- Mudar de etapa aqui não roda as automações da etapa.
Corpo (application/json)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
companie_user_id | número | sim | |
opportunitys | número[] | sim | |
funnel_id | número ou null | ||
funnel_step_id | número ou null |
Respostas
| Status | Descrição |
|---|---|
200 | Sempre true. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_companie_user_not_exist, error_funnel_not_exist, error_funnel_step_not_exist ou error_opportunity_not_exist (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Gravar dados de campanha (UTM)
PUT /companie/opportunity/campaign/{id}
Atualiza só os campos campaign_* enviados; os omitidos ficam como estão. campaign_state é a UF (2 letras).
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
id | URL | string | sim |
Corpo (application/json)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
campaign_project | string | ||
campaign_city | string | ||
campaign_state | string | ||
campaign_utm_source | string | ||
campaign_utm_medium | string | ||
campaign_utm_campaign | string | ||
campaign_utm_term | string | ||
campaign_utm_content | string | ||
campaign_version | string | ||
campaign_message | string | ||
campaign_investment | string |
Respostas
| Status | Descrição |
|---|---|
200 | Oportunidade atualizada. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_opportunity_not_exist (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Listar as tags da empresa
GET /companie/opportunity/tags
Use os ids em PUT /companie/opportunity/:id/tags.
Respostas
| Status | Descrição |
|---|---|
200 | Tags em ordem alfabética. |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Definir as tags da oportunidade
PUT /companie/opportunity/{id}/tags
Substitui todas as tags da oportunidade pelas de tag_ids. Envie [] para remover todas.
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
id | URL | número | sim |
Corpo (application/json)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
tag_ids | número[] | sim |
Respostas
| Status | Descrição |
|---|---|
200 | Tags atuais da oportunidade. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_opportunity_not_exist (texto) ou, para tag inexistente, { "error": "error_tag_id_not_exist", "invalid_tag_ids": [...] }. |
429 | Limite de requisições excedido. (ErrorCode) |
Buscar oportunidades por texto
GET /companie/opportunity/autocomplete/find
Chame como GET /companie/opportunity/autocomplete/find?q=texto&skip=0&take=10. O :id do caminho é um resto do router: não envie nada além de /find.
Busca q no título, no nome do responsável, na etapa, no canal de venda e no segmento. q, skip e take são obrigatórios na prática.
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
q | query | string | sim | Texto buscado. |
skip | query | número | sim | |
take | query | número | sim |
Respostas
| Status | Descrição |
|---|---|
200 | Página de resultados. |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Listar os contatos da oportunidade
GET /companie/opportunity/person/{opportunityId}
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
opportunityId | URL | string | sim |
Respostas
| Status | Descrição |
|---|---|
200 | Vínculos com o contato. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Vincular contato à oportunidade
POST /companie/opportunity/person
Vincula como contato secundário. Para torná-lo principal, use PUT /companie/opportunity/person/:personId/:opportunityId.
Corpo (application/json)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
opportunity_id | número | sim | |
person_id | número | sim |
Respostas
| Status | Descrição |
|---|---|
200 | Vínculo criado. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_person_id_not_exist, error_opportunity_id_not_exist ou error_opportunity_person_exist (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Desvincular contato da oportunidade
DELETE /companie/opportunity/person/{personId}/{opportunityId}
Não impede remover o contato principal; nesse caso defina outro principal em seguida.
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
personId | URL | string | sim | |
opportunityId | URL | string | sim |
Respostas
| Status | Descrição |
|---|---|
200 | Sempre true. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_opportunity_person_not_exist (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Definir o contato principal da oportunidade
PUT /companie/opportunity/person/{personId}/{opportunityId}
O contato precisa já estar vinculado. Os demais deixam de ser principais.
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
personId | URL | string | sim | |
opportunityId | URL | string | sim |
Respostas
| Status | Descrição |
|---|---|
200 | Linhas alteradas. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
404 | error_opportunity_person_not_exist (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Listar as anotações da oportunidade
GET /companie/opportunity/annotation/{opportunityId}
Ordenadas pelo texto da anotação (ordem alfabética), não pela data.
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
opportunityId | URL | string | sim |
Respostas
| Status | Descrição |
|---|---|
200 | Anotações. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Criar anotação
POST /companie/opportunity/annotation
companie_user_id: autor da anotação; normalmente o dono da chave.
Corpo (application/json)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
opportunity_id | número | sim | |
companie_user_id | número | sim | |
description | string | sim |
Respostas
| Status | Descrição |
|---|---|
200 | Anotação criada. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_companie_user_id_not_exist ou error_opportunity_id_not_exist (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Editar anotação
PUT /companie/opportunity/annotation/{id}
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
id | URL | string | sim |
Corpo (application/json)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
description | string | sim |
Respostas
| Status | Descrição |
|---|---|
200 | Anotação atualizada. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_opportunity_annotation_not_exist (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Excluir anotação
DELETE /companie/opportunity/annotation/{id}
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
id | URL | string | sim |
Respostas
| Status | Descrição |
|---|---|
200 | Sempre true. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_opportunity_annotation_not_exist (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Listar os produtos da oportunidade
GET /companie/opportunity/product/{opportunityId}
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
opportunityId | URL | string | sim |
Respostas
| Status | Descrição |
|---|---|
200 | Itens, do mais novo para o mais antigo. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Adicionar produto à oportunidade
POST /companie/opportunity/product
companie_user_id: quem adicionou; normalmente o dono da chave.product_id: produto do catálogo (Cadastros).totalnão é calculado pelo servidor: envievalue × qty(com descontos, se houver).- O
totalda oportunidade é recalculado com a soma dos itens.
Corpo (application/json)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
opportunity_id | número | sim | |
companie_user_id | número | sim | |
product_id | número | sim | |
value | número | sim | |
qty | número | sim | |
total | número | sim |
Respostas
| Status | Descrição |
|---|---|
200 | Item criado. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_companie_user_id_not_exist, error_opportunity_id_not_exist ou error_product_id_not_exist (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Editar produto da oportunidade
PUT /companie/opportunity/product/{id}
id é o do item (opportunity_products.id), não o do produto. Reexige value, qty e total; o total da oportunidade é recalculado.
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
id | URL | string | sim |
Corpo (application/json)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
value | número | sim | |
qty | número | sim | |
total | número | sim |
Respostas
| Status | Descrição |
|---|---|
200 | Item atualizado. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_opportunity_products: item inexistente. (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Remover produto da oportunidade
DELETE /companie/opportunity/product/{id}
id é o do item. O total da oportunidade é recalculado.
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
id | URL | string | sim |
Respostas
| Status | Descrição |
|---|---|
200 | Sempre true. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_opportunity_products: item inexistente. (ErrorCode) |
429 | Limite de requisições excedido. (ErrorCode) |
Listar os anexos da oportunidade
GET /companie/opportunity/attachment/{opportunity_id}
path vem como URL pré-assinada e temporária.
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
opportunity_id | URL | string | sim |
Respostas
| Status | Descrição |
|---|---|
200 | Anexos. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_opportunity_id_not_exist (GenericError) |
429 | Limite de requisições excedido. (ErrorCode) |
Enviar anexo
POST /companie/opportunity/attachment
file.base64: conteúdo em Base64 puro, sem o prefixodata:...;base64,.file.originalFileName: nome com extensão. Aceitas: doc, docx, pdf, txt, xls, xlsx, csv, jpg, jpeg, png, bmp, tiff, webp, mp4, avi, mkv, mov, webm, wav, mp3, aac, m4a, ogg, oga, opus.- O autor é o dono da chave. O
pathda resposta já vem pré-assinado.
Corpo (application/json)
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
opportunity_id | número | sim | |
title | string | sim | |
file | object | ||
file.originalFileName | string | sim | |
file.base64 | string | sim |
Respostas
| Status | Descrição |
|---|---|
200 | Anexo criado. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_opportunity_id_not_exist (GenericError) |
429 | Limite de requisições excedido. (ErrorCode) |
Excluir anexo
DELETE /companie/opportunity/attachment/{id}
Apaga o arquivo do armazenamento e o registro.
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
id | URL | string | sim |
Respostas
| Status | Descrição |
|---|---|
200 | Sempre true. |
400 | Parâmetros inválidos. (ValidationError) |
401 | Chave ausente, inválida, revogada ou vencida. (ErrorCode) |
403 | Acesso via API desligado, empresa inativa ou rota não permitida. (ErrorCode) |
409 | error_id_not_exist (GenericError) |
429 | Limite de requisições excedido. (ErrorCode) |