Skip to content

Criando um arquivo de remessa

Andre Goncalves edited this page Jul 6, 2022 · 1 revision

Conceitos

O que é um detalhe?

Um detalhe é um boleto, mas você pode ter diversas ações para este boleto, por exemplo:

  • Entrada de Título (Envia o boleto para o banco)
  • Pedido de Baixa (Significa que o cliente pagou a dívida diretamente a você, portanto o banco pode descartar o registro deste boleto)
  • Protestar (Protesta o boleto manualmente)
  • Diversas outras opções estão disponíveis na documentação que o banco oferece.

Porque eu devo enviar o boleto para o banco?

Esta opção não é necessária para boletos sem registros, porém enviando para o banco você pode:

  • Disponibilizar o pagamento do boleto atráves do DDA (Débito Direto Autorizado)
  • Solicitar a impressão e envio do mesmo para o cliente pelo banco
  • Protestar o boleto vencido
  • Outras opções de acordo com o seu banco.

Instalando o CnabPHP

composer require andersondanilo/cnab_php

Eu não usava o composer

Para instalar a biblioteca você vai ter que ter instalado no seu computador o composer, o que é o composer? consulte em: https://getcomposer.org/doc/00-intro.md

Agora você vai ter que usar, após instalar segundo as instruções no site, execute o seguinte comando:

Obs: dependendo da sua instalação você vai ter que chamar "composer.phar" ao invés de "composer".

Se você não usava composer, você vai observar que foram criados os seguintes arquivos.

  • vendor (guarda todas as suas bibliotecas do composer)
  • composer.json (especifica quais bibliotecas o seu sistema usa)

Você terá que incluir o autoload no seu projeto, como no exemplo abaixo

Criando um arquivo de remessa

criar_remessa.php

include 'vendor/autoload.php';

$codigo_banco = Cnab\Banco::ITAU;
$arquivo = new Cnab\Remessa\Cnab400\Arquivo($codigo_banco);
$arquivo->configure(array(
    'data_geracao'  => new DateTime(),
    'data_gravacao' => new DateTime(), 
    'nome_fantasia' => 'Nome Fantasia da sua empresa', // seu nome de empresa
    'razao_social'  => 'Razão social da sua empresa',  // sua razão social
    'cnpj'          => '111', // seu cnpj completo
    'banco'         => $codigo_banco, //código do banco
    'logradouro'    => 'Logradouro da Sua empresa',
    'numero'        => 'Número do endereço',
    'bairro'        => 'Bairro da sua empresa', 
    'cidade'        => 'Cidade da sua empresa',
    'uf'            => 'Sigla da cidade, ex SP',
    'cep'           => 'CEP do endereço da sua cidade',
    'agencia'       => '1111', 
    'conta'         => '22222', // número da conta
    'conta_dac'     => '2', // digito da conta
));

// você pode adicionar vários boletos em uma remessa
$arquivo->insertDetalhe(array(
    'codigo_de_ocorrencia' => 1, // 1 = Entrada de título, futuramente poderemos ter uma constante
    'nosso_numero'      => '1234567',
    'numero_documento'  => '1234567',
    'carteira'          => '109',
    'especie'           => Cnab\Especie::ITAU_DUPLICATA_DE_SERVICO, // Você pode consultar as especies Cnab\Especie
    'valor'             => 100.39, // Valor do boleto
    'instrucao1'        => 2, // 1 = Protestar com (Prazo) dias, 2 = Devolver após (Prazo) dias, futuramente poderemos ter uma constante
    'instrucao2'        => 0, // preenchido com zeros
    'sacado_nome'       => 'Nome do cliente', // O Sacado é o cliente, preste atenção nos campos abaixo
    'sacado_tipo'       => 'cpf', //campo fixo, escreva 'cpf' (sim as letras cpf) se for pessoa fisica, cnpj se for pessoa juridica
    'sacado_cpf'        => '111.111.111-11',
    'sacado_logradouro' => 'Logradouro do cliente',
    'sacado_bairro'     => 'Bairro do cliente',
    'sacado_cep'        => '11111222', // sem hífem
    'sacado_cidade'     => 'Cidade do cliente',
    'sacado_uf'         => 'SP',
    'data_vencimento'   => new DateTime('2014-06-08'),
    'data_cadastro'     => new DateTime('2014-06-01'),
    'juros_de_um_dia'     => 0.10, // Valor do juros de 1 dia'
    'data_desconto'       => new DateTime('2014-06-01'),
    'valor_desconto'      => 10.0, // Valor do desconto
    'prazo'               => 10, // prazo de dias para o cliente pagar após o vencimento
    'taxa_de_permanencia' => '0', //00 = Acata Comissão por Dia (recomendável), 51 Acata Condições de Cadastramento na CAIXA
    'mensagem'            => 'Descrição do boleto',
    'data_multa'          => new DateTime('2014-06-09'), // data da multa
    'valor_multa'         => 10.0, // valor da multa
));

// para salvar
$arquivo->save('meunomedearquivo.txt');