# Boletos e CNAB de cobrança

O módulo implementa o CNAB, a geração do Boleto, do Arquivo de Remessa e importa o Arquivo de Retorno usando a Biblioteca BRCobranca através do Micro-Serviço Boleto_CNAB_API.

Table of contents

- Installation
- Configuration
- Usage
- Known issues / Roadmap
- Changelog
  - 14.0.9.0.0 (2024-09-19)
  - 14.0.8.0.0 (2024-09-18)
  - 14.0.7.0.0 (2024-09-13)
  - 14.0.6.0.0 (2024-09-10)
  - 14.0.1.0.0 (2022-05-26)
  - 12.0.1.0.0 (2021-05-07)
  - 12.0.1.0.0 (2020-06-12)
  - 10.0.1.0.0 (2019-05-30)
  - 8.0.1.0.0 (2018-01-29)
  - 8.0.1.0.0 (2017-07-01)
- Bug Tracker
- Credits
  - Authors
  - Contributors
  - Other credits
  - Maintainers

# Installation

O módulo depende do:

- l10n_br_account_payment_order
- account_move_base_import

# Configuration

Para configurar esse módulo é preciso:

Rodar a biblioteca BRCobranca como um micro-serviço Boleto_CNAB_API.

Informar a variável de ambiente BRCOBRANCA_API_URL, existem três opções:

- No arquivo de configuração do Docker Compose File na seção enviroment, por exemplo https://github.com/akretion/docky-odoo-brasil/blob/12.0/docker-compose.yml#L3 , incluir:
    BRCOBRANCA_API_URL=http://boleto_cnab_api:9292
- No arquivo de Configuração do Odoo, incluir:
    brcobranca_api_url=http://boleto_cnab_api:9292
- No Odoo crie um Parâmetro de Sistema como:
    brcobranca_api_url=http://boleto_cnab_api:9292

Verifique se os Códigos do CNAB do Banco que será usado existem em:

Faturamento > Configurações > Administração > Códigos CNAB

Caso seja preciso criar por favor considere fazer um PR acrescentando os Códigos em l10n_br_account_payment_order/data/cnab_codes/banco_X_cnab_Y_Z.xml assim em próximas implementações já não será preciso cadastra-los ajudando também na construção desse banco de conhecimento, você pode ver os casos que já existem hoje no módulo l10n_br_account_payment_order.

Crie uma Configuração CNAB, é onde serão armazenadas as informações específicas de cada caso como a Carteira, Convênio, Código do Benificiário, Códigos de Instrução e Retorno do Movimento, etc, em:

Faturamento > Configuração > Administração > Configurações CNAB

Verifique se a Conta Bancária referente ao CNAB já foi cadastrada em:

Configurações > Usuários e Empresas > Empresas

Clique no Contato associado, e na aba Faturamento veja se a Contas Bancária referente ao CNAB já existe e se as informações estão corretas, se não existir veja de criar informando os dados Número da Conta, Agencia, etc.

Ao cadastrar a Conta Bancária deve ser criado automaticamente um Diário Contábil, ou se já havia sido cadastrada o Diário já deve existir, verifique em:

Faturamento > Configurações > Financeiro > Diários

Confirme se as informações estão corretas, campo Tipo deve estar como Banco, na aba Lançamentos do Diário em Número da Conta Bancária deve estar preenchido com a Conta Bancária do CNAB e na aba Configuração de Pagamentos os Metódos que serão usados, 240 ou 400, devem estar marcados.

Na aba Informações Referentes a Importação informe as configurações de Retorno do CNAB nos campos Tipo de Importação, Conta de Recebimento/Pagamento, Criação de Contra-Partida e se deve ser feita a reconciliação automática ao importar o arquivo em Reconciliar Automaticamente o Retorno de Pagamento.

Crie um Modo de Pagamento ou use um existente em:

Faturamento > Configuração > Administração > Modos de Pagamento

Informe o Diário Contábil referente ao Banco e a Configuração CNAB que deverá ser utilizada, no campo Diário de Banco Fixo informar o Diário Contábil da Conta Bancária e se for o caso, e é recomendado, marcar a opção Adicionar automaticamente ao validar a fatura para não ser preciso fazer manualmente.

Caso o CNAB e Banco escolhidos possua um campo específico que seja preciso implementar considere fazer um PR no módulo l10n_br_account_payment_order aqui https://github.com/OCA/l10n-brazil/blob/14.0/l10n_br_account_payment_order/models/l10n_br_cnab_boleto_fields.py#L307 .

Configure as permissões de acesso dos usuários, as opções são CNAB Usuário e Gerente.

# Usage

Ao criar e Confirmar uma Fatura que tem um Modo de Pagamento que tenha uma Configuração CNAB definida deverá aparecer o botão de Imprimir Boleto, caso esteja marcado no Modo de Pagamento a opção de Adicionar automaticamente ao validar a fatura será criada ou adicionada em uma Ordem de Pagamento as linhas de pagamentos do CNAB, se a opção não estiver marcada será preciso fazer isso manualmente podendo ser feito tanto na Fatura quanto na Ordem de Pagamento.

Ao Confirmar essa Ordem de Pagamento será possível gerar o Arquivo de Remessa CNAB a ser enviado ao Banco, é importante confirmar o envio do arquivo alterando o status da ordem para Arquivo Enviado, essa informação é usada para validar se existe uma instrução CNAB pendente antes de se poder criar outra.

Alterações de CNAB como Alteração da Data de Vencimento, Protesto, Conceder Abatimento e etc podem ser feitas na própria Fatura em:

Faturamento > Clientes > Faturas

Na aba Recebimentos na última coluna existe o botão Atualizar Informação CNAB ao clicar em uma linha essa opção também aparece, ao fazer uma alteração é criada ou adicionada em uma Ordem de Pagamento a Instrução de Movimento CNAB selecionada.

A importação do Arquivo CNAB de Retorno pode ser feita em:

Faturamento > Financeiro > CNAB > Importar Arquivo de Lote

ou no próprio Diário em:

Faturamento > Configurações > Financeiro > Diários

Na aba Informações Referentes a Importação no botão Arquivo de lote de importação.

Toda importação de arquivo de retorno cria um LOG que pode ser consultado em:

Faturamento > Financeiro > CNAB > Registro de Retorno de CNAB

Caso o Código de Retorno CNAB recebido seja um dos Códigos de Liquidação do Retorno do Movimento, definidos na Configuração CNAB usada no Modo de Pagamento, será criada uma Entrada de Diário com os valores, quando existirem de Desconto, Juros/Mora, Tarifa Bancária, Abatimento e o Valor Recebido a ser reconciliado com a linha da Fatura referente, os lançamentos são separados de acordo com as Contas Contabéis definidas na Configuração CNAB, a linha para reconciliar a Fatura precisam ser iguais por isso o valor é:

valor_recebido_calculado = valor_recebido + valor_desconto + valor_abatimento - valor_juros_mora

Quando marcada a opção de Reconciliação Automatica a Entrada de Diário será movida para o status Lançado automaticamente ao importar o arquivo, se essa opção não estiver marcada isso deverá ser feito manualmente.

# Known issues / Roadmap

- Incluir a posssibilidade de imprimir o boleto no menu Imprimir da Fatura, na v12 aparentemente não é possível chamar um metodo apenas um QWeb, verificar na migração para outras versões.

# Changelog

## 14.0.9.0.0 (2024-09-19)

- [REM] Removendo Campos, Visões e Objetos obsoletos.

## 14.0.8.0.0 (2024-09-18)

- [IMP] Possibilidade de informar Códigos de Desconto além do 0 e 1.

## 14.0.7.0.0 (2024-09-13)

- [REF] Separando as Configurações do CNAB do Modo de Pagamento.

## 14.0.6.0.0 (2024-09-10)

- [REF] Unindo os Códigos CNAB em um mesmo objeto.

## 14.0.1.0.0 (2022-05-26)

- [MIG] Migration

## 12.0.1.0.0 (2021-05-07)

- [MIG] Finish migration
- [IMP] Integrate with module account_move_base_import used to import CNAB file
- [IMP] Make possible automatic reconciliation and register the values of Fees, Tariff Bank, Rebate in configured accounts.

## 12.0.1.0.0 (2020-06-12)

- [MIG] Start Migration

## 10.0.1.0.0 (2019-05-30)

- [MIG] Migration

## 8.0.1.0.0 (2018-01-29)

- [REF] Maked functional to print Boleto, create CNAB file and import CNAB as Extrat Bank the user should be resolved manully the divergences between the values( Fee, Tariff Bank, Rebate, etc).

## 8.0.1.0.0 (2017-07-01)

- [NEW] First version

# Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.

Do not contact contributors directly about support or help with technical issues.

# Credits

## Authors

- Akretion

## Contributors

- Akretion:
  - Raphaël Valyi <raphael.valyi@akretion.com.br>
  - Magno Costa <magno.costa@akretion.com.br>
- Engenere:
  - Antônio S. Pereira Neto <neto@engenere.one>

## Other credits

The development of this module has been financially supported by:

- AKRETION LTDA - https://akretion.com/pt-BR

## Maintainers

This module is maintained by the OCA.

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

Current maintainers:

This module is part of the OCA/l10n-brazil project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.