Bancos
Como configurar o layout de remessa de cobrança em formato CNAB 240 para o banco Santander?
BANCOS.CAD_BANCO.FAQ-3608
Para configurar o arquivo CNAB de remessa de títulos de cobrança para o banco Santander deve ser feita a seguinte configuração no banco através da interface Bancos:
Febraban: 033
Guia Configurações da interface Bancos:
Guia Banco (interface Configuração de bancos):
Código do banco no jBoleto: 8
Tamanho do nosso número: 12
Layout CNAB: 240
Dígito do banco: 7
Guia Movimentos (interface Cadastro de Códigos dos Movimentos):
Código do Movimento: 01
Título: 01
Guia Lay-out (CNAB) (interface Leiautes CNAB dos bancos):
Cabeçalho 1
Modelo CNAB: CNAB 240
Parte do lay-out: Cabeçalho
Parte do lay-out sequencia: 1
${str.rightPad($banco.getFebraban(),3,"0")}
0000
0
${str.repeat(" " , 8)}
2#*tipo inscr. empresa 1-cpf/ 2-cnpj*#
${str.leftPad($lop.getDocumentoCliente(),15,"0")}
${str.leftPad($lop.retornarConvenio(),4,"0")}
${str.repeat(" ",25)}
${str.rightPad($conta.valueOfNomeCedente(), 30).substring(0,30)}
${str.rightPad($banco.getNomeBanco(), 30).substring(0,30)}
${str.repeat(" ", 10)}
1#*cod.remessa*#
${str.rightPad($banco.getDataAtual(),8," ")}
${str.repeat(" ", 6)}
${str.leftPad($sequencia,6,"0")}
040#*nro versao layout arquivo*#
${str.repeat(" ", 74)}
Cabeçalho 2
Modelo CNAB: CNAB 240
Parte do lay-out: Cabeçalho
Parte do lay-out sequencia: 2
${seq.nextValue()}
$str.rightPad($banco.getFebraban(),3,"0")
0001
1
R
01
$str.repeat(" ", 2)
030
$str.repeat(" ", 1)
2#*tipo inscricao empresa 1-cpf/2-cnpj*#
$str.leftPad($lop.getDocumentoCliente(),15,"0")
$str.repeat(" ", 20)
$str.leftPad( $conta.retornoAgencia() , 4,"0")
$str.leftPad( $conta.retornoContaCorrente(), 10,"0")
${str.rightPad($conta.retornoDigitoContaCorrente(), 1)}
$str.repeat(" ", 5)
$str.rightPad($conta.getNomeCedente().toString(),30," ").substring(0,30)
$str.repeat(" ", 40)#*mensagem 1-verificar-*#
$str.repeat(" ", 40)#*mensagem 2-verificar-*#
$str.leftPad($remessa,8,"0")#*nro remessa/retorno*#
$str.rightPad($banco.getDataAtual(),8," ")
$str.repeat(" ", 41)
Corpo ( títulos ) 1
Modelo CNAB: CNAB 240
Parte do lay-out: Corpo (títulos)
Parte do lay-out sequencia: 1
${seq.nextValue()}
${str.rightPad($banco.getFebraban(),3,"0")}
0001#*numero lote da remessa*#
${str.repeat("3", 1)}
${str.leftPad($seqItens.next(), 5,"0")}#*nro sequencial registro de lote*#
${str.repeat("P", 1)}
${str.repeat(" ", 1)}
01#*cod. movimento para remessa*#
${str.leftPad($conta.retornoAgencia(), 4, "0")}
${str.rightPad($conta.retornoDigitoAgencia(), 1)}
${str.leftPad( $conta.retornoContaCorrente(), 9,"0")}
${str.rightPad($conta.retornoDigitoContaCorrente(), 1)}
${str.leftPad($conta.retornoContaCorrente(), 9, "0")}
${str.rightPad($conta.retornoDigitoContaCorrente(), 1)}
${str.repeat(" ", 2)}
${str.leftPad($titulo.valueOfNumeroBanco(), 12, "0")}
${str.leftPad($titulo.retornoDigitoNossoNumero(),1,"0")}
1#*${str.repeat("1", 1)}tipo de cobranca*#
1#*${str.repeat("1", 1)}forma de cadastramento*#
${str.repeat("1", 1)}#*tipo de documento 1-tradicional/ 2-escritural*#
${str.repeat(" ", 1)}
${str.repeat(" ", 1)}
${str.rightPad($titulo.retornaNumeroDocumento(),15," ")}#*nro do documento -seu nro-*#
${str.rightPad($titulo.retornoDataVencimento().toString(),8, "0")}
${str.leftPad($titulo.getValor().toText().replace(",", "").replace(".", ""),15,"0")}
${str.repeat("0", 4)}#*baseado CEP do sacado - Responsabilidade do banco*#
${str.repeat("0", 1)}
${str.repeat(" ", 1)}
02#*especie do titulo - ver codigo tabela*#
N#*identificacao Aceite/ Nao aceite*#
${str.rightPad($titulo.retornoDataEmissao().toString(),8,"0")}
1#*codigo juros de mora - tabela*#
${str.rightPad($titulo.retornoDataVencimento().toString(),8, "0")}#*data dos juros de mora*#
${str.leftPad($titulo.retornoJuroDia().replace(",", "").replace(".", ""),15,"0")}
0#*codigo desconto*#
${str.repeat("0",8)}#*data do desconto*#
${str.repeat("0", 15)}#*valor ou percentual do desconto*#
${str.repeat("0" , 15)}#*valor IOF ser recolhido*#
${str.leftPad($titulo.retornoAbatimento().replace(",", "").replace(".", ""),15,"0")}
${str.repeat(" ", 25)}#*identificacao titulo na empresa*#
${str.leftPad($lop.retornaFormaProtesto().toString(),1,"")}
${str.leftPad($lop.getDiasProtesto().toString(),2,"0")}
2#*codigo baixa devolucao-ver tabela-*#
000#*numero dias para baixa/devolucao*#
00
${str.repeat(" ", 11)}
Corpo ( títulos ) 2
Modelo CNAB: CNAB 240
Parte do lay-out: Corpo (títulos)
Parte do lay-out sequencia: 2
${seq.nextValue()}
${str.rightPad($banco.getFebraban(),3,"0")}
0001#*numero lote remessa*#
3
${str.leftPad($seqItens.next(), 5,"0")}#*nro sequencial registro de lote*#
Q
${str.repeat(" ", 1)}
01
${str.leftPad($titulo.getPessoaTipo(), 1)}
${str.leftPad($titulo.getPessoaDocumento(), 15,"0" )}
${str.rightPad($titulo.getPessoaNome(), 40).substring(0,40)}
${str.rightPad($titulo.getPessoaEndereco(),40).substring(0,40)}
${str.rightPad($titulo.getPessoaBairro(),15).substring(0,15)}
${str.rightPad($titulo.getPessoaCep().replace("-", "").replace(".", ""),8)}
${str.rightPad($titulo.getPessoaCidade(),15).substring(0,15)}
${str.rightPad($titulo.getPessoaUf(),2)}
0
${str.repeat("0", 15)}
${str.repeat(" ", 40)}
001
001
001
001
${str.repeat(" ", 19)}
Corpo ( títulos ) 3
Modelo CNAB: CNAB 240
Parte do lay-out: Corpo (títulos)
Parte do lay-out sequencia: 3
${seq.nextValue()}
${str.rightPad($banco.getFebraban(),3,"0")}
0001#*numero lote da remessa*#
3
${str.leftPad($seqItens.next(), 5,"0")}#*nro sequencial registro de lote*#
R
${str.repeat(" ", 1)}
01#*${str.repeat(" ", 2)}cod. movimento para remessa*#
0#*codigo para desconto2*#
${str.repeat("0",8)}#*${str.rightPad($titulo.retornoDataEmissao().toString(),8,"0")}data desconto2*#
${str.repeat("0",15)}#*valor/percentual concedido*#
${str.repeat(" ", 24)}
2#*codigo multa 1-valor fixo/2-percentual*#
${str.repeat("0", 8)}#*data multa*#
${str.leftPad($lop.retornarPercentualMulta().replace(",", "").replace(".", ""), 15,"0")}#*valor/percentual ser aplicado*#
${str.repeat(" ", 10)}
${str.rightPad($titulo.retornarInstrucao(3),40," ")}#*mensagem3*#
${str.rightPad($titulo.retornarInstrucao(4),40," ")}#*mensagem3*#
${str.repeat(" ", 61)}
Corpo (títulos) 4
Modelo CNAB: CNAB 240
Parte do lay-out: Corpo (títulos)
Parte do lay-out sequencia: 3
##foreach($item in $detalhes)
${seq.nextValue()}
${str.rightPad($banco.getFebraban(),3,"0")}
0001#*numero lote remessa*#
3
${str.leftPad($seqItens.next(), 5,"0")}#*nro sequencial registro de lote*#
S
${str.repeat(" ", 1)}
01#*${str.repeat(" ", 2)}cod. movimento para remessa*#
1
$str.leftPad($item.getRegistro(), 2,"0" )
4
${str.rightPad($item.getLinha(), 90).substring(0,90)}
${str.leftPad($item.getValor(), 10)}
${str.repeat(" ", 119)}
||
##end
Rodapé 1
Modelo CNAB: CNAB 240
Parte do lay-out: Rodapé
Parte do lay-out sequencia: 1
${seq.nextValue()}
${seqItens.nextValue()}
$str.rightPad($banco.getFebraban(),3,"0")
0001#*numero lote da remessa*#
5
$str.repeat(" ", 9)
${str.leftPad($seqItens.next(), 6,"0")}#*quantidade registros de lote*#
$str.repeat(" ", 217)
Rodapé 2
Modelo CNAB: CNAB 240
Parte do lay-out: Rodapé
Parte do lay-out sequencia: 2
$str.rightPad($banco.getFebraban(),3,"0")
9999#*numero lote da remessa*#
9
$str.repeat(" ", 9)
$str.leftPad("1", 6,"0")#*quantidade lotes do arquivo registros tipo=1*#
${str.leftPad($seq.next(), 6,"0")}#*quantidade lotes do arquivo registros tipo=0+1+2+3+5+9*#
$str.repeat(" ", 211)
Importante:
Devem ser retirados os espaços em branco antes e depois de cada linha de especificação Velocity, pois os espaços poderão ser inseridos nos arquivos gerados.
Configuração da conta corrente:
Configurar a conta corrente através da interface Contas correntes / caixas, informando:
Agência: Formato 4 dígitos com 0 (zeros) à esquerda + "-" + dígito de controle, p.ex.: 0190-1
Configuração do LOP:
Configurar o LOP informando a conta corrente cadastrada anteriormente.
- Informar a carteira
- Informar o tipo de impressão
Convênio: Informar código de transmissão fornecido pelo banco, como segue:
- CNAB 240: 15 dígitos, p.ex.: 119600001094890
- CNAB 400: 20 dígitos, p.ex.: 11960109489001300024