dbemfica/cnab_yaml

此包最新版本(1.3.0)没有可用的许可信息。

Cnab240和Cnab400格式规范翻译为Yaml

维护者

详细信息

github.com/dbemfica/cnab_yaml

源代码

安装: 17

依赖: 0

建议: 0

安全: 0

星标: 0

关注者: 2

分支: 76

1.3.0 2016-04-02 17:59 UTC

This package is auto-updated.

Last update: 2024-08-29 04:53:37 UTC


README

本项目的目标是提供Cnab240和Cnab400文件结构的Yaml文件,目前我们有Caixa的Cnab240和Caixa及Itaú的Cnab400。

如何贡献

您可以通过阅读您银行的文档并基于它创建一个yaml文件来贡献。

这有什么用?

此项目被用作其他项目的基座,例如CnabPHP、cnab_python以及其他可能从此项目衍生出来的许多项目。

我需要了解什么

  • 我们使用简单的字段名,例如对于“银行代码”使用“codigo_banco”(下划线和“do”省略)。
  • 我们使用一个Picture来定义字段的类型。

什么是Picture

这个Picture基于Itaú的文档,可在以下链接找到:http://download.itau.com.br/bankline/layout_cobranca_400bytes_cnab_itau_mensagem.pdf

每个记录由两个字段组成,分别以两种格式呈现

  • 字母数字(picture X):左对齐,右对齐空白。建议所有字符都使用大写字母。建议不使用特殊字符(例如:“Ç”,“?”, 等)和图形化重音符号(例如:“Á”,“É”,“Ê”,等),并且未使用的字段应以空白填充。
  • 数值(picture 9):右对齐,左对齐零。未使用的字段应以零填充。- 假定逗号(picture V):指示数字字段中逗号的位置。例如:在“9(5)V9(2)”的数字字段中,“876,54”将被表示为“0087654”。

文件示例

generic:
  # 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)' # isso significa: campo númerico, 3 digitos, preenchido com 0 a direita

  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)'

104:
  # Os seguintes campos são exclusivos da Caixa econômica federal (Código do Banco: 104)
  data_exemplo:
    pos: [8, 15]
    picture: '9(8)'
    date_format: '%d%m%Y' # mesmo padrão usado por linguagens como python e ruby

  valor_exemplo:
    pos: [16, 25]
    picture: '9(8)V9(2)' # isso significa 8 posições para a numero inteiro, mais 2 posições para as casas decimais

341:
  # Os seguintes campos são exclusivos do Itaú (Código do Banco 341)

  data_exemplo:
    pos: [8, 13]
    picture: '9(6)'
    date_format: '%d%m%y'

  outro_campo:
    pos: [14, 15]
    picture: 'X(2)' # Isso significa campo de texto com 2 caracteres (preenchido com espaço a direita)
    default: 'T' # Valor padrão do campo