# Registro Header de Lote

# Baseado na documentação da Caixa
# Disponível em: http://downloads.caixa.gov.br/_arquivos/cobrcaixasicob/manuaissicob/CNAB_240_SICOB.pdf (Acesso em 23/04/2014)

codigo_banco:
  # Código fornecido pelo Banco Central para identificação do Banco que está recebendo ou enviando o
  # arquivo, com o qual se firmou o contrato de prestação de serviços.
  # CAIXA ECONÔMICA FEDERAL = ‘104’
  pos: [1, 3]
  picture: '9(3)'

lote_servico:
  # Lote de Serviço
  # Número seqüencial para identificar cada lote de serviço.
  # Preencher com '0001' para o primeiro lote do arquivo. Para os demais: número do lote anterior
  # acrescido de 1. Deve ser o mesmo número dentro do lote. O número não poderá ser repetido dentro
  # do arquivo.
  # Se registro for Header do Arquivo = '0000'
  # Se registro for Trailer do Arquivo = '9999'
  pos: [4, 7]
  picture: '9(4)'

tipo_registro:
  # Código adotado pela FEBRABAN para identificar o tipo de registro.
  # '1' = Header de Lote
  pos: [8, 8]
  picture: '9(1)'
  default: '1'

tipo_operacao:
  # Tipo de Operação
  # Código adotado pela FEBRABAN para identificar a transação que será realizada com os registros
  # detalhe do lote. Deve constar apenas um tipo por lote:
  # 'R' = Arquivo Remessa
  # 'T' = Arquivo Retorno
  pos: [9, 9]
  picture: 'X(1)'

tipo_servico:
  # Tipo de Serviço
  # Código adotado pela FEBRABAN para indicar o tipo de serviço / produto contido no arquivo / lote:
  # '01' = Cobrança
  # ‘03’ = Bloqueto Eletrônico
  # Padrão: '01'
  pos: [10, 11]
  picture: '9(2)'
  default: '01'

forma_lancamento:
  # Forma de Lançamento
  # Padrão: 00
  pos: [12, 13]
  picture: '9(2)'
  default: '00'

versao_layout_lote:
  # Código adotado pela FEBRABAN para identificar qual a versão de layout do arquivo encaminhado.
  pos: [14, 16]
  picture: '9(3)'
  default: '030'

uso_exclusivo_febraban_01:
  # Texto de observações destinado para uso exclusivo da FEBRABAN. Preencher com Brancos.
  pos: [17, 17]
  picture: 'X(1)'
  default: ''

codigo_inscricao:
  # Código que identifica o tipo de inscrição da Empresa ou Pessoa Física.
  # '1' = CPF
  # '2' = CGC / CNPJ
  pos: [18, 18]
  picture: '9(1)'

numero_inscricao:
  # Informar o número de inscrição da Empresa (CNPJ) ou Pessoa Física (CPF).
  pos: [19, 33]
  picture: '9(15)'

codigo_convenio:
  # Código do Convênio no Banco (Código do Cedente)
  # Código fornecido pela CAIXA, através da agência de relacionamento do cliente, específico para
  # identificar determinados tipos de serviços / produtos.
  # O campo CÓDIGO DO CEDENTE deverá ser preenchido da seguinte forma:
  # AAAAOOOCCCCCCCCD, onde:
  # AAAA = código da Agência CAIXA de relacionamento do cliente / cedente
  # OOO = Operação
  # CCCCCCCC = Número da Conta Corrente ou seqüencial
  # D = Dígito Verificador
  pos: [34, 49]
  picture: 'X(16)'

uso_exclusivo_banco:
  # Preenchar em branco
  pos: [50, 53]
  picture: 'X(4)'
  default: ''

agencia:
  # Código da Agência mantenedora da conta, fornecido pela CAIXA.
  pos: [54, 58]
  picture: '9(5)'

agencia_dv:
  # Dígito Verificador da Agência mantendedora da conta, fornecido pela CAIXA.
  pos: [59, 59]
  picture: '9(1)'

codigo_cedente:
  # Código do Cedente
  # Remessa: Código do Convênio no Banco (sem operação), tamanho: 12 posições, no formato
  # 0000CCCCCCCC.
  # Retorno: Código do Convênio no Banco (com operação), tamanho: 12 posições, no formato
  # 0OOOCCCCCCCC.
  # Onde:
  # 0 = zero
  # OOO = Operação
  # CCCCCCCC = Cedente
  pos: [60, 71]
  picture: '9(12)'

codigo_cedente_dv:
  # Dígito Verificador do Cedente
  # Código adotado pela CAIXA, para verificação da autenticidade do Código do Cedente. Calculado
  # através do módulo 11.
  # Exemplo de como calcular o DV do Cedente:
  # Agência/Código do Cedente: 0012.870.00000575-1
  # Para Remessa – Cedente sem operação e sem DV: 00000575
  # Para Retorno – Cedente com operação e sem DV: 87000000575
  # 0  0  0  0  0   5   7  5
  # 9  8  7  6  5   4   3  2
  # 0  0  0  0  0  20  21 10
  # 1ª linha – Código do Cedente
  # 2ª linha – Índice multiplicação, preencher sequencialmente de 2 a 9 da direita para a esquerda
  # 3ª linha – Multiplicação coluna por coluna (0x9, 0x8, 0x7, 0x6, 0x5, 0x4, 3x3, 3x2)
  # Soma-se os valores da 3ª linha: 0+0+0+0+0+20+21+10 = 51
  # Dividir o resultado da soma por onze: 51/11 = 4 (resto 7)
  # Subtrair onze pelo resto da divisão: 11 – 7 = 4
  # O Dígito Verificador calculado para o Código de Cedente acima é 4
  # Obs.: se o resultado da subtração for maior que 9 (nove) o dígito será 0 (zero)
  pos: [72, 72]
  picture: '9(1)'

agencia_mais_cedente_dv:
  # Dígito Verificador da Agência / Código do Cedente
  # Código adotado pela CAIXA para verificação da autenticidade do par Código da Agência / Código do
  # Cedente. Calculado através do módulo 11.
  # Obs: Para o Retorno é o mesmo DV do Código do Cedente, fornecido pela CAIXA.
  # Exemplo de como calcular o DV da Agência/Código do Cedente (Remessa):
  # Agência/Código do Cedente: 0012.870.00000575-1
  # Agência (sem DV): 0012
  # Cedente (sem operação e sem DV) – tamanho 8 posições: 00000575
  # 0  0  1  2  0  0  0  0  0   5   7   5
  # 5  4  3  2  9  8  7  6  5   4   3   2
  # 0  0  3  4  0  0  0  0  0  20  21  10
  # 1ª Linha – Agência/Código do Cedente
  # 2ª Linha – Ìndice multiplicação, preencher sequencialmente de 2 a 9 da direita para a esquerda
  # 3ª Linha – Multiplicação coluna por coluna
  # Soma-se os valores da 3ª linha: 0+0+3+4+0+0+0+0+0+20+21+10 = 58
  # Dividir o resultado da soma por onze: 58/11 = 5 (RESTO 3)
  # Subtrair onze pelo resto da divisão: 11 – 3 = 8
  # O Dígito Verificador calculado para o Código de Cedente acima é 8
  # Obs.: se o resultado da subtração for maior que 9 (nove) o dígito será 0 (zero)
  pos: [73, 73]
  picture: '9(1)'

nome_empresa:
  # Nome que identifica a pessoa, física ou jurídica, a qual se quer fazer referência
  pos: [74, 103]
  picture: 'X(30)'

mensagem_1:
  # Mensagem 1 / 2
  # Texto referente a mensagens que serão impressas, em todos os bloquetos referentes ao mesmo lote, no
  # corpo de instruções da ficha de compensação e do recibo do sacado do bloqueto.
  # Estes campos não serão utilizados no arquivo retorno.
  pos: [104, 143]
  picture: 'X(40)'
  default: ''

mensagem_2:
  # Mensagem 1 / 2
  # Texto referente a mensagens que serão impressas, em todos os bloquetos referentes ao mesmo lote, no
  # corpo de instruções da ficha de compensação e do recibo do sacado do bloqueto.
  # Estes campos não serão utilizados no arquivo retorno.
  pos: [144, 183]
  picture: 'X(40)'
  default: ''

numero_sequencial_arquivo:
  # Número adotado e controlado pelo responsável pela geração magnética dos dados contidos no
  # arquivo para identificar a seqüência de envio ou devolução do arquivo entre o Cedente e o Banco
  # Cedente.
  pos: [184, 191]
  picture: '9(8)'

data_geracao:
  # Data da gravação do arquivo de remessa ou retorno. utilizar o formato DDMMAAAA, onde : dd = dia, mm = mês, aa = ano
  pos: [192, 199]
  picture: '9(8)'
  date_format: '%d%m%Y'

data_credito:
  # Data de efetivação do crédito referente ao pagamento do título de cobrança. Informação enviada somente
  # no arquivo de retorno. Utilizar o formato DDMMAAAA, onde: DD = dia, MM = mês, AAAA = ano
  pos: [200, 207]
  picture: '9(8)'
  date_format: '%d%m%Y'
  default: '0'

uso_exclusivo_febraban_02:
  # Texto de observações destinado para uso exclusivo da FEBRABAN.
  # Preencher com Brancos.
  pos: [208, 240]
  picture: 'X(33)'
  default: ''
