MapogosAPI Docs
/
Oficina · Referência

Ordens de Serviço

OS da oficina: abertura, diagnóstico, peças e serviços, conclusão.

Permissão: ordens_servicoAções: ler · criar · atualizar · exportar

O objeto ordens de serviço

CampoTipoDescrição
idinteiroIdentificadorordenar
platetextoPlacafiltro
vehicle_idinteiroID do veículofiltro
vehicle_modeltextovehicle model
client_idinteiroID do clientefiltro
os_typetexto (enum)aluguel | venda
aluguel venda
filtro
statustextoaberta | concluidafiltro
km_openinteirokm open
km_closeinteirokm close
responsibletextoresponsible
mechanic_nametextomechanic name
mechanic_user_idinteiromechanic user idfiltro
summarytextosummary
diagnosistextodiagnosis
final_diagnosistextofinal diagnosis
notestextoObservações
final_notestextofinal notes
total_partsdecimal (string)total parts
total_servicesdecimal (string)total services
discountdecimal (string)discount
total_amountdecimal (string)Valor totalordenar
due_datedataVencimento
destaquebooleanodestaquefiltro
calc_excludedbooleano1 = fora do cálculo de custos
calc_excluded_reasontextocalc excluded reason
opened_atdata-horaopened atordenar
released_atdata-horareleased at
closed_atdata-horaclosed atordenar
created_by_user_idinteiroID do usuário que criou
closed_by_user_idinteiroclosed by user id
updated_atdata-horaAtualizado em
Exemplo do objeto200 OK
{
    "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âmetroTipoDescrição
paginainteiroPágina (padrão 1)
por_paginainteiro1 a 200 (padrão 50)
ordenartextoAceita: id, opened_at, closed_at, total_amount — prefixo - para decrescente
campostextoLista de campos do objeto, separados por vírgula
qtextoBusca em: plate, summary
statustextoaberta | concluida — valor exato ou lista separada por vírgula
os_typetexto (enum)aluguel | venda — valor exato ou lista separada por vírgula
aluguel venda
vehicle_idinteiroID do veículo — valor exato ou lista separada por vírgula
platetextoPlaca — valor exato ou lista separada por vírgula
client_idinteiroID do cliente — valor exato ou lista separada por vírgula
mechanic_user_idinteiromechanic user id — valor exato ou lista separada por vírgula
destaquebooleanodestaque — valor exato ou lista separada por vírgula
criado_desde / criado_atedataPeríodo de criação
atualizado_desdedata-horaCriados ou alterados desde (pelo registro de alterações do Mapogos)
incluirtextoSó no detalhe. Relações: itens, veiculo, cliente
Requisição
Testar ▸
curl -X GET "https://apimapogos.sixinformatica.com/v1/ordens_servico?por_pagina=20" \
  -H "Authorization: Bearer $MAPOGOS_API_KEY"
Resposta200 OK
{
    "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).

ErroQuando
404 nao_encontradoNão existe ou está fora das carteiras da chave
403 permissao_negadaSem Ler no módulo (ou numa relação pedida)
Requisição
Testar ▸
curl -X GET "https://apimapogos.sixinformatica.com/v1/ordens_servico/1024?incluir=itens" \
  -H "Authorization: Bearer $MAPOGOS_API_KEY"
Resposta200 OK
{
    "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

NomeMóduloRetornoRota
itensItens de OSlista paginada/v1/ordens_servico/{id}/itens
veiculoVeículosum registro/v1/ordens_servico/{id}/veiculo
clienteClientesum 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.

Requisição
Testar ▸
curl -X GET "https://apimapogos.sixinformatica.com/v1/ordens_servico/exportar?limite=1000" \
  -H "Authorization: Bearer $MAPOGOS_API_KEY"

POST Abrir OS

Abrir OS (veículo vai para manutenção). Requer criar.

Corpo da requisição (JSON)

CampoTipoRegras
vehicle_idinteiroobrigatório
km_openinteiroobrigatório≥ KM atual do veículo
client_idinteiroopcional
mechanic_user_idinteiroopcional
diagnosistextoopcional (até 5000 caracteres)
notestextoopcional (até 5000 caracteres)

Erros possíveis: 422 validacao (lista todos os campos), 409 conflito (estado não permite), 403, 404, 415.

Requisição
Testar ▸
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"}'
Resposta201 Created
{
    "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)

CampoTipoRegras
mechanic_user_idinteiroopcional
diagnosistextoopcional (até 5000 caracteres)
notestextoopcional (até 5000 caracteres)
km_openinteiroopcionalNã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.

Requisição
Testar ▸
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"}'
Resposta200 OK
{
    "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)

CampoTipoRegras
item_typeenumobrigatório
part service
stock_item_idinteiroopcionalObrigatório para peça (id em estoque_pecas)
descriptiontextoopcionalObrigatório para serviço (até 255 caracteres)
qtydecimalopcional
unit_pricedecimalopcional
notestextoopcional (até 255 caracteres)

Erros possíveis: 422 validacao (lista todos os campos), 409 conflito (estado não permite), 403, 404, 415.

Requisição
Testar ▸
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"}'
Resposta200 OK
{
    "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.

Requisição
Testar ▸
curl -X POST "https://apimapogos.sixinformatica.com/v1/ordens_servico/1024/itens/7/remover" \
  -H "Authorization: Bearer $MAPOGOS_API_KEY"
Resposta200 OK
{
    "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)

CampoTipoRegras
km_closeinteiroopcional
final_diagnosistextoopcional (até 5000 caracteres)
final_notestextoopcional (até 5000 caracteres)
due_datedataopcional

Erros possíveis: 422 validacao (lista todos os campos), 409 conflito (estado não permite), 403, 404, 415.

Requisição
Testar ▸
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"}'
Resposta200 OK
{
    "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:

RotaRecursoDescriçãoCampos
/v1/ordens_servico_itensItens de OSPeç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.