Documentação da API

API de Contratos

Contratos recorrentes

13 endpoints · base https://api.comando.one/v1 · autenticação por chave cmd_live_…

GET/contracts

Listar contratos

contracts:read

Parâmetros, corpo, resposta e exemplo

Parâmetros

page(query)integerNúmero da página (default: 1)
per_page(query)integerItens por página (default: 20, máx: 100)
search(query)stringBusca por título ou notas
status(query)"ativo" | "suspenso" | "cancelado" | "finalizado"
frequency(query)"semanal" | "quinzenal" | "mensal" | "bimestral" | "trimestral" | "semestral" | "anual"
customer_id(query)string (uuid)

Resposta 200 — Listagem paginada

idstring (uuid)
customer_idstring (uuid)
customersobject
titlestring | null
status"ativo" | "suspenso" | "cancelado" | "finalizado"
frequency"semanal" | "quinzenal" | "mensal" | "bimestral" | "trimestral" | "semestral" | "anual"
start_datestring (date)
end_datestring | null (date)
amountnumber
due_daysinteger
next_generation_datestring | null (date)
notesstring | null
created_atstring (date-time)
updated_atstring (date-time)

Exemplo

curl -X GET "https://api.comando.one/v1/contracts" \
  -H "Authorization: Bearer cmd_live_SUA_CHAVE"
POST/contracts

Criar contrato

contracts:write

Parâmetros, corpo, resposta e exemplo

Corpo (JSON)

customer_idobrigatóriostring (uuid)
titlestring
status"ativo" | "suspenso" | "cancelado" | "finalizado"
frequency"semanal" | "quinzenal" | "mensal" | "bimestral" | "trimestral" | "semestral" | "anual"
start_datestring (date)
end_datestring (date)
due_daysinteger
amountnumber
payment_method_idstring (uuid)
next_generation_datestring (date)Data da próxima geração de fatura. Omitido, usa 'start_date'.
notesstring

Resposta 201 — Contrato criado

idstring (uuid)
customer_idstring (uuid)
customersobject
titlestring | null
status"ativo" | "suspenso" | "cancelado" | "finalizado"
frequency"semanal" | "quinzenal" | "mensal" | "bimestral" | "trimestral" | "semestral" | "anual"
start_datestring (date)
end_datestring | null (date)
amountnumber
due_daysinteger
next_generation_datestring | null (date)
notesstring | null
created_atstring (date-time)
updated_atstring (date-time)

Exemplo

curl -X POST "https://api.comando.one/v1/contracts" \
  -H "Authorization: Bearer cmd_live_SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{"customer_id":"<string (uuid)>"}'
DELETE/contracts/{id}

Excluir contrato

contracts:delete

Parâmetros, corpo, resposta e exemplo

Parâmetros

idobrigatório(path)string (uuid)

Resposta 204 — Excluído

Sem corpo.

Exemplo

curl -X DELETE "https://api.comando.one/v1/contracts/{id}" \
  -H "Authorization: Bearer cmd_live_SUA_CHAVE"
GET/contracts/{id}

Obter contrato

contracts:read

Parâmetros, corpo, resposta e exemplo

Parâmetros

idobrigatório(path)string (uuid)

Resposta 200 — Contrato com itens e seções

idstring (uuid)
customer_idstring (uuid)
customersobject
titlestring | null
status"ativo" | "suspenso" | "cancelado" | "finalizado"
frequency"semanal" | "quinzenal" | "mensal" | "bimestral" | "trimestral" | "semestral" | "anual"
start_datestring (date)
end_datestring | null (date)
amountnumber
due_daysinteger
next_generation_datestring | null (date)
notesstring | null
created_atstring (date-time)
updated_atstring (date-time)
contract_itemsarray de ContractItem
contract_sectionsarray | null

Exemplo

curl -X GET "https://api.comando.one/v1/contracts/{id}" \
  -H "Authorization: Bearer cmd_live_SUA_CHAVE"
PATCH/contracts/{id}

Atualizar contrato

contracts:write

Parâmetros, corpo, resposta e exemplo

Parâmetros

idobrigatório(path)string (uuid)

Corpo (JSON)

customer_idstring (uuid)Troca o cliente do contrato. Precisa ser cliente desta empresa (404). Recusado com 409 se o contrato tem autorização de débito recorrente ativa (cartão salvo ou Pix Automático) — ela é do pagador atual; revogue-a antes. Faturas já geradas continuam no cliente antigo.
titlestring | null
status"ativo" | "suspenso" | "cancelado" | "finalizado"
frequency"semanal" | "quinzenal" | "mensal" | "bimestral" | "trimestral" | "semestral" | "anual"
start_datestring (date)
end_datestring | null (date)
due_daysinteger
amountnumber
payment_method_idstring | null (uuid)
next_generation_datestring (date)Reagenda a próxima geração de fatura (rodada diária das 03:00). Só hoje (fuso de Brasília) em diante: data no passado é 400, porque o gerador emitiria de uma vez uma fatura por ciclo atrasado. Para gerar um ciclo agora use POST /contracts/{id}/generate-invoices.
notesstring | null

Resposta 200 — Contrato atualizado

idstring (uuid)
customer_idstring (uuid)
customersobject
titlestring | null
status"ativo" | "suspenso" | "cancelado" | "finalizado"
frequency"semanal" | "quinzenal" | "mensal" | "bimestral" | "trimestral" | "semestral" | "anual"
start_datestring (date)
end_datestring | null (date)
amountnumber
due_daysinteger
next_generation_datestring | null (date)
notesstring | null
created_atstring (date-time)
updated_atstring (date-time)

Exemplo

curl -X PATCH "https://api.comando.one/v1/contracts/{id}" \
  -H "Authorization: Bearer cmd_live_SUA_CHAVE"
POST/contracts/{id}/generate-invoices

Gerar as faturas devidas do contrato

Gera fatura do contrato. Por padrão (mode=extra) cria uma fatura AVULSA fora do ciclo: não avança o agendamento, então chamar duas vezes gera DUAS faturas. Use mode=cycle para antecipar a fatura do ciclo corrente — é esse modo que avança next_generation_date e evita duplicar a competência. mode=skip pula o ciclo sem gerar nada. Contrato cancelado ou suspenso é recusado.

invoices:create

Parâmetros, corpo, resposta e exemplo

Parâmetros

idobrigatório(path)string (uuid)

Corpo (JSON)

mode"extra" | "cycle" | "skip"extra = avulsa (repetível) · cycle = fatura do ciclo, avança o agendamento · skip = só avança

Resposta 200 — Geração executada

contract_idstring (uuid)
createdintegerQuantas faturas nasceram nesta chamada.

Exemplo

curl -X POST "https://api.comando.one/v1/contracts/{id}/generate-invoices" \
  -H "Authorization: Bearer cmd_live_SUA_CHAVE"
POST/contracts/{id}/pause

Pausar contrato (status → suspenso)

contracts:write

Parâmetros, corpo, resposta e exemplo

Parâmetros

idobrigatório(path)string (uuid)

Resposta 200 — Contrato pausado

idstring (uuid)
customer_idstring (uuid)
customersobject
titlestring | null
status"ativo" | "suspenso" | "cancelado" | "finalizado"
frequency"semanal" | "quinzenal" | "mensal" | "bimestral" | "trimestral" | "semestral" | "anual"
start_datestring (date)
end_datestring | null (date)
amountnumber
due_daysinteger
next_generation_datestring | null (date)
notesstring | null
created_atstring (date-time)
updated_atstring (date-time)

Exemplo

curl -X POST "https://api.comando.one/v1/contracts/{id}/pause" \
  -H "Authorization: Bearer cmd_live_SUA_CHAVE"
GET/contracts/{id}/readjustments

Histórico de reajustes do contrato

contracts:read

Parâmetros, corpo, resposta e exemplo

Parâmetros

idobrigatório(path)string (uuid)

Resposta 200 — Reajustes aplicados (mais recente primeiro)

idstring (uuid)
contract_idstring (uuid)
applied_atstring (date-time)
applied_bystring | null (uuid)
period_startstring | null (date)Início do período coberto (último reajuste anterior)
period_endstring | null (date)
previous_amountnumber
new_amountnumber
applied_percentnumberPercentual efetivamente aplicado
suggested_percentnumber | nullSugestão do índice preferido no momento da aplicação
suggested_index"ipca" | "igpm" | "inpc" | "usd" | "eur" | null
notesstring | null

Exemplo

curl -X GET "https://api.comando.one/v1/contracts/{id}/readjustments" \
  -H "Authorization: Bearer cmd_live_SUA_CHAVE"
POST/contracts/{id}/readjustments

Aplicar reajuste no contrato

Atualiza o valor do contrato (e escala os itens proporcionalmente), grava o histórico e avança a data do próximo reajuste. Informe 'new_amount' OU 'percent'. Faturas já geradas não são alteradas.

contracts:write

Parâmetros, corpo, resposta e exemplo

Parâmetros

idobrigatório(path)string (uuid)

Corpo (JSON)

new_amountnumberNovo valor do contrato (R$)
percentnumberPercentual de reajuste (ex.: 4.62)
suggested_percentnumberSugestão exibida no momento (para o histórico sugerido × aplicado)
suggested_index"ipca" | "igpm" | "inpc" | "usd" | "eur"
notesstring

Resposta 201 — Reajuste aplicado

idstring (uuid)
contract_idstring (uuid)
applied_atstring (date-time)
applied_bystring | null (uuid)
period_startstring | null (date)Início do período coberto (último reajuste anterior)
period_endstring | null (date)
previous_amountnumber
new_amountnumber
applied_percentnumberPercentual efetivamente aplicado
suggested_percentnumber | nullSugestão do índice preferido no momento da aplicação
suggested_index"ipca" | "igpm" | "inpc" | "usd" | "eur" | null
notesstring | null

Exemplo

curl -X POST "https://api.comando.one/v1/contracts/{id}/readjustments" \
  -H "Authorization: Bearer cmd_live_SUA_CHAVE"
DELETE/contracts/{id}/readjustments/{readjustmentId}

Desfazer um reajuste aplicado

Devolve o contrato ao valor anterior, restaura os itens ao estado gravado no momento da aplicação e recalcula a data do próximo reajuste. Só o reajuste mais recente ainda vigente pode ser desfeito, e apenas se o valor do contrato não tiver sido alterado depois. A linha permanece no histórico marcada como desfeita; faturas já geradas não são alteradas.

contracts:write

Parâmetros, corpo, resposta e exemplo

Parâmetros

idobrigatório(path)string (uuid)
readjustmentIdobrigatório(path)string (uuid)

Resposta 200 — Reajuste desfeito

revertedboolean
contract_idstring (uuid)
restored_amountnumber
items_exactbooleanfalse quando os itens voltaram por escala inversa (aproximada), por ausência do registro anterior

Exemplo

curl -X DELETE "https://api.comando.one/v1/contracts/{id}/readjustments/{readjustmentId}" \
  -H "Authorization: Bearer cmd_live_SUA_CHAVE"
POST/contracts/{id}/resume

Retomar contrato (status → ativo)

contracts:write

Parâmetros, corpo, resposta e exemplo

Parâmetros

idobrigatório(path)string (uuid)

Resposta 200 — Contrato retomado

idstring (uuid)
customer_idstring (uuid)
customersobject
titlestring | null
status"ativo" | "suspenso" | "cancelado" | "finalizado"
frequency"semanal" | "quinzenal" | "mensal" | "bimestral" | "trimestral" | "semestral" | "anual"
start_datestring (date)
end_datestring | null (date)
amountnumber
due_daysinteger
next_generation_datestring | null (date)
notesstring | null
created_atstring (date-time)
updated_atstring (date-time)

Exemplo

curl -X POST "https://api.comando.one/v1/contracts/{id}/resume" \
  -H "Authorization: Bearer cmd_live_SUA_CHAVE"
GET/contracts/readjustments/due

Fila de reajuste (contratos atrasados + janela)

Contratos ativos, não isentos, com reajuste vencido ou vencendo na janela informada. Campo 'overdue' indica atraso.

contracts:read

Parâmetros, corpo, resposta e exemplo

Parâmetros

days(query)integerJanela em dias além dos atrasados

Resposta 200 — Fila de reajuste

idstring (uuid)
customer_idstring (uuid)
customersobject
titlestring | null
statusstring
frequencystring
amountnumber
readjustment_index"ipca" | "igpm" | "inpc" | "usd" | "eur" | "manual"
readjustment_period_monthsinteger
last_readjustment_datestring | null (date)
next_readjustment_datestring | null (date)
next_generation_datestring | null (date)Quando a próxima fatura será gerada — se antes do reajuste, ela sai no valor antigo
overdueboolean

Exemplo

curl -X GET "https://api.comando.one/v1/contracts/readjustments/due" \
  -H "Authorization: Bearer cmd_live_SUA_CHAVE"
GET/market-indices

Índices de mercado acumulados no período (BCB)

Acumulado de IPCA/IGP-M/INPC (composto mensal) e variação da PTAX de dólar/euro entre 'from' e 'to'. Fonte: Banco Central (SGS e PTAX), sincronizada diariamente.

contracts:read

Parâmetros, corpo, resposta e exemplo

Parâmetros

fromobrigatório(query)string (date)Início do período (ex.: data do último reajuste)
to(query)string (date)Fim do período (padrão: hoje)

Resposta 200 — Acumulados por índice

index_code"ipca" | "igpm" | "inpc" | "usd" | "eur"
accumulated_pctnumber | nullAcumulado em pontos percentuais (4.62 = 4,62%); null = sem cobertura de dados
coverage_startstring | null (date)
coverage_endstring | null (date)
last_ref_datestring | null (date)Até onde o índice cobre (IPCA sai com ~15 dias de atraso)

Exemplo

curl -X GET "https://api.comando.one/v1/market-indices" \
  -H "Authorization: Bearer cmd_live_SUA_CHAVE"

Início rápido, autenticação, SDK, servidor MCP e o playground para testar sem escrever código estão na documentação completa. A especificação em OpenAPI está em api.comando.one/openapi.json.

Outros recursos da API

Ou deixe a IA usar a API por você

O servidor MCP expõe estes mesmos recursos ao ChatGPT, Claude ou Gemini — com OAuth, sem chave de API.

Conectar um assistente