Cálculo do Nosso Número no boleto BANCOOB / SICOOB do BoletoPhp

SICOOB-CMYK-POS

O excelente projeto Boleto PHP já virou referencia nacional para qualquer desenvolver que deseja criar cobrança usando boletos.

O projeto trás no meio de seus fontes o modelo do Bancoob que também pode ser utilizado para layouts do Sicoob pois tratá-se do mesmo banco.

Após aderimos aos Sicoob para gerarmos os boletos da InHosting nos deparamos com uma certa dificuldade em acertar o campo “Nosso Número” pois ele, diferente de outros bancos, possui uma regra para calcular um dígito verificador.

O Sicoob gentilmente nos cedeu uma planilha que continha todos os cálculos necessários além de permitir realizar simulações.

Para implementá-la em PHP é muito simples, procure a variável;

$dadosboleto["nosso_numero"]

Troque ela pelo código abaixo;

$NossoNumero = 1234; // Coloque o seu número, até 10 dígitos
$calculoDv = 239 + ($NossoNumero{0} * 1) + ($NossoNumero{1} * 9) + ($NossoNumero{2} * 7) + ($NossoNumero{3} * 3);
$Resto = $calculoDv % 11;
$Dv = 11 – $Resto;
if ($Dv == 0) $Dv = 0;
if ($Dv == 1) $Dv = 0;
if ($Dv > 9) $Dv = 0;
$dadosboleto["nosso_numero"] = $NossoNumero . $Dv;

Prontinho, o cálculo está feito. Apenas preste atenção para o $calculoDv, ele deve multiplicar cada dígito do seu número pela tabela deste arquivo;

http://inhosting.com.br/blog/wp-content/uploads/2011/07/Calculo-nn.xlsx

Se seu número possuir 5 digitos, acrescente no cálculo + ($NossoNumero{4} * 4); e assim por diante sempre multiplicando pelo valor dado na tabela do arquivo citado acima, o máximo de dígitos que você poderá trabalhar serão 10.

Utilize o Sicoob Cedente para auxiliar nos testes, ele pode ser baixado pelo próprio NetBanking do Sicoob.

You can leave a response, or trackback from your own site.

13 Responses to “Cálculo do Nosso Número no boleto BANCOOB / SICOOB do BoletoPhp”

  1. drupalista disse:

    Existe tambem uma biblioteca em php que facilita a implementacao de novos bancos e principalmente a integracao com sistemas PHP.

    A biblioteca pode ser baixada aqui https://github.com/drupalista-br/Boleto/wiki/Projeto-Boletophp-API

  2. Blog Admin disse:

    Obrigado pela visita e pela excelente dica, realmente muito valiosa.

  3. Alan disse:

    Muito obrigado mesmo!

  4. Carlos disse:

    Continuo com dificuldades. Pela análise da planilha excel, percebe-se que para o cálculo do DV é necessário também o numero da cooperativa e o número do cedente, dados que não vi nesse cálculo. No exemplo mostrado para acrescentar um quinto algarismo ao nosso número, colocou-se a multiplicação dele por 4 ( + ($NossoNumero{4} * 4) ), ocorre que de acordo com a tabela excel cada número é multiplicado sempre por 1, 9, 7 ou 3.

  5. Blog Admin disse:

    Luiz, os demais dados que fazem parte do cálculo devem ser configurados no próprio PHP Boleto. Veja que este artigo trata apenas o cálculo do nosso número e não do boleto todo pois o layout do Bancoob já faz todos os outros cálculos para você, exceto do nosso número que deve ser calculado a parte. Um grande abraço.

  6. Luiz Carlos disse:

    Ainda não consegui implementar. O problema continua sendo o cálculo do DV, pois o número da agencia influencia no cálculo do DV.

    DV de um determinado nosso número em uma agência vai ser diferente desse mesmo nosso número em outra agência.

    E ainda não consegui entender por que para acrescentar outro dígito teremos que multiplicar por 4, já que na tabela do excel não existe esse 4 em lugar nenhum!

  7. Luiz Carlos disse:

    De onde vem esse 239 no calculo do DV?

  8. Blog Admin disse:

    Dê uma olhada na planilha do Excel, um grande abraço.

  9. Antonio disse:

    alguem de voces nao teria esse projeto funcionando 100%? Se tiver me envie por gentileza no email. juniorborys@gmail.com

  10. Blog Admin disse:

    Olá, a inhosting utiliza normalmente. Caso seja cliente abra um ticket em sua área de cliente que teremos o prazer de lhe fornecer os arquivos.

  11. Samuca disse:

    Olá.
    Depois de muito estudar encontrei a solução. Realmente ficou um pouco vaga as explicações acima, então resolvi ajudar:

    Segundo a documentação do Sicob:
    NossoNumero – deve começar com 1 e pode ter até 7 dígitos
    cooperativa_agencia – exemplo: 3249
    numero_cliente: geralmente (mas nem sempre) o mesmo número da conta, exemplo: 7341-5

    $NossoNumero = ’1′.formata_numdoc($IdDoSeuSistemaAutoIncremento,6); // Ate 7 digitos, iniciado em 1 (Ex.: 1000001)
    $qtde_nosso_numero = strlen($NossoNumero);
    $sequencia = formata_numdoc($cooperativa_agencia,4).formata_numdoc(str_replace(“-”,”",$numero_cliente),10).formata_numdoc($NossoNumero,7);
    $cont=0;
    for($num=0;$num 9) $Dv = 0;
    $dadosboleto["nosso_numero"] = $NossoNumero . $Dv;

    Abraço.
    Samuca
    http://www.samuca.eti.br

  12. Samuca disse:

    O blog não aceita alguns caracteres de programação. Me procurem no meu site que eu passo o código: http://www.samuca.eti.br.

  13. Blog Admin disse:

    Olá, seus comentários foram aprovados, obrigado por ajudar no conteúdo.

Leave a Reply

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word

Powered by WordPress | Designed by: Premium Themes | Thanks to Best Themes Directory, wordpress themes free and Themes Gallery