Ordens de Serviço
OS da oficina: abertura, diagnóstico, peças e serviços, conclusão.
/v1/ordens_servicoListarGET/v1/ordens_servico/{id}DetalharGET/v1/ordens_servico/{id}/itensRelação: Itens de OSGET/v1/ordens_servico/{id}/veiculoRelação: VeículosGET/v1/ordens_servico/{id}/clienteRelação: ClientesGET/v1/ordens_servico/exportarExportar em lotePOST/v1/ordens_servicoAbrir OSPATCH/v1/ordens_servico/{id}Atualizar mecânico, diagnóstico, notas ou KMPOST/v1/ordens_servico/{id}/itensAdicionar peçaPOST/v1/ordens_servico/{id}/itens/{pid}/removerRemover itemPOST/v1/ordens_servico/{id}/concluirConcluir OSO objeto ordens de serviço
| Campo | Tipo | Descrição | |
|---|---|---|---|
id | inteiro | Identificador | ordenar |
plate | texto | Placa | filtro |
vehicle_id | inteiro | ID do veículo | filtro |
vehicle_model | texto | vehicle model | |
client_id | inteiro | ID do cliente | filtro |
os_type | texto (enum) | aluguel | vendaaluguel venda | filtro |
status | texto | aberta | concluida | filtro |
km_open | inteiro | km open | |
km_close | inteiro | km close | |
responsible | texto | responsible | |
mechanic_name | texto | mechanic name | |
mechanic_user_id | inteiro | mechanic user id | filtro |
summary | texto | summary | |
diagnosis | texto | diagnosis | |
final_diagnosis | texto | final diagnosis | |
notes | texto | Observações | |
final_notes | texto | final notes | |
total_parts | decimal (string) | total parts | |
total_services | decimal (string) | total services | |
discount | decimal (string) | discount | |
total_amount | decimal (string) | Valor total | ordenar |
due_date | data | Vencimento | |
destaque | booleano | destaque | filtro |
calc_excluded | booleano | 1 = fora do cálculo de custos | |
calc_excluded_reason | texto | calc excluded reason | |
opened_at | data-hora | opened at | ordenar |
released_at | data-hora | released at | |
closed_at | data-hora | closed at | ordenar |
created_by_user_id | inteiro | ID do usuário que criou | |
closed_by_user_id | inteiro | closed by user id | |
updated_at | data-hora | Atualizado em |
{
"id": 1024,
"plate": "ABC1D23",
"vehicle_id": 512,
"vehicle_model": "RENAULT LOGAN",
"client_id": 512,
"os_type": "aluguel",
"status": "aberta",
"km_open": 45210,
"km_close": 45210,
"responsible": "João",
"mechanic_name": "João Mecânico",
"mechanic_user_id": 512,
"summary": "Troca de pastilhas",
"diagnosis": "Pastilhas gastas",
"final_diagnosis": "texto",
"notes": "Cliente pediu boleto",
"final_notes": "texto",
"total_parts": "450.00",
"total_services": "450.00",
"discount": "150.00",
"total_amount": "450.00",
"due_date": "2026-10-15",
"destaque": false,
"calc_excluded": false,
"calc_excluded_reason": "texto",
"opened_at": "2026-10-08T14:30:00-03:00",
"released_at": "2026-10-08T14:30:00-03:00",
"closed_at": "2026-10-08T14:30:00-03:00",
"created_by_user_id": 512,
"closed_by_user_id": 512,
"updated_at": "2026-10-08T14:30:00-03:00"
}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, opened_at, closed_at, total_amount — prefixo - para decrescente |
campos | texto | Lista de campos do objeto, separados por vírgula |
q | texto | Busca em: plate, summary |
status | texto | aberta | concluida — valor exato ou lista separada por vírgula |
os_type | texto (enum) | aluguel | venda — valor exato ou lista separada por vírgulaaluguel venda |
vehicle_id | inteiro | ID do veículo — valor exato ou lista separada por vírgula |
plate | texto | Placa — valor exato ou lista separada por vírgula |
client_id | inteiro | ID do cliente — valor exato ou lista separada por vírgula |
mechanic_user_id | inteiro | mechanic user id — valor exato ou lista separada por vírgula |
destaque | booleano | destaque — 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: itens, veiculo, cliente |
curl -X GET "https://apimapogos.sixinformatica.com/v1/ordens_servico?por_pagina=20" \
-H "Authorization: Bearer $MAPOGOS_API_KEY"<?php
$ch = curl_init('https://apimapogos.sixinformatica.com/v1/ordens_servico?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/ordens_servico?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/ordens_servico?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,
"plate": "ABC1D23",
"vehicle_id": 512,
"vehicle_model": "RENAULT LOGAN",
"client_id": 512,
"os_type": "aluguel",
"status": "aberta",
"km_open": 45210
}
],
"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/ordens_servico/1024?incluir=itens" \
-H "Authorization: Bearer $MAPOGOS_API_KEY"<?php
$ch = curl_init('https://apimapogos.sixinformatica.com/v1/ordens_servico/1024?incluir=itens');
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/ordens_servico/1024?incluir=itens', {
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/ordens_servico/1024?incluir=itens",
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,
"plate": "ABC1D23",
"vehicle_id": 512,
"vehicle_model": "RENAULT LOGAN",
"client_id": 512,
"os_type": "aluguel",
"status": "aberta",
"km_open": 45210
},
"request_id": "req_1d2c3b4a5f6e7d8c9b0a"
}Relações
| Nome | Módulo | Retorno | Rota |
|---|---|---|---|
itens | Itens de OS | lista paginada | /v1/ordens_servico/{id}/itens |
veiculo | Veículos | um registro | /v1/ordens_servico/{id}/veiculo |
cliente | Clientes | um registro | /v1/ordens_servico/{id}/cliente |
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/ordens_servico/exportar?limite=1000" \
-H "Authorization: Bearer $MAPOGOS_API_KEY"<?php
$ch = curl_init('https://apimapogos.sixinformatica.com/v1/ordens_servico/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/ordens_servico/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/ordens_servico/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"])POST Abrir OS
Abrir OS (veículo vai para manutenção). Requer criar.
Corpo da requisição (JSON)
| Campo | Tipo | Regras | |
|---|---|---|---|
vehicle_id | inteiro | obrigatório | |
km_open | inteiro | obrigatório | ≥ KM atual do veículo |
client_id | inteiro | opcional | |
mechanic_user_id | inteiro | opcional | |
diagnosis | texto | opcional | (até 5000 caracteres) |
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/ordens_servico" \
-H "Authorization: Bearer $MAPOGOS_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"vehicle_id":512,"km_open":45300,"diagnosis":"Barulho na suspensão dianteira"}'<?php
$ch = curl_init('https://apimapogos.sixinformatica.com/v1/ordens_servico');
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([
'vehicle_id' => 512,
'km_open' => 45300,
'diagnosis' => 'Barulho na suspensão dianteira',
]),
]);
$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/ordens_servico', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.MAPOGOS_API_KEY}`,
'Content-Type': 'application/json',
'Idempotency-Key': crypto.randomUUID(),
},
body: JSON.stringify({
"vehicle_id": 512,
"km_open": 45300,
"diagnosis": "Barulho na suspensão dianteira"
}),
});
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/ordens_servico",
headers={"Authorization": f"Bearer {os.environ['MAPOGOS_API_KEY']}",
"Idempotency-Key": str(uuid.uuid4())},
json={
"vehicle_id": 512,
"km_open": 45300,
"diagnosis": "Barulho na suspensão dianteira"
},
timeout=30,
)
json = resposta.json()
print(json["dados"] if json["sucesso"] else json["erro"]["mensagem"]){
"sucesso": true,
"dados": {
"id": 1024,
"plate": "ABC1D23",
"vehicle_id": 512,
"vehicle_model": "RENAULT LOGAN",
"client_id": 512,
"os_type": "aluguel",
"status": "aberta",
"km_open": 45210
},
"request_id": "req_6c5b4a3f2e1d0c9b8a7f"
}PATCH Atualizar mecânico, diagnóstico, notas ou KM
Atualizar mecânico, diagnóstico, notas ou KM (OS aberta). Requer atualizar.
Corpo da requisição (JSON)
| Campo | Tipo | Regras | |
|---|---|---|---|
mechanic_user_id | inteiro | opcional | |
diagnosis | texto | opcional | (até 5000 caracteres) |
notes | texto | opcional | (até 5000 caracteres) |
km_open | inteiro | opcional | Não pode ser menor que o KM atual do veículo |
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/ordens_servico/1024" \
-H "Authorization: Bearer $MAPOGOS_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"diagnosis":"Bucha da bandeja gasta"}'<?php
$ch = curl_init('https://apimapogos.sixinformatica.com/v1/ordens_servico/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([
'diagnosis' => 'Bucha da bandeja gasta',
]),
]);
$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/ordens_servico/1024', {
method: 'PATCH',
headers: {
Authorization: `Bearer ${process.env.MAPOGOS_API_KEY}`,
'Content-Type': 'application/json',
'Idempotency-Key': crypto.randomUUID(),
},
body: JSON.stringify({
"diagnosis": "Bucha da bandeja gasta"
}),
});
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/ordens_servico/1024",
headers={"Authorization": f"Bearer {os.environ['MAPOGOS_API_KEY']}",
"Idempotency-Key": str(uuid.uuid4())},
json={
"diagnosis": "Bucha da bandeja gasta"
},
timeout=30,
)
json = resposta.json()
print(json["dados"] if json["sucesso"] else json["erro"]["mensagem"]){
"sucesso": true,
"dados": {
"id": 1024,
"plate": "ABC1D23",
"vehicle_id": 512,
"vehicle_model": "RENAULT LOGAN",
"client_id": 512,
"os_type": "aluguel",
"status": "aberta",
"km_open": 45210
},
"request_id": "req_6c5b4a3f2e1d0c9b8a7f"
}POST Adicionar peça
Adicionar peça (baixa do estoque) ou serviço. Requer atualizar.
Corpo da requisição (JSON)
| Campo | Tipo | Regras | |
|---|---|---|---|
item_type | enum | obrigatório | part service |
stock_item_id | inteiro | opcional | Obrigatório para peça (id em estoque_pecas) |
description | texto | opcional | Obrigatório para serviço (até 255 caracteres) |
qty | decimal | opcional | |
unit_price | decimal | opcional | |
notes | texto | opcional | (até 255 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/ordens_servico/1024/itens" \
-H "Authorization: Bearer $MAPOGOS_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"item_type":"service","description":"Troca de bucha","qty":1,"unit_price":"120.00"}'<?php
$ch = curl_init('https://apimapogos.sixinformatica.com/v1/ordens_servico/1024/itens');
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([
'item_type' => 'service',
'description' => 'Troca de bucha',
'qty' => 1,
'unit_price' => '120.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/ordens_servico/1024/itens', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.MAPOGOS_API_KEY}`,
'Content-Type': 'application/json',
'Idempotency-Key': crypto.randomUUID(),
},
body: JSON.stringify({
"item_type": "service",
"description": "Troca de bucha",
"qty": 1,
"unit_price": "120.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/ordens_servico/1024/itens",
headers={"Authorization": f"Bearer {os.environ['MAPOGOS_API_KEY']}",
"Idempotency-Key": str(uuid.uuid4())},
json={
"item_type": "service",
"description": "Troca de bucha",
"qty": 1,
"unit_price": "120.00"
},
timeout=30,
)
json = resposta.json()
print(json["dados"] if json["sucesso"] else json["erro"]["mensagem"]){
"sucesso": true,
"dados": {
"id": 1024,
"plate": "ABC1D23",
"vehicle_id": 512,
"vehicle_model": "RENAULT LOGAN",
"client_id": 512,
"os_type": "aluguel",
"status": "aberta",
"km_open": 45210
},
"request_id": "req_6c5b4a3f2e1d0c9b8a7f"
}POST Remover item
Remover item (devolve peça ao estoque). Requer atualizar.
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/ordens_servico/1024/itens/7/remover" \
-H "Authorization: Bearer $MAPOGOS_API_KEY"<?php
$ch = curl_init('https://apimapogos.sixinformatica.com/v1/ordens_servico/1024/itens/7/remover');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
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/ordens_servico/1024/itens/7/remover', {
method: 'POST',
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(
"POST",
"https://apimapogos.sixinformatica.com/v1/ordens_servico/1024/itens/7/remover",
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,
"plate": "ABC1D23",
"vehicle_id": 512,
"vehicle_model": "RENAULT LOGAN",
"client_id": 512,
"os_type": "aluguel",
"status": "aberta",
"km_open": 45210
},
"request_id": "req_6c5b4a3f2e1d0c9b8a7f"
}POST Concluir OS
Concluir OS (libera o veículo e notifica). Requer atualizar.
Corpo da requisição (JSON)
| Campo | Tipo | Regras | |
|---|---|---|---|
km_close | inteiro | opcional | |
final_diagnosis | texto | opcional | (até 5000 caracteres) |
final_notes | texto | opcional | (até 5000 caracteres) |
due_date | data | opcional |
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/ordens_servico/1024/concluir" \
-H "Authorization: Bearer $MAPOGOS_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"km_close":45310,"final_diagnosis":"Buchas substituídas"}'<?php
$ch = curl_init('https://apimapogos.sixinformatica.com/v1/ordens_servico/1024/concluir');
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([
'km_close' => 45310,
'final_diagnosis' => 'Buchas substituídas',
]),
]);
$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/ordens_servico/1024/concluir', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.MAPOGOS_API_KEY}`,
'Content-Type': 'application/json',
'Idempotency-Key': crypto.randomUUID(),
},
body: JSON.stringify({
"km_close": 45310,
"final_diagnosis": "Buchas substituídas"
}),
});
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/ordens_servico/1024/concluir",
headers={"Authorization": f"Bearer {os.environ['MAPOGOS_API_KEY']}",
"Idempotency-Key": str(uuid.uuid4())},
json={
"km_close": 45310,
"final_diagnosis": "Buchas substituídas"
},
timeout=30,
)
json = resposta.json()
print(json["dados"] if json["sucesso"] else json["erro"]["mensagem"]){
"sucesso": true,
"dados": {
"id": 1024,
"plate": "ABC1D23",
"vehicle_id": 512,
"vehicle_model": "RENAULT LOGAN",
"client_id": 512,
"os_type": "aluguel",
"status": "aberta",
"km_open": 45210
},
"request_id": "req_6c5b4a3f2e1d0c9b8a7f"
}Recursos incluídos neste módulo
Estes recursos usam a mesma permissão de Ordens de Serviço:
| Rota | Recurso | Descrição | Campos |
|---|---|---|---|
/v1/ordens_servico_itens | Itens de OS | Peças e serviços lançados na OS. | id, os_id, item_type, description, stock_item_id, qty, unit_price, total_price … |
Eventos de webhook
os.criada os.concluida — veja Webhooks.