Esta especificação descreve as funcionalidades relacionadas à emissão e processamento de boletos bancários pelo sistema.
O boleto é o tipo mais comum de cobrança bancária utilizado no Brasil. Ele consiste em um documento que contém basicamente informações sobre o pagamento a ser realizado e os dados bancários da conta onde o valor deverá ser creditado. Através desse mecanismo uma pessoa física ou jurídica pode terceirizar o processo de cobrança pelos seus produtos ou serviços, deixando a cargo da rede bancária o recebimento, processamento e repasse dos valores.
Para que esse sistema funcione uma série de padrões e normas foram estabelecidas e devem ser seguidas pelos bancos e principalmente pelos emissores de boleto bancário. Essas normas estão documentadas através de manuais que são disponibilizados pelos bancos e devem ser considerados pelo cliente ao implementar a emissão de boletos. Apesar de existir um esforço por parte da FEBRABAN para padronizar a emissão e a troca de informações entre os clientes e os bancos, cada banco possui uma série de particularidades que faz com que a implementação da emissão de boletos tenha que ser personalizada para cada banco.
Independente do banco, existem duas modalidades principais para a emissão de boletos bancários:
Boletos sem registro: Essa é a modalidade mais simples de emissão de boletos e amplamente utilizada pelo seu baixo custo e pela facilidade de implantação. Nessa modalidade a emissão do boleto é totalmente feita pelo cliente (cedente) e o banco não tem ciência da existência do boleto até o seu pagamento. Dessa forma a responsabilidade pela geração, impressão e entrega do boleto para o devedor (sacado), bem como eventuais alterações, cancelamento ou reemissão do boleto é apenas do cliente (cedente). O banco apenas efetua o recebimento do boleto quando este for apresentado e realiza o crédito na conta do cedente. Em troca desse serviço, o banco cobra uma taxa fixa por cada recebimento de boleto realizado, que é descontada da mesma conta onde os valores são creditados.
Boletos com registro: Nessa modalidade de cobrança o banco tem ciência da existencia do boleto desde a sua emissão e, conforme o contrato com o cliente (cedente), pode ser o responsável pela emissão, reemissão em caso de alterações e envio do boleto para o cliente. Para que o banco possa realizar estas operações é necessário que ele mantenha, em sua base de dados, todas as informações de cada boleto emitido. O envio dessas informações é realizado através de arquivos de dados chamados de Arquivos de Remessa. Nesses arquivos o cliente (cedente) envia as informações de novos boletos emitidos, alterações em boletos emitidos previamente e outros comandos como pedidos de baixa, protesto, etc. Quando um boleto é registrado o cliente (cedente) paga, no mínimo, duas taxas: uma para a inclusão do boleto e outra quando o banco realiza o recebimento. Entretanto, geralmente a maioria das ações (baixa, alteração de dados, etc) gera tarifas, ainda que menores. A vantagem dos boletos com registro sobre os boletos sem registro é a possibilidade de protestar o título em caso de não pagamento.
Para qualquer uma das modalidades a forma com que o banco se comunica com o cliente (cedente) é a mesma: através do envio de um arquivo de dados chamado Arquivo de Retorno. Nesse arquivo está contida a lista de boletos recebidos pelo banco e, no caso de boletos com registro, as confirmações ou rejeições das operações enviadas previamente através dos arquivos de remessa.
Incluindo um boleto: Para incluir um boleto referente a um título o usuário deve, no cadastro de títulos a receber, selecionar a guia de boletos e incluir um boleto para o título. Das opções para configuração do boleto o usuário poderá selecionar a espécie, o tipo de carteira, um sacador avalista, indicar um prazo para protesto caso necessário e preencher as instruções que serão impressas no boleto.
Incluindo vários boletos: Para incluir vários boletos de uma só vez o usuário pode utilizar a opção “Gerar vários boletos” localizada no botão boleto na tela de consulta de títulos. Ao selecionar a opção “Gerar vários boletos” o sistema abre uma tela com os títulos filtrados no grid já selecionados. O usuário então configura o(s) boleto(s) com as mesmas características mencionadas no item acima. Ao clicar em “Gerar” o sistema gera um boleto para cada título selecionado pelo usuário.
Ao alterar um título o boleto vinculado ao mesmo será automaticamente alterado. Obs: O histórico de um título só deverá modificar as instruções do boleto caso esteja preenchido com caracteres diferentes de espaço.
Para desvincular um boleto de um título basta desmarcar a opção de inclusão de boleto na guia de boletos no cadastro de títulos a receber e salvar o título.
Caso o boleto registrado possua situação do evento “Confirmado”, “Aguardando confirmação, ou caso ele esteja em carteira e com vínculo de evento de “Pedido de baixa”, ele não poderá ser desvinculado do título.
O arquivo de retorno contém as informações de ações pertinentes ao boleto efetuadas pelo banco. Por exemplo, um boleto quitado no banco gera uma ação de liquidação no banco, e essa ação é tida como um evento a ser processado pelo sistema.
O processamento é a automatização das tarefas antes feitas manualmente. Por exemplo, quando um título a receber é pago por um cliente, temos que baixar o título para atualizar as contas. No caso de um título que tenha um boleto vinculado a ele, o sistema apenas teria que receber um retorno informando que esse boleto foi quitado e então instantaneamente ele faria as alterações necessárias no título e no boleto e daria baixa nesse título sem que o usuário tenha acesso ao evento que está acontecendo.
Tomando por base que um arquivo de retorno pode conter vários eventos de um ou mais boletos, ao processar esse arquivo o sistema executará uma lista de eventos relacionadas ao(s) boleto(s) vinculado(s) ao(s) título(s). Após o processamento do retorno um relatório contendo os títulos baixados, os títulos encontrados e não baixados e os títulos não encontrados será exibido pelo sistema afim de auxiliar a conferência por parte do usuário.
O sistema não gera o arquivo de retorno, ele apenas processa um arquivo já existente. Esse arquivo é oriundo do banco, e pode ser gerado por softwares vinculados aos bancos.
Impressão de um boleto: Para imprimir o boleto relacionado a um título o usuário deve selecionar o título na tela de consultas e selecionar a opção “Imprimir boleto” nas opções de boleto na barra de ferramentas na tela de títulos. O sistema também permite a impressão do boleto na tela de cadastro de título, porém o sistema avisará que antes que o boleto seja impresso o título será salvo.
Impressão de vários boletos: Para fazer a impressão de vários boletos o usuário deve filtrar os títulos que contenham os boletos a serem impressos na tela de consulta e clicar na opção “Imprimir vários boletos”. O sistema deve abrir uma tela com os títulos listados no grid, nessa tela o usuário ainda tem a opção de selecionar os títulos que deseja imprimir. Ao clicar em imprimir o sistema exibe na tela os boletos referentes aos títulos selecionados pelo usuário.
A tela de consulta de títulos contém uma visão de títulos com boletos. Essa visão lista todos os títulos que possuem boleto no sistema.
Para que o sistem apossa emitir os boletos corretamente, uma série de informações e configurações internas precisam ser ajustadas. Esses ajustes devem ser realizados sempre que houverem mudanças na forma de emissão de boletos ou quando uma nova carteira ou novo banco for disponibilizado para uso. Essas configurações não podem ser realizadas diretamente pelos usuários ou pela equipe de suporte porque apenas o ajuste de tais configurações não garante a emissão correta dos boletos: é necessário também revisar o código do sistema a fim de implementar as particularidades de cada banco/carteira.
Para que a emissão de boletos para um banco possa ser habilitada é necessário que ele conste na tabela de bancos. Essa tabela armazena o número e o nome do banco, e essa lista de bancos será exibida para o usuário durante a configuração da emissão. Atualmente os bancos habilitados para a emissão de boletos são:
Banco do Brasil
Banestes
Caixa Econômica Federal
Itaú
Sicoob
A tabela de carteiras de cobrança contém todas as carteiras com as quais o sistema pode trabalhar. As duas principais carteiras são a simples (boleto registrado) e a sem registro (boleto sem registro), porém existem outros tipos de carteira que podem vir a ser suportadas no futuro. O campo mais importante dessa tabela é o campo COBRANCAREGISTRADA, que informa se a carteira irá ou não trabalhar com o registro da cobrança (geração e envio de arquivos de remessa para o banco).
Para que as carteiras possam ser habilitadas é necessário relacioná-las com os bancos. Para isso é necessário criar um registro na tabela TABBANCOSCARTEIRAS para cada carteira habilitada para cada banco. Nesse registro, além do código da carteira e do código do banco, devem ser informados os seguintes dados:
Número: Número da carteira no banco (será usado na geração de arquivos de remessa, no caso de carteiras com registro);
Sigla: Sigla utilizada na impressão de boletos dessa carteira (de acordo com o manual de impressão de cada banco - alguns pedem para imprimir o número da carteira, outros para imprimir uma sigla);
Código Febraban: Código de identificação da carteira na Febraban (útil apenas na geração de arquivos de remessa - de acordo com o manual de cada banco).
Existem várias espécies de cobrança bancária e cada banco trabalha com um subconjunto dessas espécies. Para que uma espécie de cobrança possa ser usada no sistema ela precisa estar cadastrada na tabela de espécies (TABESPECIESBOLETO) e relacionada com algum banco (TABESPECIESBANCOS).
Ao cadastrar uma espécie devem ser informadas a Sigla e a Descrição, ambas usadas durante a emissão dos boletos. Ao relacionar uma espécie com um banco deve ser informado ainda o número da espécie, que é o identificador da espécie que será enviado para o banco nos arquivos de remessa (para carteiras de cobrança registradas).
As ações realizadas no processo de cobrança (emissão do boleto, alteração de dados, baixa, …) são tratadas pelo sistema como Eventos. O cadastro de eventos é necessário para identificar as ações do usuário e transmitir para o banco (nos arquivos de remessa) ou processar (arquivos de retorno) essas ações. Cada tipo de ação, seja ela realizada pelo usuário do sistema ou pelo banco, possui um evento relacionado que dirá ao sistema como proceder.
Os eventos tratados pelo sistema estão cadastrados na tabela de eventos (TABEVENTOSBOLETO). As principais informações de um evento são:
Tipo (remessa/retorno): Indica em qual arquivo o evento será encontrado: se o evento for de remessa significa que, quando ele ocorrer, um arquivo de remessa deverá ser gerado para que ele possa ser enviado ao banco. Se o evento for de retorno significa que alguma ação externa foi realizada e o sistema precisa tratá-lo internamente (eventos de retorno são mandados do banco para o sistema através de arquivos de retorno);
Descrição: Descrição do evento, utilizada apenas para facilitar a sua identificação (deverá ser exibida para o usuário onde for adequado);
Método de geração (automático/manual): Um evento automático é detectado automaticamente pelo sistema durante o trabalho com as cobranças bancárias, enquanto os eventos manuais precisam estar disponíveis para o usuário para que ele os dispare no momento oportuno. Eventos de retorno não podem ser disparados pelo sistema nem pelo usuário e, portanto, são todos automáticos.
Nem todos os eventos são suportados por todos os bancos. Para identificar quais eventos são suportados por cada banco é necessário vinculá-los através da tabela (TABEVENTOSBANCOS) que, além de relacionar os eventos com os bancos, armazena o código do evento no banco, que é o número que será usado para identificar a ocorrência de cada evento nos arquivos de remessa e retorno.
Para que o sistema possa emitir boletos bancários corretamente é necessário que algumas configurações sejam definidas. Essas configurações estão vinculadas a uma conta bancária, que deverá ser a mesma conta utilizada para o recebimento dos boletos.
Antes de definir as configurações será necessário habilitar a emissão de boletos para a conta bancária. Uma conta bancária só pode ser habilitada para a emissão de boletos se o banco onde a conta foi aberta estiver na lista de bancos permitidos (TABBANCOS) e se existir ao menos uma carteira de cobrança registrada para esse banco (TABCARTEIRASCOBRANCA/TABBANCOSCARTEIRAS).
Ao habilitar a emissão de boletos para a conta as seguintes configurações podem ser definidas:
| Campo | Descrição | Tipo | Tamanho | Obrigatório? |
| Carteira padrão | Carteira que será usada como padrão durante a emissão de boletos para a conta atual | Lista | – | Sim |
| Código do cedente | Código de identificação do emitente do boleto no sistema de cobrança bancária do banco emissor | Texto | 201) | Sim |
| Nosso número com registro (próximo) | Número sequencial usado para identificar cada boleto emitido na carteira de cobrança registrada | Texto | 17 | Sim |
| Nosso número sem registro (próximo) | Número sequencial usado para identificar cada boleto emitido na carteira de cobrança sem registro | Texto | 17 | Sim |
| Remessa | Número do último arquivo de remessa gerado para a conta atual (apenas para cobrança registrada) | Número | – | Sim |
| Retorno | Número do último arquivo de retorno processado para a conta atual | Número | – | Sim |
| Desconto (%) | Porcentagem de desconto concedida no ato do pagamento quando ele ocorrer dentro do prazo estipulado | Número | 8,2 | Não |
| Dias antes do vencimento | Quantidade de dias antes do vencimento em que o desconto pode ser aplicado | Número | – | Não |
| Multa (%) | Porcentagem de multa a ser aplicada caso o pagamento seja realizad após o vencimento | Número | 8,2 | Não |
| Dias após o vencimento | Quantidade de dias após o vencimento que deve ser considerara para a cobrança da multa | Número | – | Não |
| Juros ao dia (%) | Percentual de juros cobrado a cada dia após o vencimento | Número | 8,2 | Não |
| Protesto e devolução | Ação a ser realizada (protesto ou devolução) e quantidade de dias para que a ação seja efetuada pelo banco (apenas para cobrança registrada) | – | – | Não |
| Texto padrão | Mensagem que será impressa por padrão em todos os boletos emitidos para essa conta | Texto | 5000 | Não |
| Incluir o histórico do título nas instruções do boleto | Quando ativo, inclui o histórico do título no texto das instruções do boleto | Sim/Não | – | Não |
| Tipo CNAB | Esta opção deverá ser exibida apenas para o banco Sicoob, ela é responsável pelo tipo de remessa | – | – | Não |
| Imprimir comprovante de entrega | Quando ativo, exibe o comprovante de entrega na impressão de boleto | Sim/Não | – | Não |
Informações importantes:
A obrigatoriedade dos campos varia de acordo com os tipos de carteira habilitadas para o banco ao qual a conta bancária está vinculada, e não à carteira definida como padrão;
Desconto, juros e multa sempre serão informados em valor nos boletos. As porcentagens das configurações serão usadas para calcular esses valores durante a emissão.
O sistema calcula a data limite de desconto de acordo com o informado nas configurações do boleto. Fórmula: (data de vencimento - (data limite de desconto * -1)). Caso o resultado do cálculo retorne uma data menor que a data de emissão, a data limite de desconto deverá ser igual a data de emissão.
A homologação da cobrança sem registro para a maioria dos bancos consiste no envio do boleto impresso em .pdf para análise dos dados e das medidas do arquivo impresso. Para esse tipo de homologação deve-se entrar em contato com o banco do cedente para mais informações.
Impressão de vários boletos: A tela de impressão de vários boletos deve mostrar somente títulos a receber ainda não quitados que tenham boletos vinculados e que pertençam ao banco informado nas configurações do sistema.
Geração de vários boletos: A tela de geração de vários boletos deve mostrar somente títulos a receber ainda não quitados que não tenham boletos vinculados. Antes de gerar a tela com os títulos o sistema verifica os dados da pessoa de cada título, caso alguma pessoa esteja com os dados incompletos o sistema exibe uma mensagem informando isso ao usuário e não adiciona esse título a tela de geração de vários boletos. A tela então é exibida somente com os títulos que tenham os dados obrigatórios para a emissão do boleto bancário. As configurações de desconto, multa e juros devem ser atribuídas a cada boleto gerado através dessa ferramenta.
Inclusão: Ao salvar um título com um boleto o sistema deve verificar os dados da pessoa como documento e endereço, caso estes dados estejam incompletos o sistema deve informar ao usuário e não deve permitir salvar o título. Ao clicar em “incluir boleto para o título”, o sistema deve verificar se existe configuração para boletos nas configurações do sistema, caso não exista o sistema deve exibir uma mensagem informando o usuário sobre a configuração do boleto.
Nosso número(incremento): Ao incluir um boleto o sistema recupera o maior nosso número existente no sistema, referente a um banco pré configurado, e incrementa esse número colocando-o nas configurações do sistema.
Impressão do histórico do título no boleto: O usuário poderá configurar o sistema para que informe o histórico do título nas instruções do boleto através da configuração de boleto no cadastro de
contas bancárias.
Tanto na inclusão de um título com boleto como na geração de vários boletos o sistema deverá validar a ação após o vencimento, pois um boleto com registro não poderá ser salvo sem que uma ação seja informada. Portanto a opção em branco não poderá ser utilizada pelo boleto com registro e o boleto sem registro não poderá ser salvo se a opção não for a opção em branco.
Data limite de desconto: A data limite de desconto do boleto não deverá ser maior que a data de emissão do título, portanto o sistema deverá validar essa data.
Ao tentar excluir um título que possui um boleto vinculado, o sistema deverá avisar sobre a geração de um evento de baixa para esse boleto. Caso haja esse evento o sistema deverá verificar se ele está pendente ou aguardando confirmação, se estiver em uma destas situações o sistema não deverá permitir a exclusão do boleto, entretanto se o pedido de baixa estiver com a situação “confirmado” o boleto poderá ser excluído normalmente.
O sistema deverá validar o total de juros num período de 30 dias, esse valor não poderá ser maior que o valor do título.
Caso a ação seja inclusão, o sistema não deverá permitir a inclusão de um boleto com data de vencimento menor que a data atual.
O sistema não deverá processar registros de tarifas/custas relacionados no arquivo de retorno CNAB240, esse registro de código 28 será ignorado.
O sistema só deverá permitir habilitar a emissão de boletos para contas vinculadas a um banco da lista de bancos permitidos;
O sistema só deve exibir na lista de carteiras padrão as carteiras habilitadas para o banco vinculado à conta bancária;
O sistema deve obrigar o preencimento do campo “Nosso número com registro” sempre que o banco tiver uma carteira de cobrança que requer registro, mesmo que ela não seja a carteira padrão;
O sistema deve obrigar o preencimento do campo “Remessa” sempre que o banco tiver uma carteira de cobrança que requer registro, mesmo que ela não seja a carteira padrão;
O sistema deve obrigar o preenchimento do campo “Dias antes do vencimento” sempre que a porcentagem de desconto for maior que zero;
O sistema deve obrigar o preenchimento do campo “Dias após o vencimento” sempre que a porcentagem de multa for maior que zero;
O sistema deve obrigar o preencimento das opções de protesto e devolução sempre que o banco tiver uma carteira de cobrança que requer registro, mesmo que ela não seja a carteira padrão;
O tipo de CNAB deverá ser exibido apenas para o banco Sicoob, demais bancos possui geração de remessa apenas com 240 posições;