Giter Site home page Giter Site logo

boletonet / boletonet Goto Github PK

View Code? Open in Web Editor NEW
468.0 468.0 379.0 42.73 MB

Boleto.Net is a library developed for use in Brazil, given it has been programmed with Brazilian retail legislation and business rules for bank registered billing integration.

License: Apache License 2.0

C# 98.17% CSS 0.76% JavaScript 0.01% PowerShell 0.03% HTML 0.25% ASP.NET 0.78%

boletonet's Introduction

Build status Issues open Nuget count Join the chat at https://gitter.im/BoletoNet MyGet Ultimo PR

Alt

Boleto.Net é um componente desenvolvido em C# e ASP.Net e contempla as seguintes funcionalidades:

  • Emissão e Impressão de Boletos Bancários
  • Geração de Arquivo de Remessa dos layouts
    • CNAB 240
    • CNAB 400
  • Leitura do Arquivo de Retorno dos layouts
    • CNAB240
    • CNAB400
    • CBR643

*** ATENÇÃO *** Para adequação de nova funcionalidade de emissão de boletos pelo banco na CEF, a propriedade ApenasRegistrar foi alterada para TipoEmissao do tipo Enum, com as opções válidas 0 - Emissão pelo Cedente (Default) e 1 - Emissão pelo Banco.

Atualmente estamos implementando mais alguns bancos e toda colaboração será importante. Nosso objetivo é implementar todos os bancos brasileiros.

Para instalar o BoletoNet, utilize o Nuget:

Install-Package Boleto.Net

Se você é novo por aqui, dê uma olhada nos projetos de testes, que contem exemplos de utilização: https://github.com/BoletoNet/boletonet/tree/master/src/Boleto.Net.Testes

Para build mais atualizados, acesse o MyGet (boletonetBuild)

Para informações sobre o projeto e bancos implementados, consulte o nosso Wiki.

boletonet's People

Contributors

adansklevanskis avatar adrianotrentim avatar alanlevoratosos avatar albertomonteiro avatar ander89br avatar brunoguelere avatar carloscds avatar celsojr avatar davaug2 avatar diegodariolli avatar diegomodolo avatar ecfenix1 avatar edsonfast avatar eltongarcia avatar gbmeinchein avatar ivanteles avatar jonataspc avatar leandrocds avatar luciopelinson avatar marcieltorres avatar marcus2vinicius avatar maurojs10 avatar nicolaujr avatar rafaelsgripp avatar rfiori avatar rodolfoghi avatar salatielbairros avatar stivencamara avatar suelton avatar transis-felipe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

boletonet's Issues

Impressão Chrome

Pessoal, boa noite!

Há algum tempo as impressões de boletos no Google Chrome estão gerando 2 páginas. A segunda normalmente em branco. Já verifiquei as margens mas, pelo que entendi, tem uma table completa sem dados abaixo do boleto. Talvez possa ser isso que esteja dando problema.
Isso acontece quando imprimo o comprovante de entrega também.

Registro de cobrança

Com a normativa do BCB sobre a obrigatoriedade do registro de boletos, estamos passando por alguns problemas. A normativa obriga que todos os convênios abertos a partir de Julho desde ano sejam com registro. Em alguns poucos casos, por conta do volume de boletos, conseguimos que o banco abrisse mão do registro.

Quando temos que registrar, o sacado só consegue pagar o boleto no banco emissor após o registro, e isso limita muito o uso de boleto bancário.

  • Imagina que você emita um boleto agora e coloque a data mínima para pagamento amanhã.

Alguém mais está tendo este problema?

Banco do Brasil - Ajuste

Olá,
No Banco do Brasil temos a "Carteira" e a "Variação de Carteira".
Onde:

17-019 é: [carteira]-[variacaoCarteira]

Portanto:
Na linha 1131, deve-se aplicar:

string carteira = boleto.Carteira + (string.IsNullOrEmpty(boleto.VariacaoCarteira) ? "" : ("-" + boleto.VariacaoCarteira));
switch (carteira) //switch (boleto.Carteira)

Na linha 1345, deve-se aplicar o seguinte:

string carteira = boleto.Carteira + (string.IsNullOrEmpty(boleto.VariacaoCarteira) ? "" : ("-" + boleto.VariacaoCarteira));
if (carteira.Equals("17-019") || carteira.Equals("17-027"))
_segmentoP += "7";
else
_segmentoP += "0";

Deste modo vamos conseguir atender as pessoas que usarem a carteira separada da variação (como é o meu caso).

Peço que alguém com autorização ajuste isto.

Obrigado,

Boleto CEF

Pessoal, a CEF mudou as carteiras para contas abertas a partir do ano de 2015.

Estou implementando a nova carteira 24 - Cobranca2015SemRegistro, o problema é que a cobrança com registro é a carteira 14 o inverso das contas abertas antes de 2015 que utiliza 14 para cobrança sem registro.

Ainda não encontrei uma forma de incluir a nova carteira 14 na estrutura atual, alguma dica?

Formato Carnê

Olá

Como posso exibir o boleto em formato carnê em uma quantidade escolhida por mim? Eu consegui exibir em formato carnê, mas ele só exibe apenas 1 boleto por folha. Alguém sabe que função utilizo para mostrar 3 boletos por folha em formato carnê?

Geração de remessa para banco Sicredi.

Boa noite,
Alguém desenvolveu por acaso a geração de remessa com registro para o banco Sicredi?
notei que é bem semelhante ao da Caixa Econômica Federal algumas coisas, se alguém já fez pode me passar por gentileza?

Dentro da classe Banco_Sicredi.cs esta faltando s metodos e funções que implementam a geração da remessa como por exemplo a função GerarDetalheSegmentoQRemessa.

grato pela atenção de todos.

Carteira 18 Banco do Brasil

Caros, tem alguém usando a carteira 18 do Banco do Brasil?

Eu usava o CobreBemX para emissão dos boletos, porém o mesmo se tornou inviável.
A geração da código de barra pelo cobrebemx, que está funcionando, é diferente da geração do Boleto.NET

Código gerado pelo CobreBemX:
00190.00009 01220.950008 00009.125188 7 60370000011250

Código gerado pelo Boleto.NET:
00190.00009 50158.334743 00203.289186 2 60370000011250

A parte em negrito, é a parte que diverge.
Analisando o código do CobreBem, ele montou da seguinte maneira
01220.950008 00009.125188 7
0 + "Código do cedente" + 00 + 8(DV)
0000 + NN(9125) + 18(CARTEIRA) + 8(DV)
7 DV Geral

Gostaria de saber se a geração do código no Boleto.NET está errado
Segue o código:

boleto.CodigoBarra.Codigo = string.Format("{0}{1}{2}{3}{4}{5}{6}{7}",
    Utils.FormatCode(Codigo.ToString(), 3),
    boleto.Moeda,
    FatorVencimento(boleto),
    valorBoleto,
    boleto.NossoNumero,
    boleto.Cedente.ContaBancaria.Agencia,
    boleto.Cedente.ContaBancaria.Conta,
    boleto.Carteira);

Como podemos ver, a informação do cedente não é usada na geração do código de barra.

Digito Verificar do Nosso Número não aparece

Prezados,

tenho gerado a impressão do Boleto do Banco do Brasil e tem saído quase todo correto. Mas o Nosso Número não vem com o digito verificador. Já dei uma pesquisada e não encontro nada sobre... passo o valor também dentro do objeto (tentando forçar) mas o mesmo não vem no Boleto. O que poderia ser?

Boleto Santader

Ola Pessoal A DLL comporta boleto do santader , se sim , se possivel tiverem exemplo fico grato

Código de Barras Duplicado - RESOLVIDO

Bom dia,
Estou gerando boletos para caixa e sicredi.
Em um carnê da CEF com doze boletos que foi gerado, foi as datas impressas no boleto estavam corretas. O primeiro boleto com data de 05/05/2015 até 05/04/2016
Mas na hora da leitura ele apresentava os dias do boleto de 05/07/2015 desdo primeiro boleto até o terceiro.
A partir do terceiro, estava apresentando os dias do boleto de 05/11/2015

Fui gerar novamente o boleto e novamente e foi impresso e os dias do primeiro boleto saia no segundo, a do terceiro sair no quarto.....

Quanto tentei imprimir pela terceira vez, os dias sairam corretos, pelo menos até agora esse erro foi visto somente 1 vez, estou a quase 1 mês gerando boletos da caixa. já foram em torno de uns 700 boletos.

Erro ao gerar remessa do Bradesco

Boa tarde,

Ao gerar o arquivo de remessa, encontro o seguinte erro:

No layout CNAB240, este erro é gerado:
Erro durante a geração do registro HEADER do arquivo de REMESSA.

E no layout CNAB400, já este erro ocorre:
Erro durante a geração do DETALHE arquivo de REMESSA.

erro_remessa_bradesco

Segue acima a massa de testes que utilizamos para reproduzir o erro.

Arquivo Remessa CNAB 240

Olá pessoal!

Estou homologando o arquivo de Remessa CNAB240 para o Banco do Brasil. Está ocorrendo uma inconsistência na linha de Header do Arquivo, no campo destinado ao convênio, 20 posições, está sendo preenchido com espaços em branco, porém segundo documento da FEBRABAN é esperado o convênio, da mesma forma que é gerado no Header do Lote, que hoje encontra-se correto.
Campo ini fim tam
Código do Convênio no Banco 33 52 20

A implementação necessária se encontra no método GerarHeaderLoteRemessaCNAB240(Banco do Brasil).

Aguardo retorno da correção, para que eu continue utilizando o projeto original.

Obrigado!

Endereco tem prorpiedades redundantes

A classe Endereco tem uma propriedade Logradouro e uma End.

A propriedade Logradouro seria a mais descritiva e correta para ser utilizada, mas a End é que é a utilizada na geração de HTML dos boletos.

Minha sugestão é a substituição da propriedade End pela Logradouro e a remoção dela, para evitar confusões.

Eu só descobri porque o endereço saia em branco porque olhei o código fonte aqui no GitHub e vi a propriedade que era utilizada.

Mecanismo de proteção contra o "golpe do boleto"

Eu gostaria de deixar uma sugestão.

No método "MontaHtmlEmbedded" já existe um parâmetro que permite gerar a linha digitável em formato de imagem, seria legal se tivesse mais um parâmetro para fazer o mesmo com o código de barras, assim o boleto gerado ficaria imune ao golpe do boleto, já que atualmente existem alguns trojans que alteram o código de barras ao invés da linha digitável.

Alias, parabéns aos desenvolvedores pelo excelente componente!

Cabeçalho / Resumo no Boleto

Pessoal

Necessito poder colocar um "resumo" antes do boleto com informações do que está sendo pago (ver figura). Alguém já fez isso ? Uma opção seria criar uma outra assinatura para GeraHtmlInstrucoes e passar o resumo.Ideias ?

Abraços

image

Erro ao gerar a linha digitável em imagem em alguns casos.

Verifiquei alguns casos em que a imagem da linha digitável é gerada com erros, no método:
MontaHtmlEmbedded(convertLinhaDigitavelToImage: true);

Testei com sucesso uma alteração simples no arquivo Utils.cs método DrawText:
//img = new Bitmap((int)textSize.Width - Convert.ToInt32(font.Size * 1.5), (int)textSize.Height);
img = new Bitmap((int)textSize.Width - Convert.ToInt32(font.Size * 1.5), (int)textSize.Height, System.Drawing.Imaging.PixelFormat.Format24bppRgb);

Imagens não são exibidas utilizando ASP.NET MVC

Gostaria de saber se existe uma maneira de utilizar a biblioteca utilizando ASP.NET MVC.
Tentei utilizar porém as imagens não são apresentadas. Vi que estão utilizando o recurso WebResource para esse fim, que não é suportado pelo MVC.

Obrigado.

Boleto CEF sem SAC

Estou fazendo a homologação do boleto da caixa e uma das solicitações foi o SAC no recibo do pagador. Segue abaixo o trecho e o link para a documentação.

"Em cumprimento ao disposto no Artigo 7º do Decreto 6.523, de 31/07/08, e na Circular BACEN 3.370/07, se no Recibo do Pagador houver a impressão da logomarca CAIXA, é ainda obrigatório constar:
SAC CAIXA: 0800 726 0101 (informações, reclamações, sugestões e elogios)
Para pessoas com deficiência auditiva ou de fala: 0800 726 2492
Ouvidoria: 0800 725 7474
caixa.gov.br"

http://www.caixa.gov.br/downloads/cobranca-caixa-manuais/ESP_COD_BARRAS_SIGCB_COBRANCA_CAIXA.pdf

Geração de arquivo remessa - Caixa

Bom dia, verifiquei que na classe Banco_Caixa.cs, as funções:
GerarDetalheRemessa()
GerarTrailerRemessa()
não estão implementadas, então o método abstract é chamado e não gera nenhum registro.
Também verifiquei que já existem as funções GerarDetalheRemessaCNAB240 e GerarDetalheRemessaCNAB400, assim como GerarTrailerRemessaCNAB240SIGCB e GerarTrailerRemessa400.

Eu criei as duas funções acima e chamei as que já existiam, mas não sei se foi deixado sem implementar por algum motivo.
Posso fazer o commit com as alterações?

Dependência de System.Web

Em projetos windows forms está sendo obrigatória a dependência de System.Web.
Talvez fosse interessante isolar a renderização dos boletos, dessa forma o uso de boletos html seria facultativa, logo não seria obrigatório o uso da System.Web.

Próxima versão com MontaBytesPDF()

Olá, gostaria de saber quando será lançada a próxima versão com o método MontaBytesPDF() liberado.
Vi que este método não está na versão 2.1.0.77.

Erro ao gerar arquivo remessa Banco Brasil

Esse erro já foi reportado no codeplex.

Estou conseguindo gerar um boleto do banco brasil, mas não consigo gerar Arquivo Remessa.

Erro durante a geração do HEADER DO LOTE do arquivo de REMESSA.

Algum exemplo de código ou algo a ter especial atenção?

Obrigado!

Esse erro foi reportado no codeplex por outro usuário, mas em nosso sistemas, tivemos o mesmo problema com o arquivo remessa, com a mesma exceção. Podem nos ajudar?

Arquivo de Retorno CBR643

Boa noite,

Estou implementando a leitura de arquivos de retorno no formato CBR643 e encontrei um problema no processo.
Quando chamo o método LerArquivoRetorno(), recebo uma exceção dizendo o seguinte: "startIndex não pode ser maior que o comprimento da cadeia de caracteres. Nome do parâmetro: startIndex". Debuggei o código e percebi que a primeira linha do aquivo é lida, mas assim que a linha

var linhaCbr643 = textPosReader.Read(linha);

do método LerArquivoRetorno() é chamada, a exceção é chamada. Pensei ser por causa do número de posições do convênio, estou usando convênio com 6 dígitos e o projeto usa com 7, mas ainda fazendo a modificação, persiste o erro.
Também dei uma olhada no arquivo do banco, pensando que o erro poderia ser nele, mas aparentemente tudo está de acordo, testei isso com 3 arquivos diferentes.

Alguém passou por isso e conseguiu resolver ou ao menos pode me dar uma luz sobre isso?

Boleto CEF

O boleto da caixa está funcional? Na documentação vi que ele não se encontra implementado.

Leitura de Arquivo de Retorno CNAB 400

Estou usando a DLL para boleto bancario e travei no final agora.
Na leitura do arquivo de retorno eu consigo pegar todos os dados dos titulos do arquivo, mais também preciso pegar o número do retorno e a data do retorno que estão na primeira linha do arquivo.
Procurei por todo o projeto e não consegui achar nada, alguém pode me ajudar?

Lote de boletos

Olá, estou tentando montar um html com lotes de boletos sem sucesso. Gostaria de oferecer ao usuário final a possibilidade de com apenas um comando poder imprimir todos os boletos da venda, que pode variar em quantidade.

Todo o processo de leitura e geração está correto, somente preciso acertar a montagem de vários boletos, pois somente mostra um.

Projeto em C# com ASP.NET webform. Agradeço sugestões!

Código de Barras - Asp.net e C#

Olá pessoal, estou iniciando os trabalhos com o Boleto.net
adicionei a dll pelo Nuget, fiz um webform utilizando asp.net com apenas um panel para dentro dele exibir um boleto.

O boleto está sendo gerado, mas o código de barras dele não aparece, no lugar dele aparece apenas uma string que possui a frase "Código de Barras" e abaixo dela a linha pontilhada do boleto. Andei lendo alguns comentários do projeto no https://boletonet.codeplex.com/, mas nenhum deles veio a resolver este pequeno problema.

Quanto ao boleto que estou usando, é um exemplo de boleto da Caixa Econômica Federal. Alguém poderia me ajudar a resolver a exibição do código de barras neste exemplo de boleto? Segue o código abaixo.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BoletoNet;

namespace BoletoCAIXA
{
    public partial class WebFormBoleto : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            BoletoBancario boletoBancario = new BoletoBancario();
            boletoBancario.CodigoBanco = (short)104;

            DateTime vencimento = new DateTime(2008, 12, 20);

            Cedente c = new Cedente("000.000.000-00", "Boleto.net ILTDA", "1234", "12345678", "9");

            c.Codigo = "112233";


            BoletoNet.Boleto b = new BoletoNet.Boleto(vencimento, 20.00m, "14", "0123456789", c);

            b.Sacado = new Sacado("000.000.000-00", "Nome do seu Cliente ");
            b.Sacado.Endereco.End = "Endereço do seu Cliente ";
            b.Sacado.Endereco.Bairro = "Bairro";
            b.Sacado.Endereco.Cidade = "Cidade";
            b.Sacado.Endereco.CEP = "00000000";
            b.Sacado.Endereco.UF = "UF";

            //Adiciona as instruções ao boleto
            #region Instruções
            Instrucao_Caixa item;
            //ImportanciaporDiaDesconto
            item = new Instrucao_Caixa((int)EnumInstrucoes_Caixa.Multa, Convert.ToDecimal(0.40));
            b.Instrucoes.Add(item);
            item = new Instrucao_Caixa((int)EnumInstrucoes_Caixa.JurosdeMora, Convert.ToDecimal(0.01));
            b.Instrucoes.Add(item);
            item = new Instrucao_Caixa((int)EnumInstrucoes_Caixa.NaoReceberAposNDias, 90);
            b.Instrucoes.Add(item);
            #endregion Instruções

            EspecieDocumento_Caixa espDocCaixa = new EspecieDocumento_Caixa();
            b.EspecieDocumento = new EspecieDocumento_Caixa(espDocCaixa.getCodigoEspecieByEnum(EnumEspecieDocumento_Caixa.DuplicataMercantil));
            b.NumeroDocumento = "00001";
            b.DataProcessamento = DateTime.Now;
            b.DataDocumento = DateTime.Now;

            boletoBancario.Boleto = b;
            boletoBancario.GeraImagemCodigoBarras(b);

            boletoBancario.MostrarComprovanteEntrega = true;
            boletoBancario.Boleto.Valida();
            //boletoBancario.MontaHtmlEmbedded();
            //boletoBancario.MontaHtml();
            //boletoBancario.GeraImagemCodigoBarras(b);
            Panel1.Controls.Add(boletoBancario);

        }
    }
}

HSBC

Boa noite!

Pessoal, eu estava utilizando uma versão bem antiga do Boletonet. Tudo ia bem, contudo, resolvi atualizar para utilizar o método MontaHtmlEmbedded e usar no MVC.

O problema é que agora, ao tentar gerar o boleto do HSBC aparece a mensagem "A descrição para o banco BoletoNet.Banco não foi implementada."
Alguém sabe dizer o que é?
Imprimi itau e bb normalmente. Obrigado!

Carteira 24(SR) - Caixa

Caros, ao gerar um boleto da Caixa com a carteira "24", o boleto que aparece está com o DV do beneficiário errado. Verificando a função ValidaBoleto() da classe Banco_Caixa, a validação da carteira é com o "SR" e, como está diferente, ele calcula o DV com a função Mod10() ao invés da Mod11Base9().

Porém, ao informar a carteira como "SR", a dll me retorna o seguinte erro:
"O índice e o comprimento devem se referir a um local dentro da cadeia de caracteres.
Nome do parâmetro: length"

Alguém tem um sugestão ou teve um problema parecido?

BancoCarteiraFactory

Olá Pessoal,

estou trabalhando com Vs2013/WebForm na maquina local funciona que uma beleza mas quando public gera esse erro: Ja pesquisei em tudo quanto é lugar e nada... Alguem pode me ajudar?

The type initializer for 'BoletoNet.BancoCarteiraFactory' threw an exception.

O projeto funciona no framework 3.5?

Boa tarde,

Estou precisando implementar o banco Sicoob, mas o programa desenvolvido aqui roda em cima do framework 3.5.

Tem alguma versão que contenha o Sicoob e rode no 3.5?

Propriedade Comando/Movimento - Retorno de Remessa

Preciso acessar a propriedade referente ao comando/movimento do boleto para geração de remessa. qual a propriedade na DLL que se refere a esse campo: CNAB 400 - Comando/Movimento - Posição 109 a 110 - Tam:2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.