--- name: Bling ERP Integração description: Integração Bling ERP v3 com OAuth2, multi-conta, pedidos de venda, homologação e cron sync type: project --- Integração Bling ERP implementada em 2026-03-30. **Why:** Necessidade de visualizar pedidos de venda dos clientes conectados ao Bling dentro da plataforma intranet. **How to apply:** Módulo em Comercial & Vendas. Suporta múltiplas contas Bling OAuth2. ## Arquivos criados - `app/Database/Migrations/2026-03-30-200000_CreateBlingTables.php` - `app/Libraries/BlingApi.php` - Comunicação API Bling v3 - `app/Models/BlingContaModel.php` - CRUD contas + auto-refresh token - `app/Models/BlingPedidoModel.php` - CRUD pedidos + sincronização - `app/Controllers/Bling.php` - Controller completo + homologação 5 passos - `app/Views/bling/index.php` - Dashboard com tabs por situação (padrão boletos) ## Credenciais OAuth (protótipo) - client_id: `220ed85f46776a0298d532f4d4adbe8eee0c98b2` - client_secret: `6b1106091b46397bdb6da28a2b565944ec0518cfe43731d6264f0dea7b5d` - Redirect URI: `https://sistema.gotechbr.com.br/bling/callback` ## Tabelas - `bling_contas` - Contas OAuth com tokens, status, última sync - `bling_pedidos` - Cache local dos pedidos (sync da API) ## Permissões - `bling_visualizar`, `bling_gerenciar`, `bling_configurar`, `bling_pedidos` ## Situações Bling v3 (campo `situacao.valor`) - 0=Em digitacao, 1=Verificado, 2=Atendido, 3=Cancelado, 4=Em aberto - 5=Em andamento, 6=Venda agenciada, 7=Em separacao, 8=Pronto para envio - 9=Faturado, 10=Em producao ## Homologação - Endpoint: `/bling/homologacao?conta_id=X` - 5 passos sequenciais: GET→POST→PUT→PATCH→DELETE com hash encadeado - Token invalidado entre passos (usar refresh_token, NÃO refazer passo 1) - Rate limit: 1s delay entre requests - **CONCLUÍDA com sucesso em 2026-03-30** ## Cron sync automático - URL: `https://sistema.gotechbr.com.br/bling/cron-sincronizar?token=85f112c18972c700c4583b2d71ada187d05b18c15c1b4ae3dd5ee431895c3e8e` - Rota sem auth (protegida por token) - Configurar no cPanel: `* * * * *` (a cada minuto) ## CSRF - `bling/*` adicionado às exceções em `app/Config/Filters.php`