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.
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
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
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"
}
]
}
lastCheckDate é a
data mais recente entre eles.
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
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
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.
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.
O CPF é aceito com ou sem máscara: 123.456.789-00 e
12345678900 chegam ao mesmo cadastro.
Alternativa por número de registro da CNH. Sem o parâmetro cnh, a
chamada recebe 422.
Respostas
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/..."
}
]
}
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
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
{
"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 |
document para cliente,
board para veículo, cnh para condutor.
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 |
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. |