Appearance
Integrações
Bling
Esta seção descreve a estrutura geral da integração com o Bling, conforme implementado no sistema.
Visão Geral
A integração com o Bling é realizada através da API do Bling, utilizando requisições HTTP para troca de dados. Os principais módulos e funcionalidades implementados são:
- Módulo de Autenticação e Gerenciamento de Tokens: Responsável pelo fluxo OAuth 2.0 para obtenção e renovação de
access_tokenerefresh_token. - Módulo de Gerenciamento de Notas Fiscais de Serviço (NFSe) e Contas a Receber: Gerencia a criação, listagem, visualização e sincronização de NFSe e contas a receber entre o sistema e o Bling.
- Módulo de Gerenciamento de Contatos: Sincroniza e gerencia informações de clientes (contatos) no Bling.
Fluxo de Dados e Operações
O fluxo de dados e as operações realizadas são bidirecionais:
- Sistema para Bling:
- Criação de contatos (clientes) no Bling.
- Criação de Notas Fiscais de Serviço (NFSe) no Bling.
- Renovação de tokens de acesso.
- Bling para Sistema:
- Listagem e sincronização de contas a receber (faturas/boletos) do Bling para o sistema local.
- Verificação do status de emissão de NFSe.
- Atualização do status de pagamento de faturas no sistema local com base nos dados do Bling.
Componentes Principais da Implementação
app/Integrations/Bling/BlingAPI.php: Classe principal para interação com a API do Bling, encapsulando as requisições HTTP, tratamento de tokens e controle derate limit.app/Integrations/Bling/BlingEndpoint.php: Define as constantes para os endpoints específicos da API do Bling.app/Integrations/Bling/BlingPayload.php: Responsável por construir os payloads (corpos das requisições) para as diferentes operações da API do Bling.app/Http/Controllers/BlingController.php: Gerencia o fluxo de autenticação OAuth 2.0 (redirecionamento para autorização e callback para troca de código por tokens).app/Console/Commands/Bling*.php: Uma série de comandos Artisan para automatizar tarefas como:BlingRefreshTokenCommand: Renova oaccess_tokenusando orefresh_token.BlingCheckInvoicesNotIntegratedCommand: Verifica e integra faturas não sincronizadas do sistema para o Bling.BlingBindRspToInvoice/BlingSyncInvoice: Sincroniza contas a receber do Bling para o sistema local e vincula RPS/IDs de faturas.BlingCheckBillsCommand/BlingCheckBillsPaidCommand: Verifica o status de contas a receber no Bling.CheckTaxInvoiceIssuedCommand: Verifica o status de emissão de NFSe no Bling.