Documentação Técnica: API de Integração de Pedidos

Endpoint: pedidos.php

1. Visão Geral

Esta documentação descreve o funcionamento do endpoint para recuperação de dados de Pedidos, responsável pela disponibilização de informações detalhadas de vendas, incluindo dados do cliente, itens vinculados e informações de pagamento através de integração via API REST.

O endpoint permite a consulta de:

  • Dados mestres do pedido (emissão, valores totais e numeração);
  • Detalhes dos itens (produtos, quantidades, valores e impostos);
  • Informações fiscais (Nota Fiscal, chave de acesso e protocolos);
  • Dados para sincronização incremental e fluxo de pagamentos.

Funcionamento Interno: A API valida as credenciais na tabela de empresas do banco central. Se válido, as configurações do banco de dados específico da empresa são carregadas dinamicamente para realizar a consulta dos pedidos.


2. Características da API

CaracterísticaDetalhe
Método HTTPPOST
Content-Typeapplication/x-www-form-urlencoded ou multipart/form-data
Formato de RespostaJSON
CharsetSaída com tratamento utf8_encode em campos de texto
AutenticaçãoUsuário e Senha (vinculados à empresa)
PaginaçãoSim (Limite: 50 registros/página)
SincronizaçãoIncremental por data de atualização disponível

3. Escopo da Integração

A API foi desenvolvida para permitir a extração padronizada de dados de vendas para sistemas externos.

Possibilidades:

  • Consulta incremental por data de emissão ou atualização;
  • Consulta individual por número de pedido ou nota fiscal;
  • Leitura de dados fiscais completos (NCM, CFOP, CEST e impostos como ICMS, PIS, COFINS e IPI);
  • Estrutura relacional com múltiplos itens e formas de pagamento.

Compatível com: ERPs, E-commerces, CRMs, Plataformas de Business Intelligence (BI) e Middlewares de integração.


4. Autenticação e Segurança

O acesso é controlado através de credenciais enviadas no corpo da requisição. O fluxo de validação identifica:

  1. Usuário e Senha: Validados em base centralizada.
  2. Conexão Dinâmica: O sistema aponta para o banco de dados específico da empresa autenticada.
  3. Sessão: Configurações de acesso são carregadas em variáveis de sessão durante a execução.

Campos Obrigatórios:

  • usuario
  • senha

5. Recomendações de Segurança

  • Atenção a Injeção: Como a API utiliza funções legadas e concatenação de variáveis, é fundamental validar os dados de entrada para prevenir ataques de SQL Injection;
  • Utilização exclusiva via protocolo HTTPS para proteger as credenciais;
  • Armazenamento seguro das senhas de integração em cofres de credenciais;
  • Implementação de controle de tentativas de acesso inválidas.

6. Parâmetros da Requisição (POST)

  • usuario: Nome de usuário para autenticação (Obrigatório).
  • senha: Senha para autenticação (Obrigatório).
  • data_emissao: Filtra pedidos emitidos a partir da data informada.
  • data_atualizacao: Filtra pedidos atualizados a partir da data informada.
  • numero_pedido: Filtra por um número de pedido específico.
  • numero_nf: Filtra por um número de nota fiscal específico.
  • serie_nf: Filtra por uma série de nota fiscal específica.
  • paginacao_atual: Índice da página de resultados (Padrão: 1).

7. Regras de Funcionamento dos Filtros

  • Datas (data_emissao/data_atualizacao): Devem seguir o formato Y-m-d H:i:s (Ex: 2024-05-01 08:00:00).
  • numero_pedido: Filtro numérico direto sobre a identificação do pedido.
  • paginacao_atual: Controla o deslocamento dos registros para volumes que excedam 50 itens.

8. Exemplo de Requisição

Abaixo, a representação lógica dos dados enviados via formulário POST:

JSON

{
  "usuario": "seu_usuario_api",
  "senha": "sua_senha_secreta",
  "data_emissao": "2024-05-01 08:00:00",
  "paginacao_atual": 1
}

9. Estrutura da Resposta

O JSON de retorno contém metadados de controle e a lista de pedidos:

  • result: Indica sucesso (true) ou falha (false).
  • total: Quantidade total de pedidos encontrados no filtro.
  • total_paginacao: Número total de páginas disponíveis.
  • paginacao_atual: Página atual retornada.
  • dados: Array contendo os objetos dos pedidos e seus subníveis.

JSON

{
    "result": true,
    "total": 2,
    "total_registros": 2,
    "data_atualizacao": "",
    "total_paginacao": 1,
    "paginacao_atual": 1,
    "dados": [
        {
            "id": "3045",
            "data_emissao": "2026-04-30 10:06:00",
            "cliente_id": "0",
            "cliente_nome": "",
            "cliente_documento": null,
            "valor_produtos": "12059.00",
            "valor_seguro": "0.00",
            "valor_descontos": "0.00",
            "valor_acrescimos": "0.00",
            "valor_pedido": "12059.00",
            "valor_frete": "0.00",
            "numero_do_pedido": "0",
            "data_entrega": "0000-00-00 00:00:00",
            "numero_da_nota": "0",
            "chave_da_nota": "",
            "protocolo_da_nota": null,
            "protocolo_cancelamento_da_nota": null,
            "itens": [
                {
                    "id": "312850",
                    "produto": "BRINQUEDO - 36",
                    "codigo_barra": "10018010",
                    "quantidade": "32.00000",
                    "valor_unitario": "36.0000000000",
                    "valor_total": "1152.00",
                    "valor_descontos": "0.00",
                    "valor_acrescimos": null,
                    "ncm": "95030099",
                    "cfop_codigo": "1102",
                    "icms_cst": null,
                    "icms_aliquota": null,
                    "cofins_cst": null,
                    "cofins_aliquota": null,
                    "pis_cst": null,
                    "pis_aliquota": null,
                    "cest": "",
                    "icms_valor": null,
                    "cofins_valor": null,
                    "pis_valor": null,
                    "ipi_cst": null,
                    "ipi_aliquota": null,
                    "ipi_valor": null,
                    "icmsst_bc": null,
                    "icmsst_aliquota": null,
                    "icmsst_valor": null
                }
              ],
            "pagamentos": []
        }
    ]
}

10. Estrutura dos Dados do Pedido

Campos principais retornados para cada pedido:

  • id, numero_do_pedido, data_emissao, data_entrega;
  • cliente_nome, cliente_documento, cliente_id;
  • Valores Totais: valor_pedido, valor_produtos, valor_frete, valor_seguro, valor_descontos, valor_acrescimos;
  • Dados Fiscais: numero_da_nota, chave_da_nota, protocolo_da_nota;
  • itens (Array), pagamentos (Array).

11. Estrutura de Itens

O array itens detalha cada produto do pedido:

  • id, produto, codigo_barra, quantidade;
  • valor_unitario, valor_total, valor_descontos, valor_acrescimos;
  • Tributação: ncm, cfop_codigo, cest, CSTs (ICMS, PIS, COFINS, IPI) e seus respectivos valores e alíquotas.

12. Estrutura de Pagamentos

O array pagamentos pode retornar as condições e formas de pagamento vinculadas ao pedido.


13. Tratamento de Paginação

Para grandes volumes de dados:

  1. Verifique o campo total_paginacao na primeira resposta.
  2. Itere pelas páginas subsequentes alterando o parâmetro paginacao_atual até atingir o limite de páginas informado pela API.

14. Estratégia Recomendada de Sincronização

  • Sincronização Incremental: Utilize o campo data_atualizacao para buscar apenas os pedidos modificados desde a última integração bem-sucedida.
  • Filtro Fiscal: Utilize numero_nf ou serie_nf para conciliar pedidos faturados com o sistema contábil.

15. Recomendações de Integração

  • Tratamento de Erros: Monitore o campo result. Em caso de falha, valide mensagens como “Usuário inválido”, “Empresa inválida” ou “Data inválida”.
  • Performance: Evite solicitações de carga completa (sem filtros) com frequência excessiva; prefira os filtros de data.
  • Resiliência: Implemente tratamento de timeout e logs para registrar o ID do último pedido processado.

Share this content: