200 Identidade da API401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
200 Identidade atual401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
GET/api/v1/capabilities
Informa as capacidades disponíveis para a credencial
200 Capacidades atuais401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
200 Plataformas ativas401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
200 Página de publicações401 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/publications
Cria um rascunho básico
Exige `publications:draft` e a permissão `create` do usuário responsável. Nunca publica, agenda ou chama um provider externo.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
title
string
Sim
Até 255 caracteres.
briefing
string | null
Não
—
client_id
integer | null
Não
—
campaign_id
integer | null
Não
—
planned_at
string | null (date-time)
Não
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/publications" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Rascunho criado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente409 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
200 Publicação encontrada401 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/publications/{publication}
Atualiza um rascunho
Exige `publications:draft` e a permissão `edit` do usuário responsável. Só rascunho é editável; nunca publica nem agenda.
200 Ordem de serviço 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
200 Página de posts401 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/posts
Cria um post em rascunho
Exige `posts:write` e a permissão `create` em Posts. O post nasce como rascunho; publicar é uma ação separada.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
title
string
Sim
Até 255 caracteres.
author_id
integer
Sim
Id de um cliente marcado como autor do blog, como no painel (liste em GET /blog-authors).
slug
string | null
Não
Gerado a partir do título quando ausente. Até 255 caracteres.
content
string | null
Não
HTML pronto. Ignorado quando content_blocks é enviado.
content_blocks
array<object>
Não
Blocos do editor; renderizados em HTML no servidor.
meta_title
string | null
Não
Até 320 caracteres.
meta_description
string | null
Não
Até 320 caracteres.
references
string | null
Não
—
category_id
integer | null
Não
—
product_category_id
integer | null
Não
—
featured_image_id
integer | null
Não
Id de um item de imagem da biblioteca de mídia.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/posts" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Post criado em rascunho401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente409 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
200 Post encontrado401 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/posts/{post}
Atualiza um post em rascunho
Exige `posts:write` e a permissão `edit` em Posts. Não altera o estado de publicação.
200 Post 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/posts/{post}/publish
Publica um post
Exige `posts:publish` e a permissão `edit` em Posts. Deixa o post visível no site.
200 Post publicado401 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/posts/{post}/unpublish
Despublica um post
Exige `posts:publish` e a permissão `edit` em Posts. Tira o post do ar sem apagar.
200 Post despublicado401 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/blog-authors
Lista os autores do blog
Exige o escopo `posts:read`. Autores são os clientes marcados como autor do blog, os mesmos do seletor do painel. Use para descobrir o `author_id` ao criar ou editar um post; a resposta traz só id e nome.
200 Página de autores401 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/blog-categories
Lista categorias do blog
Exige o escopo `blog-categories:read`. Use para descobrir o `category_id` ao criar ou editar um post.
200 Página de categorias401 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/blog-categories
Cria uma categoria do blog
Exige `blog-categories:write` e a permissão de criar em Categorias. Criação idempotente (envie um Idempotency-Key).
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
name
string
Sim
Até 255 caracteres.
status
boolean | null
Não
—
parent_id
integer | null
Não
Categoria pai (precisa existir).
url
string | null
Não
Endereço da categoria. Vazio ou ausente: gerado a partir do nome, com sufixo -2, -3 quando já existir. Até 255 caracteres.
description
string | null
Não
—
meta_title
string | null
Não
Até 255 caracteres.
meta_description
string | null
Não
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/blog-categories" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Categoria criada401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente409 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
PATCH/api/v1/blog-categories/{blogCategory}
Atualiza uma categoria do blog
Exige `blog-categories:write` e a permissão de editar em Categorias.
200 Categoria 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
DELETE/api/v1/blog-categories/{blogCategory}
Desativa uma categoria do blog
Exige `blog-categories:write` e a permissão de desabilitar em Categorias. Desativa sem apagar; reativar é pelo painel. Idempotente.
200 Categoria desativada401 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
Boards
GET/api/v1/boards
Lista quadros com suas colunas
Exige o escopo `boards:read`. Use para descobrir o quadro e as colunas antes de criar uma tarefa.
200 Página de quadros401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST/api/v1/boards
Cria um quadro
Exige `boards:write` e a permissão de criar em Gestão de Espaço. O quadro nasce com as 6 colunas padrão. Descubra o `owner_team_id` e os membros em `GET /teams`.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
name
string
Sim
Único entre quadros ativos. Até 255 caracteres.
manager_id
integer
Sim
Gestor do quadro; precisa pertencer ao time responsável.
owner_team_id
integer
Sim
Time responsável (ativo). Descubra em GET /teams.
member_user_ids
array<integer>
Não
Participantes; precisam pertencer ao time responsável.
description
string | null
Não
—
calendar
string | null
Não
—
accept_class
boolean | null
Não
—
lock_due_date
boolean
Não
Só o gestor do quadro (ou um administrador de Quadros) muda o prazo final já definido das tarefas. Definir o primeiro prazo continua livre. Padrão: false.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/boards" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Quadro criado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente409 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
200 Quadro encontrado401 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/boards/{board}
Atualiza um quadro
Exige `boards:write` e gerenciar o quadro. `manager_id` e `owner_team_id` são sempre exigidos. Sem `member_user_ids`, os participantes atuais continuam; com a lista, ela substitui os participantes (lista vazia deixa só o gestor). `lock_due_date` omitido mantém a trava do prazo como está.
Parâmetros
Nome
Local
Obrigatório
Descrição
board
path
Sim
—
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
name
string
Sim
Até 255 caracteres.
manager_id
integer
Sim
—
owner_team_id
integer
Sim
—
member_user_ids
array<integer>
Não
—
description
string | null
Não
—
calendar
string | null
Não
—
accept_class
boolean | null
Não
—
lock_due_date
boolean
Não
Liga ou desliga a trava do prazo; omitido fica como está.
200 Quadro 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
DELETE/api/v1/boards/{board}
Arquiva um quadro
Exige `boards:write` e gerenciar o quadro. Desativa (arquiva) o quadro sem apagar; reativar é feito pelo painel.
200 Quadro arquivado401 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/boards/{board}/members
Lista os participantes de um quadro
Exige o escopo `boards:read`. É o conjunto elegível para atribuir numa tarefa do quadro (participantes mais o gestor).
200 Participantes do quadro401 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/boards/{board}/columns
Cria uma coluna no quadro
Exige `boards:write` e gerenciar o quadro (gestor ou admin de Quadros). A coluna entra no fim da fila.
Parâmetros
Nome
Local
Obrigatório
Descrição
board
path
Sim
—
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
name
string
Sim
Até 255 caracteres.
description
string | null
Não
O que significa estar nesta etapa e quando mover para a próxima. Aparece no tooltip da coluna e no contexto da Mia; vazio ou null tira. Até 300 caracteres.
color
string
Sim
Hexadecimal #RRGGBB.
move_to
string | null
Não
Regra de responsável ao mover a tarefa para esta coluna. Padrão: "Não mudar usuário". Valores: Não mudar usuário, Selecionar novo usuário, Usuário fixo, Usuário atual.
move_to_id
integer | null
Não
Usuário fixo (obrigatório quando move_to = "Usuário fixo"); precisa participar do quadro.
show_in_flow
boolean | null
Não
Padrão true.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/boards/{board}/columns" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Coluna criada401 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
PATCH/api/v1/columns/{column}
Atualiza uma coluna
Exige `boards:write` e gerenciar o quadro. Desativar (`status` false) arquiva as tarefas da coluna; o quadro precisa manter ao menos uma etapa ativa.
Parâmetros
Nome
Local
Obrigatório
Descrição
column
path
Sim
—
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
name
string
Não
Até 255 caracteres.
description
string | null
Não
O que significa estar nesta etapa e quando mover para a próxima. Aparece no tooltip da coluna e no contexto da Mia; vazio ou null tira. Até 300 caracteres.
color
string
Não
Hexadecimal #RRGGBB.
status
boolean
Não
false arquiva as tarefas da coluna; o quadro precisa manter ao menos uma etapa ativa.
move_to
string
Não
Valores: Não mudar usuário, Selecionar novo usuário, Usuário fixo, Usuário atual.
200 Coluna 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
Tasks
GET/api/v1/tasks
Lista tarefas de quadro
Exige o escopo `tasks:read`. Para o Minhas Tarefas, use `responsible=me`: traz as tarefas em que o usuário da credencial está entre os responsáveis, de qualquer quadro; com `progress=todo,doing` ficam só as abertas. Para mudar a etapa, use `PATCH /tasks/{task}` com `progress`.
Parâmetros
Nome
Local
Obrigatório
Descrição
board_id
query
Não
—
progress
query
Não
Uma etapa ou várias separadas por vírgula: `unassigned`, `todo`, `doing`, `paused`, `review`, `done`.
responsible
query
Não
`me` (o usuário da credencial) ou o id de uma pessoa: tarefas em que ela está entre os responsáveis.
200 Página de tarefas401 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/tasks
Cria uma tarefa de quadro
Exige `tasks:write`. A tarefa exige um quadro; a coluna é opcional. Sem responsável, nasce em "unassigned".
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
board_id
integer
Sim
Quadro existente onde a tarefa será criada.
title
string | null
Não
Obrigatório sem `task_template_id`; com modelo, vazio leva o nome do modelo. Até 255 caracteres.
task_template_id
integer | null
Não
Modelo de tarefa ativo (veja /task-templates). Como no painel, a tarefa fica ligada ao modelo (conta nas metas por modelo), o checklist vira subtarefas e, no que não vier, valem o nome, o prazo (hoje + dias do modelo) e a descrição (instrução, descrição e link) do modelo. Modelo desativado responde 422.
stage_id
integer | null
Não
Coluna do quadro; resolvida automaticamente quando ausente.
description
string | null
Não
Vira o comentário inicial da tarefa. Aceita HTML: p, br, h2–h4, strong, b, em, i, u, s, span, ul, ol, li, blockquote, pre, code, links (a href http/https/mailto/tel) e imagens (img src por http/https; envie o arquivo antes por POST /media e use o url devolvido). Scripts, eventos (onclick…), imagens em base64 e endereços javascript: são removidos ao gravar; texto sem tags continua texto.
responsible_user_ids
array<integer>
Não
Sem responsável, a tarefa nasce em "unassigned".
date_start
string | null (date)
Não
—
date_end
string | null (date)
Não
—
urgent
boolean | null
Não
—
tags
array<string>
Não
Tags da tarefa, texto livre como no painel (não precisa existir no cadastro de /tags). A lista enviada substitui as atuais; [] tira todas; nome repetido (sem diferenciar maiúsculas) entra uma vez. A troca fica no histórico da tarefa.
reference
string | null
Não
Até 255 caracteres.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/tasks" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Tarefa criada401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente409 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
200 Tarefa encontrada401 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/tasks/{task}
Atualiza progresso, coluna e datas de uma tarefa
Exige `tasks:write`. Responsáveis têm endpoint próprio. Para trocar de quadro, envie `board_id` (e, se quiser, `stage_id`); a troca fica no histórico da tarefa como no painel. Prazo travado: no quadro com `lock_due_date`, mudar um `date_end` já definido responde 403 `permission_denied` se o usuário da credencial não for o gestor do quadro nem administrador de Quadros; nesse caso peça o novo prazo em `POST /tasks/{task}/deadline-requests`. Envie `deadline_reason` para registrar o motivo da mudança no histórico.
Parâmetros
Nome
Local
Obrigatório
Descrição
task
path
Sim
—
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
board_id
integer
Não
Move a tarefa para outro quadro, como no painel, com o histórico de quadro e de coluna. Sem `stage_id`, a tarefa entra na primeira coluna ativa do quadro novo. As subtarefas vão junto.
progress
string
Não
Valores: unassigned, todo, doing, paused, review, done.
stage_id
integer
Não
Coluna ativa do quadro da tarefa (ou do `board_id` enviado); coluna de outro quadro responde 422 em `stage_id`.
date_start
string | null (date)
Não
—
date_end
string | null (date)
Não
Prazo final. No quadro com `lock_due_date`, mudar o prazo já definido exige que o usuário da credencial seja o gestor do quadro ou administrador de Quadros (senão 403 `permission_denied`); definir o primeiro prazo é livre.
deadline_reason
string | null
Não
Motivo da mudança do prazo final, gravado no histórico da tarefa (evento task.date_changed). Só tem efeito junto com `date_end`. Até 500 caracteres.
urgent
boolean
Não
—
tags
array<string>
Não
Tags da tarefa, texto livre como no painel (não precisa existir no cadastro de /tags). A lista enviada substitui as atuais; [] tira todas; nome repetido (sem diferenciar maiúsculas) entra uma vez. A troca fica no histórico da tarefa.
200 Tarefa atualizada401 Token ausente, inválido, expirado ou revogado403 Escopo ou permissão insuficiente, ou prazo travado no quadro para quem não é gestor nem administrador de Quadros404 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/tasks/{task}/deadline-requests
Lista os pedidos de novo prazo de uma tarefa
Exige `tasks:read`. Todos os pedidos da tarefa (pendentes e decididos), do mais recente ao mais antigo.
200 Página de pedidos de novo prazo401 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/tasks/{task}/deadline-requests
Pede um novo prazo para a tarefa
Exige `tasks:write`. Mesma regra do painel: só vale no quadro com `lock_due_date` e tarefa com prazo final definido, para quem não é gestor do quadro nem administrador de Quadros (os dois mudam o prazo direto pelo PATCH). A tarefa segue com o prazo atual até a decisão e o gestor é avisado no sino. A tarefa tem no máximo um pedido pendente: repetir o seu troca a data e o motivo; pendente de outra pessoa responde 409 `invalid_transition`, assim como quadro sem trava. Data igual à atual ou motivo vazio respondem 422.
Parâmetros
Nome
Local
Obrigatório
Descrição
task
path
Sim
—
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
date
string (date)
Sim
Novo prazo final proposto (ano-mês-dia), diferente do atual.
reason
string
Sim
Motivo do pedido, que o gestor lê para decidir. Até 1000 caracteres.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/tasks/{task}/deadline-requests" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Pedido aberto, pendente401 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
Exige `tasks:write` e que o usuário da credencial seja o gestor do quadro ou administrador de Quadros (senão 403 `permission_denied`). O prazo final da tarefa passa a ser a data pedida, com o motivo do pedido no histórico; o início só muda se passar da nova data. Quem pediu é avisado. Pedido já decidido ou cancelado responde 409 `invalid_transition`.
Parâmetros
Nome
Local
Obrigatório
Descrição
deadlineRequest
path
Sim
—
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
note
string | null
Não
Observação de quem decide, enviada a quem pediu. Até 1000 caracteres.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/deadline-requests/{deadlineRequest}/approve" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Pedido aprovado401 Token ausente, inválido, expirado ou revogado403 Escopo ou permissão insuficiente, ou usuário que não decide pelo quadro404 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
Exige `tasks:write` e que o usuário da credencial seja o gestor do quadro ou administrador de Quadros (senão 403 `permission_denied`). A tarefa segue com o prazo atual e quem pediu é avisado, com a `note` se houver. Pedido já decidido ou cancelado responde 409 `invalid_transition`.
Parâmetros
Nome
Local
Obrigatório
Descrição
deadlineRequest
path
Sim
—
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
note
string | null
Não
Observação de quem decide, enviada a quem pediu. Até 1000 caracteres.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/deadline-requests/{deadlineRequest}/refuse" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Pedido recusado401 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
Exige `tasks:write`. Só quem pediu cancela (outro usuário recebe 403 `permission_denied`), e só o pedido pendente (senão 409 `invalid_transition`). A tarefa segue com o prazo atual.
200 Pedido cancelado401 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`)429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST/api/v1/tasks/{task}/assign
Define os responsáveis de uma tarefa
Exige `tasks:assign` e a permissão de atribuir tarefas. Lista vazia deixa a tarefa para distribuição.
Parâmetros
Nome
Local
Obrigatório
Descrição
task
path
Sim
—
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
responsible_user_ids
array<integer>
Sim
Lista completa de responsáveis; vazia deixa a tarefa para distribuição.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/tasks/{task}/assign" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Responsáveis atualizados401 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
200 Página de comentários401 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/tasks/{task}/comments
Comenta numa tarefa
Exige `tasks:write`. Registra o comentário e o evento da tarefa, como no painel. O texto aceita HTML com imagens (veja `CreateTaskComment`). `mention_user_ids` e `mention_everyone` mencionam pessoas e as avisam, como o @ do painel (lista em `GET /tasks/{task}/mentionable-users`).
Parâmetros
Nome
Local
Obrigatório
Descrição
task
path
Sim
—
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
text
string
Sim
Aceita HTML: p, br, h2–h4, strong, b, em, i, u, s, span, ul, ol, li, blockquote, pre, code, links (a href http/https/mailto/tel) e imagens (img src por http/https; envie o arquivo antes por POST /media e use o url devolvido). Scripts, eventos (onclick…), imagens em base64 e endereços javascript: são removidos ao gravar; texto sem tags continua texto. Até 5000 caracteres.
mention_user_ids
array<integer>
Não
Pessoas mencionadas, avisadas no sino e no app. Só valem as de GET /tasks/{task}/mentionable-users; as outras são ignoradas. Para o nome aparecer destacado no texto, use <span class="mention" data-user-id="12">@Bruno</span>.
mention_everyone
boolean
Não
Menciona e avisa todos os mencionáveis da tarefa. Padrão: false.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/tasks/{task}/comments" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
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ú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
PATCH/api/v1/tasks/{task}/comments/{comment}
Edita um comentário da tarefa
Exige `tasks:write`. Mesma regra do painel: quem pode ver a tarefa edita o comentário, registra a edição no histórico e avisa quem foi mencionado agora (quem já estava mencionado não recebe de novo). Campo omitido fica como está; menções só se acrescentam. Comentário de outra tarefa responde 404; arquivado responde 409.
Parâmetros
Nome
Local
Obrigatório
Descrição
task
path
Sim
—
comment
path
Sim
—
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
text
string
Não
Mesmas regras de HTML de CreateTaskComment. Omitido, o texto fica como está. Até 5000 caracteres.
mention_user_ids
array<integer>
Não
Acrescenta menções; quem já estava mencionado continua e não é avisado de novo.
200 Comentário editado401 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
Exige `tasks:write`. Mesma regra do painel: o comentário sai da tarefa e da listagem e o arquivamento fica no histórico. Arquivar de novo devolve o mesmo comentário, sem outro registro. Comentário de outra tarefa responde 404.
200 Comentário arquivado401 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/tasks/{task}/mentionable-users
Lista quem pode ser mencionado nos comentários
Exige `tasks:read`. Mesma lista do painel: quem criou, os responsáveis, quem já comentou ou agiu na tarefa, as pessoas da solicitação de origem e a equipe e o gestor do quadro. Ids fora dessa lista enviados em `mention_user_ids` são ignorados.
200 Pessoas mencionáveis, por nome401 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
Tags
GET/api/v1/tags
Lista o cadastro de tags
Exige `tags:read` e ver Tags. Cadastro compartilhado pelas tarefas dos quadros e pelos vídeos do Streaming; é a lista de sugestões. Ordem pelo nome.
200 Página de tags401 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/tags
Cria uma tag no cadastro
Exige `tags:write` e criar em Tags. Nome repetido (sem diferenciar maiúsculas) responde 422 em `name`.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
name
string
Sim
Até 255 caracteres.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/tags" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Tag criada (ou reapresentada pela mesma chave idempotente)401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente409 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
200 Tag encontrada401 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/tags/{tag}
Renomeia uma tag
Exige `tags:write` e editar em Tags. O nome novo não pode repetir outra tag. Tarefas que já usam o nome antigo continuam com ele (a tag da tarefa é texto).
200 Tag renomeada401 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
200 Tag ativa401 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/tags/{tag}/deactivate
Desativa uma tag
Exige `tags:write` e desabilitar em Tags. Sai das sugestões; tarefas e vídeos que já usam o nome continuam com ele.
200 Tag desativada401 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
200 Página de modelos401 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/task-templates
Cria um modelo de tarefa
Exige `task-templates:write` e criar em Gestão de Espaço. Mesma regra do painel: nasce ativo, itens vazios do checklist são descartados e cada item vira uma subtarefa quando o modelo é usado (Nova tarefa ou Tarefa de um processo).
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
name
string
Sim
Até 255 caracteres.
instruction
string | null
Não
Até 5000 caracteres.
description
string | null
Não
Até 20000 caracteres.
help_link
string | null (uri)
Não
Até 255 caracteres.
checklist
array<string | null>
Não
—
due_days
integer | null
Não
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/task-templates" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Modelo criado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente409 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
200 Modelo encontrado401 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/task-templates/{taskTemplate}
Atualiza um modelo de tarefa
Exige `task-templates:write` e editar em Gestão de Espaço. Parcial: campo omitido fica como está; o `checklist` enviado substitui o anterior. Vale para as próximas tarefas e execuções; as que já nasceram não mudam.
200 Modelo 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
200 Modelo ativo401 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
Exige `task-templates:write` e desabilitar em Gestão de Espaço. Sai das listas de escolha; processos que usam o modelo deixam de poder iniciar até trocar o modelo. Idempotente.
200 Modelo desativado401 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
Processes
GET/api/v1/processes
Lista os processos
Exige `processes:read` e ver Gestão de Processos. Do mais novo para o mais antigo. O desenho vem só no detalhe.
200 Página de processos401 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/processes
Cria um processo em rascunho
Exige `processes:write` e criar em Gestão de Processos. Sempre nasce em `Rascunho` (ativar é a ação `activate`), com o desenho opcional na versão 1. O desenho é conferido: tipo de peça conhecido, id único, posição numérica e conexões entre peças existentes. Conexão sem `sourceHandle`/`targetHandle` usa `out`/`in`.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
name
string
Sim
Até 255 caracteres.
layout
string | null
Não
`auto`: o servidor organiza o desenho inicial pelas conexões; `position` fica opcional. Valores: auto, .
description
string | null
Não
—
board_id
integer | null
Não
—
sector_id
integer | null
Não
—
responsible_user_id
integer | null
Não
—
nodes
array<object>
Não
—
edges
array<object>
Não
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/processes" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Processo criado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente409 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/processes/{process}
Exibe um processo com o desenho atual
Exige `processes:read`. `flow` traz as peças e conexões da versão atual, no formato do editor.
200 Processo encontrado401 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/processes/{process}
Atualiza os dados de um processo
Exige `processes:write` e editar em Gestão de Processos. Parcial: campo omitido fica como está. Cria uma versão nova que copia o desenho atual. O desenho muda por `PUT /processes/{process}/flow`.
200 Processo 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
PUT/api/v1/processes/{process}/flow
Salva o desenho numa versão nova
Exige `processes:write` e editar em Gestão de Processos. Substitui todas as peças e conexões numa versão nova; a anterior fica no histórico e pode ser restaurada. Peças do modo Desenho (`node_step`, formas, notas) documentam; as do modo Automação (`node_task`, `node_subprocess`) executam. Veja `ProcessFlowNode` para os campos de cada peça. Com `layout: "auto"`, o servidor calcula a posição de cada peça pelas conexões (colunas da esquerda para a direita; retornos como o Ajustar não mudam as colunas; notas, textos e imagens soltos ficam onde estão), e `position` pode ser omitido.
Parâmetros
Nome
Local
Obrigatório
Descrição
process
path
Sim
—
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
layout
string | null
Não
`auto`: o servidor organiza as peças pelas conexões e a posição de cada uma fica opcional. Valores: auto, .
nodes
array<object>
Sim
—
edges
array<object>
Sim
—
Exemplo
cURL
curl -X PUT "$MICORE_BASE_URL/processes/{process}/flow" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Desenho salvo401 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/processes/{process}/flow/arrange
Organiza o desenho atual
Exige `processes:write` e editar em Gestão de Processos. Reposiciona as peças do desenho atual pelas conexões (como `layout: "auto"`) numa versão nova; peças, conexões e parâmetros não mudam. Sem corpo.
200 Desenho organizado401 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
Exige `processes:write` e editar em Gestão de Processos. Muda só a peça informada (pelo `id` dela no desenho) numa versão nova; o resto do desenho fica igual. `data` se junta aos dados atuais da peça; chave enviada como `null` sai. Peça que não existe responde 404.
200 Peça 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/processes/{process}/versions
Lista as versões do processo
Exige `processes:read`. Da mais nova para a mais antiga.
200 Versões401 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
Exige `processes:write` e editar em Gestão de Processos. Copia os dados e o desenho da versão escolhida para uma versão nova; nada do histórico é apagado.
200 Versão restaurada401 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/processes/{process}/validation
Confere se o processo pode executar
Exige `processes:read`. Mesma conferência da janela Iniciar processo do painel: devolve as etapas do modo Automação (com papel, prazo, quadro, coluna, modelo e saídas) e os papéis a preencher ao iniciar, ou `valid: false` com o motivo (por exemplo, sem Tarefa no modo Automação, Tarefa sem responsável, modelo desativado ou laço sem saída).
200 Resultado da conferência401 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/processes/{process}/activate
Ativa o processo
Exige `processes:write` e desabilitar em Gestão de Processos. Como no painel, não exige que o processo seja executável; confira antes com `validation`.
200 Processo ativo401 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/processes/{process}/deactivate
Desativa o processo
Exige `processes:write` e desabilitar em Gestão de Processos. Execuções em andamento continuam.
200 Processo inativo401 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/process-executions
Lista as execuções de processo
Exige `processes:read` e ver Gestão de Processos. Só execuções dos quadros que o usuário da credencial administra ou de que participa (quem administra quadros vê todos), como na Gestão do Trabalho. Da mais nova para a mais antiga; as etapas vêm só no detalhe.
200 Página de execuções401 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/process-executions
Inicia um processo num quadro
Exige `processes:execute` e a permissão Importar processos em Gestão de Espaço, e que o usuário administre ou participe do quadro (403 `permission_denied`). Mesma regra da janela Iniciar processo: cada papel do processo (veja `GET /processes/{process}/validation`) precisa de uma pessoa em `roles`; `stage_id` é a coluna das Tarefas sem coluna própria; `source_task_id` é a tarefa que vira a execução (ativa, principal, do mesmo quadro e fora de outro processo) e é arquivada. Cria a tarefa de cada etapa inicial. Como no painel, não exige que o processo esteja `Ativo`. Desenho inválido ou papel sem pessoa responde 422 com o motivo.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
process_id
integer
Sim
—
board_id
integer
Sim
Quadro onde a execução roda; as Tarefas sem quadro próprio são criadas nele.
name
string
Sim
Diferencia uma execução da outra do mesmo processo. Até 255 caracteres.
roles
object | null
Não
Pessoa (id do usuário) de cada papel, pelo nome do papel.
stage_id
integer | null
Não
Coluna ativa do quadro para as Tarefas sem coluna própria.
source_task_id
integer | null
Não
Tarefa que pediu a execução (ex.: a pauta); é arquivada.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/process-executions" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Execução iniciada (ou reapresentada pela mesma chave idempotente)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/process-executions/{execution}
Exibe uma execução com as etapas
Exige `processes:read`. Traz cada etapa com a situação, o responsável, a tarefa, o prazo, as saídas desenhadas e a saída escolhida, e a situação da execução (no prazo, atrasada, parada, aguardando saída, concluída ou cancelada). Execução de quadro fora do acesso responde 404.
200 Execução encontrada401 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
Exige `processes:execute` e ver Tarefas. Como no modal da tarefa: só quem está na tarefa da etapa, o gestor do quadro ou o administrador escolhe (403). `outcome` é o `id` de uma das `outcomes` da etapa (422 em `outcome` quando não existe). A tarefa é concluída e a execução segue pelo caminho da saída; uma saída de retorno (ex.: Ajustar) reabre a etapa anterior. Etapa já encerrada ou execução que não está em andamento responde 409 `invalid_transition`.
Parâmetros
Nome
Local
Obrigatório
Descrição
execution
path
Sim
—
step
path
Sim
`id` da etapa em `steps`.
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
outcome
string
Sim
Até 100 caracteres.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/process-executions/{execution}/steps/{step}/outcome" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Saída gravada (ou reapresentada pela mesma chave idempotente)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/process-executions/{execution}/cancel
Cancela uma execução
Exige `processes:execute` e a permissão Cancelar processo em Gestão de Espaço. Cancela também os subprocessos em andamento, arquiva as tarefas abertas e deixa o motivo como comentário nelas; etapas concluídas ficam no histórico. Execução que não está em andamento responde 409 `invalid_transition`.
Parâmetros
Nome
Local
Obrigatório
Descrição
execution
path
Sim
—
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
reason
string | null
Não
Até 1000 caracteres.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/process-executions/{execution}/cancel" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Execução cancelada (ou reapresentada pela mesma chave idempotente)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
Requests
GET/api/v1/requests
Lista solicitações entre times
Exige `requests:read` e a permissão Solicitações (visualizar). Lista só as solicitações abertas pelo usuário responsável (`box=mine`) e as recebidas pelos times dos quais ele participa (`box=received`); sem `box`, as duas. Mais recentes primeiro.
Parâmetros
Nome
Local
Obrigatório
Descrição
box
query
Não
mine: abertas pelo usuário; received: recebidas pelos times dele.
status
query
Não
—
priority
query
Não
—
recipient_team_id
query
Não
—
requester_team_id
query
Não
—
request_type_id
query
Não
—
created_from
query
Não
Abertas a partir deste dia.
created_to
query
Não
Abertas até este dia.
resolved
query
Não
true: com conclusão registrada; false: ainda sem conclusão. Aceita true/false ou 1/0.
200 Página de solicitações401 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/requests
Abre uma solicitação para um time
Exige `requests:write` e a permissão Solicitações (criar). A solicitação nasce sempre pendente (`pending`), em análise pelo gestor do time destinatário, que é avisado. O tipo precisa ser ativo do time destinatário; o prazo desejado segue a política do time (obrigatório, opcional ou desabilitado). Sem `requester_team_id`, vale o único time do usuário. Anexo não é enviado pela API.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
title
string
Sim
Até 255 caracteres.
description
string | null
Não
HTML aceito.
recipient_team_id
integer
Sim
Time ativo que recebe a solicitação (veja /teams).
request_type_id
integer
Sim
Tipo ativo do time destinatário.
requester_team_id
integer
Não
Time do usuário que pede; obrigatório quando ele participa de mais de um.
priority
string | null
Não
Sem urgência, vale medium. Valores: critical, high, medium, low.
desired_delivery_date
string | null (date)
Não
Segue a política de prazo do time destinatário.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/requests" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Solicitação aberta ou reapresentada pela mesma chave idempotente401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente409 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/requests/{teamRequest}
Consulta uma solicitação
Exige `requests:read`. Visível ao autor e a quem participa do time destinatário; para os demais responde 404.
200 Solicitaçã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
PATCH/api/v1/requests/{teamRequest}
Edita uma solicitação pendente
Exige `requests:write` e a permissão Solicitações (editar). Edição parcial: só os campos enviados mudam; o resto fica como está. Só o autor edita, e só enquanto a solicitação está pendente (depois da decisão responde 409 `invalid_transition`). O estado nunca é editado aqui: muda pelas ações accept, reject, resolve, cancel e contest. Como no painel, a edição revalida time, tipo e prazo e mantém o gestor do time destinatário como responsável.
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
title
string
Não
Até 255 caracteres.
description
string | null
Não
—
recipient_team_id
integer
Não
Ao trocar o time, envie também um tipo ativo dele.
200 Solicitação atualizada401 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/requests/{teamRequest}/accept
Aceita uma solicitação pendente
Exige `requests:decide` e a permissão Solicitações (resolver solicitações). Só o gestor do time destinatário ou o autor decide. `execution` cria a tarefa no quadro escolhido (do time destinatário, com etapa de backlog) atribuída ao responsável, que precisa participar do quadro; `backlog` cria a tarefa para distribuição e deixa a solicitação como ideia. A urgência vira tag na tarefa, o texto de retorno vira comentário e o autor é avisado. Só solicitações pendentes: as demais respondem 409 `invalid_transition`.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
acceptance_type
string
Sim
execution: tarefa com responsável; backlog: ideia para distribuir depois. Valores: execution, backlog.
board_id
integer
Sim
Quadro ativo do time destinatário, com etapa de backlog.
responsible_user_id
integer | null
Não
Obrigatório em execution; precisa participar do quadro.
expected_delivery_date
string | null (date)
Não
Só em execution; hoje ou futura.
priority
string | null
Não
Sem urgência, mantém a atual. Valores: critical, high, medium, low.
return_text
string | null
Não
Retorno ao autor; vira comentário na tarefa.
request_type_id
integer | null
Não
Reclassifica para outro tipo ativo do time.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/requests/{teamRequest}/accept" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Solicitação aceita (ou reapresentada pela mesma chave idempotente)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/requests/{teamRequest}/reject
Recusa uma solicitação pendente
Exige `requests:decide` e a permissão Solicitações (resolver solicitações). Só o gestor do time destinatário ou o autor decide; o motivo é obrigatório e precisa ter texto. O autor é avisado e pode contestar uma vez. Só solicitações pendentes: as demais respondem 409 `invalid_transition`.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
return_text
string
Sim
Motivo da recusa (HTML aceito; precisa ter texto).
request_type_id
integer | null
Não
Reclassifica para outro tipo ativo do time.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/requests/{teamRequest}/reject" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Solicitação recusada (ou reapresentada pela mesma chave idempotente)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/requests/{teamRequest}/resolve
Registra a conclusão de uma solicitação
Exige `requests:decide` e a permissão Solicitações (resolver solicitações). Vale para solicitações aceitas (`accepted`) ou ideias (`backlog`), por quem participa do quadro da solicitação. Sem `resolved_at`, a conclusão vale agora; repetir com outra chave atualiza a data e a observação, como no painel. Aceitar não conclui: a conclusão é um registro próprio. Outros estados respondem 409 `invalid_transition`.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
resolved_at
string | null (date-time)
Não
Sem data, vale agora.
resolution_note
string | null
Não
Até 2000 caracteres.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/requests/{teamRequest}/resolve" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Conclusão registrada (ou reapresentada pela mesma chave idempotente)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/requests/{teamRequest}/cancel
Cancela uma solicitação pendente
Exige `requests:write` e a permissão Solicitações (editar). Só o autor cancela, e só enquanto a solicitação está pendente; o gestor do time destinatário é avisado. Cancelada ou já decidida responde 409 `invalid_transition`. Sem corpo.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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.
200 Solicitação cancelada (ou reapresentada pela mesma chave idempotente)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/requests/{teamRequest}/contest
Contesta a recusa de uma solicitação
Exige `requests:write` e a permissão Solicitações (visualizar). Só o autor contesta uma recusa (`rejected`), uma única vez; a solicitação volta para pendente com `triage_state` `contested`, a decisão anterior fica no histórico e o gestor do time destinatário é avisado. Outros estados ou segunda contestação respondem 409 `invalid_transition`.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
message
string
Sim
Motivo da contestação (HTML aceito; precisa ter texto).
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/requests/{teamRequest}/contest" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Contestação registrada (ou reapresentada pela mesma chave idempotente)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
Objectives
GET/api/v1/objectives
Lista as metas
Exige `objectives:read` e a permissão Metas (visualizar). Metas fora do arquivo, mais recentes primeiro, com as métricas ativas, o progresso e a situação (progresso contra o tempo, a mesma regra da listagem do painel).
Parâmetros
Nome
Local
Obrigatório
Descrição
board_id
query
Não
Metas do quadro.
status
query
Não
open junta não iniciada e em andamento. Rascunho só aparece para quem criou.
situation
query
Não
—
metric_key
query
Não
Metas com métrica ativa por integração com esta chave (ex.: sentinel.availability).
200 Página 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
POST/api/v1/objectives
Cria uma meta
Exige `objectives:write`, a permissão Metas e `Idempotency-Key` (a mesma chave nunca cria duas metas). Mesma regra do cadastro do painel: o responsável só vale se for do time do quadro, e as métricas passam pela regra única (manual, contada por tarefas de um modelo ou por integração). Com `recurrence: monthly` o `name` é o nome sem o mês: a meta fica com as datas do mês de `date_start` (o mês atual, sem data) e o nome ganha o mês ("Disponibilidade do sistema Novembro"); no fim do mês ela é encerrada sozinha com o resultado das métricas e a do mês seguinte nasce igual, com o realizado zerado.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
board_id
integer | null
Não
—
owner_scope
string
Não
Quadro exige board_id; time exige team_id. Valores: empresa, time, quadro.
curl -X POST "$MICORE_BASE_URL/objectives" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Meta criada (ou reapresentada pela mesma chave, com `Idempotency-Replayed: true`)401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente409 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/objectives/{objective}
Exibe uma meta
Exige `objectives:read` e a permissão Metas (visualizar). Meta arquivada responde 404.
200 Meta401 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/objectives/{objective}
Edita uma meta (parcial)
Exige `objectives:write` e a permissão Metas. Só os campos enviados mudam. `metrics`, quando vem, é a lista completa: as que ficarem de fora são desativadas (com o histórico guardado); use o `id` para manter uma métrica. `status` aceita só não iniciada e em andamento (para encerrar use `/close`); voltar a abrir apaga o resultado do encerramento. Com repetição mensal, `name` é o nome sem o mês. `recurrence: null` tira a repetição e mantém o nome e as datas.
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
board_id
integer | null
Não
—
owner_scope
string
Não
Quadro exige board_id; time exige team_id. Valores: empresa, time, quadro.
200 Meta editada401 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
Exige `objectives:read` e a permissão Metas (visualizar). Cada mudança do realizado, mais recente primeiro: lançamento à mão (somar, subtrair, ajustar) ou número informado por outro sistema, com a diferença, a observação e quem lançou (a pessoa no painel ou o dono da credencial da API). A métrica contada por tarefas não grava histórico. O mesmo histórico aparece no cartão da métrica, na tela da meta.
200 Página do 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/objectives/{objective}/publish
Publica um rascunho
Exige `objectives:write` e a permissão Metas. Rascunho só aparece para quem criou e não gera tarefas, check-ins nem alertas; publicado, passa a em andamento. Meta que não é rascunho responde 409 `invalid_transition`. Sem corpo.
200 Meta publicada401 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/objectives/{objective}/checkins
Check-ins da meta
Exige `objectives:read`. Mais recentes primeiro: confiança, comentário, bloqueio, o realizado informado das métricas manuais e quem fez.
200 Página de check-ins401 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/objectives/{objective}/checkins
Registra um check-in
Exige `objectives:write`. Mesma regra do painel: confiança (`no_ritmo`, `em_risco`, `fora_do_ritmo`), comentário, bloqueio e o realizado das métricas **manuais** (`metric_values` por id; automáticas são ignoradas, e cada valor vira um ajuste no histórico da métrica). Meta encerrada ou rascunho responde 409. A meta não iniciada passa a em andamento.
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
confidence
string
Sim
Valores: no_ritmo, em_risco, fora_do_ritmo.
comment
string | null
Não
Até 2000 caracteres.
blocker
string | null
Não
Até 2000 caracteres.
metric_values
object
Não
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/objectives/{objective}/checkins" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Check-in registrado401 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
Exige `objectives:write`. Só marco **sem tarefas** (`automatic: false`): `done: true` marca como atingido agora (e avisa os participantes quando o alerta "Marco atingido" está ligado); `false` desfaz. Marco com tarefas fecha e reabre sozinho com elas e responde 409 `invalid_transition`. Na meta de projeto, o progresso conta cada tarefa principal e cada marco sem tarefa como um item (ADR 0934).
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
done
boolean
Sim
—
Exemplo
cURL
curl -X PUT "$MICORE_BASE_URL/objectives/{objective}/milestones/{milestone}" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Meta com o marco 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
Exige `objectives:write`. Mesma regra do "+ Tarefa neste marco" do painel: cria as tarefas no quadro da meta (uma por linha, na sintaxe das tarefas iniciais: `-` para subtarefa, `#` para comentário, datas como `01/12/2026 - Tarefa`) e liga as principais ao marco, que passa a fechar sozinho com elas (ADR 0934). Meta sem quadro responde 422. `meta.created_task_ids` traz os ids das tarefas principais criadas.
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
tasks
string
Sim
Até 20000 caracteres.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/objectives/{objective}/milestones/{milestone}/tasks" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Tarefas criadas e ligadas ao marco401 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/objectives/{objective}/tasks
Liga uma tarefa existente à meta
Exige `objectives:write`. Mesma regra do campo "Meta" do modal da tarefa no painel: a tarefa principal (não subtarefa, não excluída) passa a ser da meta, com as subtarefas junto e o registro no histórico da tarefa. Com `milestone_id`, já entra no marco. Tarefa que era de outra meta sai dos marcos de lá. Quem liga precisa fazer parte do quadro da tarefa (403), menos o administrador. Funciona também em meta da empresa ou de time, sem quadro.
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
task_id
integer
Sim
—
milestone_id
integer | null
Não
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/objectives/{objective}/tasks" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Meta com a tarefa ligada401 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
DELETE/api/v1/objectives/{objective}/tasks/{task}
Tira uma tarefa da meta
Exige `objectives:write`. A tarefa principal deixa de ser da meta (e dos marcos dela), com as subtarefas junto; a tarefa continua no quadro. Tarefa que não é principal desta meta responde 422.
200 Meta sem a tarefa401 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
Exige `objectives:write`. Mesma regra do "mover para marco" do painel: a tarefa principal da meta fica em um marco só; `milestone_id` nulo tira a tarefa de todos os marcos. Os marcos de origem e de destino são reconferidos (fecham ou reabrem conforme as tarefas). Tarefa que não é principal desta meta responde 422.
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
milestone_id
integer | null
Sim
—
Exemplo
cURL
curl -X PUT "$MICORE_BASE_URL/objectives/{objective}/tasks/{task}/milestone" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Meta com os marcos atualizados401 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/objectives/{objective}/confirm
Confirma a meta de sim ou não
Exige `objectives:write`. Só a meta de sim ou não (tipo `sim_nao` ou progresso por `confirmacao`; as outras respondem 409). Envie `multipart/form-data` quando houver evidência (arquivo até 10 MB).
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
note
string | null
Não
Até 2000 caracteres.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/objectives/{objective}/confirm" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Meta confirmada401 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/objectives/{objective}/confirm
Desfaz a confirmação
Exige `objectives:write`. Apaga a confirmação, o comentário e a evidência.
200 Confirmação desfeita401 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/objectives/{objective}/close
Encerra uma meta
Exige `objectives:write` e a permissão Metas. Mesma regra do modal de encerramento do painel: `atingida`, `parcialmente_atingida` e `nao_atingida` concluem a meta; `cancelada` cancela. As tarefas pendentes ficam na meta (`keep`, padrão), saem dela (`unlink`) ou vão para o arquivo (`archive`). Meta já encerrada responde 409 `invalid_transition`.
Por que o resultado é diferente do sugerido pelas faixas. Até 2000 caracteres.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/objectives/{objective}/close" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Meta encerrada401 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/objectives/{objective}/reopen
Reabre uma meta encerrada
Exige `objectives:write` e a permissão Metas. A meta volta a não iniciada e o resultado do encerramento é apagado. Meta aberta responde 409 `invalid_transition`. Sem corpo.
200 Meta reaberta401 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`)429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST/api/v1/objectives/{objective}/cancel
Cancela uma meta
Exige `objectives:write` e a permissão Metas. Mesma regra do cancelar da listagem do painel: as tarefas ativas não finalizadas saem da meta (`unlink`, padrão) ou são excluídas (`delete`, vão para o arquivo). `meta.tasks_affected` diz quantas tarefas foram tratadas. Meta já cancelada responde 409 `invalid_transition`.
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
tasks_action
string
Não
Valores: unlink, delete. Padrão: "unlink".
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/objectives/{objective}/cancel" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Meta cancelada401 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
Exige `objectives:write` e a permissão Metas. Na métrica manual é o ajuste do painel (com a observação no histórico); na métrica por integração é o número informado pelo outro sistema (o mesmo valor de antes não grava histórico; meta encerrada responde 409). A métrica contada por tarefas de um modelo não aceita (409 `invalid_transition`): o número vem das tarefas finalizadas.
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
value
number
Sim
—
note
string | null
Não
Até 500 caracteres.
Exemplo
cURL
curl -X PUT "$MICORE_BASE_URL/objectives/{objective}/metrics/{metric}/value" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Meta com a métrica atualizada401 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/objectives/metrics/report
Informa o número de uma chave de integração
Exige `objectives:write` e a permissão Metas. Para outro sistema alimentar metas sem saber o id delas: troca o realizado de todas as métricas ativas por integração com a `key` em metas abertas (não iniciada ou em andamento, fora do arquivo) cujo período contém `date` (hoje, sem data). Lista vazia não é erro: nenhuma meta com a chave naquele dia. Cada mudança fica no histórico da métrica; o mesmo número de antes não grava nada. Usado pelo Sentinel para a disponibilidade dos servidores.
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
key
string
Sim
—
value
number
Sim
—
date
string (date)
Não
—
note
string | null
Não
Até 500 caracteres.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/objectives/metrics/report" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Métricas atualizadas401 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
Surveys
GET/api/v1/surveys
Lista enquetes
Exige `surveys:read` e a permissão Enquetes (visualizar), do contrato de Ferramentas. Mais recentes primeiro. A situação (`state`) é calculada pelo status e pelo período: `disabled` (desativada), `scheduled` (antes da abertura), `closed` (depois do encerramento) ou `open`.
Parâmetros
Nome
Local
Obrigatório
Descrição
state
query
Não
—
audience
query
Não
team: só a equipe responde; link: qualquer pessoa com o link público também.
200 Página de enquetes401 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/surveys
Cria uma enquete com as perguntas
Exige `surveys:write` e a permissão Enquetes (criar). As perguntas nascem no motor de formulários do miCore; cada uma recebe uma chave (`key`) estável, usada para responder e para ler o resultado. Perguntas de escolha (`radio`, `checkbox`, `options`) precisam de ao menos duas opções diferentes. Depois de criadas, as perguntas são editadas pelo construtor de Formulários no painel (etapas e condicionais); esta API não edita perguntas. Sem `active`, a enquete nasce ativa.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
name
string
Sim
Até 255 caracteres.
description
string | null
Não
Até 20000 caracteres.
starts_at
string | null (date-time)
Não
Sem abertura: aberta desde já.
ends_at
string | null (date-time)
Não
Sem encerramento: aberta até ser desativada.
audience
string
Não
Valores: team, link. Padrão: "team".
anonymous
boolean
Não
Padrão: false.
allow_multiple
boolean
Não
Padrão: false.
thank_you_message
string | null
Não
Até 2000 caracteres.
active
boolean
Não
Padrão: true.
questions
array<object>
Sim
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/surveys" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Enquete criada ou reapresentada pela mesma chave idempotente401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente409 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/surveys/{survey}
Consulta uma enquete com as perguntas
Exige `surveys:read`. Traz as perguntas da versão atual do formulário, com a chave (`key`) de cada uma.
200 Enquete401 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/surveys/{survey}
Edita as configurações de uma enquete
Exige `surveys:write` e a permissão Enquetes (editar). Edição parcial: só os campos enviados mudam. `null` em `starts_at` ou `ends_at` deixa o lado do período em aberto. O encerramento precisa ser depois da abertura (422 em `ends_at`). Perguntas e situação não mudam aqui: perguntas pelo construtor de Formulários no painel, situação por /enable e /disable.
200 Enquete 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/surveys/{survey}/enable
Reativa uma enquete desativada
Exige `surveys:write` e a permissão Enquetes (desabilitar). Volta a receber respostas dentro do período. Enquete já ativa responde 409 `invalid_transition`.
200 Enquete reativada401 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`)429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST/api/v1/surveys/{survey}/disable
Desativa uma enquete
Exige `surveys:write` e a permissão Enquetes (desabilitar). Para de receber respostas, inclusive pelo link público; o que já foi respondido continua no resultado. Enquete já desativada responde 409 `invalid_transition`.
200 Enquete desativada401 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`)429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
GET/api/v1/surveys/{survey}/results
Resultado consolidado da enquete
Exige `surveys:read`. Para cada pergunta da versão atual: quantos responderam, total e percentual de cada opção (sobre quem respondeu a pergunta) e os textos mais recentes. Respostas dadas em versões anteriores do formulário contam na mesma pergunta pela chave; opções que saíram do formulário aparecem no fim com `removed: true`.
200 Resultado401 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/surveys/{survey}/responses
Lista as respostas da enquete
Exige `surveys:read`. Mais recentes primeiro, cada uma com os valores pergunta a pergunta, na versão do formulário em que foi respondida. Em enquete anônima, `respondent` vem vazio.
200 Página de respostas401 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/surveys/{survey}/responses
Envia uma resposta para a enquete
Exige `surveys:respond` e a permissão Enquetes (visualizar). `answers` usa a chave de cada pergunta (veja GET /surveys/{survey}); escolha única e texto aceitam um texto, múltipla escolha aceita uma lista. Valem as mesmas regras do painel e do link: obrigatórias, condicionais e opções existentes (422 em `answers.{key}`). Enquete desativada, agendada ou encerrada responde 409 `invalid_transition`. Quando a enquete aceita uma resposta por pessoa, `respondent.reference` (seu identificador do cliente, por exemplo) barra a segunda resposta com 409; sem referência, não há como barrar repetição. Perguntas de arquivo não são respondidas pela API.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
answers
object
Sim
Chave da pergunta => texto (escolha única, lista e texto) ou lista de textos (múltipla escolha).
respondent
object
Não
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/surveys/{survey}/responses" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Resposta gravada ou reapresentada pela mesma chave idempotente401 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/surveys/{survey}/responses/{response}
Consulta uma resposta da enquete
Exige `surveys:read`. Resposta de outra enquete responde 404.
200 Resposta401 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
Coupons
GET/api/v1/coupons
Lista cupons de desconto
Exige `coupons:read` e a permissão Cupons de Desconto (visualizar), do contrato de Cupons (`coupons`). Mais recentes primeiro. `state` é calculado: `Ativo`, `Inativo`, `Agendado`, `Expirado` ou `Esgotado`.
Parâmetros
Nome
Local
Obrigatório
Descrição
active
query
Não
—
format
query
Não
—
benefit_type
query
Não
—
code
query
Não
Código público exato (sem diferenciar maiúsculas).
200 Página de cupons401 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/coupons
Cria um cupom de desconto
Exige `coupons:write` e a permissão Cupons de Desconto (criar). Mesma regra do painel: código público único (sem diferenciar maiúsculas, 3 a 40 letras, números, hífen e sublinhado), porcentagem de 0,01 a 100, abrangência `items` com ao menos uma categoria, marca ou produto, fim depois do início. Cupom com `publish_google` precisa de código público e valer para qualquer cliente. Datas com fuso (ISO 8601); sem fuso valem no fuso configurado da empresa. Sem `active`, nasce ligado.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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.
201 Cupom criado ou reapresentado pela mesma chave idempotente401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente409 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/coupons/{coupon}
Consulta um cupom com os números de uso
Exige `coupons:read`. `stats` traz usos, pedidos, faturamento, desconto concedido (itens e frete), ticket médio e clientes novos, sem os usos devolvidos (pedido cancelado ou estornado).
200 Cupom401 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/coupons/{coupon}
Edita um cupom (parcial)
Exige `coupons:write` e a permissão Cupons de Desconto (editar). Edição parcial: só os campos enviados mudam; o resto (abrangência, condições, limites, textos) fica como está. Lista vazia (`[]`) ou `null` tira a restrição. O formato não muda depois do primeiro uso (422 em `format`).
200 Cupom 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
DELETE/api/v1/coupons/{coupon}
Exclui um cupom
Exige `coupons:write` e a permissão Cupons de Desconto (excluir). Os pedidos que já usaram continuam com o desconto e os usos ficam no histórico.
204 Cupom excluído401 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/coupons/{coupon}/enable
Liga um cupom
Exige `coupons:write` e a permissão Cupons de Desconto (editar).
200 Cupom ligado401 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/coupons/{coupon}/disable
Desliga um cupom
Exige `coupons:write` e a permissão Cupons de Desconto (editar). Carrinho com o cupom deixa de ter o desconto no próximo recálculo.
200 Cupom desligado401 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/coupons/{coupon}/codes
Gera códigos de lote de uso único
Exige `coupons:write` e a permissão Cupons de Desconto (editar). Só para cupom de formato `batch`. Cada código tem o prefixo do cupom e 10 caracteres aleatórios (sem 0/O e 1/I/L) e vale para um pedido só. Até 5000 por chamada.
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
quantity
integer
Sim
—
reserved_for
string | null
Não
Para quem o código foi entregue (texto livre, ex.: e-mail da campanha). Até 120 caracteres.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/coupons/{coupon}/codes" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Códigos gerados401 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/coupons/{coupon}/usages
Lista os usos do cupom
Exige `coupons:read`. Um uso por pedido que usou o cupom, mais recentes primeiro; `status` é `active` ou `returned` (pedido cancelado ou estornado devolve o uso).
200 Página de usos401 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
200 Página de clientes401 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/clients
Cria um cliente
Exige `clients:write` e a permissão de criar em Clientes. Para pessoa jurídica, `contributor_type` é obrigatório.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
type
string
Sim
Valores: pf, pj.
name
string
Sim
Nome da pessoa ou nome fantasia da empresa. Até 100 caracteres.
name_pj
string | null
Não
Razão social, para pessoa jurídica. Até 100 caracteres.
email
string (email)
Sim
Único na base. Até 150 caracteres.
email_nf
string | null
Não
Até 255 caracteres.
is_client
boolean | null
Não
true para cliente (padrão), false para lead.
cpf
string | null
Não
Com ou sem máscara; guardado só com dígitos.
cnpj
string | null
Não
Com ou sem máscara; guardado só com dígitos.
ie
string | null
Não
Até 25 caracteres.
contributor_type
string | null
Não
Obrigatório para PJ. '1' = Contribuinte ICMS. Até 1 caracteres.
phone
string | null
Não
Número do WhatsApp; cria o contato do cliente.
phone_ddd
string | null
Não
DDI do WhatsApp; assume 55 (Brasil) quando ausente.
birth
string | null (date)
Não
—
group_id
integer | null
Não
—
seller_id
integer | null
Não
—
newsletter
boolean | null
Não
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/clients" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Cliente criado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente409 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
200 Cliente encontrado401 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/clients/{client}
Atualiza um cliente
Exige `clients:write` e a permissão de editar em Clientes. Tipo e documento não são editáveis na v1.
200 Cliente 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
DELETE/api/v1/clients/{client}
Desativa um cliente
Exige `clients:write` e a permissão de excluir em Clientes. Desativa sem apagar; o status é dado e a reativação é pelo painel. Idempotente.
200 Cliente desativado401 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/clients/{clientId}/company-members
Lista os vínculos entre pessoa e empresas do cliente
Exige `clients:read` e a permissão Gestão de Cadastro (ver). Para uma pessoa (PF), devolve as empresas que ela representa; para uma empresa (PJ), as pessoas que a representam. Traz os ativos e os pendentes (pedidos pela loja ou pelo app esperando aprovação).
200 Vínculos do cliente401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado
POST/api/v1/clients/{clientId}/company-members
Vincula uma pessoa a uma empresa
Exige `clients:write` e a permissão Gestão de Cadastro (editar). Funciona pelos dois lados: na rota da pessoa, `client_id` é a empresa; na rota da empresa, `client_id` é a pessoa. A pessoa precisa ser PF com CPF e a empresa, PJ. O vínculo feito pela API já nasce ativo; se havia um pedido pendente, ele é aprovado com o papel enviado. Vínculo já ativo devolve 409.
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
client_id
integer
Sim
O outro lado do vínculo: a empresa (na rota da pessoa) ou a pessoa (na rota da empresa).
curl -X POST "$MICORE_BASE_URL/clients/{clientId}/company-members" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Vínculo 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 excedida
PATCH/api/v1/client-company-members/{memberId}
Troca o papel da pessoa na empresa
Exige `clients:write` e a permissão Gestão de Cadastro (editar). Só o papel muda; situação e origem ficam como estão (a situação muda pela ação de aprovar).
200 Vínculo 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 excedida
DELETE/api/v1/client-company-members/{memberId}
Desfaz o vínculo (ou recusa o pedido pendente)
Exige `clients:write` e a permissão Gestão de Cadastro (editar). A pessoa deixa de comprar e de ver pedidos e notas da empresa na loja e no app.
204 Vínculo desfeito401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida
Exige `clients:write` e a permissão Gestão de Cadastro (editar). O pedido pendente passa a valer, aprovado pelo usuário responsável pela credencial. Aprovar um vínculo já ativo não muda nada.
200 Vínculo ativo401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida
200 Página de itens de mídia401 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/media
Envia um arquivo para a biblioteca de mídia
Exige `media:write` e a permissão de criar em Biblioteca de Mídia. Aceita imagens e vídeos, até 50 MB no upload direto. As variações de tamanho são geradas no envio.
201 Item de mídia criado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente422 Dados inválidos429 Cota por minuto da credencial excedida502 Falha ao armazenar o arquivo no serviço de armazenamento503 O domínio não pôde ser associado com segurança a um tenant
200 Item encontrado401 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
DELETE/api/v1/media/{item}
Exclui um item de mídia
Exige `media:write` e a permissão de excluir em Biblioteca de Mídia. Remove o arquivo, as variações e os vínculos. A exclusão é permanente.
204 Item excluído401 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
Users
GET/api/v1/users
Lista usuários da equipe
Exige o escopo `users:read`. Use para descobrir os ids usados ao atribuir responsáveis ou definir o vendedor de um cliente.
200 Página de usuários401 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
200 Usuário encontrado401 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
Teams
GET/api/v1/teams
Lista os times
Exige o escopo `teams:read`. Use para descobrir o `owner_team_id` e os membros ao criar um quadro.
200 Página de times401 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/teams/{team}
Exibe um time
Exige o escopo `teams:read`. Traz o gestor e os membros.
200 Time encontrado401 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
Products
GET/api/v1/products
Lista os produtos
Exige o escopo `products:read` e a permissão de ver em Gestão de Produtos. Retorna o catálogo com os filtros documentados.
Parâmetros
Nome
Local
Obrigatório
Descrição
status
query
Não
Ativo (true) ou inativo (false).
visibility_store
query
Não
Visível na loja (true) ou não (false).
type
query
Não
Tipo do produto (produto-fisico, produto-digital, servico, kit, chave-codigo, assinatura, etc.).
category_id
query
Não
Filtra por categoria.
brand_id
query
Não
Filtra por marca.
reference
query
Não
Referência (SKU) exata, para conferir se o item já foi cadastrado.
printer_model_id
query
Não
Só os produtos compatíveis com este modelo de impressora.
200 Página de produtos401 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/products
Cria um produto
Exige `products:write` e a permissão de criar em Gestão de Produtos. Reusa o serviço canônico do painel e vale para todos os tipos. Campos por tipo — `compositions` (kit), `related_key_product_id` (chave-codigo), `subscription_id` (assinatura). Aceita também os textos da aba de informações (`description`, `description_short` etc.), as fotos (`images`, itens já enviados à Biblioteca de Mídia por `POST /media`) e o preço em dólar (`usd_price*`). Qualquer gravação desliga a sincronização com o Mercado Livre, como no painel.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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.
201 Produto criado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente409 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/products/{product}
Exibe um produto
Exige o escopo `products:read`. Traz categoria, marca e unidade.
200 Produto encontrado401 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/products/{product}
Atualiza um produto
Exige `products:write` e a permissão de editar em Gestão de Produtos. Edição parcial - todo campo é opcional e o omitido fica como está (tipo, nome, chave relacionada, compatibilidade, fotos, preços por quantidade, atributos, textos, fiscal, frete, embalagem e visibilidade). `images` enviado é a lista final de fotos - as que já estavam e continuam na lista mantêm o vínculo, as que saem são removidas como no painel. Aplica as mesmas regras do painel.
200 Produto 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
DELETE/api/v1/products/{product}
Arquiva um produto
Exige `products:write` e a permissão de desabilitar em Gestão de Produtos. Desativa sem apagar; para reativar, POST /products/{product}/activate. Idempotente.
200 Produto arquivado401 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/products/{product}/activate
Reativa um produto arquivado
Exige `products:write` e a permissão de desabilitar em Gestão de Produtos (a mesma do arquivar). O contrário do DELETE; idempotente.
200 Produto ativo401 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/products/{product}/digital-files
Lista os arquivos digitais do produto
Exige `products:read`. Drivers, softwares e manuais da aba Arquivos, na ordem do produto. O link de download não sai na API: o arquivo é entregue ao cliente pela loja.
Parâmetros
Nome
Local
Obrigatório
Descrição
product
path
Sim
—
status
query
Não
true só ativos, false só desativados; sem o filtro, todos.
200 Arquivos do produto401 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/products/{product}/digital-files
Envia um arquivo digital para o produto
Exige `products:write` e a permissão de editar em Gestão de Produtos. multipart/form-data com o arquivo em `file` (até 50 MB) e os dados da aba Arquivos. Vai para a pasta do produto; um arquivo com o mesmo nome substitui o anterior na pasta. Tipo sem aba de arquivos (embalagem) recusa. Idempotente (envie um Idempotency-Key).
Parâmetros
Nome
Local
Obrigatório
Descrição
product
path
Sim
—
Idempotency-Key
header
Sim
Identificador ú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.
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ú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
PATCH/api/v1/product-digital-files/{digitalFile}
Edita os dados de um arquivo digital
Exige `products:write` e a permissão de editar em Gestão de Produtos. Edição parcial dos dados; o arquivo em si não muda (para trocar, envie um novo e desative o antigo).
200 Arquivo 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
DELETE/api/v1/product-digital-files/{digitalFile}
Desativa um arquivo digital
Exige `products:write` e a permissão de editar em Gestão de Produtos. Desativa sem apagar do armazenamento; idempotente.
200 Arquivo desativado401 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/operational-systems
Lista os sistemas operacionais
Exige `products:read`. Use o `id` em `operational_system_id` dos arquivos digitais.
200 Sistemas operacionais ativos401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
GET/api/v1/products/{product}/key-codes
Resumo dos códigos de um produto chave
Exige `key-codes:read` e a permissão de ver em Gestão de Chaves/Códigos. Só as contagens: os códigos nunca saem na API.
200 Resumo dos códigos401 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/products/{product}/key-codes
Carrega códigos num produto chave
Exige `key-codes:write` e a permissão de criar em Gestão de Chaves/Códigos. Só produto ativo do tipo chave-codigo. Linhas vazias são ignoradas; um código repetido na lista ou já cadastrado em qualquer produto recusa a carga inteira (a mensagem lista os repetidos). Idempotente (envie um Idempotency-Key).
Parâmetros
Nome
Local
Obrigatório
Descrição
product
path
Sim
—
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
codes
array<string>
Sim
—
type_key
integer
Sim
1 Classe S (a própria chave reativa), 2 Classe C (guardar o código de recuperação), 3 uso único. Valores: 1, 2, 3.
description
string | null
Não
Observação gravada em todos os códigos da carga. Até 255 caracteres.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/products/{product}/key-codes" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Códigos carregados401 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/products/{product}/stock
Saldo do produto por loja
Exige `stock:read`, o módulo Estoque e a permissão de ver em Gestão de Estoque. Estoque principal de cada loja do usuário responsável. `physical` (o que está na prateleira) é o número a enviar em `expected_quantity` na correção. Só produto físico, matéria-prima ou embalagem.
200 Saldo por loja401 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/products/{product}/stock-corrections
Corrige o saldo do produto numa loja
Exige `stock:write`, o módulo Estoque e a permissão Gerenciar estoque em Gestão de Estoque. Mesma regra da tela de correção: motivo com pelo menos 50 caracteres, `expected_quantity` igual ao físico atual (se o saldo mudou desde a leitura, responde 409 e nada é gravado, o que também evita aplicar a mesma correção duas vezes), bloqueio enquanto houver pedido segurando o produto na loja e seriais das unidades que saem quando o produto controla serial. Os administradores recebem o aviso, como no painel.
Parâmetros
Nome
Local
Obrigatório
Descrição
product
path
Sim
—
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
store_id
integer
Sim
—
expected_quantity
number
Sim
O physical lido no GET /products/{product}/stock.
counted_quantity
number
Sim
Quanto há na prateleira depois da contagem.
reason
string
Sim
Até 1000 caracteres.
serials
array<string>
Não
Seriais das unidades que saem, quando o produto controla serial.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/products/{product}/stock-corrections" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Saldo corrigido401 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/products/{product}/stock-limits
Define o estoque mínimo e máximo numa loja
Exige `stock:write`, o módulo Estoque e a permissão Gerenciar estoque em Gestão de Estoque. Máximo zero desliga a reposição; ligado, não pode ficar abaixo do mínimo. Respeita a precisão da unidade.
Parâmetros
Nome
Local
Obrigatório
Descrição
product
path
Sim
—
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
store_id
integer
Sim
—
minimum
number
Sim
—
maximum
number
Sim
Zero desliga a reposição.
Exemplo
cURL
curl -X PUT "$MICORE_BASE_URL/products/{product}/stock-limits" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Limites gravados401 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
Catálogo
GET/api/v1/product-categories
Lista as categorias de produto
Exige o escopo `product-categories:read`. Use para descobrir o `category_id` ao criar ou editar um produto.
200 Página de categorias401 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/product-categories
Cria uma categoria de produto
Exige `product-categories:write` e a permissão de criar em Categorias. Criação idempotente (envie um Idempotency-Key).
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
name
string
Sim
Até 255 caracteres.
status
boolean | null
Não
—
parent_id
integer | null
Não
Categoria pai (precisa existir).
url
string | null
Não
Até 255 caracteres.
description
string | null
Não
—
meta_title
string | null
Não
Até 255 caracteres.
meta_description
string | null
Não
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/product-categories" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Categoria criada401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente409 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
200 Categoria encontrada401 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/product-categories/{productCategory}
Atualiza uma categoria de produto
Exige `product-categories:write` e a permissão de editar em Categorias.
200 Categoria 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
200 Categoria desativada401 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/brands
Lista as marcas
Exige o escopo `brands:read`. Use para descobrir o `brand_id` ao criar ou editar um produto.
200 Página de marcas401 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/brands
Cria uma marca
Exige `brands:write` e a permissão de criar em Marcas e Submarcas. Criação idempotente (envie um Idempotency-Key).
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
name
string
Sim
Até 255 caracteres.
status
boolean | null
Não
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/brands" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Marca criada401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente409 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
200 Marca encontrada401 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/brands/{brand}
Atualiza uma marca
Exige `brands:write` e a permissão de editar em Marcas e Submarcas.
200 Marca 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
DELETE/api/v1/brands/{brand}
Desativa uma marca
Exige `brands:write` e a permissão de desabilitar em Marcas e Submarcas. Desativa sem apagar; reativar é pelo painel. Idempotente.
200 Marca desativada401 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/sub-brands
Lista as submarcas
Exige o escopo `brands:read`. Submarcas são as linhas de uma marca (ex.: EcoTank, WorkForce) e aparecem no `sub_brand` dos modelos de impressora.
200 Página de submarcas401 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/sub-brands
Cria uma submarca
Exige `brands:write` e a permissão de criar em Marcas e Submarcas. Nome único. Idempotente (envie um Idempotency-Key).
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
name
string
Sim
Até 255 caracteres.
status
boolean | null
Não
—
brand_ids
array<integer>
Não
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/sub-brands" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Submarca criada401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente409 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
200 Submarca encontrada401 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/sub-brands/{subBrand}
Atualiza uma submarca
Exige `brands:write` e a permissão de editar em Marcas e Submarcas. Edição parcial; `brand_ids` enviado substitui a lista de marcas.
200 Submarca 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
DELETE/api/v1/sub-brands/{subBrand}
Desativa uma submarca
Exige `brands:write` e a permissão de desabilitar em Marcas e Submarcas. Desativa sem apagar; idempotente.
200 Submarca desativada401 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/product-attributes
Lista os atributos da ficha técnica
Exige o escopo `product-attributes:read`. Cada atributo vem com as opções (nos de escolha). Use o `id` do atributo e, em radio e checkbox, o `id` da opção em `attributes[]` do produto.
200 Página de atributos401 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/product-attributes
Cria um atributo da ficha técnica
Exige `product-attributes:write` e a permissão de criar em Atributos Personalizados. Nome único. No tipo number_unit, `allowed_units` lista as unidades (a primeira é a padrão). Idempotente (envie um Idempotency-Key).
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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.
curl -X POST "$MICORE_BASE_URL/product-attributes" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Atributo criado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente409 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
200 Atributo encontrado401 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
200 Atributo 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
Exige `product-attributes:write` e a permissão de desabilitar em Atributos Personalizados. Desativa sem apagar; os valores já gravados nos produtos ficam, mas o atributo deixa de ser aceito em novas gravações. Idempotente.
200 Atributo desativado401 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
Exige `product-attributes:write` e a permissão de criar em Atributos Personalizados. Só atributos radio ou checkbox têm opções. Idempotente (envie um Idempotency-Key).
Parâmetros
Nome
Local
Obrigatório
Descrição
productAttribute
path
Sim
—
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
name
string
Sim
Até 255 caracteres.
status
boolean | null
Não
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/product-attributes/{productAttribute}/options" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Opção criada401 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
Exige `product-attributes:write` e a permissão de editar em Atributos Personalizados. Nome e status; desligada, a opção deixa de ser aceita em novas gravações.
200 Opção 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/units
Lista as unidades de medida
Exige o escopo `units:read`. Use para descobrir o `unit_id` ao criar ou editar um produto.
200 Página de unidades401 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
200 Unidade encontrada401 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/printer-models
Lista os modelos de impressora
Exige o escopo `printer-models:read`. Use para descobrir o `printer_model_id` ao gravar a compatibilidade de um produto (`printer_model_id`) ou antes de cadastrar um modelo, para não repetir um que já existe (busque pelo nome com `search`).
200 Página de modelos401 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/printer-models
Cadastra um modelo de impressora
Exige `printer-models:write` e a permissão de criar em Modelos. Criação idempotente (envie um Idempotency-Key). Usa a mesma regra do painel - não pode existir outro modelo ativo com o mesmo tipo de equipamento, marca, submarca e nome (422). Descubra a marca em `GET /brands`, a submarca no `sub_brand` de um modelo já cadastrado e o tipo de equipamento em `GET /equipment-types`.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
name
string
Sim
Até 255 caracteres.
brand_id
integer
Sim
Marca (GET /brands).
sub_brand_id
integer | null
Não
Submarca (ex.: WorkForce, EcoTank).
type_equipment_id
integer | null
Não
Tipo de equipamento (GET /equipment-types).
partnumber
string | null
Não
Até 255 caracteres.
size
string | null
Não
Até 20 caracteres.
maintenance
boolean | null
Não
Faz manutenção (padrão: sim).
why_not
string | null
Não
Motivo de não fazer manutenção.
is_generic
boolean | null
Não
—
capabilities
object | null
Não
Situação de cada ferramenta do app da loja (padrão: untested).
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/printer-models" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Modelo cadastrado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente409 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/printer-models/{printerModel}
Exibe um modelo de impressora
Exige o escopo `printer-models:read`. Traz a marca e a submarca.
200 Modelo encontrado401 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/printer-models/{printerModel}
Edita um modelo de impressora
Exige `printer-models:write` e a permissão de editar em Modelos. Edição parcial - só os campos enviados mudam. Recusa (422) quando o modelo passaria a ter a mesma combinação de outro modelo ativo.
200 Modelo 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
DELETE/api/v1/printer-models/{printerModel}
Desativa um modelo de impressora
Exige `printer-models:write` e a permissão de desabilitar em Modelos. Desativa sem apagar (a compatibilidade dos produtos continua gravada); reativar é pelo painel. Idempotente.
200 Modelo desativado401 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
Suppliers
GET/api/v1/suppliers
Lista os fornecedores
Exige o escopo `suppliers:read` e a permissão de ver em Fornecedores.
200 Página de fornecedores401 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/suppliers
Cadastra um fornecedor
Exige `suppliers:write` e a permissão de criar em Fornecedores. Criação idempotente (envie um Idempotency-Key). O nome é único (422 quando já existe).
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
name
string
Sim
Até 255 caracteres.
name_pj
string | null
Não
Até 255 caracteres.
cnpj
string | null
Não
Até 255 caracteres.
ie
string | null
Não
Até 255 caracteres.
phone_1
string | null
Não
Até 255 caracteres.
phone_2
string | null
Não
Até 255 caracteres.
email
string | null (email)
Não
—
instagram
string | null
Não
Até 255 caracteres.
description
string | null
Não
Até 255 caracteres.
seller_name
string | null
Não
Até 255 caracteres.
seller_email
string | null (email)
Não
—
seller_phone
string | null
Não
Até 255 caracteres.
street
string | null
Não
Até 255 caracteres.
number
string | null
Não
Até 255 caracteres.
complement
string | null
Não
Até 255 caracteres.
neighborhood
string | null
Não
Até 255 caracteres.
city_id
integer | null
Não
—
state_id
integer | null
Não
—
country_id
integer | null
Não
—
zip
string | null
Não
Até 255 caracteres.
observations
string | null
Não
—
status
boolean | null
Não
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/suppliers" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Fornecedor cadastrado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente409 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
200 Fornecedor encontrado401 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/suppliers/{supplier}
Edita um fornecedor
Exige `suppliers:write` e a permissão de editar em Fornecedores. Edição parcial - só os campos enviados mudam.
200 Fornecedor 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
DELETE/api/v1/suppliers/{supplier}
Desativa um fornecedor
Exige `suppliers:write` e a permissão de desabilitar em Fornecedores. Desativa sem apagar; reativar é pelo painel. Idempotente.
200 Fornecedor desativado401 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
Service Orders
GET/api/v1/service-order-options
Lista opções para abrir uma ordem de serviço
Retorna as lojas acessíveis ao responsável, equipamentos do cliente e tipos de serviço compatíveis com os filtros.
Parâmetros
Nome
Local
Obrigatório
Descrição
client_id
query
Não
Carrega somente os equipamentos deste cliente.
store_id
query
Não
Carrega tipos de serviço desta loja acessível.
equipment_id
query
Não
Restringe os tipos de serviço ao tipo do equipamento.
200 Opções válidas para a abertura401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente422 Dados inválidos
GET/api/v1/service-orders
Lista ordens de serviço
Lista as ordens de serviço das lojas que o usuário responsável pela credencial acessa (o administrador geral vê todas), como a listagem do painel. Exige `service-orders:read` e Gestão de OS (ver).
200 Página de ordens de serviço401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente
POST/api/v1/service-orders
Cria um rascunho de ordem de serviço
Cria somente a abertura da OS. Não avança para triagem e não ignora checklists dinâmicos.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
store_id
integer
Sim
—
client_id
integer | null
Não
—
equipment_id
integer | null
Não
Deve pertencer ao cliente informado.
service_type_id
integer | null
Não
Deve pertencer à loja e atender o tipo do equipamento.
return
boolean | null
Não
—
budget_pre_approved
number | null
Não
—
tag_id
integer | null
Não
—
priority_reason
string | null
Não
Até 500 caracteres.
responsible_technician_id
integer | null
Não
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/service-orders" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Rascunho criado ou reapresentado pela mesma chave idempotente401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente409 Chave em processamento ou reutilizada com outro conteúdo422 Dados inválidos
200 Ordem de serviço encontrada401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado
PATCH/api/v1/service-orders/{serviceOrder}
Edita uma ordem de serviço
Edição parcial em qualquer etapa, como a tela da OS; o campo omitido fica como está. O status não muda por aqui (use as ações). Trocar o tipo de serviço zera as respostas de abertura e de análise. Exige `service-orders:write` e Gestão de OS (editar). OS fora das lojas do usuário responde 404.
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
store_id
integer
Não
—
client_id
integer | null
Não
—
equipment_id
integer | null
Não
Deve pertencer ao cliente informado.
service_type_id
integer | null
Não
Deve pertencer à loja e atender o tipo do equipamento.
200 Rascunho atualizado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos
200 Formulário de abertura da OS401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos
Salva um rascunho das respostas sem exigir campos obrigatórios e sem avançar a OS. Só as perguntas enviadas mudam; as não enviadas mantêm a resposta salva.
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
answers
object
Não
Respostas indexadas pelo id numérico da pergunta. Valores podem ser simples ou listas.
answers_files
object
Não
Arquivos indexados pelo id da pergunta; use multipart/form-data.
Exemplo
cURL
curl -X PUT "$MICORE_BASE_URL/service-orders/{serviceOrder}/opening-form" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Respostas salvas401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos
Valida as respostas obrigatórias do checklist configurado e move a OS para triagem.
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
answers
object
Não
Respostas indexadas pelo id numérico da pergunta. Valores podem ser simples ou listas.
answers_files
object
Não
Arquivos indexados pelo id da pergunta; use multipart/form-data.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/service-orders/{serviceOrder}/complete-opening" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Ordem de serviço enviada para triagem401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos
GET/api/v1/service-order-impediment-reasons
Lista os motivos de impedimento
Motivos aceitos ao informar um impedimento pelo Cockpit, pelo app ou pela API. Exige `service-orders:read` e Gestão de OS (ver).
200 Motivos de impedimento401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST/api/v1/service-orders/status
Troca o status de várias OS de uma vez
Mesma troca em massa da listagem do painel. Exige `service-orders:operate` e Gestão de OS (editar). Só as OS das lojas do usuário entram; se alguma tiver pedido gerado ou chave vista sem modelo e serial, o lote inteiro é recusado com 422. OS já no status escolhido não contam.
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
service_order_ids
array<integer>
Sim
—
status_id
integer
Sim
Status ativo de OS.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/service-orders/status" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Quantidade de OS alteradas401 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
Mesma cópia do botão Duplicar do painel. Exige `service-orders:write` e Gestão de OS (editar). A cópia nasce em abertura, sem equipamento, formulários, orçamento, pedido, técnico nem conclusão, com o usuário da credencial como gerente.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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.
201 Cópia 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ú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/service-orders/{serviceOrder}/priority
Define prioridade e motivo
Substitui os dois campos do modal de prioridade (envie os dois; `null` limpa). Exige `service-orders:write` e Gestão de OS (editar). A etiqueta precisa estar ativa. O prazo da OS é o `ready_at`, gravado em `PUT /service-orders/{serviceOrder}/ready-at`.
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
tag_id
integer | null
Sim
Etiqueta de prioridade ativa.
priority_reason
string | null
Sim
Até 500 caracteres.
Exemplo
cURL
curl -X PUT "$MICORE_BASE_URL/service-orders/{serviceOrder}/priority" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Prioridade gravada401 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/service-orders/{serviceOrder}/ready-at
Define ou altera o "Pronta em"
Data e hora em que a OS fica pronta, garantidas ao cliente (ISO 8601 com fuso). Precisa ser no futuro. Alterar um prazo já definido exige `reason`. Toda definição ou alteração fica no histórico da OS. Repetir o mesmo prazo não grava de novo. Exige `service-orders:write` e Gestão de OS (editar).
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
ready_at
string (date-time)
Sim
Data e hora de pronta (ISO 8601 com fuso), no futuro.
reason
string | null
Não
Obrigatório ao alterar um prazo já definido. Até 500 caracteres.
Exemplo
cURL
curl -X PUT "$MICORE_BASE_URL/service-orders/{serviceOrder}/ready-at" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Prazo 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
POST/api/v1/service-orders/{serviceOrder}/status
Troca manualmente o status da OS
Mesmo seletor de status da tela da OS. Exige `service-orders:operate` e Gestão de OS (editar). OS com pedido gerado mantém o status (409 `invalid_transition`); chave vista sem modelo e serial recusa a troca (422).
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
status_id
integer
Sim
Status ativo de OS.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/service-orders/{serviceOrder}/status" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Status alterado401 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/service-orders/{serviceOrder}/triage
Designa o técnico e tira a OS da triagem
Exige `service-orders:operate` e Gestão de OS (ver). `budget` leva a orçamento, `review` a análise técnica e `direct_approved` a serviço em andamento. Só em triagem (`em_triagem`); fora dela, 409 `invalid_transition`.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
technician_id
integer
Sim
—
next_step
string
Sim
Valores: budget, review, direct_approved.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/service-orders/{serviceOrder}/triage" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 OS designada401 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
Mesmo botão "Enviar para aprovação" da tela da OS: grava o texto, quem enviou e quando, e move a OS para aguardando aprovação. Exige `service-orders:operate` e Gestão de OS (ver).
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
text
string | null
Não
Texto do orçamento enviado ao cliente.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/service-orders/{serviceOrder}/budget/submit" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Orçamento 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
Mesmos botões da tela da OS. Em `orcamento` só cabe `orcamento_realizado`; em `orcamento_realizado`, `aguardando_cliente` (pausa o prazo) ou a resposta do cliente; em `aguardando_cliente`, `aprovado`, `reprovado`, `sem_custo` ou `sem_conserto`. Recusas levam a OS para retirada. `aprovado` e `sem_custo` gravam o "Pronta em" com histórico: o `ready_at` enviado (ISO 8601 com fuso, no futuro; no passado, 422) ou, sem ele, o calculado pelo prazo de entrega (`ready_estimate`: o da OS ou o padrão do tipo de serviço). Sem os dois, a OS é aprovada sem prazo e fica com `is_missing_ready_at`. Vale também para OS com pedido vinculado. As respostas possíveis agora estão em `budget.available_decisions` do detalhe. Fora delas, 409 `invalid_transition`. Exige `service-orders:operate` e Gestão de OS (ver).
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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.
Opcional em `aprovado` e `sem_custo`: data e hora de pronta (ISO 8601 com fuso), no futuro. Sem ele, vale o calculado pelo prazo de entrega.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/service-orders/{serviceOrder}/budget/decision" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Resposta 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/service-orders/{serviceOrder}/start
Pega o serviço aprovado
"Pegar serviço" do Cockpit: `orcamento_aprovado` passa para `servico_em_andamento` (repetir numa OS já em andamento não muda nada). Exige `service-orders:operate` e Cockpit do Técnico (ver); só o técnico responsável ou o gestor do Cockpit nas lojas da OS age, os demais recebem 404. OS com impedimento aberto ou em outra etapa: 409.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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.
200 Serviço aceito401 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
Registra o motivo (e a descrição, obrigatória em `other`) sem mudar o status; a OS sai da fila do técnico até o gestor liberar e o registro entra nas observações internas. Só nas etapas de execução e com um impedimento aberto por vez (409). Mesma regra de acesso do Cockpit. Exige `service-orders:operate` e Cockpit do Técnico (ver).
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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.
Obrigatório quando o motivo é `other`. Até 1000 caracteres.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/service-orders/{serviceOrder}/impediments" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Impedimento registrado401 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
Fecha o impedimento e devolve a OS para a fila pela mesma ordenação. Exige `service-orders:operate` e Cockpit do Técnico (gerenciar cockpit). Sem impedimento aberto: 409.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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.
200 Impedimento liberado401 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
Grava o texto e o checklist de análise do tipo de serviço (`answers`, indexado pelo id da pergunta, e `answers_files` para perguntas de arquivo) e avança para orçamento ou execução conforme o tipo de serviço. Com `finish_service`, grava também o checklist de finalização (`closing_answers`) e encerra o serviço. Só em `analise_tecnica` (409). Perguntas obrigatórias e visibilidade seguem o formulário (422). Mesma regra de acesso do Cockpit. Exige `service-orders:operate` e Cockpit do Técnico (ver).
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
text
string
Sim
Texto da análise técnica.
answers
object
Não
Checklist de análise, indexado pelo id da pergunta.
answers_files
object
Não
Arquivos do checklist de análise (multipart).
finish_service
boolean
Não
Encerra o serviço junto da análise.
closing_answers
object
Não
Checklist de finalização, quando `finish_service`.
closing_answers_files
object
Não
Arquivos do checklist de finalização (multipart).
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/service-orders/{serviceOrder}/analysis" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Análise 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
Com checklist de finalização no tipo de serviço, envie as respostas em `answers`/`answers_files`. Vai para `preparar_envio` quando há checklist de envio, senão para `servico_finalizado`. Recusa com impedimento aberto ou fora de `servico_em_andamento` (409) e com chave vista sem modelo e serial (422). Mesma regra de acesso do Cockpit. Exige `service-orders:operate` e Cockpit do Técnico (ver).
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
answers
object
Não
Respostas indexadas pelo id numérico da pergunta. Valores podem ser simples ou listas.
answers_files
object
Não
Arquivos das perguntas do tipo arquivo, indexados pelo id da pergunta (multipart).
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/service-orders/{serviceOrder}/finish-service" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Serviço finalizado401 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
Só em `preparar_envio` e com o checklist de envio do tipo de serviço respondido (`answers`/`answers_files`); a OS passa para `disponivel_para_retirada`. Mesma regra de acesso do Cockpit. Exige `service-orders:operate` e Cockpit do Técnico (ver).
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
answers
object
Não
Respostas indexadas pelo id numérico da pergunta. Valores podem ser simples ou listas.
answers_files
object
Não
Arquivos das perguntas do tipo arquivo, indexados pelo id da pergunta (multipart).
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/service-orders/{serviceOrder}/finish-shipping" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 OS disponível para retirada401 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
Mesmo botão da tela da OS. Exige `service-orders:operate` e Gestão de OS (ver).
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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.
200 OS disponível para retirada401 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
Mesmo botão da tela da OS: a OS passa para `retirado`. Exige `service-orders:operate` e Gestão de OS (ver).
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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.
200 OS retirada401 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
200 Observações internas401 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
Exige `service-orders:write` e Gestão de OS (ver), como na tela da OS.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
text
string
Sim
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/service-orders/{serviceOrder}/observations" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Observação 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ú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
200 Histórico de status401 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
Perguntas do checklist de análise, finalização ou envio configurado no tipo de serviço, com as respostas já salvas na OS. `data` vem `null` quando o tipo de serviço não tem esse checklist. Exige `service-orders:read` e Gestão de OS (ver).
200 Checklist com respostas401 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/service-orders/{serviceOrder}/files
Lista os arquivos da OS
Anexos manuais ativos e arquivos enviados nos checklists (abertura, análise, finalização e envio), do mais recente para o mais antigo, com link temporário de 60 minutos. Exige `service-orders:read` e Gestão de OS (ver).
200 Arquivos da OS401 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/service-orders/{serviceOrder}/files
Envia um anexo
Envia o arquivo para a pasta da OS no armazenamento. Exige `service-orders:write` e Gestão de OS (criar), como na tela de arquivos.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
file
string (binary)
Sim
Até 50 MB.
comment
string | null
Não
Até 255 caracteres.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/service-orders/{serviceOrder}/files" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Anexo 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
Desativa o anexo manual da OS (arquivos de checklist saem pelo checklist). Anexo de outra OS ou já removido: 404. Exige `service-orders:write` e Gestão de OS (criar).
204 Anexo 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
GET/api/v1/service-orders/{serviceOrder}/inputs
Lista os insumos da OS
Produtos de estoque usados no serviço, ativos e estornados. Liberado para Gestão de OS (ver) e para o técnico da OS pelo Cockpit. Exige `service-orders:read`.
200 Insumos401 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/service-orders/{serviceOrder}/inputs
Lança um insumo
Baixa o estoque da loja da OS na hora. Liberado para Gestão de OS (editar) e para o técnico da OS pelo Cockpit; OS retirada não muda (409). Estoque insuficiente ou produto fora do estoque físico: 422. Exige `service-orders:write`.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
product_id
integer
Sim
Produto de estoque físico.
quantity
number | null
Não
Padrão 1, no passo da unidade do produto.
notes
string | null
Não
Até 1000 caracteres.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/service-orders/{serviceOrder}/inputs" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Insumo lançado401 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
Produtos de estoque físico com o saldo da loja da OS e o passo de quantidade da unidade. Mesma busca da tela da OS e do Cockpit. Exige `service-orders:read`.
200 Produtos encontrados401 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
Edição parcial: envie `quantity` e/ou `notes`; o que não vier fica como está. O estoque é ajustado pela diferença. Mesmo acesso do lançamento. Exige `service-orders:write`.
200 Insumo ajustado401 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
Devolve a quantidade ao estoque e mantém o insumo no histórico como estornado. Mesmo acesso do lançamento. Exige `service-orders:write`.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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.
200 Insumo estornado401 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
Pedidos do mesmo cliente e loja da OS, mais recentes primeiro, com os itens (componentes de kit agrupados no kit) e se cada item ainda está livre. Exige `service-orders:read` e Gestão de OS (ver).
200 Pedidos do cliente401 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/service-orders/{serviceOrder}/order
Vincula um pedido existente
Vincula o pedido e os itens escolhidos; quantidade parcial destaca a fração em uma linha nova (o desconto é rateado). Kit leva os componentes junto e só aceita unidade inteira. OS já vinculada: 409. Pedido de outro cliente ou loja, item ocupado ou quantidade inválida: 422. Exige `service-orders:operate` e Gestão de OS (ver).
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
order_id
integer
Sim
—
items
array<object>
Sim
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/service-orders/{serviceOrder}/order" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Pedido vinculado401 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/service-orders/{serviceOrder}/order
Remove o vínculo com o pedido
Os itens deixam a OS e ficam só no pedido. OS sem pedido: 404. Exige `service-orders:operate` e Gestão de OS (ver).
200 Vínculo 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
Cria o pedido com os itens da OS e propaga para ele as chaves e acessos já liberados; se a OS já tem pedido, devolve a OS com ele. OS sem itens: 422. Exige `service-orders:operate` e Gestão de OS (ver).
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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.
200 Pedido gerado401 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/service-orders/{serviceOrder}/keys
Lista as chaves liberadas
Chaves dos itens da OS (ou do pedido vinculado), sem o valor, com quem viu e as informações de uso. Exige `service-orders:read` e Gestão de OS (ver).
200 Chaves liberadas401 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
Devolve o valor da chave e registra o usuário da credencial como quem viu (a primeira visualização é a que fica). Chave de outra OS: 404. Exige `service-orders:keys` e Gestão de OS (ver).
200 Chave revelada401 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
Substitui modelo, serial e informação adicional da chave. Só depois de a chave ser vista (409). Exige `service-orders:keys` e Gestão de OS (ver).
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
model_id
integer
Sim
Modelo de impressora.
serial
string
Sim
Até 25 caracteres.
info_add
string | null
Não
Até 100 caracteres.
recovery_code
string | null
Não
Até 600 caracteres.
Exemplo
cURL
curl -X PUT "$MICORE_BASE_URL/service-orders/{serviceOrder}/keys/{key}/usage" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Uso registrado401 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
Mesma liberação do botão da tela da OS: com pedido vinculado, pelo fluxo do pedido; sem pedido, direto nos itens da OS. Produtos que ficaram sem chave em estoque voltam em `meta.pending_products`. OS em triagem, análise técnica ou orçamento (orçamento ainda não realizado) recebe 409 `invalid_transition` e nada é liberado. Exige `service-orders:keys` e Gestão de OS (liberar itens).
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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.
200 Liberação feita401 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
Entrega a chave informada ao item da OS que ainda espera chave do mesmo produto. Chave indisponível ou sem item esperando: 422. OS em triagem, análise técnica ou orçamento (orçamento ainda não realizado): 409 `invalid_transition`. Exige `service-orders:keys`, Gestão de OS (liberar itens) e que o usuário responsável pela credencial seja o administrador geral; outro usuário recebe 403 `permission_denied`.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
key_id
integer
Sim
Chave disponível do produto do item.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/service-orders/{serviceOrder}/release-key" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Chave liberada401 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/service-orders/{serviceOrder}/items
Lista os itens do orçamento da OS
Exige `service-orders:read` e a permissão Gestão de OS (ver). Produtos e serviços cobrados na OS, na ordem em que entraram. Componentes de kit aparecem como linhas próprias, com `is_kit_component` e o `kit_product` de origem; a linha do kit vem com preço zero, porque o valor fica na composição.
200 Itens da OS401 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/service-orders/{serviceOrder}/items
Adiciona um produto ao orçamento da OS
Exige `service-orders:write`, a permissão Gestão de OS (editar) e, como na tela da OS, que grava pelas rotas de Pedidos, também o módulo Pedidos com a permissão Gestão de Pedidos (editar). Criação idempotente (envie um Idempotency-Key). Mesma regra da tela: o preço vem do cadastro do produto (faixa por quantidade, preço de revenda para revendedores, moeda do cliente), kit grava os componentes da composição e produto físico reserva estoque na loja da OS (sob demanda manda a falta para a produção). Se o produto já está na OS, a quantidade é somada à linha existente; envie `increment: false` para definir a quantidade final. Sem estoque responde 422 e nada é gravado. OS com pedido vinculado responde 409 `invalid_transition`.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
product_id
integer
Sim
Produto ou serviço a cobrar na OS.
quantity
number
Não
Quantidade no passo de venda do produto (padrão 1; kit sempre inteiro).
increment
boolean
Não
Com o produto já na OS, soma a quantidade à linha existente; false define a quantidade final. Padrão: true.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/service-orders/{serviceOrder}/items" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Item adicionado (ou a linha do produto atualizada), ou reapresentado pela mesma chave idempotente com o cabeçalho `Idempotency-Replayed`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
Exige `service-orders:write`, Gestão de OS (editar) e Gestão de Pedidos (editar), como na tela. Edição parcial: só os campos enviados mudam. Trocar a quantidade refaz a composição do kit e a reserva de estoque; preço, preço original e desconto por unidade que não vierem continuam como estavam (o desconto por unidade é regravado na nova quantidade). Regras da tela: o desconto por unidade não passa do preço unitário, o preço original não fica abaixo do preço e componente de kit só muda pelo kit. `price_original: null` remove o preço original. OS com pedido vinculado responde 409 `invalid_transition`.
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
quantity
number
Não
—
price
number
Não
Preço unitário aplicado.
price_original
number
Não
Preço unitário "de"; null remove.
unit_discount
number
Não
Desconto por unidade; não pode passar do preço unitário.
200 Item 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
Exige `service-orders:write`, Gestão de OS (editar) e Gestão de Pedidos (editar). Apaga a linha (kit leva os componentes) e libera a reserva de estoque. Item com chave já liberada não pode ser removido (422). Componente de kit só sai pelo kit. OS com pedido vinculado responde 409 `invalid_transition`.
204 Item removido401 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/service-order-statuses
Lista status de OS
Exige `service-orders:read` e a permissão Status de OS (ver). O nome é único: repetir responde 422 no campo `name`.
Parâmetros
Nome
Local
Obrigatório
Descrição
search
query
Não
Busca pelo nome.
status
query
Não
`true` só os ativos; `false` só os desativados. Sem o filtro, todos.
200 Página de status de OS401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente429 Cota por minuto da credencial excedida
POST/api/v1/service-order-statuses
Cadastra status de OS
Exige `service-orders:settings` e a permissão Status de OS (criar). Mesma regra da tela; a mesma `Idempotency-Key` com o mesmo corpo devolve o cadastro original com `Idempotency-Replayed: true`.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
name
string
Sim
Até 255 caracteres.
progress
string
Sim
Valores: Em andamento, Concluído.
color
string
Sim
Até 20 caracteres.
show_technician
boolean
Não
—
show_in_delivery_queue
boolean
Não
—
pauses_deadline
boolean
Não
—
allow_internal_observations
boolean
Não
—
manage_order
boolean
Não
—
allow_edit_budget
boolean
Não
—
generate_commission
boolean
Não
—
description
string | null
Não
—
public_description
string | null
Não
—
email_id
integer | null
Não
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/service-order-statuses" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Status de os cadastrado (ou reapresentado pela mesma chave idempotente)401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente409 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 excedida
GET/api/v1/service-order-statuses/{statusId}
Consulta status de OS
Exige `service-orders:read` e a permissão Status de OS (ver).
200 Status de os encontrado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado
PATCH/api/v1/service-order-statuses/{statusId}
Edita status de OS
Exige `service-orders:settings` e a permissão Status de OS (editar). Edição parcial: campo omitido fica como está.
200 Status de os 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 excedida
200 Situação aplicada401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida
Exige `service-orders:settings` e a permissão Status de OS (desabilitar). Desliga o cadastro e registra quem arquivou. Repetir em um já desativado não muda nada.
200 Situação aplicada401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida
GET/api/v1/service-types
Lista tipos de serviço
Exige `service-orders:read` e a permissão Tipos de Serviço (ver). Mostra só os tipos das lojas do usuário (administrador geral vê todas).
Parâmetros
Nome
Local
Obrigatório
Descrição
search
query
Não
Busca pelo nome.
status
query
Não
`true` só os ativos; `false` só os desativados. Sem o filtro, todos.
200 Página de tipos de serviço401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente429 Cota por minuto da credencial excedida
POST/api/v1/service-types
Cadastra tipo de serviço
Exige `service-orders:settings` e a permissão Tipos de Serviço (criar). Mesma regra da tela; a mesma `Idempotency-Key` com o mesmo corpo devolve o cadastro original com `Idempotency-Replayed: true`.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
name
string
Sim
Até 255 caracteres.
store_id
integer
Sim
Loja entre as do usuário da credencial.
equipment_type_id
integer
Sim
—
opening_form_id
integer | null
Não
—
technical_form_id
integer | null
Não
—
closing_form_id
integer | null
Não
—
shipping_form_id
integer | null
Não
—
requires_budget
boolean
Não
Padrão `true` no cadastro.
has_warranty
boolean
Não
—
warranty_days
integer | null
Não
—
warranty_description
string | null
Não
Até 2000 caracteres.
has_deadline
boolean
Não
—
deadline_days
integer | null
Não
—
deadline_description
string | null
Não
Até 2000 caracteres.
ready_in_days
integer | null
Não
Prazo de entrega padrão, em dias úteis depois da aprovação (0 = no mesmo dia; até 90).
ready_until
string | null
Não
Hora do prazo de entrega padrão (HH:MM, fuso do cliente).
printer_model_ids
array<integer>
Não
Modelos de impressora ativos do tipo de equipamento (ou do tipo pai). Enviado, substitui a lista inteira.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/service-types" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Tipo de serviço cadastrado (ou reapresentado pela mesma chave idempotente)401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente409 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 excedida
GET/api/v1/service-types/{serviceTypeId}
Consulta tipo de serviço
Exige `service-orders:read` e a permissão Tipos de Serviço (ver).
200 Tipo de serviço encontrado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado
PATCH/api/v1/service-types/{serviceTypeId}
Edita tipo de serviço
Exige `service-orders:settings` e a permissão Tipos de Serviço (editar). Edição parcial: campo omitido fica como está.
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
name
string
Não
Até 255 caracteres.
store_id
integer
Não
Loja entre as do usuário da credencial.
equipment_type_id
integer
Não
—
opening_form_id
integer | null
Não
—
technical_form_id
integer | null
Não
—
closing_form_id
integer | null
Não
—
shipping_form_id
integer | null
Não
—
requires_budget
boolean
Não
Padrão `true` no cadastro.
has_warranty
boolean
Não
—
warranty_days
integer | null
Não
—
warranty_description
string | null
Não
Até 2000 caracteres.
has_deadline
boolean
Não
—
deadline_days
integer | null
Não
—
deadline_description
string | null
Não
Até 2000 caracteres.
ready_in_days
integer | null
Não
Prazo de entrega padrão, em dias úteis depois da aprovação (0 = no mesmo dia; até 90).
ready_until
string | null
Não
Hora do prazo de entrega padrão (HH:MM, fuso do cliente).
printer_model_ids
array<integer>
Não
Modelos de impressora ativos do tipo de equipamento (ou do tipo pai). Enviado, substitui a lista inteira.
200 Tipo de serviço 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 excedida
200 Situação aplicada401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida
Exige `service-orders:settings` e a permissão Tipos de Serviço (desabilitar). Desliga o cadastro e registra quem arquivou. Repetir em um já desativado não muda nada.
200 Situação aplicada401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida
Exige `service-orders:settings` e a permissão Tipos de Serviço (criar). Cria uma cópia ativa com as mesmas configurações e modelos, com o nome "(cópia)". Uma vez por `Idempotency-Key`.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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.
201 Cópia criada (ou reapresentada pela mesma chave idempotente)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`)429 Cota por minuto da credencial excedida
200 Página de tipos de equipamento401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente429 Cota por minuto da credencial excedida
POST/api/v1/equipment-types
Cadastra tipo de equipamento
Exige `service-orders:settings` e a permissão Tipos de Equipamentos (criar). Mesma regra da tela; a mesma `Idempotency-Key` com o mesmo corpo devolve o cadastro original com `Idempotency-Replayed: true`.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
name
string
Sim
Até 255 caracteres.
parent_equipment_type_id
integer | null
Não
Não pode ser o próprio tipo.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/equipment-types" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Tipo de equipamento cadastrado (ou reapresentado pela mesma chave idempotente)401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente409 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 excedida
GET/api/v1/equipment-types/{equipmentTypeId}
Consulta tipo de equipamento
Exige `service-orders:read` e a permissão Tipos de Equipamentos (ver).
200 Tipo de equipamento encontrado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado
PATCH/api/v1/equipment-types/{equipmentTypeId}
Edita tipo de equipamento
Exige `service-orders:settings` e a permissão Tipos de Equipamentos (editar). Edição parcial: campo omitido fica como está.
200 Tipo de equipamento 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 excedida
200 Situação aplicada401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida
Exige `service-orders:settings` e a permissão Tipos de Equipamentos (desabilitar). Desliga o cadastro e registra quem arquivou. Repetir em um já desativado não muda nada.
200 Situação aplicada401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida
GET/api/v1/service-order-tags
Lista tags de prioridade de OS
Exige `service-orders:read` e a permissão Gestão de OS (ver). A lista vem na ordem de prioridade.
Parâmetros
Nome
Local
Obrigatório
Descrição
search
query
Não
Busca pelo nome.
status
query
Não
`true` só os ativos; `false` só os desativados. Sem o filtro, todos.
200 Página de tags de prioridade de OS401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente429 Cota por minuto da credencial excedida
POST/api/v1/service-order-tags
Cadastra tag de OS
Exige `service-orders:settings` e a permissão Gestão de OS (criar). Mesma regra da tela; a mesma `Idempotency-Key` com o mesmo corpo devolve o cadastro original com `Idempotency-Replayed: true`.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
name
string
Sim
Até 255 caracteres.
color
string
Sim
Até 20 caracteres.
priority_order
integer | null
Não
—
description
string | null
Não
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/service-order-tags" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Tag de os cadastrado (ou reapresentado pela mesma chave idempotente)401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente409 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 excedida
GET/api/v1/service-order-tags/{tagId}
Consulta tag de OS
Exige `service-orders:read` e a permissão Gestão de OS (ver).
200 Tag de os encontrado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado
PATCH/api/v1/service-order-tags/{tagId}
Edita tag de OS
Exige `service-orders:settings` e a permissão Gestão de OS (criar, como o modal de tags). Edição parcial: campo omitido fica como está.
200 Tag de os 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 excedida
POST/api/v1/service-order-tags/{tagId}/activate
Habilita tag de OS
Exige `service-orders:settings` e a permissão Gestão de OS (criar, como o modal de tags). Religa o cadastro. Repetir em um já ativo não muda nada.
200 Situação aplicada401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida
POST/api/v1/service-order-tags/{tagId}/deactivate
Desabilita tag de OS
Exige `service-orders:settings` e a permissão Gestão de OS (criar, como o modal de tags). Desliga o cadastro e registra quem arquivou. Repetir em um já desativado não muda nada.
200 Situação aplicada401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida
GET/api/v1/clients/{clientId}/equipments
Lista os equipamentos de um cliente
Exige `service-orders:read` e a permissão Equipamentos (ver). Sem `include_inactive`, só os ativos, como na tela.
200 Equipamentos do cliente401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado
POST/api/v1/clients/{clientId}/equipments
Cadastra um equipamento no cliente
Exige `service-orders:write` e a permissão Equipamentos (criar). Mesmo cadastro da abertura de OS e da ficha do cliente; uma vez por `Idempotency-Key`.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
type_equipment_id
integer
Sim
—
model_id
integer
Sim
Modelo de impressora/equipamento.
serial
string | null
Não
Até 120 caracteres.
description
string | null
Não
Até 2000 caracteres.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/clients/{clientId}/equipments" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Equipamento cadastrado (ou reapresentado pela mesma chave idempotente)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 excedida
GET/api/v1/client-equipments/{equipmentId}
Consulta um equipamento do cliente
Exige `service-orders:read` e a permissão Equipamentos (ver).
200 Equipamento 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 excedida
200 Situação aplicada401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida
200 Situação aplicada401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida
GET/api/v1/service-order-delivery-queue
Lista a fila de entregas
Lista as OS em status marcados para a Fila de Entregas (prontas para entrega ou retirada), nas lojas do usuário responsável pela credencial, com o tempo parado na fila e a situação do último aviso enviado ao cliente. Sem ordenação, a fila sai das OS paradas há mais tempo. Exige `Gestão de OS: visualizar` e `service-orders:read`.
Parâmetros
Nome
Local
Obrigatório
Descrição
status_id[]
query
Não
Filtra pelos status da fila.
waiting_range
query
Não
Tempo parado na fila: até 2 dias, de 3 a 6 dias ou 7 dias ou mais.
search
query
Não
Busca pelo número da OS, nome do cliente, serial ou modelo do equipamento.
200 Página da fila de entregas401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente422 Dados inválidos
GET/api/v1/service-order-delivery-queue/channels
Lista os canais de disparo da fila de entregas
Números de WhatsApp conectados no atendimento e modelos de e-mail ativos que podem ser usados no disparo. Exige `Gestão de OS: visualizar` e `service-orders:read`.
200 Modelos aprovados do número401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente422 Dados inválidos
Variáveis do cabeçalho e do corpo do modelo e o catálogo de campos (geral, cliente e OS) que podem preenchê-las. Use as chaves em `channels.whatsapp.variables` ao criar o disparo. Exige `Gestão de OS: visualizar` e `service-orders:read`.
200 Variáveis do modelo401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado
Mostra, para as OS escolhidas que continuam na fila de entregas e nas lojas do usuário, o cliente, o equipamento, o WhatsApp e o e-mail que receberão o aviso. Não grava nada. Exige `Gestão de OS: visualizar` e `service-orders:read`.
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
service_order_ids
array<integer>
Sim
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/service-order-delivery-queue/recipients-preview" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Revisão dos destinatários401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente422 Dados inválidos
GET/api/v1/service-order-dispatches
Lista os disparos da fila de entregas
Histórico dos disparos de aviso criados pela Fila de Entregas que tenham OS das lojas do usuário, com os totais de destinatários. Exige `Gestão de OS: visualizar` e `service-orders:read`.
Parâmetros
Nome
Local
Obrigatório
Descrição
search
query
Não
Busca pelo nome do modelo, por quem disparou ou pelo número de uma OS do disparo.
200 Página de disparos401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente422 Dados inválidos
POST/api/v1/service-order-dispatches
Cria um disparo de aviso da fila de entregas
Cria um disparo por canal ligado (WhatsApp e/ou e-mail) para as OS escolhidas que continuam na fila de entregas, com um destinatário por OS. Com `dispatch_mode: now` o envio entra na fila na hora; com `scheduled` é agendado para `scheduled_at`. Mesmas regras do assistente da tela: ao menos um canal ligado, modelo de WhatsApp aprovado do número escolhido e modelo de e-mail ativo. A mesma `Idempotency-Key` com o mesmo corpo devolve o mesmo lote. Exige `Gestão de OS: editar` e `service-orders:dispatch`.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
service_order_ids
array<integer>
Sim
OS da fila de entregas.
channels
object
Sim
Ao menos um canal precisa estar ligado.
dispatch_mode
string
Sim
Valores: now, scheduled.
scheduled_at
string (date-time)
Não
Obrigatório no modo agendado; precisa ser futuro.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/service-order-dispatches" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Disparos criados (um por canal) ou reapresentados pela mesma chave idempotente401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente409 Chave em processamento ou reutilizada com outro conteúdo422 Dados inválidos
Destinatários do disparo nas lojas do usuário, com o endereço usado e o desfecho de cada envio (da falha até a resposta do cliente). Exige `Gestão de OS: visualizar` e `service-orders:read`.
200 Destinatários do disparo401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado
GET/api/v1/service-order-reports/production
Relatório de produção das OS
Mesmos números da aba Produção da tela de relatórios, para o mês de referência e as lojas do usuário: indicadores, equipamentos entregues por técnico, finalizações por dia, entregas por tipo de equipamento, contribuição de cada técnico e últimas entregas. As séries vêm prontas para gráfico (rótulos, conjuntos e cores). Sem mês ou ano, vale o mês atual. Exige `Relatórios de OS: ver produção` e `service-orders:reports`.
Parâmetros
Nome
Local
Obrigatório
Descrição
reference_month
query
Não
Mês de referência (1 a 12). Sem ele, o mês atual.
reference_year
query
Não
Ano de referência. Sem ele, o ano atual.
store_id
query
Não
Recorta numa loja; o relatório sempre respeita as lojas do usuário.
200 Relatório de produção401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente422 Dados inválidos
GET/api/v1/service-order-reports/billing
Relatório de faturamento das OS
Mesmos números da aba Faturamento da tela de relatórios, para o mês de referência e as lojas do usuário: indicadores do período, comparação mensal e tipos de serviço mais faturados. Sem mês ou ano, vale o mês atual. Exige `Relatórios de OS: ver faturamento` e `service-orders:reports`.
Parâmetros
Nome
Local
Obrigatório
Descrição
reference_month
query
Não
Mês de referência (1 a 12). Sem ele, o mês atual.
reference_year
query
Não
Ano de referência. Sem ele, o ano atual.
store_id
query
Não
Recorta numa loja; o relatório sempre respeita as lojas do usuário.
200 Relatório de faturamento401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente422 Dados inválidos
GET/api/v1/service-order-queue
Consulta a fila do técnico
A mesma fila do Cockpit do Técnico: o técnico vê a própria; quem gerencia o Cockpit vê a equipe das suas lojas ou o técnico escolhido em `technician_id`. `executable` segue a ordem de execução (a primeira é o serviço principal; vale a ordem manual do gestor quando houver) e `waiting` traz as OS com impedimento aguardando liberação. Técnico fora do alcance do gestor responde 404. Exige `Cockpit do Técnico: visualizar` e `service-orders:read`.
Parâmetros
Nome
Local
Obrigatório
Descrição
technician_id
query
Não
Técnico escolhido (só para quem gerencia o Cockpit).
200 Fila do técnico401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado
GET/api/v1/service-order-technician-queues
Lista as filas editáveis dos técnicos
Filas completas dos técnicos que o gestor alcança (ou só do `technician_id`), com a `version` de cada fila e o `meta.loaded_at` da leitura, que devem voltar na gravação. Fila com OS de loja fora do acesso do gestor vem `blocked`, sem as OS. Exige `Cockpit do Técnico: gerenciar cockpit` e `service-orders:read`.
200 Filas editáveis401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente
PUT/api/v1/service-order-technician-queues
Substitui a ordem das filas dos técnicos
Substituição total da sequência de cada fila enviada: `sequence` precisa trazer todas as OS executáveis da fila, na nova ordem. Todas as filas são conferidas antes de gravar: se alguma foi salva por outra pessoa (versão diferente) ou se uma OS entrou, saiu ou mudou de estado depois de `loaded_at`, nada é gravado e a resposta é 409 `invalid_transition` com os conflitos em `error.details.conflicts`. Enviar a ordem já vigente não grava nada (`saved: 0`). Exige `Cockpit do Técnico: gerenciar cockpit` e `service-orders:settings`.
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
queues
array<object>
Sim
—
Exemplo
cURL
curl -X PUT "$MICORE_BASE_URL/service-order-technician-queues" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Filas gravadas401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente409 Alguma fila mudou depois da leitura; nada (ou só parte) foi gravado422 Dados inválidos
GET/api/v1/service-order-flow
Consulta o fluxo de status das OS
Fluxo desenhado no editor (nós, conexões e o status de cada etapa) e os status ativos que podem ser usados nas etapas. Exige `Gestão de OS: visualizar` e `service-orders:read`.
200 Fluxo atual401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente
PUT/api/v1/service-order-flow
Substitui o fluxo de status das OS
Substituição total do fluxo, como o editor da tela grava: `nodes` e `edges` inteiros. Cada nó de etapa (`type: node_os_step`) grava o status escolhido em `data.status_id` (ou nulo). Exige `Gestão de OS: criar` e `service-orders:settings`.
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
name
string
Não
Até 255 caracteres.
status
string
Não
Até 50 caracteres.
nodes
array<object>
Sim
—
edges
array<object>
Sim
—
Exemplo
cURL
curl -X PUT "$MICORE_BASE_URL/service-order-flow" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Fluxo gravado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente422 Dados inválidos
CRM
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
Nome
Local
Obrigatório
Descrição
funnel_id
query
Não
—
stage_ids[]
query
Não
—
responsible_id
query
Não
—
responsible_ids[]
query
Não
—
origin_ids[]
query
Não
—
campaign_ids[]
query
Não
—
milestone_ids[]
query
Não
—
tag_ids[]
query
Não
—
status
query
Não
—
archived
query
Não
—
search
query
Não
—
search_type
query
Não
Onde buscar: nome do negócio, id, cliente ou vendedor.
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
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
funnel_id
integer
Sim
—
client_id
integer
Sim
—
name
string | null
Não
Sem nome, vira "Negociação com o cliente #id".
responsible_id
integer | null
Não
—
predicted_value
number | null
Não
—
origin_id
integer | null
Não
—
campaign_id
integer | null
Não
—
store_id
integer | null
Não
—
url_origin
string | null
Não
—
rating
integer | null
Não
—
observation
string | null
Não
Vira o primeiro comentário.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/crm/deals" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
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.
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.
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
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
stage_id
integer
Sim
—
contact_date
string | null (date)
Não
Próximo contato, nas etapas que pedem retorno.
contact_time
string | null
Não
Hora do próximo contato (HH:MM).
observation
string | null
Não
Relatório da movimentação, como o texto pedido ao ganhar a venda; fica no histórico da etapa.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/crm/deals/{deal}/stage" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
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
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
funnel_id
integer
Sim
—
stage_id
integer
Sim
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/crm/deals/{deal}/funnel" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
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
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
responsible_id
integer | null
Sim
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/crm/deals/{deal}/responsible" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
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
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
rating
integer
Sim
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/crm/deals/{deal}/rating" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
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
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
value
number
Sim
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/crm/deals/{deal}/predicted-value" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
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
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
tag_id
integer
Sim
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/crm/deals/{deal}/tags" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
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
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
won_value
number | null
Não
Só no ganho.
observations
string | null
Não
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/crm/deals/{deal}/finish" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
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
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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.
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
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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.
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
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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.
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.
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.
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
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
text
string
Sim
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/crm/deals/{deal}/comments" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
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.
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
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
milestone_id
integer
Sim
—
observation
string | null
Não
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/crm/deals/{deal}/milestones" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
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.
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
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
custom_field_id
integer
Sim
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/crm/deals/{deal}/custom-fields" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
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
Campo
Tipo
Obrigatório
Observação
value
string | null
Sim
—
Exemplo
cURL
curl -X PUT "$MICORE_BASE_URL/crm/deals/{deal}/custom-fields/{field}" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
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.
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
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
type
string
Sim
—
title
string
Sim
—
description
string | null
Não
—
start_date
string (date)
Sim
—
start_time
string
Sim
HH:MM, horário de Brasília.
duration
integer
Sim
Minutos.
location_type
string
Sim
—
meeting_url
string | null
Não
—
users
array<integer>
Sim
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/crm/deals/{deal}/commitments" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
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
curl -X POST "$MICORE_BASE_URL/crm/deals/{deal}/commitments/{commitment}/status" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
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.
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
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
proposal_type
string
Sim
—
title
string
Sim
—
amount
number
Sim
—
proposal_link
string | null
Não
—
send_date
string | null (date)
Não
—
validity_days
integer | null
Não
—
notes
string | null
Não
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/crm/deals/{deal}/proposals" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
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
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
Campo
Tipo
Obrigatório
Observação
status
string
Sim
Valores: pendente, enviada, aprovada, recusada.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/crm/deals/{deal}/proposals/{proposal}/status" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
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.
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
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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.
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.
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
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
name
string | null
Não
—
email
string | null (email)
Não
—
phone
string | null
Não
Só dígitos, 10 a 15.
cpf
string | null
Não
—
cnpj
string | null
Não
—
funnel_id
integer
Sim
—
origin_id
integer
Sim
—
store_id
integer | null
Não
—
campaign_id
integer | null
Não
—
observation
string | null
Não
—
url_origin
string | null
Não
—
rating
integer | null
Não
—
metadata
object | null
Não
Até 50 pares de valor simples.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/crm/leads" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
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).
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
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).
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).
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
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
name
string
Sim
Até 255 caracteres.
manager_id
integer
Sim
Gestor do funil.
description
string | null
Não
—
position
integer | null
Não
—
sellers_id
array<integer>
Não
Time do funil.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/crm/funnels" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
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.
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.
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.
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.
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.
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
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
name
string
Sim
Até 255 caracteres.
color
string
Sim
Até 20 caracteres.
description
string | null
Não
—
info_date
boolean
Não
—
is_won
boolean
Não
—
is_lost
boolean
Não
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/crm/funnels/{funnel}/stages" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
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
Campo
Tipo
Obrigatório
Observação
stages
array<object>
Sim
—
Exemplo
cURL
curl -X PUT "$MICORE_BASE_URL/crm/funnels/{funnel}/stages/order" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
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.
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.
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.
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.
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
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
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
name
string
Sim
Até 255 caracteres.
color
string | null
Não
—
icon
string | null
Não
Ícone Font Awesome.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/crm/milestones" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
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
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).
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).
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).
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
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
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
name
string
Sim
Até 255 caracteres.
description
string | null
Não
—
start
string | null (date)
Não
—
end
string | null (date)
Não
Igual ou depois do início.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/crm/campaigns" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
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
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).
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).
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).
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
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
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
name
string
Sim
Até 255 caracteres.
manual
boolean
Sim
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/crm/origins" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
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
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).
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).
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).
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
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
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
name
string
Sim
Até 100 caracteres.
type
string
Sim
Valores: text, number, textarea.
placeholder
string | null
Não
Até 80 caracteres.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/crm/custom-fields" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
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
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).
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).
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).
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.
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
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
funnel_id
integer
Sim
—
name
string
Sim
Até 255 caracteres.
color
string | null
Não
—
description
string | null
Não
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/crm/tags" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
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.
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).
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).
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).
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.
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
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
Campo
Tipo
Obrigatório
Observação
value
number
Sim
Meta de vendas do mês em reais.
Exemplo
cURL
curl -X PUT "$MICORE_BASE_URL/crm/funnels/{funnel}/goals/{year}/{month}" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
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.
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.
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
Marketing
GET/api/v1/contact-lists
Lista as listas de contatos
Listas ativas com o total de contatos. Exige `campaigns:read` e Campanhas (ver).
200 OK401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST/api/v1/contact-lists
Cria uma lista de contatos
Cria a lista só com nome e descrição; o público é montado pelos contatos. Exige `campaigns:write` e Campanhas (criar).
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
name
string
Sim
Até 255 caracteres.
description
string | null
Não
Até 1000 caracteres.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/contact-lists" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Lista 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ú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/contact-lists/audience-count
Conta o público das listas
Quantos contatos ativos de cada canal (e-mail e WhatsApp) as listas alcançam, sem repetir quem está em mais de uma. Exige `campaigns:read`.
200 OK401 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/contact-lists/{list}
Consulta uma lista
Lista ativa com o total de contatos e o público por canal. Exige `campaigns:read`.
200 OK401 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/contact-lists/{list}
Edita uma lista
Edição parcial de nome e descrição; o campo omitido fica como está. Exige `campaigns:write` e Campanhas (editar).
200 OK401 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/contact-lists/{list}/deactivate
Desativa uma lista
A lista sai da listagem e da escolha de público dos disparos. Exige `campaigns:write` e Campanhas (desabilitar).
200 OK401 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/contact-lists/{list}/contacts
Lista os contatos da lista
Contatos com vínculo ativo, com filtro por canal e busca pelo nome ou identificador. Exige `campaigns:read`.
200 OK401 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/contact-lists/{list}/contacts
Adiciona um contato à lista
Cadastra (ou reativa) o contato pelo canal e valor e soma à lista. E-mail precisa ser válido; WhatsApp, ter dígitos. Exige `campaigns:write` e Campanhas (editar).
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
type
string
Sim
Valores: whatsapp, email.
value
string
Sim
E-mail ou telefone (com ou sem máscara).
name
string
Sim
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/contact-lists/{list}/contacts" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Contato adicionado401 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/contact-lists/{list}/contacts/clients
Adiciona os contatos de clientes
Soma à lista os e-mails e WhatsApps ativos dos clientes. Cliente inativo ou sem e-mail e WhatsApp ativo recusa o lote (422). O resumo do vínculo vem em `meta`. Exige `campaigns:write` e Campanhas (editar).
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
client_ids
array<integer>
Sim
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/contact-lists/{list}/contacts/clients" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 OK401 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/contact-lists/{list}/contacts/crm
Adiciona os contatos de um funil do CRM
Soma à lista os contatos ativos dos clientes com negócio no funil (e na etapa, quando informada). Segmento vazio: 422. Quantos entraram vem em `meta.added`. Exige `campaigns:write` e Campanhas (editar).
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
funnel_id
integer
Sim
—
stage_id
integer | null
Não
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/contact-lists/{list}/contacts/crm" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 OK401 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/contact-lists/{list}/contacts/import
Importa contatos de um CSV
Arquivo .csv de até 2 MB, com `nome;contato` ou só `contato` por linha (cabeçalho opcional; ponto e vírgula ou vírgula). E-mail é reconhecido pela arroba; telefone precisa de 10 dígitos ou mais. Linhas inválidas são ignoradas; nenhum contato válido: 422. Quantos entraram vem em `meta.imported`. Exige `campaigns:write` e Campanhas (editar).
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
file
string (binary)
Sim
CSV de até 2 MB.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/contact-lists/{list}/contacts/import" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 OK401 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
204 Contato removido da lista401 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/marketing-campaigns
Lista as campanhas
Campanhas ativas com os totais de contatos e disparos. Exige `campaigns:read` e Campanhas (ver).
200 OK401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST/api/v1/marketing-campaigns
Cria uma campanha
Cria a campanha só com nome e descrição; canais e público pertencem a cada disparo. Exige `campaigns:write` e Campanhas (criar).
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
name
string
Sim
Até 255 caracteres.
description
string | null
Não
Até 1000 caracteres.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/marketing-campaigns" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Campanha 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ú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/marketing-campaigns/channels
Lista os canais de disparo
Números de WhatsApp e caixas de e-mail ativas que podem disparar. Exige `campaigns:read`.
200 OK401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
GET/api/v1/marketing-campaigns/whatsapp-templates
Lista os templates de WhatsApp do número
Templates aprovados e ativos do número escolhido. Exige `campaigns:read`.
200 OK401 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
200 OK401 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
200 OK401 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/marketing-campaigns/{campaign}
Edita uma campanha
Edição parcial de nome e descrição. Exige `campaigns:write` e Campanhas (editar).
200 OK401 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
200 OK401 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
200 OK401 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
204 Contato 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
GET/api/v1/marketing-campaigns/{campaign}/shots
Lista os disparos da campanha
Do mais recente para o mais antigo, com as listas de origem e o total de destinatários. Exige `campaigns:read`.
200 OK401 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/marketing-campaigns/{campaign}/shots
Dispara a campanha
Cria um disparo por canal ativo (WhatsApp e/ou e-mail) com o público das listas: `now` envia já (um envio por contato, na fila), `scheduled` agenda e `draft` só guarda a configuração. WhatsApp exige template aprovado do número escolhido; canal sem template válido ou sem contatos fica de fora, e nenhum canal válido responde 422. Descadastrados de marketing são pulados no envio. Exige `campaigns:dispatch` e Campanhas (editar).
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
channels
object
Sim
—
list_ids
array<integer>
Sim
—
dispatch_mode
string
Sim
Valores: draft, now, scheduled.
scheduled_at
string | null (date-time)
Não
—
campaign_identifier
string | null
Não
Identificador opcional para relatórios (ex.: utm). Até 100 caracteres.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/marketing-campaigns/{campaign}/shots" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Disparos criados (ou reapresentados 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
Substitui a configuração do rascunho (template, variáveis e listas). Com `now` ou `scheduled`, confirma e envia ou agenda; sem contatos do canal nas listas, a configuração fica salva e o disparo continua rascunho (422). Disparo já confirmado: 409. Exige `campaigns:dispatch` e Campanhas (editar).
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
channels
object
Sim
—
list_ids
array<integer>
Sim
—
dispatch_mode
string
Sim
Valores: draft, now, scheduled.
scheduled_at
string | null (date-time)
Não
—
campaign_identifier
string | null
Não
Identificador opcional para relatórios (ex.: utm). Até 100 caracteres.
Exemplo
cURL
curl -X PUT "$MICORE_BASE_URL/marketing-campaigns/{campaign}/shots/{shot}" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 OK401 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
Desfecho de cada contato: pendente, agendado, enviando, enviado, entregue, lido, falhou ou descadastrado, com o motivo da falha traduzido quando vem da plataforma. Exige `campaigns:read`.
200 OK401 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/app-notifications
Lista as notificações do app
Notificações do app da loja, da mais recente para a mais antiga. Exige `campaigns:read` e Campanhas (ver).
200 OK401 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/app-notifications
Cria uma notificação do app
Sempre nasce como rascunho; envie ou agende pela ação `send`. Imagem opcional (JPG, PNG ou WEBP, até 3 MB) por multipart. Exige `campaigns:write` e Campanhas (criar).
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
title
string
Sim
Até 65 caracteres.
body
string
Sim
Até 240 caracteres.
target_type
string
Sim
Destino ao tocar (home, produto, categoria, link...).
target_id
integer | null
Não
Produto ou categoria.
target_url
string | null
Não
Link https.
audience_type
string
Sim
all, inactive_days ou um grupo por ids.
audience_ids
array<integer>
Não
—
audience_days
integer | null
Não
—
image
string (binary)
Não
—
ttl_hours
integer | null
Não
—
group_mode
string
Sim
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/app-notifications" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Rascunho 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/app-notifications/audience-count
Conta o público da notificação
Quantos clientes com o app o público escolhido alcança agora; escolha incompleta conta zero. Exige `campaigns:read`.
200 OK401 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/app-notifications/test
Envia um teste
Envia a notificação montada a um cliente só, sem gravar nem contar no envio. Cliente sem o app aberto em nenhum aparelho: 422. Limite de 20 por minuto. Exige `campaigns:dispatch` e Campanhas (criar).
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
client_id
integer
Sim
—
title
string
Sim
—
body
string
Sim
—
target_type
string
Sim
—
target_id
integer | null
Não
—
target_url
string | null
Não
—
image
string (binary)
Não
—
campaign_id
integer | null
Não
Usa a imagem já gravada nesta notificação.
remove_image
boolean
Não
—
ttl_hours
integer | null
Não
—
group_mode
string | null
Não
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/app-notifications/test" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 OK401 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/app-notifications/{notification}
Consulta uma notificação do app
Com os números de entrega e abertura. Exige `campaigns:read`.
200 OK401 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/app-notifications/{notification}
Edita uma notificação do app
Edição parcial enquanto não começou a enviar; o modo não muda (rascunho segue rascunho e agendada mantém o horário). Enviada ou cancelada: 409. Exige `campaigns:write` e Campanhas (editar).
200 OK401 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
200 OK401 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/app-notifications/{notification}/send
Envia ou agenda a notificação
`now` entra na fila na hora; `scheduled` acorda no horário. Enviada ou cancelada: 409. Exige `campaigns:dispatch` e Campanhas (editar).
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
mode
string
Sim
Valores: now, scheduled.
scheduled_at
string | null (date-time)
Não
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/app-notifications/{notification}/send" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 OK401 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
Só rascunho ou agendada; o envio já iniciado não para (409). Exige `campaigns:write` e Campanhas (editar).
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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.
200 OK401 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/contact-lists/{list}/activate
Reativa uma lista
A lista desativada volta à listagem e à escolha de público dos disparos. Só encontra listas desativadas (ativa devolve 404). Exige `campaigns:write` e Campanhas (desabilitar).
200 OK401 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
200 OK401 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
Automations
GET/api/v1/automation-flows
Lista as automações
Exige `automations:read` e Automações de Marketing (ver).
200 OK401 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/automation-flows
Cria uma automação
Nasce em rascunho, sem versão publicada. Exige `automations:write` e Automações de Marketing (criar).
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
name
string
Sim
Até 255 caracteres.
description
string | null
Não
Até 1000 caracteres.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/automation-flows" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Automação 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ú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/automation-flows/{flow}
Consulta uma automação
Com a definição do editor (rascunho, se houver, senão a publicada): blocos, ligações, gatilho e regras. Exige `automations:read`.
200 OK401 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/automation-flows/{flow}
Edita nome e descrição
Edição parcial. Exige `automations:write` e Automações de Marketing (editar).
200 OK401 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/automation-flows/{flow}/draft
Salva o rascunho da definição
Substitui o rascunho inteiro (blocos, ligações, gatilho e regras); a versão publicada segue no ar. Precisa de um único bloco de início (422). Exige `automations:write` e Automações de Marketing (editar).
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
name
string
Não
—
trigger
object
Não
Gatilho: type (entry_lead_stage_changed, entry_form_submitted ou entry_hotmart_abandoned_cart) e o alvo (funnelId e stageId, formId ou productId).
nodes
array<object>
Sim
—
edges
array<object>
Sim
—
settings
object
Não
—
Exemplo
cURL
curl -X PUT "$MICORE_BASE_URL/automation-flows/{flow}/draft" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 OK401 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/automation-flows/{flow}/publish
Publica uma nova versão
Publica a definição enviada: ela passa a valer, o rascunho é descartado e a automação fica ativa. Mesmas regras do editor. Exige `automations:write` e Automações de Marketing (editar).
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
name
string
Não
—
trigger
object
Não
Gatilho: type (entry_lead_stage_changed, entry_form_submitted ou entry_hotmart_abandoned_cart) e o alvo (funnelId e stageId, formId ou productId).
nodes
array<object>
Sim
—
edges
array<object>
Sim
—
settings
object
Não
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/automation-flows/{flow}/publish" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 OK401 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/automation-flows/{flow}/activate
Ativa a automação
Só quem já tem versão publicada (409). Exige `automations:write` e Automações de Marketing (desabilitar).
200 OK401 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/automation-flows/{flow}/deactivate
Desativa a automação
Para de inscrever leads novos. Exige `automations:write` e Automações de Marketing (desabilitar).
200 OK401 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/automation-flows/{flow}/performance
Consulta o desempenho
Leads ativos, total de leads e, por bloco, quantos passaram e o que aconteceu (envios, falhas, puladas, lidas e saídas). Exige `automations:read`.
200 OK401 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/automation-flow-dispatches
Lista os disparos das automações
E-mails e WhatsApps enviados pelas automações, com filtro por automação e situação. Exige `automations:read`.
200 OK401 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
Roda de novo a partir do bloco em que parou. Só disparos com falha (409); disparo inexistente: 404. Exige `automations:write` e Automações de Marketing (editar), como a tela de disparos.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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.
200 OK401 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
File Manager
POST/api/v1/file-manager/folders
Cria uma pasta
Cria uma pasta dentro da pasta de destino. A pasta herda o dono e a visibilidade do destino, como no painel.
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
parent_id
integer
Sim
Pasta de destino.
name
string
Sim
Até 255 caracteres.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/file-manager/folders" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Pasta criada401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos
POST/api/v1/file-manager/files
Envia arquivos para uma pasta
Envia um ou mais arquivos (multipart/form-data) para a pasta de destino. Com relative_paths, recria a estrutura de pastas enviada. Para arquivos grandes, use o fluxo em partes.
201 Arquivos criados401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos
DELETE/api/v1/file-manager/files/{item}
Arquiva um arquivo
Envia o arquivo para a lixeira do gerenciador, como o excluir do painel. Pode ser restaurado pelo painel. Pastas não são aceitas.
200 Arquivo arquivado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado
GET/api/v1/file-manager/items
Lista pastas, arquivos e documentos
Lista tudo o que o usuário da credencial pode ver, com a mesma regra do painel. Sem `recursive`, mostra um nível (a raiz ou a pasta de `parent_id`); com `recursive=true`, traz tudo abaixo dela, ou o gerenciador inteiro. Com `search`, a busca desce pelas subpastas. Itens dentro de pasta arquivada não aparecem. Cada item traz `path`, o caminho de pastas até ele.
Parâmetros
Nome
Local
Obrigatório
Descrição
parent_id
query
Não
Pasta a listar. Sem valor, começa da raiz.
recursive
query
Não
Traz tudo abaixo da pasta (ou do gerenciador inteiro).
type
query
Não
—
search
query
Não
Parte do nome; busca também nas subpastas.
extension
query
Não
Ex.: pdf, jpg.
sort
query
Não
Com `-` a ordem é decrescente. Sem valor, pastas primeiro e depois o nome.
200 Item renomeado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos
GET/api/v1/file-manager/items/{item}/sharing
Mostra quem acessa um item
Visibilidade, acesso de quem não tem papel (só na Empresa), papéis por pessoa e por time, o papel de quem chama (`my_permission`) e se ele pode mudar o compartilhamento (`can_manage`). Na Empresa o item é da empresa: vale o maior papel da pessoa ou dos times dela no item ou numa pasta acima; quem não tem papel recebe o acesso da pasta (`everyone_edit`, `everyone_view` ou `restricted`).
200 Compartilhamento do item401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado
PATCH/api/v1/file-manager/items/{item}/sharing
Muda quem acessa um item
Só as chaves enviadas mudam; `users` e `teams` substituem a lista anterior. Na Empresa exige papel `gerenciar` (no privado, `editar`). `visibility` só muda em item da raiz (dentro de pasta segue a pasta); levar à Empresa deixa o item em `everyone_view` e dá `gerenciar` a quem publicou. `company_access` numa subpasta não pode ser mais aberto que o da pasta de cima (`inherit` segue a de cima). Quem salva não pode ficar sem `gerenciar` num item da Empresa.
Parâmetros
Nome
Local
Obrigatório
Descrição
item
path
Sim
—
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
visibility
string
Não
Só em item da raiz. Valores: private, company.
company_access
string
Não
Só na Empresa; numa subpasta não pode abrir mais que a de cima. Valores: everyone_edit, everyone_view, restricted, inherit.
users
array<object>
Não
Substitui os papéis por pessoa.
teams
array<object>
Não
Substitui os papéis por time (vale para os integrantes ativos).
200 Compartilhamento atualizado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos
GET/api/v1/file-manager/items/{item}/download
Gera link para baixar um arquivo
Devolve um link temporário, válido por 15 minutos, para baixar o arquivo direto do armazenamento, já com o nome do arquivo. O link não usa o token. Só arquivos enviados; pastas e documentos respondem 422.
200 Link de download401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos
POST/api/v1/file-manager/documents
Cria um documento
Cria um documento interno (texto em HTML) dentro da pasta de destino, como o novo documento do painel. Herda dono e visibilidade da pasta e não pode repetir o nome de outro item dela.
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
parent_id
integer
Sim
Pasta de destino.
name
string
Sim
Até 255 caracteres.
content
string
Não
Texto em HTML.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/file-manager/documents" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Documento criado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos
PATCH/api/v1/file-manager/documents/{item}
Edita um documento
Edita o nome e o texto de um documento interno. Só os campos enviados mudam. Arquivos enviados não têm o conteúdo editado; para eles, use renomear e mover.
200 Documento editado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos
DELETE/api/v1/file-manager/documents/{item}
Arquiva um documento interno
Envia o documento para a lixeira do gerenciador, como o excluir do painel. Pode ser restaurado pelo painel. Arquivos enviados e pastas não são aceitos.
200 Documento arquivado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado
POST/api/v1/file-manager/items/{item}/move
Move um arquivo ou pasta
Move o item para a pasta de destino. Pastas levam todo o conteúdo, e o item passa a ter a visibilidade do destino. Uma pasta não pode ir para dentro dela mesma. Exige papel `editar` no item e no destino; tirar um item da Empresa (destino privado) exige `gerenciar`.
Parâmetros
Nome
Local
Obrigatório
Descrição
item
path
Sim
—
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
parent_id
integer
Sim
Pasta de destino.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/file-manager/items/{item}/move" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Item movido401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos
POST/api/v1/file-manager/items/move
Move vários itens
Move até 100 arquivos e pastas para a mesma pasta de destino. É tudo ou nada; se um item não puder ser movido, nenhum é.
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
item_ids
array<integer>
Sim
—
parent_id
integer
Sim
Pasta de destino.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/file-manager/items/move" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Itens movidos401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos
POST/api/v1/file-manager/uploads
Inicia envio em partes
Inicia um envio grande direto para o armazenamento. Depois, assine cada parte e conclua o envio.
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
parent_id
integer
Sim
—
name
string
Sim
Até 255 caracteres.
content_type
string
Sim
Até 120 caracteres.
size
number
Sim
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/file-manager/uploads" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Envio iniciado, com chave e identificador do envio401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos
POST/api/v1/file-manager/uploads/parts
Assina uma parte do envio
Gera a URL assinada para enviar uma parte do envio em partes.
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
key
string
Sim
Até 500 caracteres.
upload_id
string
Sim
Até 500 caracteres.
part_number
integer
Sim
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/file-manager/uploads/parts" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 URL assinada da parte401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente422 Dados inválidos
POST/api/v1/file-manager/uploads/complete
Conclui envio em partes
Junta as partes enviadas e cria o arquivo na pasta de destino.
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
parent_id
integer
Sim
—
key
string
Sim
Até 500 caracteres.
upload_id
string
Sim
Até 500 caracteres.
original_name
string
Sim
Até 255 caracteres.
mime_type
string
Sim
Até 120 caracteres.
size
number
Sim
—
parts
array<object>
Sim
—
relative_path
string
Não
Até 900 caracteres.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/file-manager/uploads/complete" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Arquivo criado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos
POST/api/v1/file-manager/uploads/abort
Cancela envio em partes
Cancela um envio incompleto e remove as partes já enviadas.
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
key
string
Sim
Até 500 caracteres.
upload_id
string
Sim
Até 500 caracteres.
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/file-manager/uploads/abort" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Envio cancelado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente422 Dados inválidos
Payables
GET/api/v1/payables
Lista contas a pagar
Lista as contas a pagar das lojas do usuário. Compras no cartão aparecem dentro da fatura; filtre por card_id ou invoice_id para vê-las.
200 Página de contas a pagar401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente422 Dados inválidos
POST/api/v1/payables
Lança uma conta a pagar
Lança uma conta na carteira (due_date obrigatório) ou uma compra no cartão (purchase_date obrigatório). No cartão, a compra entra na fatura pelo dia de fechamento: antes do fechamento, na fatura do mês; no dia do fechamento ou depois, na seguinte.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
name
string
Sim
Até 191 caracteres.
description
string
Não
—
value
number
Sim
—
category_id
integer
Sim
—
store_id
integer
Sim
—
method
string
Sim
Valores: wallet, card.
method_id
integer
Sim
Id da carteira ou do cartão (veja /payable-options).
purchase_date
string (date)
Não
Obrigatória no cartão: define a fatura.
due_date
string (date)
Não
Obrigatório na carteira.
relationship
string
Não
Valores: fornecedor, colaborador, cliente.
relationship_id
integer
Não
—
payment_method
string
Não
—
paid
boolean
Não
Só na carteira.
value_paid
number
Não
—
paid_at
string (date)
Não
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/payables" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Conta criada ou reapresentada pela mesma chave idempotente401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente409 Chave em processamento ou reutilizada com outro conteúdo422 Dados inválidos
GET/api/v1/payable-options
Carteiras, cartões e categorias para lançar
Ids válidos para lançar: carteiras das lojas do usuário, cartões com dia de fechamento e vencimento, e categorias de contas a pagar.
200 Opções de lançamento401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente
POST/api/v1/payables/installments
Lança uma compra parcelada
Divide total_value em parcelas mensais em centavos inteiros, com o resto na 1ª (R$ 100 em 3x = 33,34 + 33,33 + 33,33). No cartão, cada parcela é uma compra no mesmo dia dos meses seguintes e cai na fatura certa; na carteira, vence no due_day de cada mês. Datas nunca pulam mês.
Parâmetros
Nome
Local
Obrigatório
Descrição
Idempotency-Key
header
Sim
Identificador ú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
Campo
Tipo
Obrigatório
Observação
name
string
Sim
Até 160 caracteres.
description
string
Não
—
total_value
number
Sim
—
installments
integer
Sim
—
category_id
integer
Sim
—
store_id
integer
Sim
—
method
string
Sim
Valores: wallet, card.
method_id
integer
Sim
—
purchase_date
string (date)
Sim
—
due_day
integer
Não
Obrigatório na carteira: dia de vencimento de cada parcela.
name_style
string
Não
installment = Nome | Parcela n/total; reference = Nome | Ref: mm/aaaa; plain = só o nome. Valores: installment, reference, plain. Padrão: "installment".
relationship
string
Não
Valores: fornecedor, colaborador, cliente.
relationship_id
integer
Não
—
payment_method
string
Não
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/payables/installments" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
201 Parcelas criadas ou reapresentadas pela mesma chave idempotente401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente409 Chave em processamento ou reutilizada com outro conteúdo422 Dados inválidos
200 Conta a pagar401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado
PATCH/api/v1/payables/{payable}
Edita uma conta a pagar
Edita os campos enviados. Compra no cartão muda de fatura se a data da compra mudar; não troca de cartão. O pagamento não muda aqui: use /payables/{payable}/pay.
200 Conta atualizada401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos
POST/api/v1/payables/{payable}/pay
Marca a conta como paga
Marca como paga, com a data (padrão hoje) e o valor pago (padrão o valor da conta; acima dele vira juros). Compra no cartão não é paga sozinha: pague a fatura (kind invoice).
Corpo da requisição
Campo
Tipo
Obrigatório
Observação
paid_at
string (date)
Não
—
value_paid
number
Não
—
Exemplo
cURL
curl -X POST "$MICORE_BASE_URL/payables/{payable}/pay" \
-H "Authorization: Bearer $MICORE_TOKEN" \
-H "Accept: application/json" \
-H "Idempotency-Key: request-2026-0001" \
-H "Content-Type: application/json" \
-d '{"title": "Lançamento da nova coleção"}'
Respostas
200 Conta paga401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos
DELETE/api/v1/payables/{payable}/installments
Apaga as parcelas em aberto da compra
Apaga as parcelas ainda não pagas da mesma compra parcelada desta conta. As pagas ficam. No cartão, a fatura é recalculada.
200 Parcelas apagadas401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos