API de Integração GoFusion (1.0.0)

Download OpenAPI specification:

API de Integração do GoFusion para gerenciamento de cargas, descargas, liberações e outros recursos.

Autenticação

Todos os endpoints requerem autenticação via Bearer Token criado nas configurações da instância.

Paginação

As listagens paginadas usam o parâmetro page (página, a partir de 1). O tamanho da página varia por endpoint:

  • count (padrão 10): cargas, descargas, cargas/descargas por liberação, liberações, motoristas e integrações de motoristas
  • count (padrão 15): chats de motoristas
  • Tamanho fixo de 15 itens: marcações
  • Sem paginação: pedidos de venda e endpoints de BI

A resposta paginada segue o formato do Laravel: os itens ficam em data, junto de current_page, per_page, total, last_page e links de navegação. O per_page da resposta apenas informa o tamanho usado; ele não é aceito como parâmetro.

Erros

Os erros retornam um JSON com o campo message. Nos erros de validação dos campos (status 422), a resposta também traz errors, com a lista de mensagens de cada campo inválido.

Cargas

Endpoints para gerenciamento de cargas

Listar todas as cargas

Retorna uma lista paginada das cargas da instância do token. Os resultados respeitam as restrições de entidades e de tipos de transporte do usuário do token.

Filtros

Os filtros são enviados no parâmetro filter, como um JSON (URL-encoded):

GET /loads?filter={"finished":1,"customer_id":[10,11]}

Parâmetros soltos na URL (ex.: ?status=pending) são ignorados. Chaves desconhecidas dentro do JSON também são ignoradas, sem erro.

Campos da carga (comparação exata)

Campos cadastrais da carga podem ser usados com um valor exato ou uma lista de valores (lista = IN). Exemplos: id, integration_id, dt, freight_type, carrier_id, vehicle_id, driver_id, patio_id, shift_id, load_type_id, intermediary_id.

Filtros especiais (enviar 1 ou true para ativar)

  • in_process: não finalizadas e não canceladas
  • finished: finalizadas e não canceladas
  • not_finished: sem data de finalização
  • not_canceled / canceled: não canceladas / canceladas
  • integrated / not_integrated: com / sem integration_id
  • arrive_pending: ainda não chegaram ao pátio
  • in_patios_count: atualmente no pátio
  • no_last_appointment: nenhuma marcação realizada
  • has_schedule_warnings: fora da janela de agendamento
  • pending_documents: com pendências de documentos sem justificativa
  • is_today_schedule: criadas e agendadas para hoje

Filtros com valor

  • customer_id: ID ou lista de IDs de cliente (considera o cliente da carga e os clientes vinculados)
  • product_id: ID ou lista de IDs de produto
  • entrance_id: lista de IDs de doca (da carga ou dos produtos)
  • truck_type_id: lista de IDs de tipo de carroceria
  • unit_id: ID ou lista de IDs de unidade dos produtos
  • reports: situação dos laudos ("requested", "pending" ou "finished")
  • selected_permits_id / selected_subpermits_id: listas de IDs internos de liberações / subliberações
  • search: busca textual (ID, laudos, motorista, tipo de transporte, cliente, veículo, doca, usuário)

Período

from e until (YYYY-MM-DD) exigem period_field, que indica qual data é comparada: created_at, scheduled_from, started_at, finished_at ou last_appointment_timestamp. Sem period_field, o período é ignorado. from é inclusivo e until é exclusivo.

filter={"period_field":"finished_at","from":"2026-10-01","until":"2026-10-06"}

Ordenação

Enviada no parâmetro sorting, como JSON {"campo":"asc|desc"}:

GET /loads?sorting={"created_at":"desc"}

  • Apenas um campo é considerado.
  • Campos de relações usam ponto (ex.: {"customer.name":"asc"}). Nesse caso, cargas sem a relação não são retornadas.
  • Campo inexistente gera erro 500.
  • Sem sorting, a ordem dos registros não é garantida.

Paginação

page (padrão 1) e count (itens por página, padrão 10).

Authorizations:
BearerAuth
query Parameters
page
integer >= 1
Default: 1

Número da página para paginação

count
integer >= 1
Default: 10

Quantidade de itens por página

filter
string
Example: filter={"is_full_analysis":1}

Filtros em formato JSON (URL-encoded). Ex.: {"is_full_analysis":1,"finished":1}. Veja a descrição do endpoint para as chaves aceitas.

sorting
string
Example: sorting={"created_at":"desc"}

Ordenação em formato JSON {"campo":"asc|desc"} (URL-encoded). Apenas um campo é considerado. Campos de relações usam ponto, ex.: {"provider.name":"asc"}.

Responses

Response samples

Content type
application/json
{
  • "current_page": 1,
  • "data": [
    ],
  • "from": 1,
  • "last_page": 1,
  • "links": [ ],
  • "next_page_url": null,
  • "per_page": 10,
  • "prev_page_url": null,
  • "to": 2,
  • "total": 2
}

Criar nova carga

Cria uma nova carga com os dados fornecidos.

Campos Obrigatórios

  • identifier: ID único da carga (deve ser único no sistema)
  • carrier: Nome da transportadora
  • carrier_document: Documento da transportadora
  • intermediary: Nome do intermediário

Campos Condicionais

  • Se o módulo de entregas não estiver habilitado:
    • customer: Nome do cliente
    • customer_document: Documento do cliente
    • products: Lista de produtos
  • Se não for frete parcial:
    • license_plate: Placa do veículo
    • vehicle_type: Tipo do veículo
    • driver: Nome do motorista
    • driver_cpf: CPF do motorista
  • Se não for frete parcial e não houver seleção automática de janela:
    • scheduling: Data e hora do agendamento
  • Se configurado na instância:
    • total_gross_weight: Peso bruto total

Regras de Negócio

  • O identificador da carga deve ser único no sistema
  • O CPF do motorista deve ter entre 7 e 11 dígitos
  • O telefone do motorista deve ter 11 dígitos
  • A data de agendamento deve ser futura
  • O peso total deve ser maior que zero
  • A quantidade de cada produto deve ser maior que zero

Vinculação de Pedidos de Venda (Módulo Ativo)

  • Se o módulo de pedidos de venda estiver ativo, o campo order em deliveries é obrigatório
  • O pedido de venda deve ser do mesmo cliente da entrega
  • Apenas pedidos não cancelados e não excluídos podem ser vinculados
  • O sistema validará se o pedido existe e está disponível para vinculação

Validações

  • vehicle_type: Deve ser um dos valores: truck, ship, train
  • freight_type: Deve ser um dos valores: CIF, FOB, CPT
  • status: Deve ser um dos valores: pending, in_progress, completed, cancelled
  • products: Array de produtos, cada um contendo nome, código, unidade e quantidade
  • deliveries: Array de entregas (opcional), cada uma contendo cliente e produtos
  • orders: Array de pedidos (opcional), cada um contendo número e data esperada
Authorizations:
BearerAuth
Request Body schema: application/json
required
identifier
required
string

ID único da carga (deve ser único no sistema)

status
string
Enum: "pending" "in_progress" "completed" "cancelled"

Status da carga

weight
number <float>

Peso da carga em kg

license_plate
string

Placa do veículo (obrigatório se não for frete parcial)

vehicle_type
string
Enum: "truck" "ship" "train"

Tipo do veículo (obrigatório se não for frete parcial)

truck_body_type
string

Tipo da carroceria do caminhão

driver
string

Nome do motorista (obrigatório se não for frete parcial)

driver_cpf
string

CPF do motorista (7-11 dígitos, obrigatório se não for frete parcial)

driver_phone
string

Telefone do motorista (11 dígitos)

transport_modality
string

Modalidade de transporte

transport_document
string

Documento de transporte

freight_type
string

Tipo do frete

patio
string

Pátio

customer
string

Cliente (obrigatório se o módulo de entregas não estiver habilitado)

customer_document
string

Documento do cliente (obrigatório se o módulo de entregas não estiver habilitado)

carrier
required
string

Transportadora

carrier_document
required
string

Documento da transportadora

intermediary
required
string

Intermediário

scheduling
string <date-time>

Data e hora do agendamento (obrigatório se não for frete parcial e não houver seleção automática de janela)

total_gross_weight
string

Nome do peso bruto total (PBT) cadastrado na instância (obrigatório se configurado na instância). Só é vinculado se o veículo da placa informada existir; sem o campo, usa o PBT do veículo.

Array of objects

Lista de produtos (obrigatório se o módulo de entregas não estiver habilitado)

Array of objects

Lista de entregas (opcional, disponível apenas se o módulo de entregas estiver habilitado).

Regras de Negócio

  • Se o módulo de pedidos de venda estiver ativo, o campo order é obrigatório
  • O pedido de venda deve ser do mesmo cliente da entrega
  • Apenas pedidos não cancelados e não excluídos podem ser vinculados
Array of objects

Lista de pedidos

Responses

Request samples

Content type
application/json
{
  • "identifier": "CARGA-7",
  • "license_plate": "ABC1234",
  • "vehicle_type": "truck",
  • "truck_body_type": "Carreta",
  • "driver": "01331058066",
  • "driver_cpf": "01331058066",
  • "driver_phone": "11999999999",
  • "transport_modality": "Devolução",
  • "transport_document": "CTe-123456",
  • "freight_type": "cif",
  • "patio": "Pátio Central",
  • "carrier": "Transportadora XYZ Ltda",
  • "carrier_document": "12345678000199",
  • "intermediary": "Intermediário ABC",
  • "scheduling": "2025-10-20T08:00:00-03:00",
  • "total_gross_weight": "Vei. 5 eix (45.000)",
  • "customer": "Cliente Principal",
  • "customer_document": "01964354000119",
  • "products": [
    ],
  • "deliveries": [
    ]
}

Response samples

Content type
application/json
{
  • "process_number": 48211,
  • "identifier": "LOAD-124",
  • "permit_identifier": null,
  • "freight_orders": null,
  • "license_plate": "GHI7J89",
  • "vehicle_type": "truck",
  • "truck_body_type": "Baú",
  • "trucks": [ ],
  • "total_gross_weight": null,
  • "weighings": {
    },
  • "driver": "Maria Santos",
  • "driver_cpf": "98765432100",
  • "driver_cnh": null,
  • "driver_phone": "11988888888",
  • "transport_modality": "Ensacado",
  • "transport_document": null,
  • "freight_type": "fob",
  • "patio": null,
  • "customer": "Mercado ABC",
  • "customer_document": "11222333000144",
  • "carrier": null,
  • "carrier_document": null,
  • "intermediary": null,
  • "created_at": "2024-03-20T18:30:00+00:00",
  • "scheduling": "2024-03-21T12:00:00+00:00",
  • "canceled_at": null,
  • "started_at": null,
  • "finished_at": null,
  • "status": "pending",
  • "products": [
    ],
  • "partial_freight": false,
  • "partial_freight_approved": false,
  • "current_appointment": null,
  • "current_appointment_date": null,
  • "orders": [ ]
}

Buscar carga por ID

Retorna uma carga específica pelo seu identificador.

Detalhes Retornados

  • Identificação (process_number, identifier, liberações e ordens de frete)
  • Situação (status) e datas do processo (criação, início, finalização, cancelamento)
  • Veículo, placas e motorista
  • Pesagens (pesos e horários da 1ª e 2ª pesagem)
  • Produtos e pedidos
  • Agendamento e pátio
  • Frete, cliente, transportadora e intermediário
  • Marcação atual

Observações

  • O identificador pode ser o identifier de integração ou o ID numérico da carga
  • Se o identificador for 'none', o sistema usa o parâmetro load_identifier da requisição
  • Se o identificador não for encontrado, retorna erro 404
  • Todos os dados são retornados no formato especificado no schema Load
Authorizations:
BearerAuth
path Parameters
identifier
required
string

ID da carga

Responses

Response samples

Content type
application/json
{
  • "process_number": 48210,
  • "identifier": "LOAD-123",
  • "permit_identifier": [
    ],
  • "freight_orders": null,
  • "license_plate": "ABC1D23",
  • "vehicle_type": "truck",
  • "truck_body_type": "Sider",
  • "trucks": {
    },
  • "total_gross_weight": "Vei. 5 eix (45.000)",
  • "weighings": {
    },
  • "driver": "João da Silva",
  • "driver_cpf": "12345678900",
  • "driver_cnh": "01234567890",
  • "driver_phone": "11999999999",
  • "transport_modality": "Ensacado",
  • "transport_document": "DT-9876",
  • "freight_type": "cif",
  • "patio": "Pátio 1",
  • "customer": "Panificadora XYZ",
  • "customer_document": "12345678000190",
  • "carrier": "Transportadora ABC",
  • "carrier_document": "98765432000110",
  • "intermediary": null,
  • "created_at": "2024-03-19T14:00:00+00:00",
  • "scheduling": "2024-03-20T11:00:00+00:00",
  • "canceled_at": null,
  • "started_at": "2024-03-20T11:05:00+00:00",
  • "finished_at": "2024-03-20T14:20:00+00:00",
  • "status": "finished",
  • "products": [
    ],
  • "partial_freight": false,
  • "partial_freight_approved": false,
  • "current_appointment": "Saída",
  • "current_appointment_date": "2024-03-20 11:20:00",
  • "orders": [
    ]
}

Atualizar carga

Atualiza uma carga existente.

Campos Obrigatórios

  • identifier: ID único da carga (deve ser único no sistema)
  • carrier: Nome da transportadora
  • carrier_document: Documento da transportadora
  • intermediary: Nome do intermediário

Campos Condicionais

  • Se o módulo de entregas não estiver habilitado:
    • customer: Nome do cliente
    • customer_document: Documento do cliente
    • products: Lista de produtos
  • Se não for frete parcial:
    • license_plate: Placa do veículo
    • vehicle_type: Tipo do veículo
    • driver: Nome do motorista
    • driver_cpf: CPF do motorista
  • Se não for frete parcial e não houver seleção automática de janela:
    • scheduling: Data e hora do agendamento
  • Se configurado na instância:
    • total_gross_weight: Peso bruto total

Vinculação de Pedidos de Venda (Módulo Ativo)

  • Se o módulo de pedidos de venda estiver ativo, o campo order em deliveries é obrigatório
  • O pedido de venda deve ser do mesmo cliente da entrega
  • Apenas pedidos não cancelados e não excluídos podem ser vinculados
  • O sistema validará se o pedido existe e está disponível para vinculação
Authorizations:
BearerAuth
path Parameters
identifier
required
string

ID da carga

Request Body schema: application/json
required
identifier
required
string

ID único da carga (deve ser único no sistema)

status
string
Enum: "pending" "in_progress" "completed" "cancelled"

Status da carga

weight
number <float>

Peso da carga em kg

license_plate
string

Placa do veículo (obrigatório se não for frete parcial)

vehicle_type
string
Enum: "truck" "ship" "train"

Tipo do veículo (obrigatório se não for frete parcial)

truck_body_type
string

Tipo da carroceria do caminhão

driver
string

Nome do motorista (obrigatório se não for frete parcial)

driver_cpf
string

CPF do motorista (7-11 dígitos, obrigatório se não for frete parcial)

driver_phone
string

Telefone do motorista (11 dígitos)

transport_modality
string

Modalidade de transporte

transport_document
string

Documento de transporte

freight_type
string

Tipo do frete

patio
string

Pátio

customer
string

Cliente (obrigatório se o módulo de entregas não estiver habilitado)

customer_document
string

Documento do cliente (obrigatório se o módulo de entregas não estiver habilitado)

carrier
required
string

Transportadora

carrier_document
required
string

Documento da transportadora

intermediary
required
string

Intermediário

scheduling
string <date-time>

Data e hora do agendamento (obrigatório se não for frete parcial e não houver seleção automática de janela)

total_gross_weight
string

Nome do peso bruto total (PBT) cadastrado na instância (obrigatório se configurado na instância). Só é vinculado se o veículo da placa informada existir; sem o campo, usa o PBT do veículo.

Array of objects

Lista de produtos (obrigatório se o módulo de entregas não estiver habilitado)

Array of objects

Lista de entregas (opcional, disponível apenas se o módulo de entregas estiver habilitado).

Regras de Negócio

  • Se o módulo de pedidos de venda estiver ativo, o campo order é obrigatório
  • O pedido de venda deve ser do mesmo cliente da entrega
  • Apenas pedidos não cancelados e não excluídos podem ser vinculados
Array of objects

Lista de pedidos

Responses

Request samples

Content type
application/json
{
  • "identifier": "CARGA-7",
  • "status": "in_progress",
  • "weight": 1200.75,
  • "license_plate": "ABC1234",
  • "vehicle_type": "truck",
  • "truck_body_type": "baú",
  • "driver": "João da Silva",
  • "driver_cpf": "12345678900",
  • "driver_phone": "11999999999",
  • "transport_modality": "rodoviário",
  • "transport_document": "DT-123",
  • "freight_type": "CIF",
  • "patio": "Pátio 1",
  • "customer": "Cliente XYZ",
  • "customer_document": "12345678901234",
  • "carrier": "Transportadora ABC",
  • "carrier_document": "12345678901234",
  • "intermediary": "Intermediário XYZ",
  • "scheduling": "2024-03-20T14:00:00Z",
  • "total_gross_weight": "Vei. 5 eix (45.000)",
  • "products": [
    ],
  • "deliveries": [
    ],
  • "orders": [
    ]
}

Response samples

Content type
application/json
{
  • "process_number": 48210,
  • "identifier": "LOAD-123",
  • "permit_identifier": [
    ],
  • "freight_orders": null,
  • "license_plate": "ABC1D23",
  • "vehicle_type": "truck",
  • "truck_body_type": "Sider",
  • "trucks": {
    },
  • "total_gross_weight": "Vei. 5 eix (45.000)",
  • "weighings": {
    },
  • "driver": "João da Silva",
  • "driver_cpf": "12345678900",
  • "driver_cnh": "01234567890",
  • "driver_phone": "11999999999",
  • "transport_modality": "Ensacado",
  • "transport_document": "DT-9876",
  • "freight_type": "cif",
  • "patio": "Pátio 1",
  • "customer": "Panificadora XYZ",
  • "customer_document": "12345678000190",
  • "carrier": "Transportadora ABC",
  • "carrier_document": "98765432000110",
  • "intermediary": null,
  • "created_at": "2024-03-19T14:00:00+00:00",
  • "scheduling": "2024-03-20T11:00:00+00:00",
  • "canceled_at": null,
  • "started_at": "2024-03-20T11:05:00+00:00",
  • "finished_at": "2024-03-20T14:20:00+00:00",
  • "status": "finished",
  • "products": [
    ],
  • "partial_freight": false,
  • "partial_freight_approved": false,
  • "current_appointment": "Saída",
  • "current_appointment_date": "2024-03-20 11:20:00",
  • "orders": [
    ]
}

Cancelar carga

Cancela uma carga existente.

Regras de Negócio

  • canceled_at é preenchido com a data do cancelamento
  • Se a carga ainda não estava finalizada, finished_at também recebe a data do cancelamento. Por isso a resposta vem com status: "finished"; use canceled_at para identificar cargas canceladas
  • As liberações vinculadas são removidas
  • A justificativa é registrada como ocorrência ("Carga cancelada") no histórico da carga

Campos Obrigatórios

  • justification: Justificativa do cancelamento. Sem ela a requisição falha com erro 500

Observações

  • O identificador pode ser o identifier de integração ou o ID numérico da carga
  • Se o identificador for 'none', o sistema usa o parâmetro load_identifier da requisição
  • Se a carga não existir, retorna erro 404
Authorizations:
BearerAuth
path Parameters
identifier
required
string

ID da carga

Request Body schema: application/json
required
justification
required
string

Justificativa do cancelamento

Responses

Request samples

Content type
application/json
{
  • "justification": "Cliente cancelou o pedido"
}

Response samples

Content type
application/json
{
  • "process_number": 48211,
  • "identifier": "LOAD-124",
  • "permit_identifier": null,
  • "freight_orders": null,
  • "license_plate": "GHI7J89",
  • "vehicle_type": "truck",
  • "truck_body_type": "Baú",
  • "trucks": [ ],
  • "total_gross_weight": null,
  • "weighings": {
    },
  • "driver": "Maria Santos",
  • "driver_cpf": "98765432100",
  • "driver_cnh": null,
  • "driver_phone": "11988888888",
  • "transport_modality": "Ensacado",
  • "transport_document": null,
  • "freight_type": "fob",
  • "patio": null,
  • "customer": "Mercado ABC",
  • "customer_document": "11222333000144",
  • "carrier": null,
  • "carrier_document": null,
  • "intermediary": null,
  • "created_at": "2024-03-20T18:30:00+00:00",
  • "scheduling": "2024-03-21T12:00:00+00:00",
  • "canceled_at": "2024-03-21T10:20:00+00:00",
  • "started_at": null,
  • "finished_at": "2024-03-21T10:20:00+00:00",
  • "status": "finished",
  • "products": [
    ],
  • "partial_freight": false,
  • "partial_freight_approved": false,
  • "current_appointment": null,
  • "current_appointment_date": null,
  • "orders": [ ]
}

Excluir carga

Exclui uma carga existente.

Regras de Negócio

  • A exclusão é lógica (soft delete): a carga deixa de aparecer nas listagens e buscas
  • As liberações vinculadas são removidas e o saldo é recalculado
  • A justificativa é registrada como ocorrência ("Carga excluída") no histórico

Campos Obrigatórios

  • justification: Justificativa da exclusão. Sem ela a requisição falha com erro 500

Observações

  • O identificador pode ser o identifier de integração ou o ID numérico da carga
  • Se o identificador for 'none', o sistema usa o parâmetro load_identifier do corpo da requisição
  • Se a carga não existir (ou já tiver sido excluída), retorna erro 404
  • O identifier de uma carga excluída não pode ser reutilizado em uma nova criação
Authorizations:
BearerAuth
path Parameters
identifier
required
string

ID da carga

Request Body schema: application/json
required
justification
required
string

Justificativa da exclusão

Responses

Request samples

Content type
application/json
{
  • "justification": "Carga duplicada"
}

Response samples

Content type
application/json
{
  • "deleted": true
}

Descargas

Endpoints para gerenciamento de descargas

Listar todas as descargas

Retorna uma lista paginada das descargas da instância do token. Os resultados respeitam as restrições de entidades e de tipos de transporte do usuário do token.

Filtros

Os filtros são enviados no parâmetro filter, como um JSON (URL-encoded):

GET /unloads?filter={"is_full_analysis":1,"finished":1}

Parâmetros soltos na URL (ex.: ?full_analysis=true) são ignorados. Chaves desconhecidas dentro do JSON também são ignoradas, sem erro.

Campos da descarga (comparação exata)

Campos cadastrais da descarga podem ser usados com um valor exato ou uma lista de valores (lista = IN). Exemplos: id, integration_id, dt, freight_type, provider_id, carrier_id, contract_id, vehicle_id, driver_id, patio_id, shift_id, load_type_id, storage_id, intermediary_id, full_analysis, test_unload.

Filtros especiais (enviar 1 ou true para ativar)

  • is_full_analysis: somente descargas com análise completa
  • is_test_unload: somente cargas teste
  • in_process: não finalizadas e não canceladas
  • finished: finalizadas e não canceladas
  • not_canceled / canceled: não canceladas / canceladas
  • integrated / not_integrated: com / sem integration_id
  • arrive_pending: ainda não chegaram ao pátio
  • in_patios_count: atualmente no pátio
  • no_last_appointment: nenhuma marcação realizada
  • has_schedule_warnings: fora da janela de agendamento
  • pending_documents: com pendências de documentos sem justificativa

Filtros com valor

  • cls_status: status da classificação da descarga (0 reprovado, 1 aprovado, 2 aprovado com restrições, "no" sem classificação)
  • product_id: ID ou lista de IDs de produto
  • customer_id: ID ou lista de IDs do destino do contrato
  • crop: safra do contrato (ex.: "2025/2026")
  • truck_type_id: lista de IDs de tipo de carroceria
  • search: busca textual (ID, motorista, tipo de transporte, contrato, veículo, doca, fornecedor, usuário)

Período

from e until (YYYY-MM-DD) exigem period_field, que indica qual data é comparada: created_at, scheduled_from, started_at, finished_at ou last_appointment_timestamp. Sem period_field, o período é ignorado. from é inclusivo e until é exclusivo.

filter={"period_field":"finished_at","from":"2026-10-01","until":"2026-10-06"}

Ordenação

Enviada no parâmetro sorting, como JSON {"campo":"asc|desc"}:

GET /unloads?sorting={"created_at":"desc"}

  • Apenas um campo é considerado.
  • Campos de relações usam ponto (ex.: {"provider.name":"asc"}). Nesse caso, descargas sem a relação (ex.: sem fornecedor) não são retornadas.
  • Campo inexistente gera erro 500.
  • Sem sorting, a ordem dos registros não é garantida.

Paginação

page (padrão 1) e count (itens por página, padrão 10).

Classificação da amostra

Descargas com análise completa (complete_analysis: true) retornam o campo sample_classification com a situação, o tipo de reprovação e as variáveis da amostra vinculada. Para as demais descargas, ou quando não há amostra vinculada, o campo é null. Veja o schema UnloadSampleClassification.

Authorizations:
BearerAuth
query Parameters
page
integer >= 1
Default: 1

Número da página para paginação

count
integer >= 1
Default: 10

Quantidade de itens por página

filter
string
Example: filter={"is_full_analysis":1}

Filtros em formato JSON (URL-encoded). Ex.: {"is_full_analysis":1,"finished":1}. Veja a descrição do endpoint para as chaves aceitas.

sorting
string
Example: sorting={"created_at":"desc"}

Ordenação em formato JSON {"campo":"asc|desc"} (URL-encoded). Apenas um campo é considerado. Campos de relações usam ponto, ex.: {"provider.name":"asc"}.

Responses

Response samples

Content type
application/json
{
  • "current_page": 1,
  • "data": [
    ],
  • "from": 1,
  • "last_page": 10,
  • "links": [ ],
  • "per_page": 10,
  • "prev_page_url": null,
  • "to": 10,
  • "total": 100
}

Criar nova descarga

Cria uma nova descarga com os dados fornecidos.

Campos Obrigatórios

  • identifier: ID único da descarga (deve ser único no sistema)
  • carrier: Nome da transportadora
  • carrier_document: Documento da transportadora
  • intermediary: Nome do intermediário
  • complete_analysis: Análise completa
  • test_unload: Teste de descarga
  • products: Lista de produtos

Campos Condicionais

  • Se não for frete parcial:
    • license_plate: Placa do veículo
    • vehicle_type: Tipo do veículo
    • driver: Nome do motorista
    • driver_cpf: CPF do motorista
  • Se não for frete parcial e não houver seleção automática de janela:
    • scheduling: Data e hora do agendamento
  • Se configurado na instância:
    • total_gross_weight: Peso bruto total

Regras de Negócio

  • O identificador da descarga deve ser único no sistema
  • O CPF do motorista deve ter entre 7 e 11 dígitos
  • O telefone do motorista deve ter 11 dígitos
  • A data de agendamento deve ser futura
  • O peso total deve ser maior que zero
  • A quantidade de cada produto deve ser maior que zero

Validações

  • vehicle_type: Deve ser um dos valores: truck, ship, train
  • freight_type: Deve ser um dos valores: CIF, FOB, CPT
  • status: Deve ser um dos valores: pending, in_progress, completed, cancelled
  • products: Array de produtos, cada um contendo nome, código, unidade e quantidade
  • nfs: Array de notas fiscais (opcional), cada uma contendo tipo, número, origem e valor
Authorizations:
BearerAuth
Request Body schema: application/json
required
identifier
required
string

ID único da descarga (deve ser único no sistema)

status
string
Enum: "pending" "in_progress" "completed" "cancelled"

Status da descarga

unload_type
string

Tipo da descarga

weight
number <float>

Peso da descarga em kg

license_plate
string

Placa do veículo (obrigatório se não for frete parcial)

vehicle_type
string
Enum: "truck" "ship" "train"

Tipo do veículo (obrigatório se não for frete parcial)

truck_body_type
string

Tipo da carroceria do caminhão

driver
string

Nome do motorista (obrigatório se não for frete parcial)

driver_cpf
string

CPF do motorista (7-11 dígitos, obrigatório se não for frete parcial)

driver_phone
string

Telefone do motorista (11 dígitos)

transport_modality
string

Modalidade de transporte

freight_type
string

Tipo do frete

patio
string

Pátio

contract
string

Contrato

provider
string

Fornecedor

provider_document
string

Documento do fornecedor

carrier
string

Transportadora

carrier_document
string

Documento da transportadora

intermediary
string

Intermediário

scheduling
string <date-time>

Data e hora do agendamento (obrigatório se não for frete parcial e não houver seleção automática de janela)

shift
string

Turno

nf_number
string

Número da nota fiscal

nf_origin
string

Origem da nota fiscal

nf_total
number <float>

Valor total da nota fiscal

complete_analysis
required
boolean

Análise completa

test_unload
required
boolean

Teste de descarga

total_gross_weight
string

Nome do peso bruto total (PBT) cadastrado na instância (obrigatório se configurado na instância). Só é vinculado se o veículo da placa informada existir; sem o campo, usa o PBT do veículo.

required
Array of objects

Lista de produtos

Responses

Request samples

Content type
application/json
{
  • "identifier": "UNLOAD-123",
  • "status": "pending",
  • "unload_type": "granel",
  • "weight": 1000.5,
  • "license_plate": "ABC1234",
  • "vehicle_type": "truck",
  • "truck_body_type": "baú",
  • "driver": "João da Silva",
  • "driver_cpf": "12345678900",
  • "driver_phone": "11999999999",
  • "transport_modality": "rodoviário",
  • "freight_type": "CIF",
  • "patio": "Pátio 1",
  • "contract": "CONTR-123",
  • "provider": "Fornecedor XYZ",
  • "provider_document": "12345678901234",
  • "carrier": "Transportadora ABC",
  • "carrier_document": "12345678901234",
  • "intermediary": "Intermediário XYZ",
  • "scheduling": "2024-03-20T14:00:00Z",
  • "shift": "Manhã",
  • "nf_number": "NF-123",
  • "nf_origin": "São Paulo",
  • "nf_total": 1200.5,
  • "complete_analysis": true,
  • "test_unload": false,
  • "total_gross_weight": "Vei. 5 eix (45.000)",
  • "products": [
    ]
}

Response samples

Content type
application/json
{
  • "process_number": 125,
  • "identifier": "UNLOAD-125",
  • "permit_identifier": [
    ],
  • "freight_orders": null,
  • "license_plate": "ABC1D23",
  • "vehicle_type": "truck",
  • "trucks": {
    },
  • "total_gross_weight": "Vei. 6 eix (57.000)",
  • "weighings": {
    },
  • "truck_body_type": "Graneleiro",
  • "driver": "João da Silva",
  • "driver_cpf": "12345678900",
  • "driver_cnh": "01234567890",
  • "driver_phone": "11999999999",
  • "transport_modality": "Rodoviário",
  • "freight_type": "cif",
  • "patio": "Pátio 1",
  • "contract_number": "CT-2024-001",
  • "provider": "Fornecedor XYZ",
  • "provider_document": "12345678000190",
  • "carrier": "Transportadora ABC",
  • "carrier_document": "98765432000110",
  • "intermediary": "Intermediário XYZ",
  • "shift": "Manhã",
  • "scheduling": "2024-03-22T11:00:00+00:00",
  • "nf_amount": 152340.5,
  • "nfs": [
    ],
  • "complete_analysis": true,
  • "sample_classification": {
    },
  • "test_unload": false,
  • "created_at": "2024-03-21T13:10:00+00:00",
  • "canceled_at": null,
  • "started_at": null,
  • "finished_at": null,
  • "status": "pending",
  • "products": [
    ],
  • "partial_freight": false,
  • "partial_freight_approved": false,
  • "current_appointment": null,
  • "current_appointment_date": null
}

Buscar descarga por ID

Retorna uma descarga específica pelo seu identificador.

Detalhes Retornados

  • Identificação (process_number, identifier, liberações e ordens de frete)
  • Situação (status) e datas do processo (criação, início, finalização, cancelamento)
  • Veículo, placas e motorista
  • Pesagens (pesos e horários da 1ª e 2ª pesagem)
  • Produtos
  • Agendamento, turno e pátio
  • Frete, contrato, fornecedor, transportadora e intermediário
  • Notas fiscais
  • Marcação atual
  • Classificação da amostra (sample_classification), quando a descarga tem análise completa

Observações

  • O identificador pode ser o identifier de integração ou o ID numérico da descarga
  • Se o identificador for 'none', o sistema usa o parâmetro load_identifier da requisição
  • Se o identificador não for encontrado, retorna erro 404
  • Todos os dados são retornados no formato especificado no schema Unload
Authorizations:
BearerAuth
path Parameters
identifier
required
string

ID da descarga

Responses

Response samples

Content type
application/json
{
  • "process_number": 123,
  • "identifier": "UNLOAD-123",
  • "permit_identifier": [
    ],
  • "freight_orders": null,
  • "license_plate": "ABC1D23",
  • "vehicle_type": "truck",
  • "trucks": {
    },
  • "total_gross_weight": "Vei. 6 eix (57.000)",
  • "weighings": {
    },
  • "truck_body_type": "Graneleiro",
  • "driver": "João da Silva",
  • "driver_cpf": "12345678900",
  • "driver_cnh": "01234567890",
  • "driver_phone": "11999999999",
  • "transport_modality": "Rodoviário",
  • "freight_type": "cif",
  • "patio": "Pátio 1",
  • "contract_number": "CT-2024-001",
  • "provider": "Fornecedor XYZ",
  • "provider_document": "12345678000190",
  • "carrier": "Transportadora ABC",
  • "carrier_document": "98765432000110",
  • "intermediary": "Intermediário XYZ",
  • "shift": "Manhã",
  • "scheduling": "2024-03-20T11:00:00+00:00",
  • "nf_amount": 152340.5,
  • "nfs": [
    ],
  • "complete_analysis": true,
  • "sample_classification": {
    },
  • "test_unload": false,
  • "created_at": "2024-03-19T14:00:00+00:00",
  • "canceled_at": null,
  • "started_at": "2024-03-20T11:05:00+00:00",
  • "finished_at": "2024-03-20T12:45:00+00:00",
  • "status": "finished",
  • "products": [
    ],
  • "partial_freight": false,
  • "partial_freight_approved": false,
  • "current_appointment": "Saída",
  • "current_appointment_date": "2024-03-20 09:45:00"
}

Atualizar descarga

Atualiza uma descarga existente.

Campos Obrigatórios

  • identifier: ID único da descarga (deve ser único no sistema)
  • complete_analysis: Análise completa
  • test_unload: Teste de descarga
  • products: Lista de produtos

Campos Condicionais

  • Se não for frete parcial:
    • license_plate: Placa do veículo
    • vehicle_type: Tipo do veículo
    • driver: Nome do motorista
    • driver_cpf: CPF do motorista
  • Se não for frete parcial e não houver seleção automática de janela:
    • scheduling: Data e hora do agendamento
  • Se configurado na instância:
    • total_gross_weight: Peso bruto total
Authorizations:
BearerAuth
path Parameters
identifier
required
string

ID da descarga

Request Body schema: application/json
required
identifier
required
string

ID único da descarga (deve ser único no sistema)

status
string
Enum: "pending" "in_progress" "completed" "cancelled"

Status da descarga

unload_type
string

Tipo da descarga

weight
number <float>

Peso da descarga em kg

license_plate
string

Placa do veículo (obrigatório se não for frete parcial)

vehicle_type
string
Enum: "truck" "ship" "train"

Tipo do veículo (obrigatório se não for frete parcial)

truck_body_type
string

Tipo da carroceria do caminhão

driver
string

Nome do motorista (obrigatório se não for frete parcial)

driver_cpf
string

CPF do motorista (7-11 dígitos, obrigatório se não for frete parcial)

driver_phone
string

Telefone do motorista (11 dígitos)

transport_modality
string

Modalidade de transporte

freight_type
string

Tipo do frete

patio
string

Pátio

contract
string

Contrato

provider
string

Fornecedor

provider_document
string

Documento do fornecedor

carrier
string

Transportadora

carrier_document
string

Documento da transportadora

intermediary
string

Intermediário

scheduling
string <date-time>

Data e hora do agendamento (obrigatório se não for frete parcial e não houver seleção automática de janela)

shift
string

Turno

nf_number
string

Número da nota fiscal

nf_origin
string

Origem da nota fiscal

nf_total
number <float>

Valor total da nota fiscal

complete_analysis
required
boolean

Análise completa

test_unload
required
boolean

Teste de descarga

total_gross_weight
string

Nome do peso bruto total (PBT) cadastrado na instância (obrigatório se configurado na instância). Só é vinculado se o veículo da placa informada existir; sem o campo, usa o PBT do veículo.

required
Array of objects

Lista de produtos

Responses

Request samples

Content type
application/json
{
  • "identifier": "DESC-123",
  • "status": "in_progress",
  • "unload_type": "granel",
  • "weight": 1200.75,
  • "license_plate": "ABC1234",
  • "vehicle_type": "truck",
  • "truck_body_type": "baú",
  • "driver": "João da Silva",
  • "driver_cpf": "12345678900",
  • "driver_phone": "11999999999",
  • "transport_modality": "rodoviário",
  • "freight_type": "CIF",
  • "patio": "Pátio 1",
  • "contract": "CONTR-123",
  • "provider": "Fornecedor XYZ",
  • "provider_document": "12345678901234",
  • "carrier": "Transportadora ABC",
  • "carrier_document": "12345678901234",
  • "intermediary": "Intermediário XYZ",
  • "scheduling": "2024-03-20T14:00:00Z",
  • "shift": "Manhã",
  • "nf_number": "NF-123",
  • "nf_origin": "São Paulo",
  • "nf_total": 1200.5,
  • "complete_analysis": true,
  • "test_unload": false,
  • "total_gross_weight": "Vei. 5 eix (45.000)",
  • "products": [
    ]
}

Response samples

Content type
application/json
{
  • "process_number": 123,
  • "identifier": "UNLOAD-123",
  • "permit_identifier": [
    ],
  • "freight_orders": null,
  • "license_plate": "ABC1D23",
  • "vehicle_type": "truck",
  • "trucks": {
    },
  • "total_gross_weight": "Vei. 6 eix (57.000)",
  • "weighings": {
    },
  • "truck_body_type": "Graneleiro",
  • "driver": "João da Silva",
  • "driver_cpf": "12345678900",
  • "driver_cnh": "01234567890",
  • "driver_phone": "11999999999",
  • "transport_modality": "Rodoviário",
  • "freight_type": "cif",
  • "patio": "Pátio 1",
  • "contract_number": "CT-2024-001",
  • "provider": "Fornecedor XYZ",
  • "provider_document": "12345678000190",
  • "carrier": "Transportadora ABC",
  • "carrier_document": "98765432000110",
  • "intermediary": "Intermediário XYZ",
  • "shift": "Manhã",
  • "scheduling": "2024-03-20T11:00:00+00:00",
  • "nf_amount": 152340.5,
  • "nfs": [
    ],
  • "complete_analysis": true,
  • "sample_classification": {
    },
  • "test_unload": false,
  • "created_at": "2024-03-19T14:00:00+00:00",
  • "canceled_at": null,
  • "started_at": "2024-03-20T11:05:00+00:00",
  • "finished_at": "2024-03-20T12:45:00+00:00",
  • "status": "finished",
  • "products": [
    ],
  • "partial_freight": false,
  • "partial_freight_approved": false,
  • "current_appointment": "Saída",
  • "current_appointment_date": "2024-03-20 09:45:00"
}

Cancelar descarga

Cancela uma descarga existente.

Regras de Negócio

  • canceled_at é preenchido com a data do cancelamento
  • Se a descarga ainda não estava finalizada, finished_at também recebe a data do cancelamento. Por isso a resposta vem com status: "finished"; use canceled_at para identificar descargas canceladas
  • As liberações vinculadas são removidas e o saldo do contrato é recalculado
  • A justificativa é registrada como ocorrência ("Descarga cancelada") no histórico da descarga

Campos Obrigatórios

  • justification: Justificativa do cancelamento. Sem ela a requisição falha com erro 500

Observações

  • O identificador pode ser o identifier de integração ou o ID numérico da descarga
  • Se o identificador for 'none', o sistema usa o parâmetro unload_identifier do corpo da requisição
  • Se a descarga não existir, retorna erro 404
Authorizations:
BearerAuth
path Parameters
identifier
required
string

ID da descarga

Request Body schema: application/json
required
justification
required
string

Justificativa do cancelamento

Responses

Request samples

Content type
application/json
{
  • "justification": "Veículo não compareceu"
}

Response samples

Content type
application/json
{
  • "process_number": 124,
  • "identifier": "UNLOAD-124",
  • "permit_identifier": null,
  • "freight_orders": null,
  • "license_plate": "GHI7J89",
  • "vehicle_type": "truck",
  • "trucks": [ ],
  • "total_gross_weight": null,
  • "weighings": {
    },
  • "truck_body_type": "Basculante",
  • "driver": "Maria Santos",
  • "driver_cpf": "98765432100",
  • "driver_cnh": null,
  • "driver_phone": "11988888888",
  • "transport_modality": "Rodoviário",
  • "freight_type": "fob",
  • "patio": null,
  • "contract_number": null,
  • "provider": "Fornecedor ABC",
  • "provider_document": "11222333000144",
  • "carrier": "Transportadora XYZ",
  • "carrier_document": "55666777000188",
  • "intermediary": "Intermediário ABC",
  • "shift": null,
  • "scheduling": "2024-03-21T12:00:00+00:00",
  • "nf_amount": 0,
  • "nfs": [ ],
  • "complete_analysis": false,
  • "sample_classification": null,
  • "test_unload": false,
  • "created_at": "2024-03-20T18:30:00+00:00",
  • "canceled_at": "2024-03-21T10:20:00+00:00",
  • "started_at": null,
  • "finished_at": "2024-03-21T10:20:00+00:00",
  • "status": "finished",
  • "products": [
    ],
  • "partial_freight": false,
  • "partial_freight_approved": false,
  • "current_appointment": null,
  • "current_appointment_date": null
}

Excluir descarga

Exclui uma descarga existente.

Regras de Negócio

  • A exclusão é lógica (soft delete): a descarga deixa de aparecer nas listagens e buscas
  • As liberações vinculadas são removidas e o saldo é recalculado
  • A justificativa é registrada como ocorrência ("Descarga excluída") no histórico

Campos Obrigatórios

  • justification: Justificativa da exclusão. Vazia retorna erro 400; ausente, erro 500

Observações

  • O identificador pode ser o identifier de integração ou o ID numérico da descarga
  • Se o identificador for 'none', o sistema usa o parâmetro unload_identifier do corpo da requisição
  • Se a descarga não existir (ou já tiver sido excluída), retorna erro 404
  • O identifier de uma descarga excluída não pode ser reutilizado em uma nova criação
Authorizations:
BearerAuth
path Parameters
identifier
required
string

ID da descarga

Request Body schema: application/json
required
justification
required
string

Justificativa da exclusão

Responses

Request samples

Content type
application/json
{
  • "justification": "Descarga duplicada"
}

Response samples

Content type
application/json
{
  • "deleted": true
}

Checklists

Endpoints para gerenciamento de checklists

Listar checklists da carga

Retorna todos os checklists associados a uma carga específica.

Detalhes Retornados

  • Lista de checklists com seus respectivos itens
  • Status de cada checklist
  • Datas de criação e atualização
  • Observações e resultados

Filtros Disponíveis

  • tipo: Filtra por tipo de checklist
  • status: Filtra por status do checklist

Observações

  • Os checklists são retornados em ordem cronológica
  • Cada checklist contém a lista completa de itens verificados
  • Se a carga não existir, retorna erro 404
Authorizations:
BearerAuth
path Parameters
identifier
required
string

ID da carga

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Listar checklists da descarga

Retorna todos os checklists associados a uma descarga específica.

Detalhes Retornados

  • Lista de checklists com seus respectivos itens
  • Status de cada checklist
  • Datas de criação e atualização
  • Observações e resultados

Filtros Disponíveis

  • tipo: Filtra por tipo de checklist
  • status: Filtra por status do checklist

Observações

  • Os checklists são retornados em ordem cronológica
  • Cada checklist contém a lista completa de itens verificados
  • Se a descarga não existir, retorna erro 404
Authorizations:
BearerAuth
path Parameters
identifier
required
string

ID da descarga

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Business Intelligence

Endpoints para integração com Power BI

Dados de cargas para BI

Retorna as cargas finalizadas no período informado, com os mesmos dados da exportação de cargas. Cada registro é um objeto cujas chaves são os títulos das colunas da planilha (veja o schema BiLoad).

Período

Parâmetro period (obrigatório): 1_day, 7_day ou 30_day. Retorna as cargas com data de finalização a partir de 00:00 (horário de Brasília) de N dias atrás. O resultado não é paginado e vem ordenado da carga mais recente para a mais antiga.

Formato dos valores

  • Datas: YYYY-MM-DD HH:mm:ss, no fuso horário da instância
  • Sim/não: Sim/Não (motorista, tracking e laudo) ou SIM/NÃO (Veículo Extra)
  • Campos sem valor: null

Chaves dinâmicas

Depois das chaves fixas, cada registro contém, nesta ordem:

  • Uma chave por marcação de carga cadastrada (nome da marcação), com a data/hora em que foi realizada
  • Uma chave por campo customizado de marcação ({Marcação} - {Campo}), com o valor informado
  • Uma chave por campo customizado de carga ativo, do tipo número ou texto (nome do campo)
  • Uma chave por variável de qualidade (Qualidade - {nome da variável}), com o valor do laudo de produção
Authorizations:
BearerAuth
query Parameters
period
required
string
Enum: "1_day" "7_day" "30_day"
Example: period=1_day

Período dos dados, contado a partir de 00:00 (horário de Brasília) de N dias atrás

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Dados de descargas para BI

Retorna as descargas finalizadas no período informado, com os mesmos dados da exportação de descargas. Cada registro é um objeto cujas chaves são os títulos das colunas da planilha (veja o schema BiUnload).

Período

Parâmetro period (obrigatório): 1_day, 7_day ou 30_day. Retorna as descargas com data de finalização a partir de 00:00 (horário de Brasília) de N dias atrás. O resultado não é paginado e vem ordenado da descarga mais recente para a mais antiga.

Formato dos valores

  • Datas: YYYY-MM-DD HH:mm:ss, no fuso horário da instância
  • Sim/não: SIM/NAO (Carga teste, Análise completa) ou Sim/Não (dados do motorista e tracking)
  • Campos sem valor: null

Chaves dinâmicas

Depois das chaves fixas, cada registro contém, nesta ordem:

  • Uma chave por marcação de descarga cadastrada (nome da marcação), com a data/hora em que foi realizada
  • Uma chave por campo customizado de marcação ({Marcação} - {Campo}), com o valor informado
  • Uma chave por campo customizado de descarga ativo, do tipo número ou texto (nome do campo)
  • Uma chave por variável de classificação da descarga (análise simples e completa), com o valor formatado
  • Uma chave por variável da amostra (Amostra - {nome da variável}), preenchida apenas em descargas com análise completa

Classificação da amostra

As chaves Amostra - Número, Amostra - Situação, Amostra - Tipo de reprovação e Amostra - {variável} são preenchidas apenas quando a descarga tem análise completa e possui amostra vinculada; caso contrário, null.

Authorizations:
BearerAuth
query Parameters
period
required
string
Enum: "1_day" "7_day" "30_day"
Example: period=1_day

Período dos dados, contado a partir de 00:00 (horário de Brasília) de N dias atrás

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Dados de produções para BI

Retorna as produções criadas no período informado (finalizadas ou em andamento), com os mesmos dados da exportação de produções. Cada registro é um objeto cujas chaves são os títulos das colunas da planilha (veja o schema BiProduction); os produtos alvo ficam no array Produtos_alvo.

Período

Parâmetro period (obrigatório): 1_day, 7_day ou 30_day. Retorna as produções com data de criação a partir de 00:00 (horário de Brasília) de N dias atrás. O resultado não é paginado e vem ordenado da produção mais recente para a mais antiga.

Formato dos valores

  • Datas: YYYY-MM-DD HH:mm:ss, no fuso horário da instância
  • Campos sem valor: null

Chaves dinâmicas

  • Na produção: uma chave Mescla - {nome da variável} por variável de análise simples ou completa que possui cálculo
  • Em cada item de Produtos_alvo: uma chave Produção - {nome da variável} por variável de produção
Authorizations:
BearerAuth
query Parameters
period
required
string
Enum: "1_day" "7_day" "30_day"
Example: period=1_day

Período dos dados, contado a partir de 00:00 (horário de Brasília) de N dias atrás

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Marcações

Endpoints para gerenciamento de marcações

Realizar marcação de carga

Realiza a marcação de uma carga específica.

Campos Obrigatórios

  • appointment_date: Data e hora da marcação
  • observation: Observação sobre a marcação (opcional)

Observações

  • Se o identificador for 'none', o sistema tentará usar o parâmetro load_identifier do corpo da requisição
  • A marcação só pode ser realizada para cargas em estado válido
  • A marcação deve ser a próxima a ser realizada
Authorizations:
BearerAuth
path Parameters
identifier
required
string

ID da carga

integration_name
required
string

Nome da integração

Request Body schema: application/json
required
appointment_date
required
string <date-time>

Data e hora do agendamento

observation
string

Observação sobre o agendamento

Responses

Request samples

Content type
application/json
{
  • "appointment_date": "2024-03-20T14:00:00Z",
  • "observation": "Marcação confirmada para carga no pátio 1"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "appointment_date": "2024-03-20T14:00:00Z",
  • "status": "scheduled",
  • "observation": "Marcação confirmada",
  • "created_at": "2024-03-20T10:00:00Z",
  • "updated_at": "2024-03-20T10:00:00Z"
}

Realizar marcação de descarga

Realiza a marcação de uma descarga específica.

Campos Obrigatórios

  • appointment_date: Data e hora da marcação
  • observation: Observação sobre a marcação (opcional)

Observações

  • Se o identificador for 'none', o sistema tentará usar o parâmetro unload_identifier do corpo da requisição
  • A marcação só pode ser realizada para descargas em estado válido
  • A marcação deve ser a próxima a ser realizada
Authorizations:
BearerAuth
path Parameters
identifier
required
string

ID da descarga

integration_name
required
string

Nome da integração

Request Body schema: application/json
required
appointment_date
required
string <date-time>

Data e hora do agendamento

observation
string

Observação sobre o agendamento

Responses

Request samples

Content type
application/json
{
  • "appointment_date": "2024-03-20T14:00:00Z",
  • "observation": "Marcação confirmada para descarga no pátio 1"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "appointment_date": "2024-03-20T14:00:00Z",
  • "status": "scheduled",
  • "observation": "Marcação confirmada",
  • "created_at": "2024-03-20T10:00:00Z",
  • "updated_at": "2024-03-20T10:00:00Z"
}

Listar marcações

Retorna uma lista paginada (15 itens por página, use page para navegar) de marcações com os seguintes campos:

  • external_id: nome de integração da marcação
  • name: Nome da marcação
  • id: id dentro do gf
Authorizations:
BearerAuth
query Parameters
page
integer >= 1
Default: 1

Número da página para paginação

Responses

Response samples

Content type
application/json
{}

Classificações

Endpoints para classificação de descargas

Classificar descarga

Realiza a classificação de uma descarga específica através de uma marcação.

  • O parâmetro identifier é o identificador único da descarga.
  • O parâmetro integration_name é o ID de integração da marcação de classificação a ser realizada.

Campos Obrigatórios

  • classification: Array de classificações, onde cada item contém:
    • integration_name: ID de integração da variável (deve ser único)
    • value: Valor da classificação (deve seguir o tipo da variável)

Regras de Negócio

  • O ID de integração da variável deve ser único no sistema
  • A marcação de classificação deve existir no processo logístico
  • A marcação deve estar na ordem correta do fluxo
  • A marcação não deve ter sido realizada anteriormente
  • Se a configuração "Bloquear novas marcações" estiver ativa e a última classificação for reprovada, novas marcações serão bloqueadas

Validações de Tipos

  • Numeral: Apenas números são aceitos
  • OK/NOK: Apenas valores "ok" e "nok" são aceitos
  • Sim/Não: Apenas valores "sim" e "não" são aceitos
  • Horas e Minutos: Apenas valores no formato "HH:mm" são aceitos
  • Caixa de Seleção: Apenas valores definidos nas opções da variável são aceitos

Observações

  • As variáveis são consideradas do primeiro produto da descarga
  • Todas as variáveis enviadas devem existir e fazer parte do produto
  • Se a descarga não existir, retorna erro 404
  • Se não existir marcação com o integration_name informado, ou se ela não for de classificação, retorna erro 422
  • Se a descarga não possuir essa marcação, ou se ela já tiver sido realizada, retorna erro 422
Authorizations:
BearerAuth
path Parameters
identifier
required
string

ID da descarga

integration_name
required
string

ID de integração da marcação com ação de classificação

Request Body schema: application/json
required
required
Array of objects

Responses

Request samples

Content type
application/json
{
  • "classification": [
    ]
}

Response samples

Content type
application/json
{
  • "integration_name": "classificacao",
  • "process_started_in": "2026-10-05T13:15:00+00:00",
  • "freight_identifier": "DESC-123"
}

Motoristas

Endpoints para gerenciamento de motoristas

Listar motoristas

Retorna uma lista paginada dos motoristas da instância do token.

Atenção: o CPF do motorista não é retornado nesta listagem.

Filtros

Enviados no parâmetro filter, como JSON (URL-encoded). Parâmetros soltos na URL são ignorados.

  • Campos cadastrais (comparação exata, valor ou lista): ex. cpf, name, phone, cnh, gender, blocked
  • updated_after: motoristas atualizados a partir desta data/hora (YYYY-MM-DD HH:mm:ss, UTC)
  • search: busca textual por nome, CPF ou telefone

GET /drivers?filter={"updated_after":"2026-10-01 00:00:00"}

Ordenação

Parâmetro sorting, como JSON {"campo":"asc|desc"} (apenas um campo). Ex.: sorting={"name":"asc"}.

Paginação

page (padrão 1) e count (itens por página, padrão 10).

Integrações

integrations traz todas as integrações de segurança do motorista, no formato do schema DriverIntegration.

Authorizations:
BearerAuth
query Parameters
page
integer >= 1
Default: 1

Número da página para paginação

count
integer >= 1
Default: 10

Quantidade de itens por página

filter
string
Example: filter={"is_full_analysis":1}

Filtros em formato JSON (URL-encoded). Ex.: {"is_full_analysis":1,"finished":1}. Veja a descrição do endpoint para as chaves aceitas.

sorting
string
Example: sorting={"created_at":"desc"}

Ordenação em formato JSON {"campo":"asc|desc"} (URL-encoded). Apenas um campo é considerado. Campos de relações usam ponto, ex.: {"provider.name":"asc"}.

Responses

Response samples

Content type
application/json
{
  • "current_page": 1,
  • "data": [
    ],
  • "from": 1,
  • "last_page": 1,
  • "links": [ ],
  • "next_page_url": null,
  • "per_page": 10,
  • "prev_page_url": null,
  • "to": 2,
  • "total": 2
}

Listar integrações de motoristas

Retorna as integrações de segurança dos motoristas da instância do token.

Paginação

A consulta é paginada (page, padrão 1, e count, padrão 10), mas a resposta é apenas o array de integrações da página, sem current_page, total ou links. Para percorrer tudo, incremente page até receber um array vazio.

Filtros

Parâmetro filter (JSON), com comparação exata nos campos da integração (ex.: driver_id, fixed).

Authorizations:
BearerAuth
query Parameters
page
integer >= 1
Default: 1

Número da página para paginação

count
integer >= 1
Default: 10

Quantidade de itens por página

filter
string
Example: filter={"is_full_analysis":1}

Filtros em formato JSON (URL-encoded). Ex.: {"is_full_analysis":1,"finished":1}. Veja a descrição do endpoint para as chaves aceitas.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Buscar integrações de um motorista

Retorna as integrações de segurança, da instância do token, do motorista cujo nome ou CPF seja igual ao identifier.

Observações

  • Apenas integrações da instância do token são retornadas
  • O identifier é comparado com o nome exato ou com o CPF do motorista
  • A resposta é sempre um array; se nenhum motorista corresponder, o array vem vazio (não há erro 404)
  • Os itens seguem o schema DriverIntegration
Authorizations:
BearerAuth
path Parameters
identifier
required
string

Nome exato ou CPF do motorista

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Atualizar motorista

Atualiza os dados de um motorista existente.

Campos Obrigatórios

  • nome: Nome completo do motorista
  • cnh: Número da CNH
  • birth_date: Data de nascimento

Campos Opcionais

  • status: Status do motorista (active, inactive)
  • phone: Número de telefone
  • gender: Gênero do motorista (male, female, other)
  • rg: Número do RG
  • issuing: Órgão emissor do RG
  • uf_issuing: UF do órgão emissor
  • integrations: Lista de integrações do motorista

Regras de Negócio

  • O CPF deve ser válido e único no sistema
  • A CNH deve ser válida e estar dentro do prazo
  • A data de nascimento deve ser válida
  • O status só pode ser alterado por usuários autorizados
  • As integrações devem conter ao menos o campo "date"

Observações

  • Se o motorista não existir, retorna erro 404
  • Se os dados forem inválidos, retorna erro 400
  • A atualização é registrada com data e hora
  • As integrações são atualizadas conforme fornecido
Authorizations:
BearerAuth
path Parameters
cpf
required
string

CPF do motorista

Request Body schema: application/json
required
nome
required
string

Nome do motorista

cnh
required
string

Número da CNH

birth_date
required
string <date>

Data de nascimento

status
required
string
Enum: "active" "inactive"

Status do motorista

phone
string

Telefone do motorista

gender
string
Enum: "male" "female" "other"

Gênero do motorista

rg
string

Número do RG

issuing
string

Órgão emissor do RG

uf_issuing
string

UF do órgão emissor

Array of objects

Responses

Request samples

Content type
application/json
{
  • "nome": "João da Silva",
  • "cnh": "12345678900",
  • "birth_date": "1980-01-01",
  • "status": "active",
  • "phone": "string",
  • "gender": "male",
  • "rg": "string",
  • "issuing": "string",
  • "uf_issuing": "string",
  • "integrations": [
    ]
}

Response samples

Content type
application/json
{
  • "name": "João da Silva",
  • "phone": "11999999999",
  • "cnh": "01234567890",
  • "birth_date": "27/05/1978",
  • "gender": "male",
  • "rg": "123456789",
  • "issuing": "SSP",
  • "uf_issuing": "PR",
  • "integrations": [
    ]
}

Chats de Motoristas

Endpoints para listagem e visualização de chats com motoristas

Listar chats de motoristas

Retorna uma lista paginada dos chats com motoristas da instância do token. Chats do schedule-app não são incluídos.

Filtros

Enviados no parâmetro filter, como JSON (URL-encoded). Parâmetros soltos na URL são ignorados. Chaves desconhecidas dentro do JSON também são ignoradas, sem erro.

GET /driver_chats?filter={"driver_id":10,"finished":1}

Campos aceitos

  • id, search, driver_id, user_id
  • category_id, category_code, finished_category_id
  • freight_id, freight_type
  • opened, finished
  • opened_with_service, opened_without_service
  • finished_service, finished_without_service
  • pending_approval

Ordenação

Parâmetro sorting, como JSON {"campo":"asc|desc"}. Exemplos:

  • sorting={"created_at":"desc"}
  • sorting={"driver_name":"asc"}

Campos: id, freight_id, freight_type, created_at, updated_at, value, approved_value, finished_at, driver_name, user_name, category_name.

Paginação

page (padrão 1) e count (itens por página, padrão 15).

Observações

  • O CPF do motorista não é retornado
  • A listagem não inclui o histórico de mensagens (use o endpoint de detalhe)
Authorizations:
BearerAuth
query Parameters
page
integer >= 1
Default: 1

Número da página para paginação

count
integer >= 1
Default: 15

Quantidade de itens por página (padrão 15 neste endpoint)

filter
string
Example: filter={"is_full_analysis":1}

Filtros em formato JSON (URL-encoded). Ex.: {"is_full_analysis":1,"finished":1}. Veja a descrição do endpoint para as chaves aceitas.

sorting
string
Example: sorting={"created_at":"desc"}

Ordenação em formato JSON {"campo":"asc|desc"} (URL-encoded). Apenas um campo é considerado. Campos de relações usam ponto, ex.: {"provider.name":"asc"}.

Responses

Response samples

Content type
application/json
{}

Visualizar chat de motorista

Retorna o detalhe de um chat com motorista, incluindo o histórico de mensagens.

Observações

  • Apenas chats da instância do token são retornados
  • Chats do schedule-app não são encontrados (404)
  • O CPF do motorista não é retornado
  • assigned_to é o usuário GoFusion responsável pelo atendimento (null se ninguém assumiu)
Authorizations:
BearerAuth
path Parameters
identifier
required
integer

ID do chat

Responses

Response samples

Content type
application/json
{
  • "id": 42,
  • "number": "00042",
  • "freight_id": 1001,
  • "freight_type": "load",
  • "freight_number": "01001",
  • "for": "Carga",
  • "category": {
    },
  • "finished_category": null,
  • "driver": {
    },
  • "assigned_to": {
    },
  • "value": 150.5,
  • "approved_value": 140,
  • "approved_by": {
    },
  • "approved_at": "2026-10-19T14:30:00+00:00",
  • "finished_at": null,
  • "created_at": "2026-10-19T13:00:00+00:00",
  • "messages": [
    ]
}

Relatórios

Endpoints para gerenciamento de relatórios

Listar relatórios da carga

Retorna todos os relatórios associados a uma carga específica.

Detalhes Retornados

  • Lista de relatórios da carga

Observações

  • Os relatórios são retornados em ordem cronológica
  • Se a carga não existir, retorna erro 404
Authorizations:
BearerAuth
path Parameters
load_identifier
required
string

ID da carga

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Criar relatório

Cria um novo relatório para uma carga específica.

Campos Obrigatórios

  • report_type: Tipo do relatório
  • content: Conteúdo do relatório

Campos Opcionais

  • observation: Observações adicionais
  • attachments: Lista de anexos

Regras de Negócio

  • O tipo de relatório deve ser válido
  • O conteúdo deve estar no formato correto
  • A carga deve existir e estar em estado válido

Observações

  • Se a carga não existir, retorna erro 404
  • Se os dados forem inválidos, retorna erro 400
  • O relatório é criado com data e hora atuais
Authorizations:
BearerAuth
path Parameters
load_identifier
required
string

ID da carga

Request Body schema: application/json
required
report_type
required
string

Tipo do relatório

filling_type
string
Enum: "Bigbag" "Granel" "Ráfia"

Tipo de envase

sap_lot
Array of strings

Lotes SAP

Array of objects

Lacres de Big Bag

Array of objects

Lacres de Veículo

weight
number

Peso

nf
string

Número da nota fiscal

produced_at
string <date-time>

Data de produção

shelflife
string <date-time>

Data de validade

Responses

Request samples

Content type
application/json
{
  • "report_type": "string",
  • "filling_type": "Bigbag",
  • "sap_lot": [
    ],
  • "bigbag_seals": [
    ],
  • "vehicle_seals": [
    ],
  • "weight": 1000,
  • "nf": "12345",
  • "produced_at": "2024-06-10T10:00:00Z",
  • "shelflife": "2024-12-10T10:00:00Z"
}

Response samples

Content type
application/json
{
  • "report_id": 0,
  • "weight": 0,
  • "nf": "string",
  • "load_id": 0,
  • "seals": [
    ],
  • "sap_lot": [
    ],
  • "filling_type": "string",
  • "status": "string",
  • "shelflife": "2019-08-24T14:15:22Z",
  • "produced_at": "2019-08-24T14:15:22Z",
  • "completed_at": "2019-08-24T14:15:22Z"
}

Atualizar relatório

Atualiza um relatório existente.

Campos Obrigatórios

  • report_type: Tipo do relatório
  • content: Conteúdo do relatório

Campos Opcionais

  • observation: Observações adicionais
  • attachments: Lista de anexos

Regras de Negócio

  • O tipo de relatório deve ser válido
  • O conteúdo deve estar no formato correto
  • O relatório deve estar em estado que permita atualização

Observações

  • Se o relatório não existir, retorna erro 404
  • Se os dados forem inválidos, retorna erro 400
  • A atualização é registrada com data e hora
Authorizations:
BearerAuth
path Parameters
identifier
required
string

ID do relatório

Request Body schema: application/json
required
report_type
required
string

Tipo do relatório

filling_type
string
Enum: "Bigbag" "Granel" "Ráfia"

Tipo de envase

sap_lot
Array of strings

Lotes SAP

Array of objects

Lacres de Big Bag

Array of objects

Lacres de Veículo

weight
number

Peso

nf
string

Número da nota fiscal

produced_at
string <date-time>

Data de produção

shelflife
string <date-time>

Data de validade

Responses

Request samples

Content type
application/json
{
  • "report_type": "string",
  • "filling_type": "Bigbag",
  • "sap_lot": [
    ],
  • "bigbag_seals": [
    ],
  • "vehicle_seals": [
    ],
  • "weight": 1000,
  • "nf": "12345",
  • "produced_at": "2024-06-10T10:00:00Z",
  • "shelflife": "2024-12-10T10:00:00Z"
}

Response samples

Content type
application/json
{
  • "report_id": 0,
  • "weight": 0,
  • "nf": "string",
  • "load_id": 0,
  • "seals": [
    ],
  • "sap_lot": [
    ],
  • "filling_type": "string",
  • "status": "string",
  • "shelflife": "2019-08-24T14:15:22Z",
  • "produced_at": "2019-08-24T14:15:22Z",
  • "completed_at": "2019-08-24T14:15:22Z"
}

Excluir relatório

Remove um relatório existente.

Regras de Negócio

  • O relatório deve estar em estado que permita exclusão
  • A exclusão é permanente e irreversível
  • Todos os anexos relacionados são removidos

Observações

  • Se o relatório não existir, retorna erro 404
  • Se o relatório não puder ser excluído, retorna erro 400
  • Após a exclusão, o identificador pode ser reutilizado
Authorizations:
BearerAuth
path Parameters
identifier
required
string

ID do relatório

Responses

Response samples

Content type
application/json
{
  • "message": "No query results for model [App\\Models\\Load]."
}

Pedidos de Venda

Endpoints para gerenciamento de pedidos de venda

Listar todos os pedidos de venda

Retorna uma lista de todos os pedidos de venda disponíveis.

Campos Retornados

  • id: ID único do pedido
  • identifier: Identificador único do pedido (pode ser null)
  • order: Número do pedido
  • date: Data do pedido
  • order_date: Data do pedido
  • expected_delivery_date: Data esperada de entrega
  • customer: Nome do cliente
  • customer_document: Documento do cliente
  • canceled_at: Data de cancelamento (null se não cancelado)
  • confirmed_at: Data de confirmação (null se não confirmado)
  • consumed: Se o pedido foi consumido
  • products: Lista de produtos do pedido
  • created_at: Data de criação
  • updated_at: Data da última atualização

Regras de Negócio

  • Caso não tenha dados, retorna um array vazio
Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Criar pedido de venda

Cria um novo pedido de venda seguindo as regras de negócio especificadas.

Campos Obrigatórios

  • identifier: Identificador único do pedido (deve ser único no sistema)
  • order: Número do pedido (deve ser único no sistema)
  • date: Data do pedido (formato DD-MM-YYYY)
  • order_date: Data do pedido (formato DD-MM-YYYY)
  • expected_delivery_date: Data esperada de entrega (formato DD-MM-YYYY)
  • customer: Nome do cliente
  • customer_document: Documento do cliente
  • products: Lista de produtos (pelo menos um produto obrigatório)

Campos Opcionais

  • Todos os outros campos dos produtos (lot, validity_date, fabrication_date, package)

Regras de Negócio

  • Os campos "identifier" e "order" devem ser únicos no sistema
  • Caso o cliente não exista, será criado automaticamente
  • Caso a embalagem não exista, será criada com dados padrão (PBT=0, envase, nome enviado)
  • Caso o produto não exista, será criado se tiver nome, código e unidade de medida válida
  • A unidade de medida deve existir no sistema
  • Datas devem estar no formato válido (DD-MM-YYYY)
  • É possível adicionar múltiplos produtos por pedido
Authorizations:
BearerAuth
Request Body schema: application/json
required
identifier
required
string

Identificador único do pedido (deve ser único no sistema)

order
required
string

Número do pedido (deve ser único no sistema)

date
required
string

Data do pedido (formato DD-MM-YYYY)

order_date
required
string

Data do pedido (formato DD-MM-YYYY)

expected_delivery_date
required
string

Data esperada de entrega (formato DD-MM-YYYY)

customer
required
string

Nome do cliente

customer_document
required
string

Documento do cliente

required
Array of objects (SaleOrderProductInput) non-empty

Lista de produtos (pelo menos um produto obrigatório)

Responses

Request samples

Content type
application/json
{
  • "identifier": "67adsjk",
  • "order": "40",
  • "date": "17-09-2025",
  • "order_date": "17-09-2025",
  • "expected_delivery_date": "18-09-2025",
  • "customer": "teste - int",
  • "customer_document": "59155444016",
  • "products": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 15,
  • "identifier": "ALkd36521",
  • "order": "41",
  • "date": "2025-09-19T12:00:00+00:00",
  • "order_date": "2025-09-20T12:00:00+00:00",
  • "expected_delivery_date": "2025-09-20T12:00:00+00:00",
  • "customer": "teste - int",
  • "customer_document": "59155444016",
  • "canceled_at": null,
  • "confirmed_at": null,
  • "consumed": false,
  • "products": [
    ],
  • "created_at": "2025-09-18T13:29:50+00:00",
  • "updated_at": "2025-09-18T17:12:11+00:00"
}

Buscar pedido de venda específico

Busca um pedido de venda específico pelo ID ou identifier.

Parâmetros

  • id: ID numérico ou identifier do pedido de venda

Regras de Negócio

  • Caso não seja encontrado, retorna erro 404
  • Aceita tanto ID numérico quanto identifier como parâmetro
Authorizations:
BearerAuth
path Parameters
required
integer or string

ID ou identifier do pedido de venda

Responses

Response samples

Content type
application/json
{
  • "id": 15,
  • "identifier": "ALkd36521",
  • "order": "41",
  • "date": "2025-09-19T12:00:00+00:00",
  • "order_date": "2025-09-20T12:00:00+00:00",
  • "expected_delivery_date": "2025-09-20T12:00:00+00:00",
  • "customer": "teste - int",
  • "customer_document": "59155444016",
  • "canceled_at": null,
  • "confirmed_at": null,
  • "consumed": false,
  • "products": [
    ],
  • "created_at": "2025-09-18T13:29:50+00:00",
  • "updated_at": "2025-09-18T17:12:11+00:00"
}

Atualizar pedido de venda

Atualiza um pedido de venda existente.

Parâmetros

  • id: ID numérico ou identifier do pedido de venda

Regras de Negócio

  • Todos os campos podem ser atualizados
  • Devem seguir as mesmas regras de validação da criação
  • É possível remover/adicionar produtos, mas pelo menos um deve ser mantido
  • Os campos "identifier" e "order" devem continuar únicos (exceto para o próprio pedido)
  • Caso não seja encontrado, retorna erro 404
Authorizations:
BearerAuth
path Parameters
required
integer or string

ID ou identifier do pedido de venda

Request Body schema: application/json
required
identifier
required
string

Identificador único do pedido (deve ser único no sistema)

order
required
string

Número do pedido (deve ser único no sistema)

date
required
string

Data do pedido (formato DD-MM-YYYY)

order_date
required
string

Data do pedido (formato DD-MM-YYYY)

expected_delivery_date
required
string

Data esperada de entrega (formato DD-MM-YYYY)

customer
required
string

Nome do cliente

customer_document
required
string

Documento do cliente

required
Array of objects (SaleOrderProductInput) non-empty

Lista de produtos (pelo menos um produto obrigatório)

Responses

Request samples

Content type
application/json
{
  • "identifier": "ALkd36521",
  • "order": "41",
  • "date": "19-09-2025",
  • "order_date": "20-09-2025",
  • "expected_delivery_date": "20-09-2025",
  • "customer": "teste - int",
  • "customer_document": "59155444016",
  • "products": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 15,
  • "identifier": "ALkd36521",
  • "order": "41",
  • "date": "2025-09-19T12:00:00+00:00",
  • "order_date": "2025-09-20T12:00:00+00:00",
  • "expected_delivery_date": "2025-09-20T12:00:00+00:00",
  • "customer": "teste - int",
  • "customer_document": "59155444016",
  • "canceled_at": null,
  • "confirmed_at": null,
  • "consumed": false,
  • "products": [
    ],
  • "created_at": "2025-09-18T13:29:50+00:00",
  • "updated_at": "2025-09-18T17:12:11+00:00"
}

Deletar pedido de venda

Remove um pedido de venda do sistema.

Parâmetros

  • id: ID numérico ou identifier do pedido de venda

Regras de Negócio

  • Caso não seja encontrado, retorna erro 404
  • Após a remoção bem-sucedida, retorna mensagem de confirmação
Authorizations:
BearerAuth
path Parameters
required
integer or string

ID ou identifier do pedido de venda

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Sale Order deleted successfully"
}

Liberações

Listar liberações

Retorna uma lista paginada das liberações da instância do token, de um tipo de transporte.

Parâmetros

  • load_type_id (obrigatório): ID interno do tipo de transporte. Sem ele, retorna erro 422
  • type (opcional): loads (liberações de carga) ou unloads (liberações de descarga)

Subliberações não são retornadas.

Filtros adicionais

Enviados no parâmetro filter, como JSON (URL-encoded):

  • Por padrão, só vêm liberações não concluídas. Use with_finished para incluir as concluídas ou only_finished para trazer apenas as concluídas
  • from / until (YYYY-MM-DD): período pela data da liberação (from inclusivo, until exclusivo)
  • freight_type: cif, fob ou cpt
  • product_ids: lista de IDs de produto
  • consider_scheduled: apenas liberações com cota/volume ainda disponível, considerando o agendado
  • search: busca textual (ID, pedido, identificador, usuário, cliente, fornecedor, tipo de transporte)

GET /permits?load_type_id=13&type=loads&filter={"with_finished":1,"from":"2026-10-01"}

Paginação

page (padrão 1) e count (itens por página, padrão 10).

Authorizations:
BearerAuth
query Parameters
load_type_id
required
integer
Example: load_type_id=13

ID interno do tipo de transporte

type
string
Enum: "loads" "unloads"

Tipo da liberação

page
integer >= 1
Default: 1

Número da página para paginação

count
integer >= 1
Default: 10

Quantidade de itens por página

filter
string
Example: filter={"is_full_analysis":1}

Filtros em formato JSON (URL-encoded). Ex.: {"is_full_analysis":1,"finished":1}. Veja a descrição do endpoint para as chaves aceitas.

sorting
string
Example: sorting={"created_at":"desc"}

Ordenação em formato JSON {"campo":"asc|desc"} (URL-encoded). Apenas um campo é considerado. Campos de relações usam ponto, ex.: {"provider.name":"asc"}.

Responses

Response samples

Content type
application/json
{
  • "current_page": 1,
  • "data": [
    ],
  • "from": 1,
  • "last_page": 1,
  • "links": [ ],
  • "next_page_url": null,
  • "per_page": 10,
  • "prev_page_url": null,
  • "to": 2,
  • "total": 2
}

Criar nova liberação

Cria uma nova liberação com os dados fornecidos.

Campos Obrigatórios

  • status: Status inicial da liberação
  • permit_type: Tipo da liberação
  • valid_until: Data de validade da liberação
Authorizations:
BearerAuth
Request Body schema: application/json
required
status
required
string
Enum: "active" "suspended" "expired"

Status da liberação

permit_type
required
string

Tipo da liberação

valid_until
required
string <date>

Data de validade da liberação

Responses

Request samples

Content type
application/json
{
  • "status": "active",
  • "permit_type": "transporte",
  • "valid_until": "2024-12-31"
}

Response samples

Content type
application/json
{
  • "identifier": "PERMIT-456",
  • "transport_modality": "Ensacado",
  • "freight_type": "cif",
  • "customer": "Panificadora XYZ",
  • "carrier_document": null,
  • "customer_document": "12345678000190",
  • "provider": null,
  • "provider_document": null,
  • "quota": 10,
  • "volume": 300000,
  • "date": "2024-03-20T03:00:00+00:00",
  • "is_suspended": false,
  • "suspended_message": null,
  • "volume_scheduled": 60000,
  • "volume_consumed": 30100,
  • "volume_released": 300000,
  • "quota_scheduled": 2,
  • "quota_consumed": 1,
  • "quota_released": 10
}

Buscar liberação por ID

Retorna uma liberação específica pelo seu identificador

Authorizations:
BearerAuth
path Parameters
identifier
required
string

ID da liberação

Responses

Response samples

Content type
application/json
{
  • "identifier": "PERMIT-456",
  • "transport_modality": "Ensacado",
  • "freight_type": "cif",
  • "customer": "Panificadora XYZ",
  • "carrier_document": null,
  • "customer_document": "12345678000190",
  • "provider": null,
  • "provider_document": null,
  • "quota": 10,
  • "volume": 300000,
  • "date": "2024-03-20T03:00:00+00:00",
  • "is_suspended": false,
  • "suspended_message": null,
  • "volume_scheduled": 60000,
  • "volume_consumed": 30100,
  • "volume_released": 300000,
  • "quota_scheduled": 2,
  • "quota_consumed": 1,
  • "quota_released": 10
}

Atualizar liberação

Atualiza uma liberação existente

Authorizations:
BearerAuth
path Parameters
identifier
required
string

ID da liberação

Request Body schema: application/json
required
status
required
string
Enum: "active" "suspended" "expired"

Status da liberação

permit_type
required
string

Tipo da liberação

valid_until
required
string <date>

Data de validade da liberação

Responses

Request samples

Content type
application/json
{
  • "status": "active",
  • "permit_type": "transporte",
  • "valid_until": "2024-12-31"
}

Response samples

Content type
application/json
{
  • "identifier": "PERMIT-456",
  • "transport_modality": "Ensacado",
  • "freight_type": "cif",
  • "customer": "Panificadora XYZ",
  • "carrier_document": null,
  • "customer_document": "12345678000190",
  • "provider": null,
  • "provider_document": null,
  • "quota": 10,
  • "volume": 300000,
  • "date": "2024-03-20T03:00:00+00:00",
  • "is_suspended": false,
  • "suspended_message": null,
  • "volume_scheduled": 60000,
  • "volume_consumed": 30100,
  • "volume_released": 300000,
  • "quota_scheduled": 2,
  • "quota_consumed": 1,
  • "quota_released": 10
}

Excluir liberação

Remove uma liberação existente

Authorizations:
BearerAuth
path Parameters
identifier
required
string

ID da liberação

Responses

Response samples

Content type
application/json
{
  • "message": "No query results for model [App\\Models\\Load]."
}

Suspender liberação

Suspende uma liberação existente

Authorizations:
BearerAuth
path Parameters
identifier
required
string

ID da liberação

Responses

Response samples

Content type
application/json
{
  • "identifier": "PERMIT-456",
  • "transport_modality": "Ensacado",
  • "freight_type": "cif",
  • "customer": "Panificadora XYZ",
  • "carrier_document": null,
  • "customer_document": "12345678000190",
  • "provider": null,
  • "provider_document": null,
  • "quota": 10,
  • "volume": 300000,
  • "date": "2024-03-20T03:00:00+00:00",
  • "is_suspended": false,
  • "suspended_message": null,
  • "volume_scheduled": 60000,
  • "volume_consumed": 30100,
  • "volume_released": 300000,
  • "quota_scheduled": 2,
  • "quota_consumed": 1,
  • "quota_released": 10
}

Reativar liberação

Reativa uma liberação suspensa

Authorizations:
BearerAuth
path Parameters
identifier
required
string

ID da liberação

Responses

Response samples

Content type
application/json
{
  • "identifier": "PERMIT-456",
  • "transport_modality": "Ensacado",
  • "freight_type": "cif",
  • "customer": "Panificadora XYZ",
  • "carrier_document": null,
  • "customer_document": "12345678000190",
  • "provider": null,
  • "provider_document": null,
  • "quota": 10,
  • "volume": 300000,
  • "date": "2024-03-20T03:00:00+00:00",
  • "is_suspended": false,
  • "suspended_message": null,
  • "volume_scheduled": 60000,
  • "volume_consumed": 30100,
  • "volume_released": 300000,
  • "quota_scheduled": 2,
  • "quota_consumed": 1,
  • "quota_released": 10
}

Listar cargas da liberação

Retorna as cargas associadas a uma liberação (ou subliberação) específica, paginadas.

Aceita os mesmos parâmetros filter, sorting, page e count de GET /loads. Se nenhuma liberação tiver o identificador informado, a lista vem vazia (não há erro 404).

Authorizations:
BearerAuth
path Parameters
identifier
required
string

Identificador de integração da liberação

query Parameters
page
integer >= 1
Default: 1

Número da página para paginação

count
integer >= 1
Default: 10

Quantidade de itens por página

filter
string
Example: filter={"is_full_analysis":1}

Filtros em formato JSON (URL-encoded). Ex.: {"is_full_analysis":1,"finished":1}. Veja a descrição do endpoint para as chaves aceitas.

sorting
string
Example: sorting={"created_at":"desc"}

Ordenação em formato JSON {"campo":"asc|desc"} (URL-encoded). Apenas um campo é considerado. Campos de relações usam ponto, ex.: {"provider.name":"asc"}.

Responses

Response samples

Content type
application/json
{
  • "current_page": 1,
  • "first_page_url": "string",
  • "from": 1,
  • "last_page": 10,
  • "last_page_url": "string",
  • "links": [
    ],
  • "next_page_url": "string",
  • "path": "string",
  • "per_page": 10,
  • "prev_page_url": "string",
  • "to": 10,
  • "total": 100,
  • "data": [
    ]
}

Listar descargas da liberação

Retorna as descargas associadas a uma liberação (ou subliberação) específica, paginadas.

Aceita os mesmos parâmetros filter, sorting, page e count de GET /unloads. Se nenhuma liberação tiver o identificador informado, a lista vem vazia (não há erro 404).

Descargas com análise completa retornam o campo sample_classification (veja o schema UnloadSampleClassification).

Authorizations:
BearerAuth
path Parameters
identifier
required
string

Identificador de integração da liberação

query Parameters
page
integer >= 1
Default: 1

Número da página para paginação

count
integer >= 1
Default: 10

Quantidade de itens por página

filter
string
Example: filter={"is_full_analysis":1}

Filtros em formato JSON (URL-encoded). Ex.: {"is_full_analysis":1,"finished":1}. Veja a descrição do endpoint para as chaves aceitas.

sorting
string
Example: sorting={"created_at":"desc"}

Ordenação em formato JSON {"campo":"asc|desc"} (URL-encoded). Apenas um campo é considerado. Campos de relações usam ponto, ex.: {"provider.name":"asc"}.

Responses

Response samples

Content type
application/json
{
  • "current_page": 1,
  • "first_page_url": "string",
  • "from": 1,
  • "last_page": 10,
  • "last_page_url": "string",
  • "links": [
    ],
  • "next_page_url": "string",
  • "path": "string",
  • "per_page": 10,
  • "prev_page_url": "string",
  • "to": 10,
  • "total": 100,
  • "data": [
    ]
}