Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Codigos corretos de baixa (liquidação) #72

Open
wants to merge 10 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 4 additions & 8 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
# Vim
*.swp
*.swo
bin
vendor
composer.phar
phpunit.xml
.idea/
composer.lock
nbproject
vendor/
bin/
tests/*
Empty file modified LICENSE
100755 → 100644
Empty file.
12 changes: 11 additions & 1 deletion README.md
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,24 @@ Projeto para criar arquivos de remessas e processar arquivos de retorno no forma
| Bradesco | | 240 |
| Caixa | 240 | 240 e 400 |
| Itaú | 400 | 400 |
| Santander | | 240 |
| Santander | 240 | 240 |

## Instalação
### Composer
Se você já conhece o **Composer**, adicione a dependência abaixo à diretiva *"require"* no seu **composer.json**:
```
"andersondanilo/cnab_php": "1.3.*"
```
Além disso adicione esse repositório:
```
"repositories": [
{
"type": "vcs",
"url": "https://github.com/Pandora-una/CnabPHP.git"
}
]
```


## Como Usar
### Lendo um arquivo de Retorno
Expand Down
21 changes: 21 additions & 0 deletions cnab_yaml/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
The MIT License (MIT)

Copyright (c) 2014 Anderson Danilo

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
78 changes: 78 additions & 0 deletions cnab_yaml/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
cnab_yaml
=========

O Objetivo deste projeto é fornecer arquivos Yaml com a estrutura dos arquivos Cnab240 e Cnab400, atualmente temos os Cnab240 da Caixa e o Cnab400 da Caixa e do Itaú

Como posso contribuir
---------------------
Você pode contribuir lendo a documentação do seu banco e criando um arquivo yaml com base nela

E para que isso serve?
----------------------
Esse projeto é usado para ser base para outros projeto, como por exempo o CnabPHP, cnab_python e
muitos outros que poderão ser criados a partir deste projeto

O que eu preciso saber
----------------------
* Utilizamos nomes simples para o campo, por exemplo para "Código do banco" utilize o "codigo_banco" (com underline e sem o "do")
* Para definir o tipo do campo utilizamos uma Picture

O que é uma Picture
-------------------
Essa Picture foi baseada na documentação do itaú, disponível em http://download.itau.com.br/bankline/layout_cobranca_400bytes_cnab_itau_mensagem.pdf

Cada registro é formado por campos que são apresentados em dois formatos:
* Alfanumérico (picture X): alinhados à esquerda com brancos à direita. Preferencialmente, todos os caracteres devem ser maiúsculos. Aconselhase a não utilização de caracteres especiais (ex.: “Ç”, “?”,, etc) e acentuação gráfica (ex.: “Á”, “É”, “Ê”, etc) e os campos não utiliza dos deverão ser preenchidos com brancos.
* Numérico (picture 9): alinhado à direita com zeros à esquerda e os campos não utilizados deverão ser preenchidos com zeros. - Vírgula assumida (picture V): indica a posição da vírgula dentro de um campo numérico. E xemplo: num campo com picture “9(5)V9(2)”, o número “876,54” será representado por “0087654”

Exemplo de Arquivo
------------------
```yaml
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
```
72 changes: 72 additions & 0 deletions cnab_yaml/cnab240/001/header_arquivo.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# Com base na documentação do banco do brasil
# disponível em: http://www.bb.com.br/docs/pub/emp/empl/dwn/CbrVer04BB.pdf

codigo_convenio:
# Código de convênio no Banco
# O código de convênio é composto pelo número do contrato do cliente junto
# ao Banco no sistema PAG com tamanho 9 e com '0' (Zeros) a esquerda e mais
# 11 espaços em branco.
#
# O contrato deve estar cadastrado no PAG (Pagamentos a terceiros) no
# serviço 30 (Pagamentos de títulos do Banco do Brasil) e no serviço 31
# (Pagamentos de títulos de outros bancos).
pos: [33, 41]
picture: '9(9)'

cobranca_cedente:
# Informar 0014 para cobrança cedente
pos: [42, 45]
picture: '9(4)'
default: 14

carteira:
pos: [46, 47]
picture: '9(2)'

variacao_carteira:
pos: [48, 50]
picture: '9(3)'

uso_exclusivo_bb_01:
pos: [51, 52]
picture: 'X(2)'
default: ''

conta:
pos: [59, 70]
picture: '9(12)'

conta_dv:
pos: [71, 71]
picture: 'X(1)'

agencia_mais_cedente_dv:
# Campo não tratado pelo Banco do Brasil. Informar 'branco' (espaço) OU zero.
pos: [72, 72]
picture: 'X(1)'
default: ''

uso_exclusivo_febraban_03:
pos: [212, 222]
picture: 'X(11)'
default: ''

identificacao_cobranca_sem_papel:
pos: [223, 225]
picture: 'X(3)'
default: ''

controle_vans:
pos: [226, 228]
picture: '9(3)'
default: '0'

tipo_servico:
pos: [229, 230]
picture: '9(2)'
default: '0'

ocorrencias:
pos: [231, 240]
picture: '9(10)'
default: '0'
54 changes: 54 additions & 0 deletions cnab_yaml/cnab240/001/header_lote.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
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 de convênio no Banco
# O código de convênio é composto pelo número do contrato do cliente junto
# ao Banco no sistema PAG com tamanho 9 e com '0' (Zeros) a esquerda e mais
# 11 espaços em branco.
#
# O contrato deve estar cadastrado no PAG (Pagamentos a terceiros) no
# serviço 30 (Pagamentos de títulos do Banco do Brasil) e no serviço 31
# (Pagamentos de títulos de outros bancos).
pos: [34, 42]
picture: '9(9)'

cobranca_cedente:
# Informar 0014 para cobrança cedente
pos: [43, 46]
picture: '9(4)'
default: 14

carteira:
pos: [47, 48]
picture: '9(2)'

variacao_carteira:
pos: [49, 51]
picture: '9(3)'

remessa_teste:
pos: [52, 53]
picture: 'X(2)'
default: ''

conta:
pos: [60, 71]
picture: '9(12)'

conta_dv:
pos: [72, 72]
picture: 'X(1)'

agencia_mais_conta_dv:
pos: [73, 73]
picture: 'X(1)'
default: ''

data_credito_obsoleto:
# Campo não tradado pelo banco do brasil
pos: [200, 207]
picture: '9(8)'
default: '0'
52 changes: 52 additions & 0 deletions cnab_yaml/cnab240/001/remessa/detalhe_segmento_p.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
conta:
pos: [24,35]
picture: '9(12)'

conta_dv:
pos: [36,36]
picture: '9(1)'

agencia_mais_conta_dv:
# Campo não tratado pelo Banco do Brasil. Informar 'branco' (espaço) OU zero
pos: [37,37]
picture: 'X(1)'
default: ''

nosso_numero:
# 1. Caso seja o Banco do Brasil quem gera o "Nosso Número", informar 'brancos' (espaços) ou Zeros.
# 2. Caso seja a empresa quem gera o "Nosso Número", informar de acordo com o número do convênio de
# cobrança conforme as seguintes regras:
# a) Para número de convênio de 4 posições (carteira 17 até 9.999) informar o nosso número com
# 11 posições mais o DV (dígito verificador), sendo as 4 primeiras posições o número do convênio,
# as 7 posições seguintes um número sequencial para controle e mais o DV.
# Exemplo: CONVÊNIOS DE 0001 ATÉ 9.999
# 123412345671
# CCCCSSSSSSSD
# Onde: C = Convênio S = Sequencial D = dígito verificador
# b) Para número de convênio de 6 posições (de 10.000 a 999.999), informar o nosso número com
# 11 posições mais o DV, sendo as 6 primeiras posições o número do convênio, as 5 posições
# seguintes um número sequencial para controle e mais o DV.
# Exemplo: CONVÊNIOS DE 010.000 ATÉ 999.999
# 123456123451
# CCCCCCSSSSSD
# Onde: C = Convênio S = Sequencial D = dígito verificador
# c) Para número de convênio de 7 posições (acima de 1.000.000) informar o nosso número com
# 17 posições sem DV, sendo as 7 primeiras posições o número do convênio e as 10 posições seguintes
# um número sequencial para controle. Esse é o padrão mais utilizado atualmente.
# Exemplo: CONVÊNIOS DE 1.000.000 ATÉ 9.999.999
# 12345671234567890
# CCCCCCCSSSSSSSSSS
# Onde: C = Convênio S = Sequencial
# Importante:
# todos os "nosso número" devem ser alinhados à esquerda com brancos à direita.
pos: [38, 57]
picture: 'X(20)'

numero_documento:
# Número adotado e controlado pelo Cliente, para identificar o título de cobrança.
# Poderá conter número de duplicata, no caso de cobrança de duplicatas; número da apólice, no caso de
# cobrança de seguros, etc. Campo de preenchimento obrigatório.
pos: [63,77]
picture: 'X(15)'


30 changes: 30 additions & 0 deletions cnab_yaml/cnab240/001/trailer_lote.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Registro Trailer de Lote
# Com base na documentação do banco do brasil
# disponível em: http://www.bb.com.br/docs/pub/emp/empl/dwn/CbrVer04BB.pdf

codigo_banco:
pos: [1, 3]
picture: '9(3)'

lote_servico:
pos: [4, 7]
picture: '9(4)'

tipo_registro:
pos: [8, 8]
picture: '9(1)'
default: '5'

uso_exclusivo_febraban_01:
pos: [9, 17]
picture: 'X(9)'
default: ''

qtde_registro_lote:
pos: [18, 23]
picture: '9(6)'

uso_exclusivo_febraban_02:
pos: [24, 240]
picture: 'X(217)'
default: ''
Loading