Skip to content

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_token e refresh_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 de rate 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 o access_token usando o refresh_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.