Quebra de API Boletos Santander

129 views
Skip to first unread message

Henrique Prange

unread,
Jun 24, 2014, 11:07:10 AM6/24/14
to caelum-st...@googlegroups.com
Olá,

Estamos utilizando o Stella Boleto para gerar boletos do Santander e notamos que a versão 2.1.1 não é compatível com a versão 2.1.0. Além dos métodos públicos que foram renomeados, notamos principalmente a falta do método calcularDigitoVerificadorNossoNumero na classe Santander. Este método foi removido de acordo com o commit [1]. Essa remoção foi intencional?


Um abraço,

Henrique

Mario Amaral

unread,
Jun 24, 2014, 12:00:27 PM6/24/14
to caelum-st...@googlegroups.com
Removemos porque não achamos referências no código, mas esquecemos que esse caso poderia ser usado externamente. Vou abrir uma issue para retornar esse método no próximo release.

Obrigado pelo feedback.

Abraços

Mário do Amaral Gonçalves


--
You received this message because you are subscribed to the Google Groups "Caelum Stella User" group.
To unsubscribe from this group and stop receiving emails from it, send an email to caelum-stella-u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Henrique Prange

unread,
Jun 24, 2014, 2:03:48 PM6/24/14
to caelum-st...@googlegroups.com
Olá Mário,

Obrigado por responder tão rapidamente e por criar a issue.

O cálculo de dígito verificador do nosso número é informação obrigatória para a geração dos boletos do Santander. O que você acha de esta operação ser executada automaticamente para os usuários do Stella Boleto? Eu sei que isso vai além do que existia na versão 2.1.0, mas estou disposto a criar um pull request caso vocês aprovem esse tipo de solução.

Hoje, para gerar um boleto do Santander, é preciso executar o método calcularDigitoVerificadorNossoNumero e informar o resultado manualmente junto com o nosso número. É pouco intuitivo. Veja o exemplo abaixo de como temos que gerar um boleto do Santander:

String nossoNumero = "12345678900";

beneficiario.comNossoNumero(nossoNumero);

String digito = new Santander().calcularDigitoVerificadorNossoNumero(beneficiario);

beneficiario.comNossoNumero(nossoNumero + digito)

Os boletos do Santander não utilizam o campo digitoNossoNumero e também não fazem o cálculo dessa informação automaticamente. Para resolver esse problema, minha sugestão é utilizar o campo digitoNossoNumero e, quando esse campo estiver vazio, fazer o cálculo automaticamente. Dessa forma, os boletos do Santander poderiam ser gerados das seguintes formas:

1) Sem fornecer o dígito do nosso número (com cálculo automático)

String nossoNumero = "12345678900";

beneficiario.comNossoNumero(nossoNumero);

2) Fornecendo o dígito do nosso número (o cálculo automático não será feito e o valor informado no campo digitoNossoNumero será utilizado)

String nossoNumero = "12345678900";
String digitoNossoNumero = "3";

emissor.comNossoNumero(nossoNumero);
emissor.comDigitoNossoNumero(digitoNossoNumero);

Posso providenciar um pull request com essa solução?

Um abraço,

Henrique

Mario Amaral

unread,
Jun 24, 2014, 5:02:28 PM6/24/14
to caelum-st...@googlegroups.com
Oi Henrique,

O código está separado pois em um caso que usamos para a homologação a base de dados do cliente já possuía o nosso número com o dígito,  (por exemplo, ele setava o nosso número com "12345678903", já com o dígito).

Não lembro se no caso do Santander existe alguma regra para determinar se o nosso número já possui o dígito ou não, ou se é comum o código informado pelo banco já vir com o dígito. Se tivesse, poderíamos verificar automaticamente e calcular quando necessário, usando as idéias que você propôs.

Tem alguma idéia? Sabe se o banco informa o nosso número já com o digito para o cliente? :)




Mário do Amaral Gonçalves

Henrique Prange

unread,
Jun 25, 2014, 11:06:42 AM6/25/14
to caelum-st...@googlegroups.com
Olá Mário,

No caso do Santander, o banco fornece apenas o código do cedente. O nosso número é um número seqüencial gerado por quem está emitindo o boleto. De acordo com o manual do Santander, o nosso número é composto por NNNNNNNNNNNN D onde:

N = Faixa seqüencial de 000000000001 a 999999999999
D = Dígito de controle calculado a partir de módulo 11, peso 2 a 9

Como essa informação é determinada pelo usuário do Stella Boleto (e não pelo banco), acredito que o dígito tenha que ser recalculado a cada emissão de novo boleto.

Infelizmente não tenho nenhuma idéia que possa determinar de forma garantida se um nosso número já tem ou não o dígito. :( Na solução proposta, caberia ao usuário saber que o nosso número dele já contém o dígito e fazer uma chamada ao método comDigitoNossoNúmero(). Talvez essa solução não atenda a todos os cenários, mas pelo menos o usuário teria a flexibilidade de determinar o dígito do nosso número por conta própria ou confiar no cálculo feito pelo Stella Boleto.

Vou enviar uma pull request com a sugestão e acho que podemos fazer ajustes a partir dela, ok?

Um abraço,

Henrique

Mario Amaral

unread,
Jun 25, 2014, 12:17:30 PM6/25/14
to caelum-st...@googlegroups.com
Perfeito Henrique, aguardamos o PR. :)

Abraços

Mário do Amaral Gonçalves

Esequias Neto

unread,
Jul 4, 2016, 10:36:55 PM7/4/16
to Caelum Stella User
Boa Noite Henrique, teria como disponibilizar o manual do Santander?

Mário do Amaral Gonçalves



Mário do Amaral Gonçalves


To unsubscribe from this group and stop receiving emails from it, send an email to caelum-stella-user+unsub...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Caelum Stella User" group.
To unsubscribe from this group and stop receiving emails from it, send an email to caelum-stella-user+unsub...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Caelum Stella User" group.
To unsubscribe from this group and stop receiving emails from it, send an email to caelum-stella-user+unsub...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Caelum Stella User" group.
To unsubscribe from this group and stop receiving emails from it, send an email to caelum-stella-user+unsub...@googlegroups.com.

Mario Amaral

unread,
Jul 5, 2016, 11:25:37 AM7/5/16
to Caelum Stella User

Se não me engano tem todos os manuais dentro da pasta doc do projeto.

Abraços


To unsubscribe from this group and stop receiving emails from it, send an email to caelum-stella-u...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Caelum Stella User" group.
To unsubscribe from this group and stop receiving emails from it, send an email to caelum-stella-u...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Caelum Stella User" group.
To unsubscribe from this group and stop receiving emails from it, send an email to caelum-stella-u...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Caelum Stella User" group.
To unsubscribe from this group and stop receiving emails from it, send an email to caelum-stella-u...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Caelum Stella User" group.
To unsubscribe from this group and stop receiving emails from it, send an email to caelum-stella-u...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages