Você está aqui: Java ::: Boletos Bancários, Arquivos de Remessa e Retornos do Banco ::: Caixa Econômica Federal - Banco 104 |
Boleto Bancário Java - Como calcular o Dígito Verificador do Nosso Número (Módulo 11) - Boleto Caixa EconômicaQuantidade de visualizações: 1788 vezes |
Nesta dica mostrarei, passo-a-passo, como calcular o Dígito Verificador do Nosso Número para o boleto e arquivos de remessa da Caixa Econômica Federal (Banco 104). O Nosso Número é o número de identificação do título no Banco. Este número deve ser único nos seus sistemas, pois, sua combinação com o código do cedente o torno único também no sistema bancário. Além disso, é o Nosso Número que permite ao Banco e a empresa identificar os dados da cobrança que deram origem ao bloqueto. Na Especificação do Código de Barras para Bloquetos de Cobrança Sem Registro e Registrada no SIGCB (67.119 v005 micro), o Nosso Número é composto de 17 posições, sendo as 02 posições iniciais para identificar a Carteira e as 15 posições restantes são para livre utilização pelo Cedente. Seu formato é XYNNNNNNNNNNNNNNN-D, onde: a) X = Modalidade/Carteira de Cobrança (1-Registrada/2-Sem Registro); b) Y = Emissão do bloqueto (4-Cedente); c) NNNNNNNNNNNNNNN = Nosso Número (15 posições livres do Cedente); d) D = Dígito Verificador do Nosso Número calculado através do Modulo 11, conforme código que mostrarei a seguir. Nos boletos e arquivos de remessa da Caixa, o Dígito Verificador do Nosso Número admite 0 (zero), diferentemente do DV Geral do Código de Barras (que também mostro como calcular em dicas dessa seção). O cálculo que mostrarei a seguir é baseado no Módulo 11 e está de acordo com as instruções do Manual de Leiaute de Arquivo Eletrônico Padrão CNAB 240 - Cobrança Bancária Caixa - SIGCB - Versão 67.118 v024 micro e Especificação do Código de Barras para Bloquetos de Cobrança Sem Registro e Registrada no SIGCB (67.119 v005 micro). Tenha certeza de verificar sua versão do manual antes de usar o código apresentado. Dito isso, veja o código Java completo para uma função que recebe o Nosso Número e retorna seu dígito verificador: package arquivodecodigos; public class Estudos{ public static void main(String[] args){ // vamos calcular o Dígito Verificador do // Nosso Número String carteira = "1"; // String emissao = "4"; // cedente String nossoNumero = "28288"; // preenche com zeros até completar 15 posições nossoNumero = String.format("%1$15s", nossoNumero).replace(' ', '0'); String nossoNumeroCompleto = carteira + emissao + nossoNumero; int digito = dvNossoNumero(nossoNumeroCompleto); System.out.println("O dígito verificador para o nosso número " + nossoNumeroCompleto + " é: " + digito); } // função que recebe o nosso número // e retorna o seu dígito verificador public static int dvNossoNumero(String nossoNumero){ // o nosso número possui mais que 17 dígitos? if(nossoNumero.length() > 17){ System.out.println("O Nosso Número não pode ter " + " mais que 17 dígitos."); System.exit(1); } // agora vamos definir os índices de multiplicação String indices = "29876543298765432"; // e aqui a soma da multiplicação coluna por coluna int soma = 0; // fazemos a multiplicação coluna por coluna agora for (int i = 0; i < nossoNumero.length(); i++){ soma = soma + Integer.parseInt(String.valueOf(nossoNumero.charAt(i))) * Integer.parseInt(String.valueOf(indices.charAt(i))); } // obtemos o resto da divisão da soma por onze int resto = soma % 11; // subtraímos onze pelo resto da divisão int digito = 11 - resto; // atenção: Se o resultado da subtração for // maior que 9 (nove), o dígito será 0 (zero) if(digito > 9){ digito = 0; } return digito; } } Ao executar este código Java nós teremos o seguinte resultado: O dígito verificador para o nosso número 14000000000028288 é: 5 |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |