Início
📚 Índice Completo
Este manual técnico foi desenvolvido para guiar empresas na integração de seus sistemas ERP com a API Portal Retail. Oferece instruções detalhadas, exemplos práticos e boas práticas comprovadas.
📖 Capítulos do Manual
1️⃣ Visão Geral
O que você precisa entender primeiro
- Objetivo do módulo ERP
- Como funciona o fluxo de integração
- Operações síncronas vs assíncronas
- Entendendo HTTP 202 Accepted
- Estados de processamento de batch
Tempo de leitura: ~15 minutos
2️⃣ Autenticação e Segurança
Como se conectar à API com segurança
- Tipo de autenticação (API Key)
- Exemplos práticos com cURL e Bash
- Cabeçalhos obrigatórios
- Rate limiting e proteção
- Boas práticas de segurança
Tempo de leitura: ~20 minutos
Essencial antes de: Primeira integração
3️⃣ Lista de Endpoints
Todos os endpoints disponíveis
- Visão geral de 9 endpoints principais
- Produtos (ErpProduct)
- Estoque (ErpStock)
- Vendas diárias e mensais
- Lojas, fornecedores, medicamentos, grupos de compra
- Relatório de batch jobs
Tempo de leitura: ~25 minutos
Referência: Consulte sempre que precisar criar/atualizar dados
4️⃣ Modelo de Dados — Entrada
Estrutura esperada dos dados que você envia
- Campos obrigatórios vs opcionais
- Tipos de dados corretos
- Regras de validação
- Exemplos válidos e inválidos
- Tratamento especial de datas
Tempo de leitura: ~20 minutos
Crítico para: Preparar dados corretos
5️⃣ Modelo de Dados — Saída (Sucesso)
O que você receberá em caso de sucesso
- HTTP 200 OK — Atualização bem-sucedida
- HTTP 201 Created — Criação bem-sucedida
- HTTP 202 Accepted — Batch enfileirado
- HTTP 200 OK — Consulta de status
- Progressão de estados
- Estrutura completa de resposta
Tempo de leitura: ~20 minutos
6️⃣ Modelo de Dados — Saída (Erro)
Como diagnosticar e resolver problemas
- HTTP 400 — Erros de validação
- HTTP 401 — Autenticação falhou
- HTTP 404 — Recurso não encontrado
- HTTP 409 — Conflito/duplicidade
- HTTP 500 — Erro do servidor
- HTTP 429 — Rate limit
- Exemplos de cada erro
- Como corrigir
Tempo de leitura: ~25 minutos
Consulte quando: Receber mensagem de erro
7️⃣ Relatório de Execução do Batch
Monitorar progresso de operações em lote
- Endpoint GET /batch-job-report/{jobId}
- Estados: Enqueued, Processing, Finished, Failed
- Campos e interpretação
- Polling recomendado
- Implementação em Python/Bash
- Fluxo completo de exemplo
Tempo de leitura: ~20 minutos
Essencial para: Operações em batch
8️⃣ Fluxo de Reenvio em Caso de Erro
Identificar, diagnosticar e corrigir erros
- Árvore de decisão
- Tipos de erro e como resolvê-los
- Erros em batch
- Retry automático com backoff exponencial
- Reenvio inteligente
- Código completo de exemplo
Tempo de leitura: ~25 minutos
Leia quando: Primeira falha ocorrer
9️⃣ Boas Práticas
Implementar integração robusta e eficiente
- Tamanho ideal das cargas
- Frequência recomendada
- Idempotência e segurança contra duplicatas
- Strategies para evitar duplicidades
- Connection pooling
- Processamento paralelo
- Monitoramento e logging
- Alertas e notificações
- Checklist de implementação
- SLA recomendado
Tempo de leitura: ~30 minutos
Leia antes de: Colocar em produção
🎯 Guias Rápidos por Caso de Uso
Caso 1: Primeira Integração (Novo)
Ordem de leitura:
- Visão Geral — Entender conceitos
- Autenticação — Obter chave, entender segurança
- Endpoints — Escolher endpoint correto
- Dados Entrada — Formatar dados
- Exemplo Prático — Testar primeira requisição
Tempo total: ~2 horas
Caso 2: Integrando Batch em Produção
Ordem de leitura:
- Endpoints — /product/batch
- Dados Entrada — Formatar 1000 itens
- Dados Saída Sucesso — Entender 202
- Relatório Batch — Polling de status
- Boas Práticas — Otimizar integração
Tempo total: ~90 minutos
Caso 3: Debugar Erro Atual
Ordem rápida:
- Dados Saída Erro — Identificar tipo
- Fluxo Reenvio — Corrigir
Tempo total: ~20 minutos
Caso 4: Sincronização Automática Diária
Ordem de leitura:
- Boas Práticas — Estratégias
- Endpoints — /get-latest-integration
- Relatório Batch — Monitoramento
Tempo total: ~45 minutos
📋 Exemplo Completo — Passo a Passo
Objetivo: Criar 100 produtos
# PASSO 1: Preparar dados (JSON válido)
# Ver: [Dados Entrada](./04-DADOS-ENTRADA.md)
curl --request POST \
--url https://api.retailportal.com/erp-data/product/batch \
--header 'Content-Type: application/json' \
--header 'X-API-Key: SUA-CHAVE-AQUI' \
--data '{
"products": [
{
"erpId": 12345,
"ncmCode": "84733090",
"status": "Active",
"description": "Dipirona 500mg",
...
},
...
]
}'
# PASSO 2: Receber 202 + jobId
# Resposta: { "jobId": "hangfire-123...", ... }
# Ver: [Dados Saída Sucesso](./05-DADOS-SAIDA-SUCESSO.md)
# PASSO 3: Consultar status
curl --request GET \
--url https://api.retailportal.com/erp-data/batch-job-report/hangfire-123... \
--header 'X-API-Key: SUA-CHAVE-AQUI'
# PASSO 4: Aguardar até "Finished"
# Ver: [Relatório Batch](./07-BATCH-RELATORIO.md)
# PASSO 5: Analisar resultado
# successCount = 100, failureCount = 0
# ✓ Sucesso total!
🔑 Conceitos-Chave
HTTP 202 Accepted
Significa que sua requisição foi ACEITA, mas ainda NÃO foi processada. É normal em operações em batch. Você deve consultar o status depois.
Saiba mais: Visão Geral 1.4
Idempotência
A API garante que reenviar a mesma requisição não criará duplicatas. Você pode reenviar com segurança se perder conexão.
Saiba mais: Boas Práticas 9.3
Batch vs Individual
- Individual (POST/PUT): Resposta imediata (1-5s), até 1 item
- Batch: Resposta 202 + polling, até 1.000 itens, mais rápido no total
Compare: Visão Geral 1.3
Rate Limiting
Se fizer mais de 100 tentativas de autenticação em 5 minutos, será bloqueado por 15 minutos.
Saiba mais: Autenticação 2.4
🆘 Troubleshooting Rápido
| Problema | Solução | Ref |
|---|---|---|
| "Unauthorized" | Verifique API Key | 2.3 |
| "Field required" | Adicione campo obrigatório | 4.1 |
| "Invalid DateTime" | Use formato ISO 8601 com Z | 4.3 |
| Job ainda "Processing" | Continue consultando | 7.2.2 |
| "Already exists" | Use PUT em vez de POST | 6.5 |
| Error 500 servidor | Aguarde 5 min e reenvie | 6.6 |
📞 Suporte
- Email: suporte@retailportal.com
- Portal: https://support.retailportal.com
- SLA: Resposta em até 4 horas
Inclua ao contactar:
- JobId (se aplicável)
- Timestamp do erro
- JSON enviado
- Mensagem de erro exata
📄 Estrutura de Diretórios
integracao-erp/
├── README.md (você está aqui)
├── 01-VISAO-GERAL.md
├── 02-AUTENTICACAO-SEGURANCA.md
├── 03-ENDPOINTS.md
├── 04-DADOS-ENTRADA.md
├── 05-DADOS-SAIDA-SUCESSO.md
├── 06-DADOS-SAIDA-ERRO.md
├── 07-BATCH-RELATORIO.md
├── 08-REENVIO-ERROS.md
├── 09-BOAS-PRATICAS.md
└── exemplos/ (em breve)
├── exemplo_produto_individual.json
├── exemplo_batch_1000_items.json
├── exemplo_python_completo.py
├── exemplo_bash_curl.sh
└── exemplo_nodejs.js
✅ Checklist Pré-Produção
Antes de colocar a integração em produção:
- [ ] Leu o manual completo
- [ ] Testou autenticação com API Key
- [ ] Formatou dados corretamente
- [ ] Testou criação individual
- [ ] Testou batch pequeno (10 itens)
- [ ] Testou batch grande (1.000 itens)
- [ ] Implementou polling de batch
- [ ] Implementou retry automático
- [ ] Adicionou logging
- [ ] Testou tratamento de erros
- [ ] Documentou procedimentos
- [ ] Testou sincronização incremental
- [ ] Tem contato de suporte identificado
📈 Versão e Histórico
| Versão | Data | Alterações |
|---|---|---|
| 1.0 | Dez 2024 | Versão inicial completa |
📝 Licença e Uso
Este manual é fornecido pela Portal Retail para integração de sistemas ERP. Uso restrito a parceiros autorizados. Não reproduzir ou distribuir sem autorização.
🚀 Próximas Etapas
- Escolha seu caso de uso (novo, debugging, produção, etc.)
- Siga o guia rápido correspondente
- Implemente a integração
- Teste antes de produção
- Contacte suporte se tiver dúvidas
Última atualização: Dezembro 2024
Manual versão: 1.0
API versão: v1 (ErpData)
🎓 Recursos Adicionais
- Documentação de API Completa
- Código de Exemplo em Múltiplas Linguagens
- Vídeos Tutoriais (em breve)
- Webinar Mensal (agendado)
- FAQ (em construção)
Dúvidas? Contacte: suporte@retailportal.com