Veículos
Frota: cadastro, situação, KM, restrição e estado do rastreador. Bloqueio/desbloqueio NÃO é feito pela API.
/v1/veiculosListarGET/v1/veiculos/{id}DetalharGET/v1/veiculos/{id}/locacoesRelação: LocaçõesGET/v1/veiculos/{id}/multasRelação: MultasGET/v1/veiculos/{id}/debitosRelação: Débitos VeicularesGET/v1/veiculos/{id}/ordens_servicoRelação: Ordens de ServiçoGET/v1/veiculos/{id}/licenciamentoRelação: LicenciamentoGET/v1/veiculos/{id}/manutencaoRelação: Manutenção PreditivaGET/v1/veiculos/{id}/vistoriasRelação: VistoriasGET/v1/veiculos/exportarExportar em loteGET/v1/veiculos/{id}/historicoLinha do tempo do veículoPOST/v1/veiculosCadastrar veículoPATCH/v1/veiculos/{id}Atualizar cadastroO objeto veículos
| Campo | Tipo | Descrição | |
|---|---|---|---|
id | inteiro | Identificador | ordenar |
type | texto (enum) | typecarro moto | filtro |
brand | texto | Marca | filtro |
model | texto | Modelo | |
year | inteiro | year | |
manufacture_year | inteiro | manufacture year | |
model_year | inteiro | model year | |
plate | texto | Placa | filtroordenar |
renavam | texto | renavam | |
chassi | texto | chassi | |
status | texto (enum) | disponivel | alugado | manutencao | inativo | vendidodisponivel alugado manutencao inativo vendido | filtro |
fleet_type | texto (enum) | Carteira (mapogos | premium)mapogos premium | filtro |
tracker_status | texto (enum) | Estado do bloqueio no rastreadordesbloqueado bloqueado | filtro |
tracker_imei | texto | tracker imei | LGPD |
tracker_chip | texto | tracker chip | LGPD |
daily_rate | decimal (string) | daily rate | |
price | decimal (string) | price | |
current_km | inteiro | current km | ordenar |
restricao | booleano | 1 = veículo com restrição (não pode ser locado) | filtro |
restricao_obs | texto | restricao obs | |
restricao_at | data-hora | restricao at | |
data_cancelamento_contrato | data | data cancelamento contrato | |
crlv_uploaded_at | data-hora | crlv uploaded at | |
notes | texto | Observações | |
deleted_at | data-hora | deleted at | |
delete_reason | texto | delete reason | |
created_at | data-hora | Criado em | ordenar |
log_origem | texto | Origem do registro (sistema novo/antigo) |
{
"id": 1024,
"type": "carro",
"brand": "RENAULT",
"model": "LOGAN LIFE 1.0",
"year": 1,
"manufacture_year": 1,
"model_year": 1,
"plate": "ABC1D23",
"renavam": "01234567890",
"chassi": "9BWZZZ377VT004251",
"status": "disponivel",
"fleet_type": "mapogos",
"tracker_status": "desbloqueado",
"tracker_imei": "texto",
"tracker_chip": "91981112233",
"daily_rate": "150.00",
"price": "150.00",
"current_km": 45210,
"restricao": false,
"restricao_obs": "texto",
"restricao_at": "2026-10-08T14:30:00-03:00",
"data_cancelamento_contrato": "2026-10-15",
"crlv_uploaded_at": "2026-10-08T14:30:00-03:00",
"notes": "Cliente pediu boleto",
"deleted_at": "2026-10-08T14:30:00-03:00",
"delete_reason": "texto",
"created_at": "2026-10-08T14:30:00-03:00",
"log_origem": "sistema_novo"
}GET Listar
Retorna os registros paginados, do mais recente para o mais antigo (padrão). Requer Ler.
Parâmetros de consulta
| Parâmetro | Tipo | Descrição |
|---|---|---|
pagina | inteiro | Página (padrão 1) |
por_pagina | inteiro | 1 a 200 (padrão 50) |
ordenar | texto | Aceita: id, plate, created_at, current_km — prefixo - para decrescente |
campos | texto | Lista de campos do objeto, separados por vírgula |
q | texto | Busca em: plate, model, brand |
status | texto (enum) | disponivel | alugado | manutencao | inativo | vendido — valor exato ou lista separada por vírguladisponivel alugado manutencao inativo vendido |
type | texto (enum) | type — valor exato ou lista separada por vírgulacarro moto |
fleet_type | texto (enum) | Carteira (mapogos | premium) — valor exato ou lista separada por vírgulamapogos premium |
tracker_status | texto (enum) | Estado do bloqueio no rastreador — valor exato ou lista separada por vírguladesbloqueado bloqueado |
restricao | booleano | 1 = veículo com restrição (não pode ser locado) — valor exato ou lista separada por vírgula |
plate | texto | Placa — valor exato ou lista separada por vírgula |
brand | texto | Marca — valor exato ou lista separada por vírgula |
criado_desde / criado_ate | data | Período de criação |
atualizado_desde | data-hora | Criados ou alterados desde (pelo registro de alterações do Mapogos) |
incluir | texto | Só no detalhe. Relações: locacoes, multas, debitos, ordens_servico, licenciamento, manutencao, vistorias |
curl -X GET "https://apimapogos.sixinformatica.com/v1/veiculos?por_pagina=20" \
-H "Authorization: Bearer $MAPOGOS_API_KEY"<?php
$ch = curl_init('https://apimapogos.sixinformatica.com/v1/veiculos?por_pagina=20');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('MAPOGOS_API_KEY'),
],
]);
$resposta = json_decode(curl_exec($ch), true);
$http = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
if ($resposta['sucesso']) {
print_r($resposta['dados']);
} else {
echo $resposta['erro']['mensagem'];
}const resposta = await fetch('https://apimapogos.sixinformatica.com/v1/veiculos?por_pagina=20', {
method: 'GET',
headers: {
Authorization: `Bearer ${process.env.MAPOGOS_API_KEY}`,
},
});
const json = await resposta.json();
if (json.sucesso) console.log(json.dados);
else console.error(json.erro.mensagem);import os, uuid, requests
resposta = requests.request(
"GET",
"https://apimapogos.sixinformatica.com/v1/veiculos?por_pagina=20",
headers={"Authorization": f"Bearer {os.environ['MAPOGOS_API_KEY']}"},
timeout=30,
)
json = resposta.json()
print(json["dados"] if json["sucesso"] else json["erro"]["mensagem"]){
"sucesso": true,
"dados": [
{
"id": 1024,
"type": "carro",
"brand": "RENAULT",
"model": "LOGAN LIFE 1.0",
"year": 1,
"manufacture_year": 1,
"model_year": 1,
"plate": "ABC1D23"
}
],
"meta": {
"total": 1,
"pagina": 1,
"por_pagina": 20,
"paginas": 1
},
"request_id": "req_0f1e2d3c4b5a69788796"
}GET Detalhar
Retorna um registro pelo id. Requer Ler.
Use incluir para embutir relações (cada uma exige Ler no módulo relacionado).
| Erro | Quando |
|---|---|
404 nao_encontrado | Não existe ou está fora das carteiras da chave |
403 permissao_negada | Sem Ler no módulo (ou numa relação pedida) |
curl -X GET "https://apimapogos.sixinformatica.com/v1/veiculos/1024?incluir=locacoes" \
-H "Authorization: Bearer $MAPOGOS_API_KEY"<?php
$ch = curl_init('https://apimapogos.sixinformatica.com/v1/veiculos/1024?incluir=locacoes');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('MAPOGOS_API_KEY'),
],
]);
$resposta = json_decode(curl_exec($ch), true);
$http = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
if ($resposta['sucesso']) {
print_r($resposta['dados']);
} else {
echo $resposta['erro']['mensagem'];
}const resposta = await fetch('https://apimapogos.sixinformatica.com/v1/veiculos/1024?incluir=locacoes', {
method: 'GET',
headers: {
Authorization: `Bearer ${process.env.MAPOGOS_API_KEY}`,
},
});
const json = await resposta.json();
if (json.sucesso) console.log(json.dados);
else console.error(json.erro.mensagem);import os, uuid, requests
resposta = requests.request(
"GET",
"https://apimapogos.sixinformatica.com/v1/veiculos/1024?incluir=locacoes",
headers={"Authorization": f"Bearer {os.environ['MAPOGOS_API_KEY']}"},
timeout=30,
)
json = resposta.json()
print(json["dados"] if json["sucesso"] else json["erro"]["mensagem"]){
"sucesso": true,
"dados": {
"id": 1024,
"type": "carro",
"brand": "RENAULT",
"model": "LOGAN LIFE 1.0",
"year": 1,
"manufacture_year": 1,
"model_year": 1,
"plate": "ABC1D23"
},
"request_id": "req_1d2c3b4a5f6e7d8c9b0a"
}Relações
| Nome | Módulo | Retorno | Rota |
|---|---|---|---|
locacoes | Locações | lista paginada | /v1/veiculos/{id}/locacoes |
multas | Multas | lista paginada | /v1/veiculos/{id}/multas |
debitos | Débitos Veiculares | lista paginada | /v1/veiculos/{id}/debitos |
ordens_servico | Ordens de Serviço | lista paginada | /v1/veiculos/{id}/ordens_servico |
licenciamento | Licenciamento | lista paginada | /v1/veiculos/{id}/licenciamento |
manutencao | Manutenção Preditiva | lista paginada | /v1/veiculos/{id}/manutencao |
vistorias | Vistorias | lista paginada | /v1/veiculos/{id}/vistorias |
GET Exportar em lote
Até 1000 registros por chamada, paginando por cursor. Requer Ler e Exportar. Aceita os mesmos filtros da listagem e formato=csv. Detalhes no guia Exportação em lote.
curl -X GET "https://apimapogos.sixinformatica.com/v1/veiculos/exportar?limite=1000" \
-H "Authorization: Bearer $MAPOGOS_API_KEY"<?php
$ch = curl_init('https://apimapogos.sixinformatica.com/v1/veiculos/exportar?limite=1000');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('MAPOGOS_API_KEY'),
],
]);
$resposta = json_decode(curl_exec($ch), true);
$http = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
if ($resposta['sucesso']) {
print_r($resposta['dados']);
} else {
echo $resposta['erro']['mensagem'];
}const resposta = await fetch('https://apimapogos.sixinformatica.com/v1/veiculos/exportar?limite=1000', {
method: 'GET',
headers: {
Authorization: `Bearer ${process.env.MAPOGOS_API_KEY}`,
},
});
const json = await resposta.json();
if (json.sucesso) console.log(json.dados);
else console.error(json.erro.mensagem);import os, uuid, requests
resposta = requests.request(
"GET",
"https://apimapogos.sixinformatica.com/v1/veiculos/exportar?limite=1000",
headers={"Authorization": f"Bearer {os.environ['MAPOGOS_API_KEY']}"},
timeout=30,
)
json = resposta.json()
print(json["dados"] if json["sucesso"] else json["erro"]["mensagem"])GET Linha do tempo do veículo
Eventos do veículo em ordem cronológica: locações, ordens de serviço, multas, vistorias e comandos do rastreador. Seções de módulos que a chave não pode ler são omitidas e listadas em meta.secoes_omitidas_por_permissao.
curl -X GET "https://apimapogos.sixinformatica.com/v1/veiculos/1024/historico" \
-H "Authorization: Bearer $MAPOGOS_API_KEY"<?php
$ch = curl_init('https://apimapogos.sixinformatica.com/v1/veiculos/1024/historico');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('MAPOGOS_API_KEY'),
],
]);
$resposta = json_decode(curl_exec($ch), true);
$http = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
if ($resposta['sucesso']) {
print_r($resposta['dados']);
} else {
echo $resposta['erro']['mensagem'];
}const resposta = await fetch('https://apimapogos.sixinformatica.com/v1/veiculos/1024/historico', {
method: 'GET',
headers: {
Authorization: `Bearer ${process.env.MAPOGOS_API_KEY}`,
},
});
const json = await resposta.json();
if (json.sucesso) console.log(json.dados);
else console.error(json.erro.mensagem);import os, uuid, requests
resposta = requests.request(
"GET",
"https://apimapogos.sixinformatica.com/v1/veiculos/1024/historico",
headers={"Authorization": f"Bearer {os.environ['MAPOGOS_API_KEY']}"},
timeout=30,
)
json = resposta.json()
print(json["dados"] if json["sucesso"] else json["erro"]["mensagem"])POST Cadastrar veículo
Cadastrar veículo (entra como disponível/desbloqueado). Requer criar.
Corpo da requisição (JSON)
| Campo | Tipo | Regras | |
|---|---|---|---|
plate | texto | obrigatório | Placa (única) (até 20 caracteres) |
model | texto | obrigatório | (até 80 caracteres) |
brand | texto | opcional | (até 60 caracteres) |
type | enum | opcional | Padrão carrocarro moto |
fleet_type | enum | opcional | Carteira (padrão mapogos; precisa estar nas carteiras da chave)mapogos premium |
manufacture_year | inteiro | opcional | |
model_year | inteiro | opcional | |
renavam | texto | opcional | (até 30 caracteres) |
chassi | texto | opcional | (até 50 caracteres) |
daily_rate | decimal | opcional | |
price | decimal | opcional | |
current_km | inteiro | opcional | |
notes | texto | opcional | (até 5000 caracteres) |
Erros possíveis: 422 validacao (lista todos os campos), 409 conflito (estado não permite), 403, 404, 415.
curl -X POST "https://apimapogos.sixinformatica.com/v1/veiculos" \
-H "Authorization: Bearer $MAPOGOS_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"plate":"ABC1D23","brand":"RENAULT","model":"LOGAN LIFE 1.0","manufacture_year":2023,"model_year":2024,"fleet_type":"mapogos","daily_rate":"100.00"}'<?php
$ch = curl_init('https://apimapogos.sixinformatica.com/v1/veiculos');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('MAPOGOS_API_KEY'),
'Content-Type: application/json',
'Idempotency-Key: ' . bin2hex(random_bytes(16)),
],
CURLOPT_POSTFIELDS => json_encode([
'plate' => 'ABC1D23',
'brand' => 'RENAULT',
'model' => 'LOGAN LIFE 1.0',
'manufacture_year' => 2023,
'model_year' => 2024,
'fleet_type' => 'mapogos',
'daily_rate' => '100.00',
]),
]);
$resposta = json_decode(curl_exec($ch), true);
$http = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
if ($resposta['sucesso']) {
print_r($resposta['dados']);
} else {
echo $resposta['erro']['mensagem'];
}const resposta = await fetch('https://apimapogos.sixinformatica.com/v1/veiculos', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.MAPOGOS_API_KEY}`,
'Content-Type': 'application/json',
'Idempotency-Key': crypto.randomUUID(),
},
body: JSON.stringify({
"plate": "ABC1D23",
"brand": "RENAULT",
"model": "LOGAN LIFE 1.0",
"manufacture_year": 2023,
"model_year": 2024,
"fleet_type": "mapogos",
"daily_rate": "100.00"
}),
});
const json = await resposta.json();
if (json.sucesso) console.log(json.dados);
else console.error(json.erro.mensagem);import os, uuid, requests
resposta = requests.request(
"POST",
"https://apimapogos.sixinformatica.com/v1/veiculos",
headers={"Authorization": f"Bearer {os.environ['MAPOGOS_API_KEY']}",
"Idempotency-Key": str(uuid.uuid4())},
json={
"plate": "ABC1D23",
"brand": "RENAULT",
"model": "LOGAN LIFE 1.0",
"manufacture_year": 2023,
"model_year": 2024,
"fleet_type": "mapogos",
"daily_rate": "100.00"
},
timeout=30,
)
json = resposta.json()
print(json["dados"] if json["sucesso"] else json["erro"]["mensagem"]){
"sucesso": true,
"dados": {
"id": 1024,
"type": "carro",
"brand": "RENAULT",
"model": "LOGAN LIFE 1.0",
"year": 1,
"manufacture_year": 1,
"model_year": 1,
"plate": "ABC1D23"
},
"request_id": "req_6c5b4a3f2e1d0c9b8a7f"
}PATCH Atualizar cadastro
Atualizar cadastro (status e rastreador não são alteráveis pela API). Requer atualizar.
Corpo da requisição (JSON)
| Campo | Tipo | Regras | |
|---|---|---|---|
plate | texto | opcional | Placa (única) (até 20 caracteres) |
model | texto | opcional | (até 80 caracteres) |
brand | texto | opcional | (até 60 caracteres) |
type | enum | opcional | Padrão carrocarro moto |
fleet_type | enum | opcional | Carteira (padrão mapogos; precisa estar nas carteiras da chave)mapogos premium |
manufacture_year | inteiro | opcional | |
model_year | inteiro | opcional | |
renavam | texto | opcional | (até 30 caracteres) |
chassi | texto | opcional | (até 50 caracteres) |
daily_rate | decimal | opcional | |
price | decimal | opcional | |
current_km | inteiro | opcional | |
notes | texto | opcional | (até 5000 caracteres) |
Erros possíveis: 422 validacao (lista todos os campos), 409 conflito (estado não permite), 403, 404, 415.
curl -X PATCH "https://apimapogos.sixinformatica.com/v1/veiculos/1024" \
-H "Authorization: Bearer $MAPOGOS_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"current_km":45210,"notes":"Revisão em dia"}'<?php
$ch = curl_init('https://apimapogos.sixinformatica.com/v1/veiculos/1024');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'PATCH',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('MAPOGOS_API_KEY'),
'Content-Type: application/json',
'Idempotency-Key: ' . bin2hex(random_bytes(16)),
],
CURLOPT_POSTFIELDS => json_encode([
'current_km' => 45210,
'notes' => 'Revisão em dia',
]),
]);
$resposta = json_decode(curl_exec($ch), true);
$http = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
if ($resposta['sucesso']) {
print_r($resposta['dados']);
} else {
echo $resposta['erro']['mensagem'];
}const resposta = await fetch('https://apimapogos.sixinformatica.com/v1/veiculos/1024', {
method: 'PATCH',
headers: {
Authorization: `Bearer ${process.env.MAPOGOS_API_KEY}`,
'Content-Type': 'application/json',
'Idempotency-Key': crypto.randomUUID(),
},
body: JSON.stringify({
"current_km": 45210,
"notes": "Revisão em dia"
}),
});
const json = await resposta.json();
if (json.sucesso) console.log(json.dados);
else console.error(json.erro.mensagem);import os, uuid, requests
resposta = requests.request(
"PATCH",
"https://apimapogos.sixinformatica.com/v1/veiculos/1024",
headers={"Authorization": f"Bearer {os.environ['MAPOGOS_API_KEY']}",
"Idempotency-Key": str(uuid.uuid4())},
json={
"current_km": 45210,
"notes": "Revisão em dia"
},
timeout=30,
)
json = resposta.json()
print(json["dados"] if json["sucesso"] else json["erro"]["mensagem"]){
"sucesso": true,
"dados": {
"id": 1024,
"type": "carro",
"brand": "RENAULT",
"model": "LOGAN LIFE 1.0",
"year": 1,
"manufacture_year": 1,
"model_year": 1,
"plate": "ABC1D23"
},
"request_id": "req_6c5b4a3f2e1d0c9b8a7f"
}Eventos de webhook
veiculo.bloqueado veiculo.desbloqueado veiculo.criado veiculo.atualizado — veja Webhooks.