Las descripciones técnicas se traducen del contrato versionado. Se conservan los identificadores y el JSON originales; se omiten los ejemplos de datos.
Definición JSON Original (Descripciones en Portugués)
{
"type": "object",
"required": [
"tipo_operacao",
"contratado",
"viagem",
"rota",
"carga",
"veiculos",
"motorista",
"documentos",
"valores"
],
"allOf": [
{
"if": {
"properties": {
"tipo_operacao": {
"const": "fracionado"
}
},
"required": [
"tipo_operacao"
]
},
"then": {
"properties": {
"carga": {
"required": [
"contratantes"
]
}
}
}
}
],
"properties": {
"referencia_externa": {
"type": [
"string",
"null"
],
"maxLength": 64,
"description": "O identificador **do seu sistema** para esta viagem. Opcional, e **único por\nempresa**: é a chave de idempotência que impede um retry de rede virar um segundo\nCIOT para o mesmo frete.\n\nNão vai para a ANTT.\n"
},
"tipo_operacao": {
"type": "string",
"enum": [
"lotacao",
"fracionado"
],
"description": "`lotacao` para uma carga que ocupa a operação inteira; `fracionado` para cargas de\nvários contratantes na mesma viagem. TAC agregado continua fora desta versão.\n"
},
"contratado": {
"type": "object",
"required": [
"documento",
"nome",
"rntrc"
],
"description": "Quem transporta. **Tem de ser a empresa autenticada**: esta rota declara em nome\npróprio. Um contratado diferente responde `422 declaracao_bloqueada`.\n",
"properties": {
"documento": {
"type": "string",
"pattern": "^([0-9]{11}|[0-9]{14})$"
},
"nome": {
"type": "string",
"maxLength": 120
},
"rntrc": {
"type": "string",
"pattern": "^[0-9]{8,9}$"
}
}
},
"viagem": {
"type": "object",
"required": [
"data_inicio",
"data_fim",
"distancia_percorrida"
],
"properties": {
"data_inicio": {
"type": "string",
"format": "date"
},
"data_fim": {
"type": "string",
"format": "date",
"description": "Não pode ser anterior a `data_inicio`."
},
"distancia_percorrida": {
"type": "integer",
"minimum": 1,
"description": "Em quilômetros."
},
"alto_desempenho": {
"type": "boolean",
"default": false
},
"retorno_vazio": {
"type": "boolean",
"default": false
},
"composicao_veicular": {
"type": "boolean",
"default": false
}
}
},
"rota": {
"type": "object",
"required": [
"origem",
"destino"
],
"properties": {
"origem": {
"type": "object",
"required": [
"codigo_municipio",
"cep",
"uf"
],
"properties": {
"codigo_municipio": {
"type": "string",
"pattern": "^[0-9]{7}$"
},
"cep": {
"type": "string",
"pattern": "^[0-9]{8}$"
},
"uf": {
"type": "string",
"minLength": 2,
"maxLength": 2
}
}
},
"destino": {
"type": "object",
"required": [
"codigo_municipio",
"cep",
"uf"
],
"properties": {
"codigo_municipio": {
"type": "string",
"pattern": "^[0-9]{7}$"
},
"cep": {
"type": "string",
"pattern": "^[0-9]{8}$"
},
"uf": {
"type": "string",
"minLength": 2,
"maxLength": 2
}
}
},
"trechos": {
"type": "array",
"maxItems": 100,
"description": "Coletas e entregas intermediárias. Opcional; os extremos gerais continuam em\n`origem` e `destino`.\n",
"items": {
"type": "object",
"required": [
"origem_codigo_municipio",
"destino_codigo_municipio",
"distancia_percorrida"
],
"properties": {
"origem_codigo_municipio": {
"type": "string",
"pattern": "^[0-9]{7}$"
},
"destino_codigo_municipio": {
"type": "string",
"pattern": "^[0-9]{7}$"
},
"distancia_percorrida": {
"type": "integer",
"minimum": 1,
"maximum": 99999
}
}
}
}
}
},
"carga": {
"type": "object",
"required": [
"codigo_tipo_carga",
"codigo_natureza_carga",
"peso_carga",
"valor_mercadoria"
],
"properties": {
"codigo_tipo_carga": {
"type": "integer",
"minimum": 1
},
"codigo_natureza_carga": {
"type": "string",
"maxLength": 10
},
"peso_carga": {
"type": "number",
"format": "double",
"minimum": 0.01
},
"valor_mercadoria": {
"type": "number",
"format": "double",
"minimum": 0.01
},
"contratantes": {
"type": "array",
"minItems": 1,
"maxItems": 100,
"description": "Obrigatório quando `tipo_operacao` for `fracionado`.",
"items": {
"type": "object",
"required": [
"documento"
],
"properties": {
"documento": {
"type": "string",
"pattern": "^([0-9]{11}|[0-9]{14})$"
}
}
}
}
}
},
"veiculos": {
"type": "array",
"minItems": 1,
"maxItems": 10,
"description": "De um a dez veículos por operação.",
"items": {
"type": "object",
"required": [
"placa",
"eixos"
],
"properties": {
"placa": {
"type": "string",
"pattern": "^[A-Za-z]{3}[0-9][A-Za-z0-9][0-9]{2}$"
},
"rntrc": {
"type": [
"string",
"null"
],
"pattern": "^[0-9]{8,9}$",
"description": "Omitido, assume-se o RNTRC do contratado."
},
"eixos": {
"type": "integer",
"minimum": 2,
"maximum": 9
}
}
}
},
"motorista": {
"type": "object",
"required": [
"cpf",
"nome",
"data_nascimento",
"telefone"
],
"properties": {
"cpf": {
"type": "string",
"pattern": "^[0-9]{11}$"
},
"nome": {
"type": "string",
"maxLength": 120
},
"data_nascimento": {
"type": "string",
"format": "date"
},
"telefone": {
"type": "string",
"pattern": "^[0-9]{10,11}$",
"description": "DDD + número, somente dígitos."
}
}
},
"documentos": {
"type": "array",
"minItems": 1,
"maxItems": 100,
"items": {
"$ref": "#/components/schemas/DocumentoCargaCiot"
}
},
"valores": {
"type": "object",
"required": [
"frete_bruto"
],
"properties": {
"frete_bruto": {
"type": "number",
"format": "double",
"minimum": 0.01,
"description": "O valor do frete da viagem, em reais."
},
"pedagio": {
"type": [
"number",
"null"
],
"format": "double",
"minimum": 0,
"description": "Valor total de pedágio, quando houver. O Vale-Pedágio com detalhe de praças\nainda não é aceito por esta rota.\n"
}
}
}
}
}