Pular para o conteúdo principal

Pré-vendas e ordens de serviço pela API

O endpoint order permite consultar, cadastrar e atualizar o cabeçalho de pré-vendas e ordens de serviço do FoxManager.

Os itens e a prévia de pagamento são mantidos em endpoints próprios. Por isso, uma integração completa normalmente utiliza:

  • order: dados principais da pré-venda ou ordem de serviço;
  • order_item: produtos e serviços vinculados;
  • order_payment_preview: parcelas e valores da prévia de pagamento.
Antes de começar

Esta integração exige autenticação e permissões compatíveis com as operações utilizadas. Consulte o artigo API FoxManager: Guia Completo de Integração com Swagger para aprender a obter o token e autorizar o acesso.

Endpoints disponíveis​

MétodoEndpointFinalidade
GET/api/fox/order/Listar pré-vendas e ordens de serviço.
POST/api/fox/order/Cadastrar um registro.
GET/api/fox/order/{id}/Consultar um registro pelo identificador.
PUT/api/fox/order/{id}/Atualizar integralmente um registro.

O endpoint não oferece exclusão por DELETE.

Pré-venda ou ordem de serviço​

O campo product_or_service identifica o tipo do registro:

ValorTipo
PProduto. Utilizado principalmente no fluxo de pré-venda de produtos.
SServiço. Utilizado no fluxo de ordem de serviço.

O endpoint não possui um filtro específico para product_or_service. A integração deve verificar esse campo nos registros retornados.

Empresa consultada​

Nas consultas, a empresa é definida pelo usuário associado ao token. Mesmo que o Swagger apresente o parâmetro company, a API restringe a listagem à empresa do usuário autenticado.

No cadastro, o campo company faz parte do corpo da requisição e recebe a URI da empresa.

Segurança do token

Não coloque o token em documentos públicos, código-fonte, planilhas compartilhadas ou capturas de tela. Armazene a credencial em local seguro.

Parâmetros de consulta​

ParâmetroObrigatórioDescriçãoExemplo
contractNãoIdentificador interno do contrato relacionado.1234
legacy_codeNãoCódigo utilizado por um sistema externo. A correspondência é exata.OS-2026-001
orderingNãoCampo usado para ordenar o resultado. O padrão é -id.-date
limitNãoQuantidade por página. O padrão é 500 e o máximo é 1000.100
offsetNãoPosição inicial da página. O padrão é zero.0

O parâmetro company também aparece no Swagger, mas a empresa da consulta é definida pelo token.

Não existem filtros próprios para número de série, cliente, vendedor, status, período ou tipo de registro nesse endpoint.

Consulta básica​

GET https://api.foxmanager.com.br/api/fox/order/?limit=100&offset=0
Authorization: Token SEU_TOKEN

Consultar pelo identificador​

GET https://api.foxmanager.com.br/api/fox/order/12345/
Authorization: Token SEU_TOKEN

Filtrar pelo código legado​

GET https://api.foxmanager.com.br/api/fox/order/?legacy_code=OS-2026-001
Authorization: Token SEU_TOKEN

Filtrar pelo contrato​

GET https://api.foxmanager.com.br/api/fox/order/?contract=1234
Authorization: Token SEU_TOKEN

Estrutura da listagem​

A listagem é paginada:

{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": 12345,
"url": "https://api.foxmanager.com.br/api/fox/order/12345/",
"total_value": 850.0,
"date": "2026-09-05T10:30:00-04:00",
"initial_period_date": "2026-09-05",
"final_period_date": "2026-09-10",
"expiration_date": null,
"total_discount": 0.0,
"status": "A",
"percent_discount": 0.0,
"movement_stock": false,
"note": "Instalação do equipamento",
"note_document_service": null,
"note_document_product": null,
"order_code": 9876,
"product_or_service": "S",
"legacy_code": "OS-2026-001",
"serial_number": "SERIE-000123",
"company": "https://api.foxmanager.com.br/api/fox/company/100/",
"salesman": "https://api.foxmanager.com.br/api/fox/person/200/",
"condition_payment": "https://api.foxmanager.com.br/api/fox/condition_payment/10/",
"person": "https://api.foxmanager.com.br/api/fox/person/300/",
"contract": null
}
]
}

Os identificadores e valores apresentados são apenas exemplos.

Campos retornados e aceitos​

CampoTipoObrigatório no cadastroDescrição
idInteiroGeradoIdentificador interno do registro.
urlURIGeradoEndereço do registro na API.
total_valueNúmeroSimValor total da pré-venda ou ordem de serviço.
dateData e horaSimData e hora de cadastro.
initial_period_dateDataSimData inicial do prazo de entrega ou execução.
final_period_dateData ou nuloNãoData final do prazo de entrega ou execução.
expiration_dateData e hora ou nuloNãoData e hora de expiração da pré-venda.
total_discountNúmeroSimValor total do desconto.
statusTextoSimSituação atual do registro.
percent_discountNúmero ou nuloNãoPercentual de desconto.
movement_stockBooleanoNãoIndicador interno de movimentação de estoque.
noteTexto ou nuloNãoObservação geral.
note_document_serviceTexto ou nuloNãoObservação destinada ao documento fiscal de serviço.
note_document_productTexto ou nuloNãoObservação destinada ao documento fiscal de produto.
order_codeInteiro ou nuloNãoCódigo da pré-venda ou ordem de serviço no FoxManager.
product_or_serviceTextoSimTipo do registro: P para produto ou S para serviço.
legacy_codeTexto ou nuloNãoCódigo do registro em sistema externo. Aceita até 64 caracteres.
serial_numberTexto ou nuloNãoNúmero de série associado à ordem. Aceita até 100 caracteres.
companyURISimEmpresa relacionada ao registro.
salesmanURISimVendedor responsável.
condition_paymentURI ou nuloNãoCondição de pagamento.
personURI ou nuloNãoCliente relacionado.
contractURI ou nuloNãoContrato relacionado.

Os campos id e url são somente para leitura e não devem ser enviados no cadastro.

Situações do registro​

ValorSituação
AAberto.
CCancelado.
FFechado.
PPendente.
VPré-ordem.
RReservado.
Valor V

O valor V faz parte do contrato da API, embora a descrição resumida do campo no Swagger possa não apresentá-lo junto aos demais valores.

Número de série​

O campo serial_number corresponde ao número de série apresentado na ordem de serviço.

{
"serial_number": "SERIE-000123"
}

Quando a ordem não possuir número de série, o campo poderá ser null:

{
"serial_number": null
}

O campo aceita até 100 caracteres e não é um parâmetro de filtro. Para localizar uma ordem por número de série, a integração precisa percorrer os resultados disponíveis ou manter essa referência em sua própria base.

Relacionamentos por URI​

Os campos relacionados recebem a URI completa do respectivo cadastro:

CampoEndpoint relacionado
company/api/fox/company/{id}/
salesman/api/fox/person/{id}/
person/api/fox/person/{id}/
condition_payment/api/fox/condition_payment/{id}/
contract/api/fox/contract/{id}/

Antes de cadastrar uma ordem, consulte os endpoints relacionados para obter as URIs válidas.

Exemplo de cadastro de pré-venda​

POST https://api.foxmanager.com.br/api/fox/order/
Authorization: Token SEU_TOKEN
Content-Type: application/json
{
"total_value": 1500.0,
"date": "2026-09-05T10:30:00-04:00",
"initial_period_date": "2026-09-05",
"final_period_date": null,
"expiration_date": "2026-09-15T23:59:59-04:00",
"total_discount": 50.0,
"status": "A",
"percent_discount": 3.33,
"movement_stock": false,
"note": "Proposta válida até a data de expiração",
"note_document_service": null,
"note_document_product": null,
"order_code": null,
"product_or_service": "P",
"legacy_code": "PV-EXTERNA-001",
"serial_number": null,
"company": "https://api.foxmanager.com.br/api/fox/company/100/",
"salesman": "https://api.foxmanager.com.br/api/fox/person/200/",
"condition_payment": "https://api.foxmanager.com.br/api/fox/condition_payment/10/",
"person": "https://api.foxmanager.com.br/api/fox/person/300/",
"contract": null
}

Exemplo de cadastro de ordem de serviço​

POST https://api.foxmanager.com.br/api/fox/order/
Authorization: Token SEU_TOKEN
Content-Type: application/json
{
"total_value": 850.0,
"date": "2026-09-05T10:30:00-04:00",
"initial_period_date": "2026-09-05",
"final_period_date": "2026-09-10",
"expiration_date": null,
"total_discount": 0.0,
"status": "A",
"percent_discount": 0.0,
"movement_stock": false,
"note": "Instalação do equipamento",
"note_document_service": "Informações complementares para a NFS-e",
"note_document_product": null,
"order_code": null,
"product_or_service": "S",
"legacy_code": "OS-2026-001",
"serial_number": "SERIE-000123",
"company": "https://api.foxmanager.com.br/api/fox/company/100/",
"salesman": "https://api.foxmanager.com.br/api/fox/person/200/",
"condition_payment": "https://api.foxmanager.com.br/api/fox/condition_payment/10/",
"person": "https://api.foxmanager.com.br/api/fox/person/300/",
"contract": null
}

Atualizar um registro​

O método PUT substitui os dados do registro. Envie novamente todos os campos obrigatórios, mesmo que apenas um valor tenha sido alterado.

PUT https://api.foxmanager.com.br/api/fox/order/12345/
Authorization: Token SEU_TOKEN
Content-Type: application/json

Para evitar perda de informações:

  1. consulte o registro atual com GET;
  2. altere somente os valores necessários em sua aplicação;
  3. envie o objeto completo com PUT;
  4. confira a resposta retornada pela API.

Itens da pré-venda ou ordem de serviço​

Os produtos e serviços não são retornados dentro do objeto order. Use o endpoint order_item e informe o identificador da ordem:

GET https://api.foxmanager.com.br/api/fox/order_item/?order=12345
Authorization: Token SEU_TOKEN

O parâmetro order é obrigatório nessa consulta.

Cada item possui os principais campos:

CampoDescrição
orderURI da pré-venda ou ordem de serviço.
companyURI da empresa.
productURI do produto ou serviço.
unit_valueValor unitário.
quantityQuantidade.
discountValor do desconto.
total_valueValor total do item.
percent_discountPercentual de desconto, quando informado.
legacy_codeCódigo do item no sistema externo.

Prévia de pagamento​

Para consultar as parcelas e valores da prévia de pagamento, utilize:

GET https://api.foxmanager.com.br/api/fox/order_payment_preview/?order=12345
Authorization: Token SEU_TOKEN

O parâmetro order é obrigatório nessa consulta.

Funcionalidades que não pertencem ao endpoint​

As telas do FoxManager oferecem operações adicionais, como aprovação, envio para venda, fechamento ou reabertura da ordem, geração de documentos fiscais, etapas, laudo técnico, solicitação de itens e histórico de eventos.

Essas operações não estão representadas pelos métodos publicados no endpoint order. Não considere que alterar apenas o campo status reproduz automaticamente os processos executados pelas telas do sistema.

Como percorrer todas as páginas​

  1. Faça a primeira consulta com offset=0.
  2. Leia os registros do campo results.
  3. Verifique o campo next.
  4. Quando next contiver uma URI, consulte esse endereço.
  5. Repita até next retornar null.
Paginação

O campo count informa o total de registros encontrados. O campo results contém somente os registros da página atual.

Respostas de erro mais comuns​

CódigoSignificadoComo corrigir
400Corpo ou parâmetro inválido.Confira tipos, datas, campos obrigatórios e URIs relacionadas.
401Token ausente ou inválido.Confira o cabeçalho Authorization e utilize Token antes da chave.
403Usuário sem permissão para a operação.Solicite a revisão das permissões do usuário.
404Registro ou URI relacionada não encontrada.Confira o identificador e os endereços informados.
500Erro inesperado no processamento.Se persistir, entre em contato com o suporte do FoxManager.

Boas práticas​

  • Utilize filtros e paginação para reduzir o volume retornado.
  • Percorra todas as páginas quando precisar de uma carga completa.
  • Trate campos opcionais como valores que podem retornar null.
  • Consulte as URIs relacionadas antes de cadastrar ou atualizar registros.
  • Use legacy_code para manter a correspondência com o sistema de origem.
  • Não tente localizar registros por serial_number diretamente, pois o campo não é um filtro.
  • Consulte order_item para obter os produtos e serviços vinculados.
  • Não altere status para simular ações funcionais que possuem regras próprias no FoxManager.
  • Não exponha o token em logs, exemplos, código-fonte ou arquivos compartilhados.

Documentações relacionadas​

Para conferir o contrato técnico mais recente, consulte o Swagger da API FoxManager.

AjudaNormalmente responde dentro de um dia
Ajuda

Olá! 👋 O que podemos fazer por você?

21:09