O que é

O CRM organiza as negociações da empresa em funis e etapas (kanban). Cada negócio é de um cliente, tem responsável, valor previsto, tags, marcos, compromissos, propostas, arquivos e um histórico com tudo o que aconteceu.

Pela API, uma integração ou uma IA abre e conduz negócios, recebe e importa leads e mantém funis, etapas, tags e metas, com as mesmas regras e a mesma permissão do usuário responsável pela credencial.

O que dá para fazer hoje

  • Listar e consultar negócios com os filtros do kanban; criar e editar.
  • Mover de etapa e de funil, trocar o responsável, avaliar, definir o valor previsto e marcar tags.
  • Finalizar como ganho ou perdido, arquivar e reabrir.
  • Comentar, marcar marcos, preencher campos personalizados, agendar compromissos, registrar propostas e enviar arquivos.
  • Receber leads de fora e importar leads por planilha.
  • Manter funis, etapas, marcos, campanhas, origens, campos personalizados, tags e metas.
  • Ler os relatórios do funil e das metas.

Ciclo de um negócio

SituaçãoComo chega
AbertoCriar o negócio ou receber um lead; mover entre as etapas de andamento
Ganho ou perdidoMover para a etapa de ganho ou de perda do funil
FinalizadoFinalizar a negociação (ganho com o valor)
ArquivadoArquivar; desarquivar ou reabrir trazem de volta

Importante

  • Etapa e situação mudam só pelas ações; o PATCH edita os dados.
  • Ação fora do estado responde 409 invalid_transition.
  • Toda criação e ação exige Idempotency-Key.
  • Leitura crm:read; negócios crm:write; leads e importação por planilha crm:import; configuração crm:settings.
  • Alcance: a credencial vê os funis em que o usuário é gestor ou membro do time (o administrador geral e quem tem Funis de Venda (editar) veem todos) e, quando o negócio tem loja, só as lojas dele; fora disso, 404.
  • Negócio finalizado só muda de etapa ou de funil depois de reaberto (409).

Disponibilidade na API

Endpoints de CRM

Conduza negócios pelos funis, receba e importe leads e mantenha a configuração do CRM. Os exemplos abaixo são gerados pelo contrato OpenAPI oficial.

GET /api/v1/crm/deals

Lista negócios

Mesmos filtros e busca do kanban e da lista do painel; arquivados só com `archived=true`. Do mais movimentado para o menos. Exige `crm:read` e Negócios (ver). Só os negócios do alcance do usuário: funis em que ele é gestor ou membro do time (o administrador geral e quem tem Funis de Venda (editar) veem todos) e, quando o negócio tem loja, lojas que ele acessa.

Parâmetros

NomeTipoObrigatórioDescrição
funnel_idqueryintegerNão—
stage_ids[]queryarray<integer>Não—
responsible_idqueryintegerNão—
responsible_ids[]queryarray<integer>Não—
origin_ids[]queryarray<integer>Não—
campaign_ids[]queryarray<integer>Não—
milestone_ids[]queryarray<integer>Não—
tag_ids[]queryarray<integer>Não—
statusquerystringNão—
archivedquerybooleanNão—
searchquerystringNão—
search_typequerystringNãoOnde buscar: nome do negócio, id, cliente ou vendedor.
per_pagequeryintegerNão—

Exemplo de requisição

cURL
curl "$MICORE_BASE_URL/crm/deals" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": [
        {
            "id": 1,
            "name": "string",
            "status": "aberto",
            "closed": true,
            "archived": true,
            "predicted_value": 1,
            "won_value": 1,
            "rating": 1,
            "url_origin": null,
            "client": {
                "id": 1,
                "name": "string",
                "email": null
            },
            "funnel": {
                "id": 1,
                "name": "string"
            },
            "stage": {
                "id": 1,
                "name": "string",
                "color": null,
                "is_won": true,
                "is_lost": true
            },
            "responsible": {
                "id": 1,
                "name": "string"
            },
            "origin": {
                "id": 1,
                "name": "string"
            },
            "campaign": {
                "id": 1,
                "name": "string"
            },
            "store": {
                "id": 1,
                "name": null
            },
            "tags": [
                {
                    "id": 1,
                    "name": "string",
                    "color": null
                }
            ],
            "milestones": [
                {
                    "id": 1,
                    "name": "string",
                    "color": null
                }
            ],
            "next_appointment_at": "2026-10-20T10:00:00-03:00",
            "won_at": "2026-10-20T10:00:00-03:00",
            "lost_at": "2026-10-20T10:00:00-03:00",
            "created_at": "2026-10-20T10:00:00-03:00",
            "updated_at": "2026-10-20T10:00:00-03:00"
        }
    ],
    "links": [],
    "meta": []
}

Respostas possíveis

200 Página de negócios401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/deals

Cria um negócio

Cria o negócio aberto na primeira etapa ativa do funil, com o histórico da etapa e a observação como comentário. Sem responsável, fica com o usuário da credencial. Exige `crm:write` e Negócios (criar). Funil fora do alcance do usuário responde 403 (`permission_denied`).

Parâmetros

NomeTipoObrigatórioDescrição
Idempotency-KeyheaderstringSimIdentificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar.

Corpo da requisição

CampoTipoObrigatórioDescrição
funnel_idintegerSim—
client_idintegerSim—
namestring | nullNãoSem nome, vira "Negociação com o cliente #id".
responsible_idinteger | nullNão—
predicted_valuenumber | nullNão—
origin_idinteger | nullNão—
campaign_idinteger | nullNão—
store_idinteger | nullNão—
url_originstring | nullNão—
ratinginteger | nullNão—
observationstring | nullNãoVira o primeiro comentário.

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/deals" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Idempotency-Key: board-request-0001" \
  -H "Content-Type: application/json" \
  -d '{"funnel_id":1,"client_id":1,"name":null,"responsible_id":1,"predicted_value":1,"origin_id":1,"campaign_id":1,"store_id":1,"url_origin":null,"rating":1,"observation":null}'

Exemplo de resposta JSON

Resposta · 201
{
    "data": {
        "id": 1,
        "name": "string",
        "status": "aberto",
        "closed": true,
        "archived": true,
        "predicted_value": 1,
        "won_value": 1,
        "rating": 1,
        "url_origin": null,
        "client": {
            "id": 1,
            "name": "string",
            "email": null
        },
        "funnel": {
            "id": 1,
            "name": "string"
        },
        "stage": {
            "id": 1,
            "name": "string",
            "color": null,
            "is_won": true,
            "is_lost": true
        },
        "responsible": {
            "id": 1,
            "name": "string"
        },
        "origin": {
            "id": 1,
            "name": "string"
        },
        "campaign": {
            "id": 1,
            "name": "string"
        },
        "store": {
            "id": 1,
            "name": null
        },
        "tags": [
            {
                "id": 1,
                "name": "string",
                "color": null
            }
        ],
        "milestones": [
            {
                "id": 1,
                "name": "string",
                "color": null
            }
        ],
        "next_appointment_at": "2026-10-20T10:00:00-03:00",
        "won_at": "2026-10-20T10:00:00-03:00",
        "lost_at": "2026-10-20T10:00:00-03:00",
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

201 Negócio criado (ou reapresentado pela mesma chave)401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado409 Chave em processamento ou reutilizada com outro conteúdo, ou ação não permitida no estado atual do recurso (`invalid_transition`)422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
GET /api/v1/crm/deals/{deal}

Consulta um negócio

Exige `crm:read` e Negócios (ver). Negócio fora do alcance do usuário responde 404, sem revelar que existe.

Exemplo de requisição

cURL
curl "$MICORE_BASE_URL/crm/deals/{deal}" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "status": "aberto",
        "closed": true,
        "archived": true,
        "predicted_value": 1,
        "won_value": 1,
        "rating": 1,
        "url_origin": null,
        "client": {
            "id": 1,
            "name": "string",
            "email": null
        },
        "funnel": {
            "id": 1,
            "name": "string"
        },
        "stage": {
            "id": 1,
            "name": "string",
            "color": null,
            "is_won": true,
            "is_lost": true
        },
        "responsible": {
            "id": 1,
            "name": "string"
        },
        "origin": {
            "id": 1,
            "name": "string"
        },
        "campaign": {
            "id": 1,
            "name": "string"
        },
        "store": {
            "id": 1,
            "name": null
        },
        "tags": [
            {
                "id": 1,
                "name": "string",
                "color": null
            }
        ],
        "milestones": [
            {
                "id": 1,
                "name": "string",
                "color": null
            }
        ],
        "next_appointment_at": "2026-10-20T10:00:00-03:00",
        "won_at": "2026-10-20T10:00:00-03:00",
        "lost_at": "2026-10-20T10:00:00-03:00",
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Negócio401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
PATCH /api/v1/crm/deals/{deal}

Edita os dados do negócio

Edição parcial: o campo omitido fica como está. Origem, campanha e unidade entram no histórico com o que mudou. Etapa, funil, responsável, avaliação e valor previsto têm ação própria. Exige `crm:write` e Negócios (editar). Negócio fora do alcance do usuário responde 404, sem revelar que existe.

Corpo da requisição

CampoTipoObrigatórioDescrição
namestringNão—
client_idintegerNão—
url_originstring | nullNão—
origin_idinteger | nullNão—
campaign_idinteger | nullNão—
store_idinteger | nullNão—

Exemplo de requisição

cURL
curl -X PATCH "$MICORE_BASE_URL/crm/deals/{deal}" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"name":"string","client_id":1,"url_origin":null,"origin_id":1,"campaign_id":1,"store_id":1}'

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "status": "aberto",
        "closed": true,
        "archived": true,
        "predicted_value": 1,
        "won_value": 1,
        "rating": 1,
        "url_origin": null,
        "client": {
            "id": 1,
            "name": "string",
            "email": null
        },
        "funnel": {
            "id": 1,
            "name": "string"
        },
        "stage": {
            "id": 1,
            "name": "string",
            "color": null,
            "is_won": true,
            "is_lost": true
        },
        "responsible": {
            "id": 1,
            "name": "string"
        },
        "origin": {
            "id": 1,
            "name": "string"
        },
        "campaign": {
            "id": 1,
            "name": "string"
        },
        "store": {
            "id": 1,
            "name": null
        },
        "tags": [
            {
                "id": 1,
                "name": "string",
                "color": null
            }
        ],
        "milestones": [
            {
                "id": 1,
                "name": "string",
                "color": null
            }
        ],
        "next_appointment_at": "2026-10-20T10:00:00-03:00",
        "won_at": "2026-10-20T10:00:00-03:00",
        "lost_at": "2026-10-20T10:00:00-03:00",
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Negócio atualizado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/deals/{deal}/stage

Move o negócio de etapa

Etapa do mesmo funil: ganho e perda mudam a situação, as demais deixam aberto; etapa que pede retorno grava o próximo contato na agenda. Mesma etapa: 409. Dispara as automações da etapa. Exige `crm:write` e Negócios (editar). Negócio fora do alcance do usuário responde 404, sem revelar que existe.

Parâmetros

NomeTipoObrigatórioDescrição
Idempotency-KeyheaderstringSimIdentificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar.

Corpo da requisição

CampoTipoObrigatórioDescrição
stage_idintegerSim—
contact_datestring | null (date)NãoPróximo contato, nas etapas que pedem retorno.
contact_timestring | nullNãoHora do próximo contato (HH:MM).
observationstring | nullNãoRelatório da movimentação, como o texto pedido ao ganhar a venda; fica no histórico da etapa.

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/deals/{deal}/stage" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Idempotency-Key: board-request-0001" \
  -H "Content-Type: application/json" \
  -d '{"stage_id":1,"contact_date":"2026-10-20","contact_time":null,"observation":null}'

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "status": "aberto",
        "closed": true,
        "archived": true,
        "predicted_value": 1,
        "won_value": 1,
        "rating": 1,
        "url_origin": null,
        "client": {
            "id": 1,
            "name": "string",
            "email": null
        },
        "funnel": {
            "id": 1,
            "name": "string"
        },
        "stage": {
            "id": 1,
            "name": "string",
            "color": null,
            "is_won": true,
            "is_lost": true
        },
        "responsible": {
            "id": 1,
            "name": "string"
        },
        "origin": {
            "id": 1,
            "name": "string"
        },
        "campaign": {
            "id": 1,
            "name": "string"
        },
        "store": {
            "id": 1,
            "name": null
        },
        "tags": [
            {
                "id": 1,
                "name": "string",
                "color": null
            }
        ],
        "milestones": [
            {
                "id": 1,
                "name": "string",
                "color": null
            }
        ],
        "next_appointment_at": "2026-10-20T10:00:00-03:00",
        "won_at": "2026-10-20T10:00:00-03:00",
        "lost_at": "2026-10-20T10:00:00-03:00",
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Negócio atualizado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado409 Chave em processamento ou reutilizada com outro conteúdo, ou ação não permitida no estado atual do recurso (`invalid_transition`)422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/deals/{deal}/funnel

Leva o negócio para outro funil

Funil e etapa de destino (a etapa precisa ser do funil). Mesmo funil: 409. Exige `crm:write` e Negócios (editar). Negócio fora do alcance do usuário responde 404, sem revelar que existe.

Parâmetros

NomeTipoObrigatórioDescrição
Idempotency-KeyheaderstringSimIdentificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar.

Corpo da requisição

CampoTipoObrigatórioDescrição
funnel_idintegerSim—
stage_idintegerSim—

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/deals/{deal}/funnel" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Idempotency-Key: board-request-0001" \
  -H "Content-Type: application/json" \
  -d '{"funnel_id":1,"stage_id":1}'

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "status": "aberto",
        "closed": true,
        "archived": true,
        "predicted_value": 1,
        "won_value": 1,
        "rating": 1,
        "url_origin": null,
        "client": {
            "id": 1,
            "name": "string",
            "email": null
        },
        "funnel": {
            "id": 1,
            "name": "string"
        },
        "stage": {
            "id": 1,
            "name": "string",
            "color": null,
            "is_won": true,
            "is_lost": true
        },
        "responsible": {
            "id": 1,
            "name": "string"
        },
        "origin": {
            "id": 1,
            "name": "string"
        },
        "campaign": {
            "id": 1,
            "name": "string"
        },
        "store": {
            "id": 1,
            "name": null
        },
        "tags": [
            {
                "id": 1,
                "name": "string",
                "color": null
            }
        ],
        "milestones": [
            {
                "id": 1,
                "name": "string",
                "color": null
            }
        ],
        "next_appointment_at": "2026-10-20T10:00:00-03:00",
        "won_at": "2026-10-20T10:00:00-03:00",
        "lost_at": "2026-10-20T10:00:00-03:00",
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Negócio atualizado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado409 Chave em processamento ou reutilizada com outro conteúdo, ou ação não permitida no estado atual do recurso (`invalid_transition`)422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/deals/{deal}/responsible

Troca o responsável

`null` remove o responsável. Exige `crm:write` e Negócios (editar). Negócio fora do alcance do usuário responde 404, sem revelar que existe.

Parâmetros

NomeTipoObrigatórioDescrição
Idempotency-KeyheaderstringSimIdentificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar.

Corpo da requisição

CampoTipoObrigatórioDescrição
responsible_idinteger | nullSim—

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/deals/{deal}/responsible" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Idempotency-Key: board-request-0001" \
  -H "Content-Type: application/json" \
  -d '{"responsible_id":1}'

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "status": "aberto",
        "closed": true,
        "archived": true,
        "predicted_value": 1,
        "won_value": 1,
        "rating": 1,
        "url_origin": null,
        "client": {
            "id": 1,
            "name": "string",
            "email": null
        },
        "funnel": {
            "id": 1,
            "name": "string"
        },
        "stage": {
            "id": 1,
            "name": "string",
            "color": null,
            "is_won": true,
            "is_lost": true
        },
        "responsible": {
            "id": 1,
            "name": "string"
        },
        "origin": {
            "id": 1,
            "name": "string"
        },
        "campaign": {
            "id": 1,
            "name": "string"
        },
        "store": {
            "id": 1,
            "name": null
        },
        "tags": [
            {
                "id": 1,
                "name": "string",
                "color": null
            }
        ],
        "milestones": [
            {
                "id": 1,
                "name": "string",
                "color": null
            }
        ],
        "next_appointment_at": "2026-10-20T10:00:00-03:00",
        "won_at": "2026-10-20T10:00:00-03:00",
        "lost_at": "2026-10-20T10:00:00-03:00",
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Negócio atualizado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado409 Chave em processamento ou reutilizada com outro conteúdo, ou ação não permitida no estado atual do recurso (`invalid_transition`)422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/deals/{deal}/rating

Avalia o negócio

Nota de 1 a 5. Exige `crm:write` e Negócios (editar). Negócio fora do alcance do usuário responde 404, sem revelar que existe.

Parâmetros

NomeTipoObrigatórioDescrição
Idempotency-KeyheaderstringSimIdentificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar.

Corpo da requisição

CampoTipoObrigatórioDescrição
ratingintegerSim—

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/deals/{deal}/rating" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Idempotency-Key: board-request-0001" \
  -H "Content-Type: application/json" \
  -d '{"rating":1}'

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "status": "aberto",
        "closed": true,
        "archived": true,
        "predicted_value": 1,
        "won_value": 1,
        "rating": 1,
        "url_origin": null,
        "client": {
            "id": 1,
            "name": "string",
            "email": null
        },
        "funnel": {
            "id": 1,
            "name": "string"
        },
        "stage": {
            "id": 1,
            "name": "string",
            "color": null,
            "is_won": true,
            "is_lost": true
        },
        "responsible": {
            "id": 1,
            "name": "string"
        },
        "origin": {
            "id": 1,
            "name": "string"
        },
        "campaign": {
            "id": 1,
            "name": "string"
        },
        "store": {
            "id": 1,
            "name": null
        },
        "tags": [
            {
                "id": 1,
                "name": "string",
                "color": null
            }
        ],
        "milestones": [
            {
                "id": 1,
                "name": "string",
                "color": null
            }
        ],
        "next_appointment_at": "2026-10-20T10:00:00-03:00",
        "won_at": "2026-10-20T10:00:00-03:00",
        "lost_at": "2026-10-20T10:00:00-03:00",
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Negócio atualizado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado409 Chave em processamento ou reutilizada com outro conteúdo, ou ação não permitida no estado atual do recurso (`invalid_transition`)422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/deals/{deal}/predicted-value

Define o valor previsto

Exige `crm:write` e Negócios (editar). Negócio fora do alcance do usuário responde 404, sem revelar que existe.

Parâmetros

NomeTipoObrigatórioDescrição
Idempotency-KeyheaderstringSimIdentificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar.

Corpo da requisição

CampoTipoObrigatórioDescrição
valuenumberSim—

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/deals/{deal}/predicted-value" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Idempotency-Key: board-request-0001" \
  -H "Content-Type: application/json" \
  -d '{"value":1}'

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "status": "aberto",
        "closed": true,
        "archived": true,
        "predicted_value": 1,
        "won_value": 1,
        "rating": 1,
        "url_origin": null,
        "client": {
            "id": 1,
            "name": "string",
            "email": null
        },
        "funnel": {
            "id": 1,
            "name": "string"
        },
        "stage": {
            "id": 1,
            "name": "string",
            "color": null,
            "is_won": true,
            "is_lost": true
        },
        "responsible": {
            "id": 1,
            "name": "string"
        },
        "origin": {
            "id": 1,
            "name": "string"
        },
        "campaign": {
            "id": 1,
            "name": "string"
        },
        "store": {
            "id": 1,
            "name": null
        },
        "tags": [
            {
                "id": 1,
                "name": "string",
                "color": null
            }
        ],
        "milestones": [
            {
                "id": 1,
                "name": "string",
                "color": null
            }
        ],
        "next_appointment_at": "2026-10-20T10:00:00-03:00",
        "won_at": "2026-10-20T10:00:00-03:00",
        "lost_at": "2026-10-20T10:00:00-03:00",
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Negócio atualizado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado409 Chave em processamento ou reutilizada com outro conteúdo, ou ação não permitida no estado atual do recurso (`invalid_transition`)422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/deals/{deal}/tags

Coloca uma tag

Só tag ativa; o negócio que já tem a tag responde 409. Exige `crm:write` e Negócios (editar). Negócio fora do alcance do usuário responde 404, sem revelar que existe.

Parâmetros

NomeTipoObrigatórioDescrição
Idempotency-KeyheaderstringSimIdentificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar.

Corpo da requisição

CampoTipoObrigatórioDescrição
tag_idintegerSim—

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/deals/{deal}/tags" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Idempotency-Key: board-request-0001" \
  -H "Content-Type: application/json" \
  -d '{"tag_id":1}'

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "status": "aberto",
        "closed": true,
        "archived": true,
        "predicted_value": 1,
        "won_value": 1,
        "rating": 1,
        "url_origin": null,
        "client": {
            "id": 1,
            "name": "string",
            "email": null
        },
        "funnel": {
            "id": 1,
            "name": "string"
        },
        "stage": {
            "id": 1,
            "name": "string",
            "color": null,
            "is_won": true,
            "is_lost": true
        },
        "responsible": {
            "id": 1,
            "name": "string"
        },
        "origin": {
            "id": 1,
            "name": "string"
        },
        "campaign": {
            "id": 1,
            "name": "string"
        },
        "store": {
            "id": 1,
            "name": null
        },
        "tags": [
            {
                "id": 1,
                "name": "string",
                "color": null
            }
        ],
        "milestones": [
            {
                "id": 1,
                "name": "string",
                "color": null
            }
        ],
        "next_appointment_at": "2026-10-20T10:00:00-03:00",
        "won_at": "2026-10-20T10:00:00-03:00",
        "lost_at": "2026-10-20T10:00:00-03:00",
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Negócio atualizado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado409 Chave em processamento ou reutilizada com outro conteúdo, ou ação não permitida no estado atual do recurso (`invalid_transition`)422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/deals/{deal}/finish

Finaliza a negociação

Depois de chegar a uma etapa de ganho (grava o valor ganho e a observação) ou de perda (só a observação). Negócio aberto: 409. Exige `crm:write` e Negócios (editar). Negócio fora do alcance do usuário responde 404, sem revelar que existe.

Parâmetros

NomeTipoObrigatórioDescrição
Idempotency-KeyheaderstringSimIdentificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar.

Corpo da requisição

CampoTipoObrigatórioDescrição
won_valuenumber | nullNãoSó no ganho.
observationsstring | nullNão—

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/deals/{deal}/finish" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Idempotency-Key: board-request-0001" \
  -H "Content-Type: application/json" \
  -d '{"won_value":1,"observations":null}'

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "status": "aberto",
        "closed": true,
        "archived": true,
        "predicted_value": 1,
        "won_value": 1,
        "rating": 1,
        "url_origin": null,
        "client": {
            "id": 1,
            "name": "string",
            "email": null
        },
        "funnel": {
            "id": 1,
            "name": "string"
        },
        "stage": {
            "id": 1,
            "name": "string",
            "color": null,
            "is_won": true,
            "is_lost": true
        },
        "responsible": {
            "id": 1,
            "name": "string"
        },
        "origin": {
            "id": 1,
            "name": "string"
        },
        "campaign": {
            "id": 1,
            "name": "string"
        },
        "store": {
            "id": 1,
            "name": null
        },
        "tags": [
            {
                "id": 1,
                "name": "string",
                "color": null
            }
        ],
        "milestones": [
            {
                "id": 1,
                "name": "string",
                "color": null
            }
        ],
        "next_appointment_at": "2026-10-20T10:00:00-03:00",
        "won_at": "2026-10-20T10:00:00-03:00",
        "lost_at": "2026-10-20T10:00:00-03:00",
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Negócio atualizado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado409 Chave em processamento ou reutilizada com outro conteúdo, ou ação não permitida no estado atual do recurso (`invalid_transition`)422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/deals/{deal}/archive

Arquiva o negócio

O negócio sai do kanban e da lista. Já arquivado: 409. Exige `crm:write` e Negócios (editar). Negócio fora do alcance do usuário responde 404, sem revelar que existe.

Parâmetros

NomeTipoObrigatórioDescrição
Idempotency-KeyheaderstringSimIdentificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar.

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/deals/{deal}/archive" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Idempotency-Key: board-request-0001"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "status": "aberto",
        "closed": true,
        "archived": true,
        "predicted_value": 1,
        "won_value": 1,
        "rating": 1,
        "url_origin": null,
        "client": {
            "id": 1,
            "name": "string",
            "email": null
        },
        "funnel": {
            "id": 1,
            "name": "string"
        },
        "stage": {
            "id": 1,
            "name": "string",
            "color": null,
            "is_won": true,
            "is_lost": true
        },
        "responsible": {
            "id": 1,
            "name": "string"
        },
        "origin": {
            "id": 1,
            "name": "string"
        },
        "campaign": {
            "id": 1,
            "name": "string"
        },
        "store": {
            "id": 1,
            "name": null
        },
        "tags": [
            {
                "id": 1,
                "name": "string",
                "color": null
            }
        ],
        "milestones": [
            {
                "id": 1,
                "name": "string",
                "color": null
            }
        ],
        "next_appointment_at": "2026-10-20T10:00:00-03:00",
        "won_at": "2026-10-20T10:00:00-03:00",
        "lost_at": "2026-10-20T10:00:00-03:00",
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Negócio atualizado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado409 Chave em processamento ou reutilizada com outro conteúdo, ou ação não permitida no estado atual do recurso (`invalid_transition`)422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/deals/{deal}/unarchive

Desarquiva o negócio

Não arquivado: 409. Exige `crm:write` e Negócios (editar). Negócio fora do alcance do usuário responde 404, sem revelar que existe.

Parâmetros

NomeTipoObrigatórioDescrição
Idempotency-KeyheaderstringSimIdentificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar.

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/deals/{deal}/unarchive" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Idempotency-Key: board-request-0001"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "status": "aberto",
        "closed": true,
        "archived": true,
        "predicted_value": 1,
        "won_value": 1,
        "rating": 1,
        "url_origin": null,
        "client": {
            "id": 1,
            "name": "string",
            "email": null
        },
        "funnel": {
            "id": 1,
            "name": "string"
        },
        "stage": {
            "id": 1,
            "name": "string",
            "color": null,
            "is_won": true,
            "is_lost": true
        },
        "responsible": {
            "id": 1,
            "name": "string"
        },
        "origin": {
            "id": 1,
            "name": "string"
        },
        "campaign": {
            "id": 1,
            "name": "string"
        },
        "store": {
            "id": 1,
            "name": null
        },
        "tags": [
            {
                "id": 1,
                "name": "string",
                "color": null
            }
        ],
        "milestones": [
            {
                "id": 1,
                "name": "string",
                "color": null
            }
        ],
        "next_appointment_at": "2026-10-20T10:00:00-03:00",
        "won_at": "2026-10-20T10:00:00-03:00",
        "lost_at": "2026-10-20T10:00:00-03:00",
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Negócio atualizado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado409 Chave em processamento ou reutilizada com outro conteúdo, ou ação não permitida no estado atual do recurso (`invalid_transition`)422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/deals/{deal}/reopen

Reabre o negócio

Negócio finalizado ou arquivado volta a ser negociação em andamento. Já aberto: 409. Exige `crm:write` e Negócios (editar). Negócio fora do alcance do usuário responde 404, sem revelar que existe.

Parâmetros

NomeTipoObrigatórioDescrição
Idempotency-KeyheaderstringSimIdentificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar.

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/deals/{deal}/reopen" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Idempotency-Key: board-request-0001"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "status": "aberto",
        "closed": true,
        "archived": true,
        "predicted_value": 1,
        "won_value": 1,
        "rating": 1,
        "url_origin": null,
        "client": {
            "id": 1,
            "name": "string",
            "email": null
        },
        "funnel": {
            "id": 1,
            "name": "string"
        },
        "stage": {
            "id": 1,
            "name": "string",
            "color": null,
            "is_won": true,
            "is_lost": true
        },
        "responsible": {
            "id": 1,
            "name": "string"
        },
        "origin": {
            "id": 1,
            "name": "string"
        },
        "campaign": {
            "id": 1,
            "name": "string"
        },
        "store": {
            "id": 1,
            "name": null
        },
        "tags": [
            {
                "id": 1,
                "name": "string",
                "color": null
            }
        ],
        "milestones": [
            {
                "id": 1,
                "name": "string",
                "color": null
            }
        ],
        "next_appointment_at": "2026-10-20T10:00:00-03:00",
        "won_at": "2026-10-20T10:00:00-03:00",
        "lost_at": "2026-10-20T10:00:00-03:00",
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Negócio atualizado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado409 Chave em processamento ou reutilizada com outro conteúdo, ou ação não permitida no estado atual do recurso (`invalid_transition`)422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
DELETE /api/v1/crm/deals/{deal}/tags/{tag}

Tira uma tag

Negócio sem a tag: 404. Exige `crm:write` e Negócios (editar). Negócio fora do alcance do usuário responde 404, sem revelar que existe.

Exemplo de requisição

cURL
curl -X DELETE "$MICORE_BASE_URL/crm/deals/{deal}/tags/{tag}" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "status": "aberto",
        "closed": true,
        "archived": true,
        "predicted_value": 1,
        "won_value": 1,
        "rating": 1,
        "url_origin": null,
        "client": {
            "id": 1,
            "name": "string",
            "email": null
        },
        "funnel": {
            "id": 1,
            "name": "string"
        },
        "stage": {
            "id": 1,
            "name": "string",
            "color": null,
            "is_won": true,
            "is_lost": true
        },
        "responsible": {
            "id": 1,
            "name": "string"
        },
        "origin": {
            "id": 1,
            "name": "string"
        },
        "campaign": {
            "id": 1,
            "name": "string"
        },
        "store": {
            "id": 1,
            "name": null
        },
        "tags": [
            {
                "id": 1,
                "name": "string",
                "color": null
            }
        ],
        "milestones": [
            {
                "id": 1,
                "name": "string",
                "color": null
            }
        ],
        "next_appointment_at": "2026-10-20T10:00:00-03:00",
        "won_at": "2026-10-20T10:00:00-03:00",
        "lost_at": "2026-10-20T10:00:00-03:00",
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Negócio atualizado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
GET /api/v1/crm/deals/{deal}/history

Lista o histórico do negócio

Etapas, funil, comentários, marcos, campos, compromissos, propostas, tags, arquivamento e desfecho, do mais recente para o mais antigo, com o texto sem HTML. Exige `crm:read` e Negócios (ver). Negócio fora do alcance do usuário responde 404, sem revelar que existe.

Exemplo de requisição

cURL
curl "$MICORE_BASE_URL/crm/deals/{deal}/history" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": [
        {
            "id": 1,
            "type": "string",
            "observation": null,
            "key_id": 1,
            "previous_key_id": 1,
            "author": {
                "id": 1,
                "name": "string"
            },
            "created_at": "2026-10-20T10:00:00-03:00",
            "updated_at": "2026-10-20T10:00:00-03:00"
        }
    ]
}

Respostas possíveis

200 Histórico401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/deals/{deal}/comments

Adiciona um comentário

Exige `crm:write` e Negócios (editar). Negócio fora do alcance do usuário responde 404, sem revelar que existe.

Parâmetros

NomeTipoObrigatórioDescrição
Idempotency-KeyheaderstringSimIdentificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar.

Corpo da requisição

CampoTipoObrigatórioDescrição
textstringSim—

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/deals/{deal}/comments" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Idempotency-Key: board-request-0001" \
  -H "Content-Type: application/json" \
  -d '{"text":"string"}'

Exemplo de resposta JSON

Resposta · 201
{
    "data": {
        "id": 1,
        "type": "string",
        "observation": null,
        "key_id": 1,
        "previous_key_id": 1,
        "author": {
            "id": 1,
            "name": "string"
        },
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

201 Comentário criado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado409 Chave em processamento ou reutilizada com outro conteúdo, ou ação não permitida no estado atual do recurso (`invalid_transition`)422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
PATCH /api/v1/crm/deals/{deal}/comments/{comment}

Edita um comentário

Só linhas de comentário do próprio negócio. Exige `crm:write` e Negócios (editar). Negócio fora do alcance do usuário responde 404, sem revelar que existe.

Corpo da requisição

CampoTipoObrigatórioDescrição
textstringSim—

Exemplo de requisição

cURL
curl -X PATCH "$MICORE_BASE_URL/crm/deals/{deal}/comments/{comment}" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"text":"string"}'

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "type": "string",
        "observation": null,
        "key_id": 1,
        "previous_key_id": 1,
        "author": {
            "id": 1,
            "name": "string"
        },
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Comentário atualizado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/deals/{deal}/milestones

Marca um marco de progresso

Exige `crm:write` e Negócios (editar). Negócio fora do alcance do usuário responde 404, sem revelar que existe.

Parâmetros

NomeTipoObrigatórioDescrição
Idempotency-KeyheaderstringSimIdentificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar.

Corpo da requisição

CampoTipoObrigatórioDescrição
milestone_idintegerSim—
observationstring | nullNão—

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/deals/{deal}/milestones" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Idempotency-Key: board-request-0001" \
  -H "Content-Type: application/json" \
  -d '{"milestone_id":1,"observation":null}'

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "status": "aberto",
        "closed": true,
        "archived": true,
        "predicted_value": 1,
        "won_value": 1,
        "rating": 1,
        "url_origin": null,
        "client": {
            "id": 1,
            "name": "string",
            "email": null
        },
        "funnel": {
            "id": 1,
            "name": "string"
        },
        "stage": {
            "id": 1,
            "name": "string",
            "color": null,
            "is_won": true,
            "is_lost": true
        },
        "responsible": {
            "id": 1,
            "name": "string"
        },
        "origin": {
            "id": 1,
            "name": "string"
        },
        "campaign": {
            "id": 1,
            "name": "string"
        },
        "store": {
            "id": 1,
            "name": null
        },
        "tags": [
            {
                "id": 1,
                "name": "string",
                "color": null
            }
        ],
        "milestones": [
            {
                "id": 1,
                "name": "string",
                "color": null
            }
        ],
        "next_appointment_at": "2026-10-20T10:00:00-03:00",
        "won_at": "2026-10-20T10:00:00-03:00",
        "lost_at": "2026-10-20T10:00:00-03:00",
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Negócio atualizado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado409 Chave em processamento ou reutilizada com outro conteúdo, ou ação não permitida no estado atual do recurso (`invalid_transition`)422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
GET /api/v1/crm/deals/{deal}/custom-fields

Lista os campos personalizados do negócio

Exige `crm:read` e Negócios (ver). Negócio fora do alcance do usuário responde 404, sem revelar que existe.

Exemplo de requisição

cURL
curl "$MICORE_BASE_URL/crm/deals/{deal}/custom-fields" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": [
        {
            "id": 1,
            "custom_field": {
                "id": 1,
                "name": "string"
            },
            "value": null,
            "locked": true
        }
    ]
}

Respostas possíveis

200 Campos do negócio401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/deals/{deal}/custom-fields

Liga um campo personalizado

O campo nasce sem valor. Campo já ligado: 409. Exige `crm:write` e Negócios (editar). Negócio fora do alcance do usuário responde 404, sem revelar que existe.

Parâmetros

NomeTipoObrigatórioDescrição
Idempotency-KeyheaderstringSimIdentificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar.

Corpo da requisição

CampoTipoObrigatórioDescrição
custom_field_idintegerSim—

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/deals/{deal}/custom-fields" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Idempotency-Key: board-request-0001" \
  -H "Content-Type: application/json" \
  -d '{"custom_field_id":1}'

Exemplo de resposta JSON

Resposta · 201
{
    "data": {
        "id": 1,
        "custom_field": {
            "id": 1,
            "name": "string"
        },
        "value": null,
        "locked": true
    }
}

Respostas possíveis

201 Campo ligado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado409 Chave em processamento ou reutilizada com outro conteúdo, ou ação não permitida no estado atual do recurso (`invalid_transition`)422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
PUT /api/v1/crm/deals/{deal}/custom-fields/{field}

Grava o valor de um campo

Substitui o valor. Campo que veio de uma campanha (`locked`) não é editável: 422. Exige `crm:write` e Negócios (editar). Negócio fora do alcance do usuário responde 404, sem revelar que existe.

Corpo da requisição

CampoTipoObrigatórioDescrição
valuestring | nullSim—

Exemplo de requisição

cURL
curl -X PUT "$MICORE_BASE_URL/crm/deals/{deal}/custom-fields/{field}" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"value":null}'

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "custom_field": {
            "id": 1,
            "name": "string"
        },
        "value": null,
        "locked": true
    }
}

Respostas possíveis

200 Valor gravado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
GET /api/v1/crm/deals/{deal}/commitments

Lista os compromissos

Do mais próximo para o mais distante. Exige `crm:read` e Negócios (ver). Negócio fora do alcance do usuário responde 404, sem revelar que existe.

Exemplo de requisição

cURL
curl "$MICORE_BASE_URL/crm/deals/{deal}/commitments" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": [
        {
            "id": 1,
            "type": "string",
            "title": "string",
            "description": null,
            "start_at": "2026-10-20T10:00:00-03:00",
            "end_at": "2026-10-20T10:00:00-03:00",
            "location_type": null,
            "meeting_url": null,
            "status": "agendada",
            "users": [
                {
                    "id": 1,
                    "name": "string"
                }
            ]
        }
    ]
}

Respostas possíveis

200 Compromissos401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/deals/{deal}/commitments

Agenda um compromisso

Horário de Brasília; o fim é o início mais a duração em minutos. Exige `crm:write` e Negócios (editar). Negócio fora do alcance do usuário responde 404, sem revelar que existe.

Parâmetros

NomeTipoObrigatórioDescrição
Idempotency-KeyheaderstringSimIdentificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar.

Corpo da requisição

CampoTipoObrigatórioDescrição
typestringSim—
titlestringSim—
descriptionstring | nullNão—
start_datestring (date)Sim—
start_timestringSimHH:MM, horário de Brasília.
durationintegerSimMinutos.
location_typestringSim—
meeting_urlstring | nullNão—
usersarray<integer>Sim—

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/deals/{deal}/commitments" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Idempotency-Key: board-request-0001" \
  -H "Content-Type: application/json" \
  -d '{"type":"string","title":"string","description":null,"start_date":"2026-10-20","start_time":"string","duration":1,"location_type":"string","meeting_url":null,"users":[1]}'

Exemplo de resposta JSON

Resposta · 201
{
    "data": {
        "id": 1,
        "type": "string",
        "title": "string",
        "description": null,
        "start_at": "2026-10-20T10:00:00-03:00",
        "end_at": "2026-10-20T10:00:00-03:00",
        "location_type": null,
        "meeting_url": null,
        "status": "agendada",
        "users": [
            {
                "id": 1,
                "name": "string"
            }
        ]
    }
}

Respostas possíveis

201 Compromisso agendado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado409 Chave em processamento ou reutilizada com outro conteúdo, ou ação não permitida no estado atual do recurso (`invalid_transition`)422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/deals/{deal}/commitments/{commitment}/status

Muda a situação do compromisso

Exige `crm:write` e Negócios (editar). Negócio fora do alcance do usuário responde 404, sem revelar que existe.

Corpo da requisição

CampoTipoObrigatórioDescrição
statusstringSimValores: agendada, reagendada, concluida, ausente, cancelada.

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/deals/{deal}/commitments/{commitment}/status" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"status":"agendada"}'

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "type": "string",
        "title": "string",
        "description": null,
        "start_at": "2026-10-20T10:00:00-03:00",
        "end_at": "2026-10-20T10:00:00-03:00",
        "location_type": null,
        "meeting_url": null,
        "status": "agendada",
        "users": [
            {
                "id": 1,
                "name": "string"
            }
        ]
    }
}

Respostas possíveis

200 Compromisso atualizado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
GET /api/v1/crm/deals/{deal}/proposals

Lista as propostas

Da mais recente para a mais antiga. Exige `crm:read` e Negócios (ver). Negócio fora do alcance do usuário responde 404, sem revelar que existe.

Exemplo de requisição

cURL
curl "$MICORE_BASE_URL/crm/deals/{deal}/proposals" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": [
        {
            "id": 1,
            "proposal_type": "string",
            "title": "string",
            "amount": 1,
            "proposal_link": null,
            "send_date": null,
            "validity_days": 1,
            "status": "pendente",
            "notes": null,
            "created_at": "2026-10-20T10:00:00-03:00"
        }
    ]
}

Respostas possíveis

200 Propostas401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/deals/{deal}/proposals

Registra uma proposta

Exige `crm:write` e Negócios (editar). Negócio fora do alcance do usuário responde 404, sem revelar que existe.

Parâmetros

NomeTipoObrigatórioDescrição
Idempotency-KeyheaderstringSimIdentificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar.

Corpo da requisição

CampoTipoObrigatórioDescrição
proposal_typestringSim—
titlestringSim—
amountnumberSim—
proposal_linkstring | nullNão—
send_datestring | null (date)Não—
validity_daysinteger | nullNão—
notesstring | nullNão—

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/deals/{deal}/proposals" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Idempotency-Key: board-request-0001" \
  -H "Content-Type: application/json" \
  -d '{"proposal_type":"string","title":"string","amount":1,"proposal_link":null,"send_date":"2026-10-20","validity_days":1,"notes":null}'

Exemplo de resposta JSON

Resposta · 201
{
    "data": {
        "id": 1,
        "proposal_type": "string",
        "title": "string",
        "amount": 1,
        "proposal_link": null,
        "send_date": null,
        "validity_days": 1,
        "status": "pendente",
        "notes": null,
        "created_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

201 Proposta registrada401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado409 Chave em processamento ou reutilizada com outro conteúdo, ou ação não permitida no estado atual do recurso (`invalid_transition`)422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/deals/{deal}/proposals/{proposal}/status

Muda a situação da proposta

Exige `crm:write` e Negócios (editar). Negócio fora do alcance do usuário responde 404, sem revelar que existe.

Corpo da requisição

CampoTipoObrigatórioDescrição
statusstringSimValores: pendente, enviada, aprovada, recusada.

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/deals/{deal}/proposals/{proposal}/status" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"status":"pendente"}'

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "proposal_type": "string",
        "title": "string",
        "amount": 1,
        "proposal_link": null,
        "send_date": null,
        "validity_days": 1,
        "status": "pendente",
        "notes": null,
        "created_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Proposta atualizada401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
GET /api/v1/crm/deals/{deal}/files

Lista os arquivos do negócio

Arquivos ativos com link temporário de 60 minutos. Exige `crm:read` e Negócios (ver). Negócio fora do alcance do usuário responde 404, sem revelar que existe.

Exemplo de requisição

cURL
curl "$MICORE_BASE_URL/crm/deals/{deal}/files" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": [
        {
            "id": 1,
            "name": "string",
            "file_name": "string",
            "extension": null,
            "url": "string",
            "created_at": "2026-10-20T10:00:00-03:00"
        }
    ]
}

Respostas possíveis

200 Arquivos401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/deals/{deal}/files

Envia um arquivo

Exige `crm:write` e Negócios (editar). Negócio fora do alcance do usuário responde 404, sem revelar que existe.

Parâmetros

NomeTipoObrigatórioDescrição
Idempotency-KeyheaderstringSimIdentificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar.

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/deals/{deal}/files" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Idempotency-Key: board-request-0001"

Exemplo de resposta JSON

Resposta · 201
{
    "data": {
        "id": 1,
        "name": "string",
        "file_name": "string",
        "extension": null,
        "url": "string",
        "created_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

201 Arquivo enviado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado409 Chave em processamento ou reutilizada com outro conteúdo, ou ação não permitida no estado atual do recurso (`invalid_transition`)422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
DELETE /api/v1/crm/deals/{deal}/files/{file}

Remove um arquivo

Desativa o arquivo; já removido: 404. Exige `crm:write` e Negócios (editar). Negócio fora do alcance do usuário responde 404, sem revelar que existe.

Exemplo de requisição

cURL
curl -X DELETE "$MICORE_BASE_URL/crm/deals/{deal}/files/{file}" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Respostas possíveis

204 Arquivo removido401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/leads

Recebe um lead de fora

Mesma regra da entrada legada `POST /api/crm/leads`: localiza o cliente por e-mail, telefone, CPF ou CNPJ (ou cria), liga os contatos e cria o negócio na primeira etapa do funil ou soma a captação ao negócio aberto do cliente nesse funil. Dados de clientes diferentes ou funil sem etapa ativa: 422. Exige `crm:import` e Negócios (criar).

Parâmetros

NomeTipoObrigatórioDescrição
Idempotency-KeyheaderstringSimIdentificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar.

Corpo da requisição

CampoTipoObrigatórioDescrição
namestring | nullNão—
emailstring | null (email)Não—
phonestring | nullNãoSó dígitos, 10 a 15.
cpfstring | nullNão—
cnpjstring | nullNão—
funnel_idintegerSim—
origin_idintegerSim—
store_idinteger | nullNão—
campaign_idinteger | nullNão—
observationstring | nullNão—
url_originstring | nullNão—
ratinginteger | nullNão—
metadataobject | nullNãoAté 50 pares de valor simples.

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/leads" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Idempotency-Key: board-request-0001" \
  -H "Content-Type: application/json" \
  -d '{"name":null,"email":null,"phone":null,"cpf":null,"cnpj":null,"funnel_id":1,"origin_id":1,"store_id":1,"campaign_id":1,"observation":null,"url_origin":null,"rating":1,"metadata":[]}'

Exemplo de resposta JSON

Resposta · 201
{
    "data": {
        "business_id": 1,
        "client_id": 1,
        "action": "created"
    }
}

Respostas possíveis

201 Lead criado (200 quando somado a um negócio aberto)401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado409 Chave em processamento ou reutilizada com outro conteúdo, ou ação não permitida no estado atual do recurso (`invalid_transition`)422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/lead-imports

Valida uma planilha de leads

Envia o CSV (nome, e-mail, telefone, formulário, id externo, data e URL de origem) e devolve a prévia validada, sem gravar os leads. A confirmação usa o `import_id` da prévia. Exige `crm:import` e Importação de Leads (ver).

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/lead-imports" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 201
{
    "data": []
}

Respostas possíveis

201 Prévia da importação401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
GET /api/v1/crm/lead-imports/{import}

Consulta o progresso da importação

Exige `crm:import` e Importação de Leads (ver).

Exemplo de requisição

cURL
curl "$MICORE_BASE_URL/crm/lead-imports/{import}" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": []
}

Respostas possíveis

200 Progresso401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/lead-imports/{import}/start

Confirma a importação

Põe as linhas válidas da prévia na fila (uma vez só). Sem prévia válida ou já iniciada: 409. Exige `crm:import` e Importação de Leads (criar).

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/lead-imports/{import}/start" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": []
}

Respostas possíveis

200 Importação na fila401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado409 Chave em processamento ou reutilizada com outro conteúdo, ou ação não permitida no estado atual do recurso (`invalid_transition`)422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
GET /api/v1/crm/funnels

Lista os funis de venda

Funis pelo nome, com gestor e time. Exige `crm:read` e Funis de Venda (ver). Só os funis do alcance do usuário (gestor ou membro do time; o administrador geral e quem tem Funis de Venda (editar) veem todos).

Parâmetros

NomeTipoObrigatórioDescrição
activequerybooleanNãoFiltra pela situação.
searchquerystringNãoBusca pelo nome.
per_pagequeryintegerNão—

Exemplo de requisição

cURL
curl "$MICORE_BASE_URL/crm/funnels" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": [
        {
            "id": 1,
            "name": "string",
            "description": null,
            "manager": {
                "id": 1,
                "name": "string"
            },
            "sellers": [
                {
                    "id": 1,
                    "name": "string"
                }
            ],
            "active": true,
            "created_at": "2026-10-20T10:00:00-03:00",
            "updated_at": "2026-10-20T10:00:00-03:00"
        }
    ],
    "links": [],
    "meta": []
}

Respostas possíveis

200 Página de funis401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/funnels

Cria um funil de venda

Cria o funil com o time (`sellers_id`) e as oito etapas padrão, como a tela. Exige `crm:settings` e Funis de Venda (criar).

Parâmetros

NomeTipoObrigatórioDescrição
Idempotency-KeyheaderstringSimIdentificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar.

Corpo da requisição

CampoTipoObrigatórioDescrição
namestringSimAté 255 caracteres.
manager_idintegerSimGestor do funil.
descriptionstring | nullNão—
positioninteger | nullNão—
sellers_idarray<integer>NãoTime do funil.

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/funnels" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Idempotency-Key: board-request-0001" \
  -H "Content-Type: application/json" \
  -d '{"name":"string","manager_id":1,"description":null,"position":1,"sellers_id":[1]}'

Exemplo de resposta JSON

Resposta · 201
{
    "data": {
        "id": 1,
        "name": "string",
        "description": null,
        "manager": {
            "id": 1,
            "name": "string"
        },
        "sellers": [
            {
                "id": 1,
                "name": "string"
            }
        ],
        "active": true,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

201 Funil criado (ou reapresentado pela mesma chave)401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado409 Chave em processamento ou reutilizada com outro conteúdo422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
GET /api/v1/crm/funnels/{funnel}

Consulta um funil

Exige `crm:read` e Funis de Venda (ver). Funil fora do alcance do usuário responde 404.

Exemplo de requisição

cURL
curl "$MICORE_BASE_URL/crm/funnels/{funnel}" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "description": null,
        "manager": {
            "id": 1,
            "name": "string"
        },
        "sellers": [
            {
                "id": 1,
                "name": "string"
            }
        ],
        "active": true,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Funil401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
PATCH /api/v1/crm/funnels/{funnel}

Edita um funil

Edição parcial: o campo omitido fica como está. O time só muda quando `sellers_id` vem (lista vazia remove o time). Exige `crm:settings` e Funis de Venda (editar). Funil fora do alcance do usuário responde 404.

Corpo da requisição

CampoTipoObrigatórioDescrição
namestringNãoAté 255 caracteres.
manager_idintegerNão—
descriptionstring | nullNão—
positioninteger | nullNão—
sellers_idarray<integer>NãoSubstitui o time; lista vazia remove o time.

Exemplo de requisição

cURL
curl -X PATCH "$MICORE_BASE_URL/crm/funnels/{funnel}" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"name":"string","manager_id":1,"description":null,"position":1,"sellers_id":[1]}'

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "description": null,
        "manager": {
            "id": 1,
            "name": "string"
        },
        "sellers": [
            {
                "id": 1,
                "name": "string"
            }
        ],
        "active": true,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Funil atualizado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/funnels/{funnel}/activate

Ativa um funil

Ativa o funil (desativar registra quem arquivou). Exige `crm:settings` e Funis de Venda (desabilitar). Funil fora do alcance do usuário responde 404.

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/funnels/{funnel}/activate" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "description": null,
        "manager": {
            "id": 1,
            "name": "string"
        },
        "sellers": [
            {
                "id": 1,
                "name": "string"
            }
        ],
        "active": true,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Funil com a nova situação401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/funnels/{funnel}/deactivate

Desativa um funil

Desativa o funil (desativar registra quem arquivou). Exige `crm:settings` e Funis de Venda (desabilitar). Funil fora do alcance do usuário responde 404.

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/funnels/{funnel}/deactivate" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "description": null,
        "manager": {
            "id": 1,
            "name": "string"
        },
        "sellers": [
            {
                "id": 1,
                "name": "string"
            }
        ],
        "active": true,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Funil com a nova situação401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
GET /api/v1/crm/funnels/{funnel}/stages

Lista as etapas do funil

Etapas na ordem do funil. Exige `crm:read` e Etapas de Funis (ver). Funil fora do alcance do usuário responde 404.

Exemplo de requisição

cURL
curl "$MICORE_BASE_URL/crm/funnels/{funnel}/stages" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": [
        {
            "id": 1,
            "funnel_id": 1,
            "name": "string",
            "description": null,
            "position": 1,
            "color": null,
            "info_date": true,
            "is_won": true,
            "is_lost": true,
            "active": true,
            "created_at": "2026-10-20T10:00:00-03:00",
            "updated_at": "2026-10-20T10:00:00-03:00"
        }
    ]
}

Respostas possíveis

200 Etapas401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/funnels/{funnel}/stages

Cria uma etapa no funil

A etapa entra no fim do próprio funil. Uma etapa não pode ser ganha e perdida ao mesmo tempo (422). Exige `crm:settings` e Etapas de Funis (criar). Funil fora do alcance do usuário responde 404.

Parâmetros

NomeTipoObrigatórioDescrição
Idempotency-KeyheaderstringSimIdentificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar.

Corpo da requisição

CampoTipoObrigatórioDescrição
namestringSimAté 255 caracteres.
colorstringSimAté 20 caracteres.
descriptionstring | nullNão—
info_datebooleanNão—
is_wonbooleanNão—
is_lostbooleanNão—

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/funnels/{funnel}/stages" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Idempotency-Key: board-request-0001" \
  -H "Content-Type: application/json" \
  -d '{"name":"string","color":"string","description":null,"info_date":true,"is_won":true,"is_lost":true}'

Exemplo de resposta JSON

Resposta · 201
{
    "data": {
        "id": 1,
        "funnel_id": 1,
        "name": "string",
        "description": null,
        "position": 1,
        "color": null,
        "info_date": true,
        "is_won": true,
        "is_lost": true,
        "active": true,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

201 Etapa criada (ou reapresentada pela mesma chave)401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado409 Chave em processamento ou reutilizada com outro conteúdo422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
PUT /api/v1/crm/funnels/{funnel}/stages/order

Reordena as etapas do funil

Grava a posição de cada etapa enviada; etapas de outro funil são ignoradas. Exige `crm:settings` e Etapas de Funis (editar). Funil fora do alcance do usuário responde 404.

Corpo da requisição

CampoTipoObrigatórioDescrição
stagesarray<object>Sim—

Exemplo de requisição

cURL
curl -X PUT "$MICORE_BASE_URL/crm/funnels/{funnel}/stages/order" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"stages":[{"id":1,"order":1}]}'

Exemplo de resposta JSON

Resposta · 200
{
    "data": [
        {
            "id": 1,
            "funnel_id": 1,
            "name": "string",
            "description": null,
            "position": 1,
            "color": null,
            "info_date": true,
            "is_won": true,
            "is_lost": true,
            "active": true,
            "created_at": "2026-10-20T10:00:00-03:00",
            "updated_at": "2026-10-20T10:00:00-03:00"
        }
    ]
}

Respostas possíveis

200 Etapas na nova ordem401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
GET /api/v1/crm/stages/{stage}

Consulta uma etapa

Exige `crm:read` e Etapas de Funis (ver). Funil fora do alcance do usuário responde 404.

Exemplo de requisição

cURL
curl "$MICORE_BASE_URL/crm/stages/{stage}" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "funnel_id": 1,
        "name": "string",
        "description": null,
        "position": 1,
        "color": null,
        "info_date": true,
        "is_won": true,
        "is_lost": true,
        "active": true,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Etapa401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
PATCH /api/v1/crm/stages/{stage}

Edita uma etapa

Edição parcial: o campo omitido fica como está. Ganha e perdida ao mesmo tempo é recusado (422). Exige `crm:settings` e Etapas de Funis (editar). Funil fora do alcance do usuário responde 404.

Corpo da requisição

CampoTipoObrigatórioDescrição
namestringNãoAté 255 caracteres.
colorstringNãoAté 20 caracteres.
descriptionstring | nullNão—
info_datebooleanNão—
is_wonbooleanNão—
is_lostbooleanNão—

Exemplo de requisição

cURL
curl -X PATCH "$MICORE_BASE_URL/crm/stages/{stage}" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"name":"string","color":"string","description":null,"info_date":true,"is_won":true,"is_lost":true}'

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "funnel_id": 1,
        "name": "string",
        "description": null,
        "position": 1,
        "color": null,
        "info_date": true,
        "is_won": true,
        "is_lost": true,
        "active": true,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Etapa atualizada401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/stages/{stage}/activate

Ativa uma etapa

Ativa a etapa. Exige `crm:settings` e Etapas de Funis (desabilitar). Funil fora do alcance do usuário responde 404.

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/stages/{stage}/activate" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "funnel_id": 1,
        "name": "string",
        "description": null,
        "position": 1,
        "color": null,
        "info_date": true,
        "is_won": true,
        "is_lost": true,
        "active": true,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Etapa com a nova situação401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/stages/{stage}/deactivate

Desativa uma etapa

Desativa a etapa. Exige `crm:settings` e Etapas de Funis (desabilitar). Funil fora do alcance do usuário responde 404.

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/stages/{stage}/deactivate" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "funnel_id": 1,
        "name": "string",
        "description": null,
        "position": 1,
        "color": null,
        "info_date": true,
        "is_won": true,
        "is_lost": true,
        "active": true,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Etapa com a nova situação401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
GET /api/v1/crm/milestones

Lista marcos de progresso

Exige `crm:read` e Marcos de Progresso (ver).

Parâmetros

NomeTipoObrigatórioDescrição
activequerybooleanNãoFiltra pela situação.
searchquerystringNãoBusca pelo nome.
per_pagequeryintegerNão—

Exemplo de requisição

cURL
curl "$MICORE_BASE_URL/crm/milestones" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": [
        {
            "id": 1,
            "name": "string",
            "color": null,
            "icon": null,
            "active": true,
            "created_at": "2026-10-20T10:00:00-03:00",
            "updated_at": "2026-10-20T10:00:00-03:00"
        }
    ],
    "links": [],
    "meta": []
}

Respostas possíveis

200 Página de registros401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/milestones

Cria um marco de progresso

Exige `crm:settings` e Marcos de Progresso (criar).

Parâmetros

NomeTipoObrigatórioDescrição
Idempotency-KeyheaderstringSimIdentificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar.

Corpo da requisição

CampoTipoObrigatórioDescrição
namestringSimAté 255 caracteres.
colorstring | nullNão—
iconstring | nullNãoÍcone Font Awesome.

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/milestones" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Idempotency-Key: board-request-0001" \
  -H "Content-Type: application/json" \
  -d '{"name":"string","color":null,"icon":null}'

Exemplo de resposta JSON

Resposta · 201
{
    "data": {
        "id": 1,
        "name": "string",
        "color": null,
        "icon": null,
        "active": true,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

201 Registro criado (ou reapresentado pela mesma chave)401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado409 Chave em processamento ou reutilizada com outro conteúdo422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
GET /api/v1/crm/milestones/{id}

Consulta marco de progresso

Exige `crm:read` e Marcos de Progresso (ver).

Exemplo de requisição

cURL
curl "$MICORE_BASE_URL/crm/milestones/{id}" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "color": null,
        "icon": null,
        "active": true,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Registro401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
PATCH /api/v1/crm/milestones/{id}

Edita marco de progresso

Edição parcial: o campo omitido fica como está. Exige `crm:settings` e Marcos de Progresso (editar).

Corpo da requisição

CampoTipoObrigatórioDescrição
namestringNãoAté 255 caracteres.
colorstring | nullNão—
iconstring | nullNão—

Exemplo de requisição

cURL
curl -X PATCH "$MICORE_BASE_URL/crm/milestones/{id}" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"name":"string","color":null,"icon":null}'

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "color": null,
        "icon": null,
        "active": true,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Registro atualizado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/milestones/{id}/activate

Ativa marco de progresso

Ativa o registro (desativar registra quem arquivou). Exige `crm:settings` e Marcos de Progresso (desabilitar).

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/milestones/{id}/activate" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "color": null,
        "icon": null,
        "active": true,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Registro com a nova situação401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/milestones/{id}/deactivate

Desativa marco de progresso

Desativa o registro (desativar registra quem arquivou). Exige `crm:settings` e Marcos de Progresso (desabilitar).

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/milestones/{id}/deactivate" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "color": null,
        "icon": null,
        "active": true,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Registro com a nova situação401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
GET /api/v1/crm/campaigns

Lista campanhas do CRM

Exige `crm:read` e Campanhas do CRM (ver).

Parâmetros

NomeTipoObrigatórioDescrição
activequerybooleanNãoFiltra pela situação.
searchquerystringNãoBusca pelo nome.
per_pagequeryintegerNão—

Exemplo de requisição

cURL
curl "$MICORE_BASE_URL/crm/campaigns" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": [
        {
            "id": 1,
            "name": "string",
            "description": null,
            "start": "2026-10-20",
            "end": "2026-10-20",
            "active": true,
            "created_at": "2026-10-20T10:00:00-03:00",
            "updated_at": "2026-10-20T10:00:00-03:00"
        }
    ],
    "links": [],
    "meta": []
}

Respostas possíveis

200 Página de registros401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/campaigns

Cria uma campanha

Exige `crm:settings` e Campanhas do CRM (criar).

Parâmetros

NomeTipoObrigatórioDescrição
Idempotency-KeyheaderstringSimIdentificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar.

Corpo da requisição

CampoTipoObrigatórioDescrição
namestringSimAté 255 caracteres.
descriptionstring | nullNão—
startstring | null (date)Não—
endstring | null (date)NãoIgual ou depois do início.

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/campaigns" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Idempotency-Key: board-request-0001" \
  -H "Content-Type: application/json" \
  -d '{"name":"string","description":null,"start":"2026-10-20","end":"2026-10-20"}'

Exemplo de resposta JSON

Resposta · 201
{
    "data": {
        "id": 1,
        "name": "string",
        "description": null,
        "start": "2026-10-20",
        "end": "2026-10-20",
        "active": true,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

201 Registro criado (ou reapresentado pela mesma chave)401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado409 Chave em processamento ou reutilizada com outro conteúdo422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
GET /api/v1/crm/campaigns/{id}

Consulta campanha

Exige `crm:read` e Campanhas do CRM (ver).

Exemplo de requisição

cURL
curl "$MICORE_BASE_URL/crm/campaigns/{id}" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "description": null,
        "start": "2026-10-20",
        "end": "2026-10-20",
        "active": true,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Registro401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
PATCH /api/v1/crm/campaigns/{id}

Edita campanha

Edição parcial: o campo omitido fica como está. Exige `crm:settings` e Campanhas do CRM (editar).

Corpo da requisição

CampoTipoObrigatórioDescrição
namestringNãoAté 255 caracteres.
descriptionstring | nullNão—
startstring | null (date)Não—
endstring | null (date)Não—

Exemplo de requisição

cURL
curl -X PATCH "$MICORE_BASE_URL/crm/campaigns/{id}" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"name":"string","description":null,"start":"2026-10-20","end":"2026-10-20"}'

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "description": null,
        "start": "2026-10-20",
        "end": "2026-10-20",
        "active": true,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Registro atualizado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/campaigns/{id}/activate

Ativa campanha

Ativa o registro (desativar registra quem arquivou). Exige `crm:settings` e Campanhas do CRM (desabilitar).

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/campaigns/{id}/activate" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "description": null,
        "start": "2026-10-20",
        "end": "2026-10-20",
        "active": true,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Registro com a nova situação401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/campaigns/{id}/deactivate

Desativa campanha

Desativa o registro (desativar registra quem arquivou). Exige `crm:settings` e Campanhas do CRM (desabilitar).

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/campaigns/{id}/deactivate" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "description": null,
        "start": "2026-10-20",
        "end": "2026-10-20",
        "active": true,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Registro com a nova situação401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
GET /api/v1/crm/origins

Lista origens dos leads

Exige `crm:read` e Origens (ver).

Parâmetros

NomeTipoObrigatórioDescrição
activequerybooleanNãoFiltra pela situação.
searchquerystringNãoBusca pelo nome.
per_pagequeryintegerNão—

Exemplo de requisição

cURL
curl "$MICORE_BASE_URL/crm/origins" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": [
        {
            "id": 1,
            "name": "string",
            "manual": true,
            "active": true,
            "created_at": "2026-10-20T10:00:00-03:00",
            "updated_at": "2026-10-20T10:00:00-03:00"
        }
    ],
    "links": [],
    "meta": []
}

Respostas possíveis

200 Página de registros401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/origins

Cria uma origem

Exige `crm:settings` e Origens (criar).

Parâmetros

NomeTipoObrigatórioDescrição
Idempotency-KeyheaderstringSimIdentificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar.

Corpo da requisição

CampoTipoObrigatórioDescrição
namestringSimAté 255 caracteres.
manualbooleanSim—

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/origins" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Idempotency-Key: board-request-0001" \
  -H "Content-Type: application/json" \
  -d '{"name":"string","manual":true}'

Exemplo de resposta JSON

Resposta · 201
{
    "data": {
        "id": 1,
        "name": "string",
        "manual": true,
        "active": true,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

201 Registro criado (ou reapresentado pela mesma chave)401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado409 Chave em processamento ou reutilizada com outro conteúdo422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
GET /api/v1/crm/origins/{id}

Consulta origem

Exige `crm:read` e Origens (ver).

Exemplo de requisição

cURL
curl "$MICORE_BASE_URL/crm/origins/{id}" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "manual": true,
        "active": true,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Registro401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
PATCH /api/v1/crm/origins/{id}

Edita origem

Edição parcial: o campo omitido fica como está. Exige `crm:settings` e Origens (editar).

Corpo da requisição

CampoTipoObrigatórioDescrição
namestringNãoAté 255 caracteres.
manualbooleanNão—

Exemplo de requisição

cURL
curl -X PATCH "$MICORE_BASE_URL/crm/origins/{id}" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"name":"string","manual":true}'

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "manual": true,
        "active": true,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Registro atualizado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/origins/{id}/activate

Ativa origem

Ativa o registro (desativar registra quem arquivou). Exige `crm:settings` e Origens (desabilitar).

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/origins/{id}/activate" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "manual": true,
        "active": true,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Registro com a nova situação401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/origins/{id}/deactivate

Desativa origem

Desativa o registro (desativar registra quem arquivou). Exige `crm:settings` e Origens (desabilitar).

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/origins/{id}/deactivate" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "manual": true,
        "active": true,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Registro com a nova situação401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
GET /api/v1/crm/custom-fields

Lista campos personalizados

Exige `crm:read` e Campos Personalizados (ver).

Parâmetros

NomeTipoObrigatórioDescrição
activequerybooleanNãoFiltra pela situação.
searchquerystringNãoBusca pelo nome.
per_pagequeryintegerNão—

Exemplo de requisição

cURL
curl "$MICORE_BASE_URL/crm/custom-fields" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": [
        {
            "id": 1,
            "name": "string",
            "type": "string",
            "placeholder": null,
            "active": true,
            "created_at": "2026-10-20T10:00:00-03:00",
            "updated_at": "2026-10-20T10:00:00-03:00"
        }
    ],
    "links": [],
    "meta": []
}

Respostas possíveis

200 Página de registros401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/custom-fields

Cria um campo personalizado

Exige `crm:settings` e Campos Personalizados (criar). Tipos aceitos: `text`, `number` e `textarea` (área de texto).

Parâmetros

NomeTipoObrigatórioDescrição
Idempotency-KeyheaderstringSimIdentificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar.

Corpo da requisição

CampoTipoObrigatórioDescrição
namestringSimAté 100 caracteres.
typestringSimValores: text, number, textarea.
placeholderstring | nullNãoAté 80 caracteres.

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/custom-fields" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Idempotency-Key: board-request-0001" \
  -H "Content-Type: application/json" \
  -d '{"name":"string","type":"text","placeholder":null}'

Exemplo de resposta JSON

Resposta · 201
{
    "data": {
        "id": 1,
        "name": "string",
        "type": "string",
        "placeholder": null,
        "active": true,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

201 Registro criado (ou reapresentado pela mesma chave)401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado409 Chave em processamento ou reutilizada com outro conteúdo422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
GET /api/v1/crm/custom-fields/{id}

Consulta campo personalizado

Exige `crm:read` e Campos Personalizados (ver).

Exemplo de requisição

cURL
curl "$MICORE_BASE_URL/crm/custom-fields/{id}" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "type": "string",
        "placeholder": null,
        "active": true,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Registro401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
PATCH /api/v1/crm/custom-fields/{id}

Edita campo personalizado

Edição parcial: o campo omitido fica como está. Exige `crm:settings` e Campos Personalizados (editar).

Corpo da requisição

CampoTipoObrigatórioDescrição
namestringNãoAté 100 caracteres.
typestringNãoValores: text, number, textarea.
placeholderstring | nullNãoAté 80 caracteres.

Exemplo de requisição

cURL
curl -X PATCH "$MICORE_BASE_URL/crm/custom-fields/{id}" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"name":"string","type":"text","placeholder":null}'

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "type": "string",
        "placeholder": null,
        "active": true,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Registro atualizado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/custom-fields/{id}/activate

Ativa campo personalizado

Ativa o registro (desativar registra quem arquivou). Exige `crm:settings` e Campos Personalizados (desabilitar).

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/custom-fields/{id}/activate" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "type": "string",
        "placeholder": null,
        "active": true,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Registro com a nova situação401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/custom-fields/{id}/deactivate

Desativa campo personalizado

Desativa o registro (desativar registra quem arquivou). Exige `crm:settings` e Campos Personalizados (desabilitar).

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/custom-fields/{id}/deactivate" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "type": "string",
        "placeholder": null,
        "active": true,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Registro com a nova situação401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
GET /api/v1/crm/tags

Lista tags dos negócios

Exige `crm:read` e Tags (ver). Só as tags dos funis do alcance do usuário; tag de funil de fora responde 404.

Parâmetros

NomeTipoObrigatórioDescrição
activequerybooleanNãoFiltra pela situação.
searchquerystringNãoBusca pelo nome.
per_pagequeryintegerNão—
funnel_idqueryintegerNãoTags do funil informado.

Exemplo de requisição

cURL
curl "$MICORE_BASE_URL/crm/tags" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": [
        {
            "id": 1,
            "funnel_id": 1,
            "name": "string",
            "slug": "string",
            "color": null,
            "description": null,
            "active": true,
            "created_at": "2026-10-20T10:00:00-03:00",
            "updated_at": "2026-10-20T10:00:00-03:00"
        }
    ],
    "links": [],
    "meta": []
}

Respostas possíveis

200 Página de registros401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/tags

Cria uma tag

Exige `crm:settings` e Tags (criar). A tag ganha um identificador (`slug`) único pelo nome.

Parâmetros

NomeTipoObrigatórioDescrição
Idempotency-KeyheaderstringSimIdentificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar.

Corpo da requisição

CampoTipoObrigatórioDescrição
funnel_idintegerSim—
namestringSimAté 255 caracteres.
colorstring | nullNão—
descriptionstring | nullNão—

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/tags" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Idempotency-Key: board-request-0001" \
  -H "Content-Type: application/json" \
  -d '{"funnel_id":1,"name":"string","color":null,"description":null}'

Exemplo de resposta JSON

Resposta · 201
{
    "data": {
        "id": 1,
        "funnel_id": 1,
        "name": "string",
        "slug": "string",
        "color": null,
        "description": null,
        "active": true,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

201 Registro criado (ou reapresentado pela mesma chave)401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado409 Chave em processamento ou reutilizada com outro conteúdo422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
GET /api/v1/crm/tags/{id}

Consulta tag

Exige `crm:read` e Tags (ver). Só as tags dos funis do alcance do usuário; tag de funil de fora responde 404.

Exemplo de requisição

cURL
curl "$MICORE_BASE_URL/crm/tags/{id}" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "funnel_id": 1,
        "name": "string",
        "slug": "string",
        "color": null,
        "description": null,
        "active": true,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Registro401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
PATCH /api/v1/crm/tags/{id}

Edita tag

Edição parcial: o campo omitido fica como está. O funil da tag não muda. Exige `crm:settings` e Tags (editar).

Corpo da requisição

CampoTipoObrigatórioDescrição
namestringNãoAté 255 caracteres.
colorstring | nullNão—
descriptionstring | nullNão—

Exemplo de requisição

cURL
curl -X PATCH "$MICORE_BASE_URL/crm/tags/{id}" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"name":"string","color":null,"description":null}'

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "funnel_id": 1,
        "name": "string",
        "slug": "string",
        "color": null,
        "description": null,
        "active": true,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Registro atualizado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/tags/{id}/activate

Ativa tag

Ativa o registro (desativar registra quem arquivou). Exige `crm:settings` e Tags (desabilitar).

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/tags/{id}/activate" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "funnel_id": 1,
        "name": "string",
        "slug": "string",
        "color": null,
        "description": null,
        "active": true,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Registro com a nova situação401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/crm/tags/{id}/deactivate

Desativa tag

Desativa o registro (desativar registra quem arquivou). Exige `crm:settings` e Tags (desabilitar).

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/crm/tags/{id}/deactivate" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "funnel_id": 1,
        "name": "string",
        "slug": "string",
        "color": null,
        "description": null,
        "active": true,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00"
    }
}

Respostas possíveis

200 Registro com a nova situação401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
GET /api/v1/crm/funnels/{funnel}/goals

Consulta as metas do ano

Meta de vendas de cada mês do ano no funil (mês sem meta vem nulo). Exige `crm:read` e Metas de CRM (ver). Funil fora do alcance do usuário responde 404.

Parâmetros

NomeTipoObrigatórioDescrição
yearqueryintegerNãoAno; sem ele o atual.

Exemplo de requisição

cURL
curl "$MICORE_BASE_URL/crm/funnels/{funnel}/goals" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "funnel_id": 1,
        "year": 1,
        "months": [
            {
                "month": 1,
                "value": 1
            }
        ]
    }
}

Respostas possíveis

200 Metas do ano401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
PUT /api/v1/crm/funnels/{funnel}/goals/{year}/{month}

Grava a meta de um mês

Substitui a meta de vendas do mês. Exige `crm:settings` e Metas de CRM (editar). Funil fora do alcance do usuário responde 404.

Corpo da requisição

CampoTipoObrigatórioDescrição
valuenumberSimMeta de vendas do mês em reais.

Exemplo de requisição

cURL
curl -X PUT "$MICORE_BASE_URL/crm/funnels/{funnel}/goals/{year}/{month}" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"value":1}'

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "funnel_id": 1,
        "year": 1,
        "months": [
            {
                "month": 1,
                "value": 1
            }
        ]
    }
}

Respostas possíveis

200 Metas do ano atualizadas401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
GET /api/v1/crm/reports/funnel

Relatório do funil

Os mesmos números da aba Funil da tela de relatórios: leads, vendas e perdas por dia, conversão e valor ganho, leads por origem, por atendente e por etapa. Sem funil, usa o primeiro ativo pelo nome. Exige `crm:read` e Relatórios de CRM (ver funil). Só funis do alcance do usuário; sem `funnel_id`, o primeiro funil ativo do alcance; funil de fora responde 404.

Parâmetros

NomeTipoObrigatórioDescrição
periodquerystringNãoHoje e últimos 7, 30 ou 90 dias.
funnel_idqueryintegerNão—

Exemplo de requisição

cURL
curl "$MICORE_BASE_URL/crm/reports/funnel" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "period": "string",
        "date_start": "2026-10-20",
        "date_end": "2026-10-20",
        "funnel_id": 1,
        "leads": {
            "categories": [
                "string"
            ],
            "series": [
                {
                    "name": "string",
                    "data": [
                        1
                    ]
                }
            ]
        },
        "sales_and_conversion": {
            "categories": [
                "string"
            ],
            "series": [
                {
                    "name": "string",
                    "data": [
                        1
                    ]
                }
            ],
            "leads": 1,
            "vendas": 1,
            "valor_total_vendas": 1,
            "taxa_conversao": 1
        },
        "leads_by_origin": {
            "labels": [
                "string"
            ],
            "data": [
                1
            ]
        },
        "leads_by_attendant": {
            "categories": [
                "string"
            ],
            "leads": [
                1
            ],
            "vendas": [
                1
            ]
        },
        "customer_journey": {
            "labels": [
                "string"
            ],
            "data": [
                1
            ],
            "colors": [
                "string"
            ]
        }
    }
}

Respostas possíveis

200 Relatório do funil401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
GET /api/v1/crm/reports/goals

Relatório de metas

Metas e vendas ganhas por mês do ano, total e taxa de execução, como a aba Metas da tela. Exige `crm:read` e Relatórios de CRM (ver metas). Só funis do alcance do usuário; sem `funnel_id`, o primeiro funil ativo do alcance; funil de fora responde 404.

Parâmetros

NomeTipoObrigatórioDescrição
funnel_idqueryintegerNão—
yearqueryintegerNãoAno; sem ele o atual.

Exemplo de requisição

cURL
curl "$MICORE_BASE_URL/crm/reports/goals" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "funnel_id": 1,
        "year": 1,
        "categories": [
            "string"
        ],
        "series": [
            {
                "name": "string",
                "data": [
                    1
                ]
            }
        ],
        "total_meta": 1,
        "total_vendas": 1,
        "taxa_execucao": 1
    }
}

Respostas possíveis

200 Relatório de metas401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant