Referência da API (cliente)
API HTTP JSON para automação de pesagem. Documentação canónica em Markdown: pasta docs/. Esta página é uma síntese para integradores.
Geral
Base URL: substitua pelo seu servidor, por exemplo http://seu-host:8000. Os paths abaixo são relativos a essa base.
Document root: a pasta public/ do repositório. Em desenvolvimento recomenda-se php -S 0.0.0.0:8000 router.php dentro de public/ para o router encaminhar os paths.
Autenticação: os endpoints actuais não implementam autenticação HTTP (Bearer, API key, etc.) nos handlers.
POST — header: Content-Type: application/json
Erros comuns: corpo JSON inválido → 400 invalid_json; validação → 422 validation_error (com details); falha Oracle → 500 database_error. Com APP_DEBUG=1 no .env, erros de BD podem incluir details (apenas desenvolvimento).
Índice
POST /precad-automatiza
Pré-cadastro do veículo na integração (integr_erp_conceitto + tagbal).
Doc completa: docs/api-json-precad-automatiza.md
Entrada (body JSON)
Parâmetro Local Obrigatório Tipo Regras / notas
tagbody Sim número ou string Identificador da tag (ligação ao tagbal).
placaCavalobody Sim string Placa cavalo.
dataOrdembody Sim string Data/hora da ordem; formatos legados e ISO 8601 com Z.
placaCarretabody Não string Omissão = vazio.
transportadorbody Não string Omissão = vazio.
motoristabody Não string Omissão = vazio.
razaoSocialbody Não string Omissão = vazio.
cnpjbody Não string Omissão = vazio.
iebody Não string Omissão = vazio.
enderecobody Não string Omissão = vazio.
municipiobody Não string Omissão = vazio.
ufbody Não string Omissão = vazio.
produtobody Não string Omissão = vazio.
nrOrdembody Não número ou string Omissão = vazio.
tpPesagembody Não string Omissão = vazio.
Saída (sucesso)
HTTP 200 — JSON:
Campo Tipo Descrição
tagnúmero Tag processada.
statusinteiro Retorno da operação de pré-cadastro; sucesso típico = 1.
Erros (resumo)
HTTP errorQuando
400 invalid_jsonCorpo vazio ou JSON inválido.
405 method_not_allowedMétodo diferente de POST.
422 validation_errorFalta obrigatório ou dataOrdem inválida.
500 database_error / server_errorFalha de BD ou execução.
{
"tag": 10000010,
"placaCavalo": "ABC1234",
"dataOrdem": "2024-10-30T08:00:00Z"
}
GET /consulta-automatiza
Consulta estado associado a uma balança (resposta sempre com o mesmo conjunto de campos).
Doc completa: docs/api-json-consulta-automatiza.md
Entrada (query string)
Parâmetro Local Obrigatório Tipo Regras / notas
scaleIdquery Um dos dois inteiro ≥ 1 Número da balança. Também aceite como string só com dígitos.
balquery Um dos dois inteiro ≥ 1 Alias de scaleId. Se ambos forem enviados, têm de ser iguais.
Exemplo: GET /consulta-automatiza?scaleId=1
Saída (sucesso)
HTTP 200 — sempre o mesmo shape:
Campo Com dados Sem dados
scaleIdnúmero número (valor pedido)
tagnúmero null
placaVeiculostring ""
peso1número null
peso2número null
statusnúmero null
nrOrdemnúmero null
Erros (resumo)
HTTP errorQuando
405 method_not_allowedMétodo diferente de GET.
422 validation_errorParâmetros em falta, inválidos ou scaleId ≠ bal.
500 database_error / server_errorFalha de BD ou execução.
POST /trocastatus-automatiza
Actualiza fg_status, mensagens e opcionalmente peso_ordem_pesagem / observacao em integr_erp_conceitto para uma tag.
Doc completa: docs/api-json-trocastatus-automatiza.md
Entrada (body JSON)
Parâmetro Local Obrigatório Tipo Regras / notas
tagbody Sim inteiro ≥ 1 Tag do registo a actualizar.
statusbody Sim inteiro 0: não altera fg_status; só mensagens (e opcionalmente peso). ≠0: actualiza fg_status.
messagesbody Não array de strings Até 3 entradas → mensagem_1…3. Omissão ou [] → três vazias.
pesoOrdembody Não número / string numérica Se preenchido (trim não vazio e numérico), inclui peso_ordem_pesagem no UPDATE.
observacaobody Não string Omissão = vazio.
Saída (sucesso)
HTTP 200
Campo Tipo Descrição
taginteiro Tag enviada.
statusinteiro Valor devolvido após sucesso (em condições normais coincide com o pedido).
Erros (resumo)
HTTP errorQuando
400 invalid_jsonCorpo vazio ou JSON inválido.
405 method_not_allowedMétodo diferente de POST.
422 validation_errorValidação de tag, status, messages, pesoOrdem.
500 database_error / server_errorFalha de BD ou execução.
{
"tag": 10000010,
"status": 7,
"messages": ["Linha 1", "Linha 2", "Linha 3"]
}
POST /classifica-automatiza
Dados para ticket e classificação (TICKETGER, CLASSIFICA). Obrigatório no fluxo de pesagem mesmo sem classificação — use descontos: [].
Doc completa: docs/api-json-classifica-automatiza.md
Entrada (body JSON)
Parâmetro Local Obrigatório Tipo Regras / notas
nrOrdembody Sim inteiro ≥ 1 Ordem de pesagem; tem de existir em integr_erp_conceitto_log.
numMoegabody Sim inteiro Moega.
numNotabody Sim string ou número Número da nota.
numTicketbody Sim inteiro Ticket.
pesoSecobody Sim inteiro Peso seco.
pesoLiquidobody Sim inteiro Peso líquido.
descontosbody Não (tratado como []) array Lista de { "descricao", "valor" }. Itens com descrição não vazia inserem em CLASSIFICA.
origem, destino, produto, usuarioPesagem, usuarioPesagem2, transportador, motorista, cidade, uf, tpAcondicionamento, dsObservacaobody Não string Omissão = string vazia.
Saída (sucesso)
HTTP 200
Campo Tipo Descrição
messagestring Confirmação fixa de sucesso.
{ "message": "Dados de classificação recebidos com sucesso" }
Erros (resumo)
HTTP errorQuando
400 invalid_jsonCorpo vazio ou JSON inválido.
405 method_not_allowedMétodo diferente de POST.
422 validation_errorCampos ou tipos inválidos.
404 not_foundSem linha no log para nrOrdem.
500 database_error / server_errorFalha de BD ou execução.
POST /gera-ticket-automatiza
Comando de impressão / reimpressão: UPDATE TICKETGER SET STATUS = 0 WHERE PEDIDO = nrOrdem.
Doc completa: docs/api-json-gera-ticket-automatiza.md
Entrada (body JSON)
Parâmetro Local Obrigatório Tipo Regras / notas
nrOrdembody Sim inteiro ≥ 1 Ordem de pesagem (PEDIDO).
statusbody Sim inteiro Obrigatório no JSON por compatibilidade; não é usado no SQL — o UPDATE fixa sempre STATUS = 0.
Saída (sucesso)
HTTP 200 — mesmo que não exista linha em TICKETGER (0 linhas afectadas), o legado considera sucesso se o execute não falhar.
Campo Tipo Descrição
messagestring Confirmação fixa de sucesso.
{
"nrOrdem": 10,
"status": 1
}
{ "message": "Ticket enviado para impressão" }
Erros (resumo)
HTTP errorQuando
400 invalid_jsonCorpo vazio ou JSON inválido.
405 method_not_allowedMétodo diferente de POST.
422 validation_errornrOrdem ou status inválidos.
500 database_error / server_errorFalha de BD ou execução.