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ística | Detalhe |
| Método HTTP | POST |
| Content-Type | application/x-www-form-urlencoded ou multipart/form-data |
| Formato de Resposta | JSON |
| Charset | Saída com tratamento utf8_encode em campos de texto |
| Autenticação | Usuário e Senha (vinculados à empresa) |
| Paginação | Sim (Limite: 50 registros/página) |
| Sincronização | Incremental 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:
- Usuário e Senha: Validados em base centralizada.
- Conexão Dinâmica: O sistema aponta para o banco de dados específico da empresa autenticada.
- Sessão: Configurações de acesso são carregadas em variáveis de sessão durante a execução.
Campos Obrigatórios:
usuariosenha
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 formatoY-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:
- Verifique o campo
total_paginacaona primeira resposta. - Itere pelas páginas subsequentes alterando o parâmetro
paginacao_atualaté atingir o limite de páginas informado pela API.
14. Estratégia Recomendada de Sincronização
- Sincronização Incremental: Utilize o campo
data_atualizacaopara buscar apenas os pedidos modificados desde a última integração bem-sucedida. - Filtro Fiscal: Utilize
numero_nfouserie_nfpara 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: