Revo Mobilepainel do app

API Mobile · Aleff / Revo

Contrato da API

Como o servidor de homologação da v6 realmente se comporta, medido chamada a chamada — e onde ele diverge do que está publicado.

Contrato medido, não publicadoMedido 08/09 · remedido 11/09, tarde e noite · Sitra Mobile 6.0.20

Este documento não é o contrato publicado — é o contrato medido. Cada rota, cada campo obrigatório e cada código de erro daqui saiu de uma chamada real contra wshomdev.grupoaleff.com.br, feita pelo Sitra Mobile 6.0.13 em 08/09/2026, com a transportadora 999 e os romaneios 720/26 e 2303/26. A baixa foi revalidada em 11/09 pela 6.0.16, já com o schema do TMS, e a 6.0.17 confirmou a resposta do TMS da mesma tarde: rota nova de alterações, posições com ponto decimal, tipo do documento escrito e 409 no anexo repetido. Ficaram em aberto a baixa com idempotência repetida (500 codigo 23) e a sessão de teste sem serviço (codigo 7). A 6.0.19 conserta o envio dos anexos, que não saía do aparelho desde a 6.0.13. Na noite de 11/09 a sessão passou a devolver servicoId em cada documento — 57 de 57 medidos — e a 6.0.20 usa esse id na baixa.

Onde o servidor diverge do contrato publicado, está anotado em x-divergencia, na referência abaixo. Onde a rota não funciona, a operação traz x-status: defeito com a evidência.

Baixar o OpenAPI 3.1 cru

Situação por rota

O que foi medido em 11/09, rota a rota.

POST /mobile/sessaoFunciona
POST /mobile/anexosFunciona · id numérico
POST /mobile/posicoesFunciona · não valida o lote
POST /mobile/servicos/{id}/baixaFunciona desde 11/09 · schema do TMS
GET /mobile/romaneio/{t}/alteracoes?romaneio=Rota nova 11/09 · funciona
GET /mobile/romaneio/{t}/{romaneio}/alteracoesSubstituída · inalcançável com barra

Dois servidores

A v6 fala com a homologação; a v5 segue em produção com o contrato antigo.

Homologação (v6)
Servidor
wshomdev.grupoaleff.com.br
Rotas
/mobile/* (contrato novo)
Autenticação
Nenhuma — dados vão no corpo
Medido em
08/09/2026, revalidado 11/09
Produção (v5)
Servidor
ws.aleff.com.br
Rotas
getDocuments · updateDocument
Situação
Ainda na v5 em 11/09/2026
/mobile/*
Responde 404 até a homologação chegar aqui

Convenções que valem para a API inteira

Sem autenticação
Nenhuma rota exige header de sessão ou token. A identificação viaja no corpo: Transportadora + MotoristaCpf + VeiculoPlaca.
CPF e placa sem formatação
987.654.321-00 e ABC-1020 são recusados com codigo 6 ("motorista não habilitado") — a mesma resposta de credencial errada.
Decimais: vírgula no texto, ponto no número
O mesmo dado aparece nas duas formas na mesma resposta ("176,1780" e 176.178). Na ida, decimal é sempre com ponto (lat/lon da baixa e das posições).
Erro é sempre o mesmo envelope
{ codigo, mensagem, campo } em qualquer status. O campo só vem nos erros de validação, e nomeia o campo que faltou. HTTP 500 com codigo 15 é exceção não tratada do servidor, não validação.

Fluxo típico do app

Do login do motorista até a rota sincronizar as alterações.

  1. 1

    Sessão

    POST /mobile/sessao com nAtt: true para sondar. Sem isso, a chamada marca os documentos como recepcionados e o romaneio não volta mais para aquele motorista.

  2. 2

    Romaneio e documentos

    A própria resposta da sessão já traz os romaneios abertos, os documentos de cada um e a tabela de ocorrências — não existe uma rota separada para isso.

  3. 3

    Posições

    POST /mobile/posicoes envia um lote de posições do veículo em segundo plano. A rota aceita o lote, mas não valida o conteúdo.

  4. 4

    Baixa do serviço

    POST /mobile/servicos/{id}/baixa conclui o serviço com o schema do TMS. Repetir a mesma baixa (idempotência) ainda responde 500 codigo 23 em alguns casos.

  5. 5

    Anexos

    POST /mobile/anexos envia foto, assinatura ou áudio, associados por id numérico. Um anexo repetido responde 409.

  6. 6

    Alterações

    GET /mobile/romaneio/{transportadora}/alteracoes?romaneio= busca o que mudou desde um instante. É a rota nova de 11/09 — a versão antiga, com o romaneio na URL, está inalcançável.

A referência abaixo, gerada a partir do mesmo arquivo contrato.yaml, detalha campo a campo cada uma dessas rotas: corpo esperado, exemplos, respostas e os códigos de erro possíveis.