... Assinatura do site por 3 anos + Kit MontaRibbons + 3 Livros em PDF + Diversas Revistas (pdf) de brinde, por apenas R$145,00
(
podendo parcelar em até 10 vezes no cartão de crédito)...

Clique aqui e obtenha mais detalhes do nosso kit completo e de como comprar.


Gerar Arquivo Remessa do Banco Itaú

A partir de janeiro de 2017 será decretado o fim do boleto sem registro.  A Febraban (Federação Brasileira dos Bancos), através do Projeto Nova Plataforma de Cobrança, vem realizando mudanças importantes nas modalidades de boleto bancário. A proposta é trazer mais segurança e reduzir os prejuízos gerados pelas fraudes de boleto.

Custo(maior) - Na modalidade sem registro, há apenas o custo da liquidação, ou seja, a empresa paga ao banco uma taxa quando o boleto é pago. Se o boleto não é pago, não existe cobrança de taxa. Na modalidade com registro, porém, o banco pode cobrar, dependendo da negociação, diversas taxas, como de emissão, liquidação, permanência e protesto.  Assim, o custo deve subir de forma considerável, pelo menos em um primeiro momento.  Para os e-commerces, pode ser algo desastroso, principalmente para os pequenos, que não têm tanta margem para negociar com os bancos.  Imagina emitir boletos e pagar pela emissão de vendas que nem sequer foram concretizadas ainda.  Além de ter que contar com a desistência da compra que beira em torno de 50% (cinqüenta por cento).

Burocracia - Outro ponto é que, na modalidade de boleto com registro, é necessário que o banco receba este registro - ou seja, deverá ser enviado um arquivo de remessa. Este arquivo contém as informações dos boletos gerados. Outro ponto é que, para gerar os boletos com registro, torna-se obrigatório inserir o CNPJ ou o CPF. Mesmo quem já usa um sistema de gestão, que automatiza o do processo, vai precisar de um destes dados.

Segurança - Sem dúvida, na modalidade com registro, um dos ganhos será a segurança. Bancos, empresas e consumidores finais já sofreram com fraudes e isso não é nada agradável. Uma das razões para o fim do boleto sem registro são as fraudes. Como na modalidade com registro, tanto o emissor quanto o pagador têm de ser identificados, as chances de o consumidor cair em um golpe diminuem.

Montando o arquivo remessa de acordo com as regras do banco - O layout e o conteúdo do arquivo de remessa seguem a uma padronização que se encontra detalhada no manual CNAB400-ITAU.  O arquivo remessa é um txt que engloba informações do boleto, do pagador e do beneficiário.  O exemplo que ofereço segue o layout mínimo, contendo três linhas, que são:

Linha Header
Linha Detalhe
Linha Trailer

Todas as linhas devem possuir 400 posições.  As posições não preenchidas devem ser completadas com espaços em branco ou zeros, dependendo do tipo de informação.  Para completar as posições com espaços, utilizamos a função Space().  Por exemplo: - seguindo as especificações do manual, o campo nome do pagador tem que ter 30 caracteres.  Vamos supor que no campo nome do pagador seja preenchido AVELINO SAMPAIO.  Este nome possui um comprimento de 15 caracteres tendo então, pela regra a ser seguida, que completar os 15 caracteres restantes com espaços em branco.

AVELINO SAMPAIO & Space(30 - Len(AVELINO SAMPAIO))

A função Len() conta a quantidade de caracteres da string. Temos como resultado a linha abaixo.  Os asteriscos (*) estão representando os espaços em branco para você poder visualizar o comprimento do campo.

AVELINO*SAMPAIO***************

Certamente há nomes que ultrapassam os 30 caracteres, neste caso, incluiremos a função Left(), limitando assim, nos 30 caracteres. 

Left(me!pagador,30) 'limita o campo em até 30 caracteres

O nome é geralmente cadastrado em caixa baixa. Para passar o nome para caixa ALTA, usamos a função Format().  Exemplo:

Format("Avelino Sampaio",">") :::> AVELINO SAMPAIO

Vamos supor agora que o próximo campo da seqüência seja o CPF do pagador.  Nas especificações do manual, a posição deve possuir 14 algarismos, pois deve comportar tanto o CPF quanto o CNPJ, dependendo se é pessoa física ou jurídica.  Como exemplo vamos considerar o CPF 855.899.166-49 que possui 11 algarismos, devemos completar com mais três zeros a esquerda para atingir o comprimento obrigatório de 14 algarismos.  A sua montagem final deve ter o seguinte formato:  00085589916649

Se você armazenar o CPF no campo da tabela com os pontos(.) e traço(-), deverá extraí-los com a função Replace().

strCPF = "855.899.166-49"
strCPF = replace(strCPF,".","") :::> 855899166-49 'tira os pontos
strCPF = replace(strCPF,"-","") :::> 85589916649 'tira o traço

Ou podemos aninhar a função Replace() desta forma:

strCPF = Replace(Replace(strCPF,".",""),"-","") :::> 85589916649

Para acrescentarmos zeros a esquerda, utilizamos a função String().  Exemplo:

String(14 - Len(strCpf),"0") & strCpf 'temos como resultado 00085589916649

A seqüência final deste exemplo, fica com o aspecto apresentado abaixo. É bom lembrar que os asteriscos (*) estão representando os espaços em branco.

AVELINO*SAMPAIO***************00085589916649

O manual recomenda tirar os acentos. Você pode usar a função strConv() para retirar os acentos.

strConv("Luís Gonçalves Cândido", 2, 1049) :::> luis goncalves candido

Agora, analise o código exemplo, que monta a seqüência com o nome do pagador e o seu respectivo CPF e gera o arquivo txt.

Dim strPagador$
Dim strCpfPagador$
Dim strSeq$
Dim strNomeRemessa$
 
'---------------------------------------------
'passa os valores dos campos para as variáveis
'---------------------------------------------
strPagador = me!Pagador
strCpfPagador = me!CpfPagador
 
'--------------------------------------------------------------------------
'limita o campo pagador em até 30 caracteres, tira os acentos e passa para
'caixa alta
'--------------------------------------------------------------------------
strPagador = Format(strConv(left(strPagador,30),2,1049),">")
 
'--------------------------------------------------------------------------
'acrescenta os espaços, caso o nome do pagador seja menor que 30 caracteres
'--------------------------------------------------------------------------
strPagador = strPagador & space(30 - len(strPagador))
 
'-----------------------------------
'retira os pontos e o traço do CPF
'-----------------------------------
strCpfPagador = replace(replace(strCpfPagador,".",""),"-","")
 
'-----------------------------------------------------------
'acrescenta zeros a esquerda até completar os 14 algarismos
'-----------------------------------------------------------
strCpfPagador = string(14 - len(strCpfPagador),"0") & strCpfPagador
 
'-------------------
'monta a seqüência
'-------------------
strSeq = strPagador & strCpfPagador
 
'-------------------------------------------------------------------------
'gera um nome para o arquivo de remessa, incluindo ano, mês e os três últimos
'números do campo Nosso Número.  Exemplo: C1605007.txt
'-------------------------------------------------------------------------
StrNomeRemessa = "C" & Format(Date, "yymm") & Right(Me!NossoNumero, 3) & ".txt"
 
'------------------------------------------------
'cria o arquivo txt e salva na pasta remessas
'------------------------------------------------
Open CurrentProject.Path & "\Remessas\" & StrNomeRemessa For Output As #1
Print #1, strSeq
Close #1
'---------------------------------------------------------
'emite uma mensagem de que o arquivo de remessa foi criado
'---------------------------------------------------------
MsgBox "Arquivo de remessa criado..."
 

Bem, espero que com as informações aqui apresentadas, você possa acompanhar o código original, oferecido no aplicativo exemplo abaixo.

Analisando a montagem do arquivo de remessa

Para verificar se as informações estão nas posições certas, elaborei um relatório para você analisar, enquanto você estiver testando e adaptando o seu projeto.  Abra o formulário frmBoleto e clique no botão Analisar Linhas Remessa.

Formulário Boleto


Observe no relatório abaixo que os espaços em branco necessários estão representados pelos asteriscos (*). 

Nomenclaturas - O número "9" representa o campo numérico e a letra "x" o campo string.  O valor entre parênteses é o comprimento do campo.  Exemplo:

x(15) - Uma string com 15 caracteres de comprimento.

9(4) - Um número com 4 algarismos de comprimento.

Observe no relatório o campo Nome Da Empresa x(30).  Faça a contagem dos caracteres, incluindo os asteriscos (*) e confirme se tem os 30 caracteres obrigatórios.

Vamos supor que o campo Código do Banco 9(3) esteja com seguinte resultado:

*341 

O Asterisco significa que existe um espaço aonde não poderia ter, uma vez que o campo é numérico e deve possuir apenas 3 algarismos de comprimento.  Isso significa que algum campo anterior está acima do comprimento permitido, empurrando o espaço para o campo seguinte e assim alterando toda a estrutura. 

Relatório Remessa


Abrindo e verificando o arquivo txt.

Ao analisar o arquivo txt, atente para o final das linhas e verifique o seu perfeito alinhamento que indica quando todas as linhas estão com as 400 posições.

Alinhamento txt

Gerando o arquivo remessa no aplicativo exemplo

Ao rodar o aplicativo será exibida a tela abaixo, mostrando o formulário Controle de Aluguéis:

Usando Access - Boleto Aluguéis


Com o mouse, selecione o senhorio > selecione o inquilino > Dê dois cliques do mouse sobre a linha (veja a seta), abra o boleto já criado ou clique no botão "Gerar novo boleto" para o inquilino selecionado.

O formulário de preenchimento de boleto será exibido, conforme imagem abaixo:

Usando Access - Formulário Boleto


Após o preenchimento do formulário, clique no botão "Analisar Linhas Remessa".  Depois da análise do relatório e tudo estando OK, clique no botão "Gerar  Remessa", assim o arquivo será salvo na pasta remessas. 

Para testar o arquivo remessa no site do Itaú siga os seguintes passos:

- Abra o site Itaú e entre na sua conta

- No Menu, clique em Cobrança

- Na seção "transferência de arquivo" clique em Remessa.  Será aberto um formulário

- Clique no botão "Escolher Ficheiro".  Vá até a pasta Remessas do seu aplicativo Access e selecione a remessa que deseja subir.

- No campo produto selecione "cobrança-400"

- Na opção ambiente selecione TESTE.

- clique no botão confirmar

Download

Para entrar no modo estrutura, mantenha pressionada a tecla SHIFT na inicialização.

Para visualizar o Painel de Controle, utilize a tecla F11.

Sucesso!


 

 


14 comentários

Antonio Carlos   28/05/2016 08:04:11

Justo o que eu estava precisando.

Valeu Avelino!

Sergio    30/05/2016 12:17:15

Grande Avelino, perfeito.
Avelino, pelo que havia estudado na febraban, os bancos seguem a padroes de trabalho pré-dterminado. Voce sabe dizer se este exemplo serviria para outros bancos tambem, tipo Banco brasil.....
Estou te perguntando porque quando gerei o boleto(sem registro), na funcionava para outros bancos

Avelino Sampaio   30/05/2016 12:49:11

Sergio,

creio que tenha diferenças. Segue o manual do cnab400 do BB para montagem do arquivo remessa:

http://www.bb.com.br/docs/pub/emp/empl/dwn/Doc2627CBR641Pos7.pdf

Segue abaixo o manual de construção para o boleto do Banco do Brasil

http://www.bb.com.br/docs/pub/emp/empl/dwn/Doc5175Bloqueto.pdf

Com esses manuais será possível vc analisar as diferenças e então adaptar.

Bom estudo!

Héverson Mota   06/06/2016 14:18:16

Parabéns Avelino!

Perfeito!

Abraços!

Sergio   22/06/2016 15:10:57

Boa tarde Avelino, a remessa tem que ser feita um boleto por vez ou posso mandar varios boletos no mesmo arquivo.

Elias Rodrigues   28/06/2016 11:58:21

Mestre Avelino, você teria como colocar em exemplo para o Boleto da Caixa?

Elias Rodrigues   28/06/2016 11:59:17

Emissão de Boleto com Registro da caixa! Aguardo resposta.

Antonio dos Santos   18/08/2016 17:33:40

Muito bom, obrigado pela dica.
Pretendo usar com o Santander, você teria uma rotina de remessa com vários boletos na mesma remessa?

Avelino Sampaio   21/08/2016 06:43:43

Antonio,

não tenho. Quando montar seu projeto para o Santander, compartilhe com agente sua experiência, lá pelo nosso fórum:

http://www.redeaccess.com.br

Sucesso!


Francisco Mábio   08/02/2017 09:29:15

Boa tarde,

Alguém conseguiu desenvolver para envio em massa?

grato,

Renata Flavia Dutra Lima   18/05/2017 10:52:18

Boa tarde!

Estou precisando de um exemplo para ler o arquivo retorno do banco, padrão Febraban 240, neste vem registros diferente no arquivo para eu identificar meu cliente e fazer a baixa.

Podem me ajudar?

Daniel Euclides da Cruz   02/06/2017 07:23:03

Avelino, boa tarde

No campo com datas uso a seguinte sequencia para transcrever a data:

data_ger = Format(Now, "ddmmyy")
data_ger = CStr(data_ger)
data_ger = String(6 - Len(data_ger), "0") & data_ger

o campo deve ter 6 dígitos, na formula tento fazer isso, tome como exemplo da data 02/06/2017
o retorno na formula sai como 20617 como 5 dígitos, sabe me informar por quê?

Daniel Euclides da Cruz   02/06/2017 07:37:42

Consegui aqui amigo

data_ger = Format(Now, "dd/mm/yy")
data_ger = Replace(data_ger, "/", "")

Obrigado

Idenilton Freitas Cardoso   29/11/2017 05:17:35

Olá Sr.Avelino, bom dia! Estou precisando gerar boletos do Banco do Nordeste. Como você poderia me auxiliar nessa tarefa. Esse modelo do bando ITAÚ poderia ser usado para o meu referido banco.

Agradeço a compreensão fico no aguardo. Ainda não tenho cadastro no site pois antes não existia essa necessidade mas, agora vejo que é necessário. Vou fazer o registro usando a promoção.

ideniltondesignet@hotmail.com


Envie seu comentário: