Documentação técnica · versão 1

API de Parceiros Cronos

Consulta de infrações e processos administrativos, e cadastro de clientes, veículos e condutores. Contrato próprio e versionado, independente do sistema web.

Base
https://partners.cronoscrm.com.br
Autenticação
Bearer
Formato
JSON · UTF-8
Limite
60 chamadas/min
Testar
/v1/swagger

Credencial

Uma credencial por unidade. Cada token pertence a uma empresa do Cronos e só enxerga e escreve nela.

curl https://partners.cronoscrm.com.br/v1/vehicles/ABC1D23/infringements \
  -H "Authorization: Bearer <token>"
  • Não é login de pessoa. A credencial é do sistema, não dá acesso ao site e não expira sozinha.
  • Entregue uma única vez. O Cronos guarda apenas o hash do token; se ele for perdido, emitimos outro.
  • Revogável a qualquer momento, sem afetar as demais unidades.
  • Restrição por endereço. Se o servidor de vocês tiver IP fixo, a credencial pode ser limitada a ele. Chamada de outro endereço recebe 403.
Somente HTTPS. Chamadas em HTTP são redirecionadas; o token nunca deve trafegar em claro.

Convenções

Consultas

As consultas são somente leitura. Toda resposta traz lastCheckDate, que indica quando aqueles dados foram atualizados pela última vez.

Datas e nulos

  • lastCheckDate é data e hora em UTC, formato ISO-8601: 2026-09-21T03:12:44.000Z.
  • Os demais campos de data são apenas data: 2026-08-14.
  • Campo sem valor vem como null, nunca omitido nem como string vazia.

Limite de uso

60 chamadas por minuto, por credencial. O excedente recebe 429 e pode ser repetido no minuto seguinte.

Versionamento

Campo novo pode ser acrescentado a qualquer resposta sem aviso — o cliente de vocês deve ignorar o que não conhece. Mudança incompatível vira /v2, com prazo de convivência entre as duas versões.

Infrações por placa

GET /v1/vehicles/{board}/infringements

Autuações e multas já registradas para a placa, dentro da unidade da credencial.

Parâmetro de caminho

Campo Tipo Descrição
boardobrigatório string Placa com ou sem separador. abc-1d23, ABC1D23 e abc1d23 chegam ao mesmo cadastro.

Respostas

200 ok 401 credencial 403 endereço 404 placa não cadastrada 429 limite

Corpo da resposta

Campo Tipo Descrição
board string A placa, normalizada.
lastCheckDate date-time · null Última atualização dos dados deste veículo. null se ainda não houve.
infringements array As infrações. Lista vazia se o veículo está cadastrado e nada foi encontrado.

Campos de cada infração

Campo Tipo Descrição
type enum AUTUACAO ou MULTA. A autuação é a fase anterior à multa.
numberAIT string Número do Auto de Infração de Trânsito.
numberProcessing string Número do processo.
organ string · null Órgão autuador.
date date · null Data da infração.
dateInclusionInfringement date · null Data de inclusão da infração.
infringementCode string Código da infração no CTB. Pode vir com ou sem hífen, conforme a origem do registro.
descriptionInfringement string Descrição da infração.
address string Local da infração.
county string Município.
amount string · null Valor da infração. Pode vir com ou sem o prefixo R$.
descriptionSituation string Situação atual da infração.
finePaid boolean Multa quitada.
unavailable boolean true quando a infração deixou de constar na última atualização.
dateDeadline date · null Data limite de defesa prévia.
dateDriverIdentificationDeadline date · null Data limite da FICI.
dateResourceDeadline date · null Data limite de recurso à JARI.

Exemplo

{
  "board": "ABC1D23",
  "lastCheckDate": "2026-09-21T03:12:44.000Z",
  "infringements": [
    {
      "type": "MULTA",
      "numberAIT": "AIT0000145257",
      "numberProcessing": "P-2026-0001",
      "organ": "POLICIA RODOVIARIA FEDERAL",
      "date": "2026-08-14",
      "dateInclusionInfringement": "2026-08-20",
      "infringementCode": "74550",
      "descriptionInfringement": "TRANSITAR EM VELOCIDADE SUPERIOR A MAXIMA",
      "address": "AV AFONSO PENA",
      "county": "BELO HORIZONTE",
      "amount": "195,23",
      "descriptionSituation": "EM ANDAMENTO",
      "finePaid": false,
      "unavailable": false,
      "dateDeadline": "2026-09-10",
      "dateDriverIdentificationDeadline": "2026-09-05",
      "dateResourceDeadline": "2026-10-02"
    }
  ]
}
A mesma placa pode estar cadastrada mais de uma vez na unidade. A resposta traz as infrações de todos os cadastros, e lastCheckDate é a data mais recente entre eles.
A infração indisponível continua na lista, marcada com unavailable: true, em vez de sumir sem aviso. O registro existiu, e o desaparecimento silencioso seria pior de reconciliar do lado de vocês.

Infrações por AIT

GET /v1/infringements/{numberAIT}

Mesmos campos da consulta por placa, para quem tem o número do AIT e não tem a placa. Cada item traz também a board e o lastCheckDate do cadastro a que pertence.

Parâmetro de caminho

Campo Tipo Descrição
numberAITobrigatório string Número do Auto de Infração de Trânsito.

Respostas

200 ok 401 credencial 403 endereço 404 AIT não encontrado 429 limite

Exemplo

{
  "numberAIT": "AIT0000145257",
  "infringements": [
    {
      "board": "ABC1D23",
      "lastCheckDate": "2026-09-21T03:12:44.000Z",
      "type": "MULTA",
      "descriptionSituation": "EM ANDAMENTO",
      "dateResourceDeadline": "2026-10-02"
    }
  ]
}

Exemplo abreviado: cada item traz todos os campos da tabela de infração.

Devolve lista, não um registro. O mesmo AIT pode estar em mais de um cadastro da unidade, e a resposta traz todos. Usem a board de cada item para saber de qual cadastro ele veio.

Processos administrativos do condutor

Processos de suspensão e cassação do direito de dirigir. Duas rotas para o mesmo dado: por CPF ou por CNH, conforme o que o sistema de vocês tiver em mãos.

GET /v1/conductors/{cpf}/administrative-processes

O CPF é aceito com ou sem máscara: 123.456.789-00 e 12345678900 chegam ao mesmo cadastro.

GET /v1/conductors/administrative-processes?cnh={number}

Alternativa por número de registro da CNH. Sem o parâmetro cnh, a chamada recebe 422.

Respostas

200 ok 401 credencial 403 endereço 404 condutor não cadastrado 422 cnh ausente 429 limite

Campos de cada processo

Campo Tipo Descrição
number string Número do processo.
type string Natureza do processo.
situation string Situação atual.
unity string Unidade responsável.
processPoints string · null Pontuação que motivou o processo.
issueDateNotification date · null Data de emissão da notificação.
linkNotification string Endereço da notificação.

Exemplo

{
  "cpf": "123.456.789-00",
  "lastCheckDate": "2026-09-20T03:20:10.000Z",
  "administrativeProcesses": [
    {
      "number": "2026/0001234",
      "type": "PAP - Processo Administrativo de Pontuação",
      "situation": "EM ANDAMENTO",
      "unity": "CIRETRAN CENTRO",
      "processPoints": "20",
      "issueDateNotification": "2026-07-30",
      "linkNotification": "https://transito.mg.gov.br/..."
    }
  ]
}
Condutor sem processo devolve 200 com lista vazia, não 404. O 404 é reservado para condutor que não existe na unidade — são situações diferentes e vale distinguir na tela de vocês.

Cadastro de cliente

POST /v1/clients

Uma chamada por contrato fechado. Cria o cliente e, junto, os veículos e condutores informados, na unidade da credencial. A chamada inteira roda em transação: ou grava tudo, ou não grava nada.

Campos obrigatórios

Registro Obrigatórios Sem eles
Cliente name, document a chamada é recusada com 422
Veículo board, chassi, renavam o veículo é descartado, o resto segue
Condutor cpf, cnh, birthDate, firstLicenseDate o condutor é descartado, o resto segue

Sem esses campos o registro não entra em monitoramento — cadastrar pela metade seria pior, porque o registro pareceria completo e nunca seria atualizado. O que for descartado volta em discarded, com o motivo.

document aceita CPF ou CNPJ, com ou sem máscara. As datas vão em AAAA-MM-DD. Condutor só se aplica a pessoa física.

Campos opcionais do cliente

cellPhone · whatsapp · zipCode · address · numberAddress · neighborhood · city · uf

Quando o registro já existe

Situação O que a API faz
document já cadastrado na unidade usa o cliente existente, não cria outro
cliente existente está inativo reativa e usa o existente
board já cadastrada no cliente, ativa mantém como está
board já cadastrada no cliente, inativa reativa, e o veículo volta a ser consultado
cpf do condutor já cadastrado no cliente mesma regra do veículo

Os demais campos de quem já existe não são atualizados.

Requisição

{
  "name": "MARCO ANTONIO RODRIGUES DE SOUZA",
  "document": "123.456.789-00",
  "cellPhone": "(31) 99999-0000",
  "zipCode": "35010-000",
  "address": "RUA DAS ACACIAS",
  "numberAddress": "150",
  "neighborhood": "CENTRO",
  "city": "GOVERNADOR VALADARES",
  "uf": "MG",
  "vehicles": [
    { "board": "ABC1D23", "chassi": "9BWCA05X61P127009", "renavam": "00123456789" }
  ],
  "conductors": [
    {
      "name": "MARCO ANTONIO RODRIGUES DE SOUZA",
      "cpf": "123.456.789-00",
      "cnh": "01234567890",
      "birthDate": "1980-04-12",
      "firstLicenseDate": "1999-06-01"
    }
  ]
}

Respostas

201 cliente criado 200 já existia 400 corpo inválido 401 credencial 403 endereço 422 campo do cliente 429 limite
{
  "client": { "document": "123.456.789-00", "result": "created" },
  "vehicles": [{ "board": "ABC1D23", "result": "created" }],
  "conductors": [{ "cnh": "01234567890", "result": "reactivated" }],
  "discarded": [
    { "entity": "vehicle", "board": "XYZ9K88", "reason": "chassi is required" }
  ]
}

O campo result

Valor Significado
created o registro foi criado agora
reactivated já existia inativo e voltou a ser consultado
existing já existia ativo e ficou como estava
A API não devolve identificadores internos do Cronos. O vínculo é sempre pela chave de negócio: document para cliente, board para veículo, cnh para condutor.
Sobre reenvio. Não há chave de idempotência. Reenviar a mesma chamada devolve tudo como existing e não duplica nada, porque a deduplicação é pela chave de negócio dentro da unidade. Mas um veículo de placa diferente seria criado. Em caso de dúvida sobre o envio anterior, consultem antes de repetir.

Erros

Toda resposta de erro tem o mesmo corpo:

{
  "error": {
    "code": "not_found",
    "message": "Board not registered for this credential."
  }
}

Programem pelo code, que é estável. A message é texto em inglês para diagnóstico e pode mudar sem aviso.

HTTP code Quando
400 bad_request corpo que não é JSON válido, ou maior que 256 KB
401 unauthorized credencial ausente, inválida ou revogada
403 forbidden chamada de endereço fora da lista da credencial
404 not_found placa, AIT ou condutor não cadastrado na unidade
422 unprocessable campo obrigatório do cliente faltando, ou cnh ausente na busca
429 too_many_requests limite de 60 chamadas por minuto excedido
500 internal_error falha do nosso lado; a chamada pode ser repetida
A credencial só enxerga a unidade dela. Placa, AIT ou condutor de outra unidade devolve 404, igual ao que não existe.

Glossário

Termo Significado
AIT Auto de Infração de Trânsito — o número que identifica a infração.
Autuação Fase anterior à multa: a infração foi registrada, mas a penalidade ainda não foi aplicada.
FICI Formulário de Identificação do Condutor Infrator. O prazo está em dateDriverIdentificationDeadline.
JARI Junta Administrativa de Recursos de Infrações. O prazo de recurso está em dateResourceDeadline.
Defesa prévia Primeira fase de contestação, antes da multa. O prazo está em dateDeadline.
renavam Registro Nacional de Veículos Automotores.
chassi Número de identificação do veículo (VIN).
Unidade Cada empresa cadastrada no Cronos. Uma credencial atende uma unidade.