Skip to content
On this page

Preenchimento boleto

O preenchimento do boleto deve ser feito de acordo com o método abaixo

Aviso!

Número de identificação do boleto (correspondente ao NOSSO NÚMERO), no formato STRING, com 20 dígitos, que deverá ser formatado da seguinte forma: “000” + (número do convênio com 7 dígitos) + (número de controle com 10 dígitos - se necessário, completar com zeros à esquerda).

API

java
private BoletoModel preencheBoleto() {
    BoletoModel boleto = new BoletoModel();
    boleto.setBeneficiario(new Beneficiario());
    boleto.getBeneficiario().setNumeroConvenio("3128557");
    boleto.getBeneficiario().setCarteira("17");
    boleto.getBeneficiario().setVariacaoCarteira("35");
    boleto.setCodigoModalidade(1);
    boleto.setDataVencimento(LocalDate.now().plusMonths(1));
    boleto.setValorBoleto(BigDecimal.TEN);
    boleto.setAceite(true);
    boleto.setEspecieDocumento("2");
    boleto.setAutorizaPagamentoParcial(true);

    // Código para testar com número random
    Random random = new Random();
    int low = 39999;
    int high = 9999999;
    int numeroBoleto = random.nextInt(high-low) + low;

    boleto.setNumeroDocumento(String.valueOf(numeroBoleto));
    boleto.setNumeroDaParcelaCarne(1);

    // Número de identificação do boleto (correspondente ao NOSSO NÚMERO), no formato STRING,
    // com 20 dígitos, que deverá ser formatado da seguinte forma: “000” + (número do convênio com 7 dígitos)
    // + (número de controle com 10 dígitos - se necessário, completar com zeros à esquerda).
    String nossoNumero = "000" // 3 digitos fixo
                + StringUtils.leftPad(boleto.getBeneficiario().getNumeroConvenio(), 7, "0") // convenio 7 digitos
                + StringUtils.leftPad(boleto.getNumeroDocumento() + boleto.getNumeroDaParcelaCarne(), 10, "0"); // numeroDocumento + parcela 10 ditigos
    boleto.setNossoNumero(nossoNumero);

    Pagador pagador = new Pagador();
    pagador.setTipoInscricao(1);
    pagador.setNumeroInscricao(97965940132L);
    pagador.setNome("Odorico Paraguassu");

    Endereco endereco = new Endereco();
    endereco.setLogradouro("Avenida Dias Gomes 1970");
    endereco.setCep("77458000");
    endereco.setCidade("Sucupira");
    endereco.setBairro("Centro");
    endereco.setUf("TO");

    pagador.setEndereco(endereco);
    boleto.setPagador(pagador);

    return boleto;
}

CNAB / Impressão

java
private BoletoModel preencheBoleto() {
    BoletoModel boleto = new BoletoModel();

    Beneficiario beneficiario = new Beneficiario();
    beneficiario.setAgencia("452");
    beneficiario.setCarteira("17");
    beneficiario.setVariacaoCarteira("35");
    beneficiario.setConta("123873");
    beneficiario.setDocumento("74910037000193");
    beneficiario.setNomeBeneficiario("TECIDOS FARIA DUARTE");
    beneficiario.setDigitoAgencia("0");
    beneficiario.setDigitoConta("77");
    beneficiario.setNumeroConvenio("3128557");
    beneficiario.setCarteira("21");

    Endereco enderecoBenef = new Endereco();
    enderecoBenef.setBairro("CENTRO");
    enderecoBenef.setCep("96030400");
    enderecoBenef.setCidade("PELOTAS");
    enderecoBenef.setComplemento("");
    enderecoBenef.setLogradouro("RUA OLAVO BILAC");
    enderecoBenef.setNumero("722");
    enderecoBenef.setUf("RS");
    beneficiario.setEndereco(enderecoBenef);
    boleto.setBeneficiario(beneficiario);

    boleto.setCodigoModalidade(1);
    boleto.setDataEmissao(LocalDate.now());
    boleto.setDataVencimento(LocalDate.now().plusMonths(1));
    boleto.setValorBoleto(BigDecimal.TEN);
    boleto.setAceite(true);
    boleto.setEspecieDocumento("2");
    boleto.setAutorizaPagamentoParcial(true);

    // Código para testar com número random
    Random random = new Random();
    int low = 39999;
    int high = 9999999;
    int numeroBoleto = random.nextInt(high-low) + low;

    boleto.setNumeroDocumento(String.valueOf(numeroBoleto));
    boleto.setNumeroDaParcelaCarne(1);

    // Número de identificação do boleto (correspondente ao NOSSO NÚMERO), no formato STRING,
    // com 20 dígitos, que deverá ser formatado da seguinte forma: “000” + (número do convênio com 7 dígitos)
    // + (número de controle com 10 dígitos - se necessário, completar com zeros à esquerda).
    String nossoNumero = "000" // 3 digitos fixo
                + StringUtils.leftPad(boleto.getBeneficiario().getNumeroConvenio(), 7, "0") // convenio 7 digitos
                + StringUtils.leftPad(boleto.getNumeroDocumento() + boleto.getNumeroDaParcelaCarne(), 10, "0"); // numeroBoleto + parcela 10 ditigos
    boleto.setNossoNumero(nossoNumero);

    Pagador pagador = new Pagador();
    pagador.setDocumento("97965940132");
    pagador.setNome("Odorico Paraguassu");

    Endereco endereco = new Endereco();
    endereco.setLogradouro("Avenida Dias Gomes 1970");
    endereco.setCep("77458000");
    endereco.setCidade("Sucupira");
    endereco.setBairro("Centro");
    endereco.setUf("TO");

    pagador.setEndereco(endereco);
    boleto.setPagador(pagador);

    boleto.setContratoEspecie("805076");
    boleto.setNossoNumero("22200593");
    boleto.setDigitoNossoNumero("78");

    java.util.List<InformacaoModel> locaisPagamento = new ArrayList<>();
    locaisPagamento.add(new InformacaoModel("PAGÁVEL PREFERENCIALMENTE EM CANAIS DA SUA INSTITUIÇÃO FINANCEIRA"));
    boleto.setLocaisDePagamento(locaisPagamento);

    List<InformacaoModel> instrucoes = new ArrayList<>();
    instrucoes.add(new InformacaoModel("PROTESTO AUTOMÁTICO APÓS 5 DIAS DO VENCIMENTO"));
    boleto.setInstrucoes(instrucoes);

    boleto.setTipoJuros(TipoJurosEnum.PERCENTUAL_MENSAL);
    boleto.setDiasJuros(1);
    boleto.setValorPercentualJuros(BigDecimal.valueOf(9.9));
    boleto.setTipoMulta(TipoMultaEnum.PERCENTUAL);
    boleto.setDiasMulta(1);
    boleto.setValorPercentualMulta(BigDecimal.valueOf(2.00));
    boleto.setTipoDesconto(TipoDescontoEnum.PERCENTUAL_DIA);
    boleto.setProtesto(true);
    boleto.setDiasProtesto(5);
    boleto.setNegativacaoAutomatica(false);
    boleto.setTipoImpressao("A");
    boleto.setEspecieMoeda("REAL");

    return boleto;
}

MIT License.