Closed seventechsolucoes closed 6 years ago
Alguém pode me dar um ajuda ? Já tentei corrigir essas ocorrências e o banco está recusando o arquivo de remessa do Santander. Já foi recusado 3 vezes e cada vez retorna com ocorrências diferentes
Posta seu arquivo aqui para vermos
Olá @guilherme00 realizamos um ajuste no arquivo Registro3P para que o dígito do nosso número seja calculado automaticamente e com isso alguns dos erros que você mencionou deverão ser corrigidos.
Os demais sobre multas e juros são parâmetros que você está informando de forma equivocada.
Para auxiliar melhor peço que você informe se:
1 - Irá cobrar multas? 1.1 - Se sim, a partir de quando? 1.2 - Irá cobrar valor fixo de multa ou percentual e qual o seu respectivo valor
21 - Irá cobrar juros? 2.1 - Se sim, a partir de quando? 2.2 - Irá cobrar valor fixo de juro ou percentual e qual o seu respectivo valor
@Rctnet @gildonei Segue as ocorrências que o banco acusou e o código que estou utilizando
==> OCORRÊNCIAS 1- Registro inválido na linha 1. O tamanho do registro deve ser de 240 posições.
2 - Campo inválido na linha 1. Tipo de registro [Header de Arquivo]. O campo [Código de Transmissão], posição 33 a 47, deve ser [066000009452079. Definido em Cadastros > Empresas]. Valor atual [066000001300290].
3 - Campo inválido na linha 1. Tipo de registro [Header de Arquivo]. O campo [Reservado (uso Banco)], posição 48 a 72, deve ser [Brancos]. Valor atual [52 ].
4 - Campo inválido na linha 1. Tipo de registro [Header de Arquivo]. O campo [Código remessa], posição 143 a 143, deve ser [1]. Valor atual [ ].
5 - Campo inválido na linha 1. Tipo de registro [Header de Arquivo]. O campo [Data de geração do arquivo], posição 144 a 151, deve ser [DDMMAAAA]. Valor atual [ 1270420].
6 - Campo inválido na linha 1. Tipo de registro [Header de Arquivo]. O campo [Reservado (uso Banco)], posição 152 a 157, deve ser [Brancos]. Valor atual [18 ].
7 - Campo inválido na linha 1. Tipo de registro [Header de Arquivo]. O campo [Nº seqüencial do arquivo], posição 158 a 163, deve ser [diferente de zeros, maior que zero]. Valor atual [ 0000].
8 - Campo inválido na linha 1. Tipo de registro [Header de Arquivo]. O campo [Nº da versão do layout do arquivo], posição 164 a 166, deve ser [040] . Valor atual [340].
9 - Campo inválido na linha 1. Tipo de registro [Header de Arquivo]. O campo [Reservado (uso Banco)], posição 167 a 240, deve ser [Brancos]. Valor atual [40 ].
10 = Campo inválido na linha 3. Tipo de registro [Detalhe - Segmento P]. O campo [Espécie do título], posição 107 a 108, deve ser [02] DM Duplicata Mercantil ou [04] DS Duplicata de Serviço ou [07] LC - LETRA DE CÂMBIO (SOMENTE PARA BANCO 353) ou [12] NP Nota Promissória ou [13] NPR Nota Promissória Rural ou [17] RC Recibo ou [18] FAT Fatura ou [20] AP Apólice de Seguro ou [30] LC - LETRA DE CÂMBIO (SOMENTE PARA BANCO 008) ou [31] BCC - Boleto Cartão de crédito 'À partir de julho/2017' ou [32] BDP – BOLETO DE PROPOSTA ou [97] CH – CHEQUE ou [98] ND - NOTA PROMISSORIA DIRETA. Valor atual [01].
11 - Campo inválido na linha 3. Tipo de registro [Detalhe - Segmento P]. O campo [Código do juros de mora], posição 118 a 118, deve ser [1] Valor por dia - Informar no campo o valor/dia a mora a ser cobrada. ou [2] Taxa Mensal - Informar no campo taxa mensal o percentual a ser aplicado sobre valor do titulo que será calculado por dia de atraso. ou [3] Isento ou [4] Utilizar comissão permanência do Banco por dia de atraso ou [5] Tolerância valor por dia (cobrar juros a partir de) ou [6] Tolerância taxa mensal (cobrar juros a partir de). Valor atual [0].
12 - Campo inválido na linha 6. Tipo de registro [Detalhe - Segmento P]. O campo [Identificação do título no Banco], posição 45 a 57, Digito verificador inserido: 8, Digito verificador valido: 7 [Digito verificador do nosso número é invalido.]. Valor atual [0000000000338].
==> CÓDIGO public function gerar(){ $this->tipo = "remessa"; $this->data = date("Y-m-d"); $this->conteudo = ""; $this->path = ""; $this->status = 1;
$this->adicionar();
$responseEmpresa = $this->empresa->get(FALSE);
$agencia = explode("-", $responseEmpresa->agencia);
$conta = explode("-", $responseEmpresa->conta);
$contaFidc = explode("-", $responseEmpresa->contaFidc);
$arquivo = new Remessa("033", 'cnab240', array(
'nome_empresa' => $responseEmpresa->nomeFantasia, // seu nome de empresa
'tipo_inscricao' => 2, // 1 para cpf, 2 cnpj
'numero_inscricao' => $responseEmpresa->cnpj, // seu cpf ou cnpj completo
'agencia' => $agencia[0], // agencia sem o digito verificador
'agencia_dv' => $agencia[1], // somente o digito verificador da agencia
'conta' => $conta[0], // número da conta
'conta_dv' => $conta[1], // digito da conta
'codigo_beneficiario' => $conta[0],
'codigo_beneficiario_dv' => $conta[1], // codigo fornecido pelo banco
'codigo_transmissao' => $responseEmpresa->codigoTransmissao,
'numero_sequencial_arquivo' => $this->id,
'situacao_arquivo' =>'P' // use T para teste e P para produção
));
$lote = $arquivo->addLote(array('tipo_servico' => 1, 'codigo_transmissao' => $responseEmpresa->codigoTransmissao)); // tipo_servico = 1 para cobrança registrada, 2 para sem registro
$responseBoletos = $this->boleto->getByIdsParcelas($dados["boleto"], FALSE);
$idsBoletos = [];
foreach ($responseBoletos as $boleto) {
$lote->inserirDetalhe([
'conta_cobranca' => $conta[0], //1 = Entrada de título, para outras opções ver nota explicativa C004 manual Cnab_SIGCB na pasta docs
'codigo_movimento' => 1, //1 = Entrada de título, para outras opções ver nota explicativa C004 manual Cnab_SIGCB na pasta docs
'nosso_numero' => $boleto->nossoNumero, // numero sequencial de boleto
'seu_numero' => $boleto->idParcela, // numero sequencial de boleto
'especie_titulo' => "DM", // Valor do boleto como float valido em php
'valor' => $boleto->valor, // Valor do boleto como float valido em php
'emissao_boleto' => 2, // tipo de emissao do boleto informar 2 para emissao pelo beneficiario e 1 para emissao pelo banco
'nome_pagador' => $boleto->nome, // O Pagador é o cliente, preste atenção nos campos abaixo
'tipo_inscricao' => 1, //campo fixo, escreva '1' se for pessoa fisica, 2 se for pessoa juridica
'numero_inscricao' => $boleto->cpf, //cpf ou ncpj do pagador
'cidade_pagador' => $boleto->cidade,
'uf_pagador' => $boleto->uf,
'data_vencimento' => $boleto->vencimento, // informar a data neste formato
'data_emissao' => $boleto->dataEmissao, // informar a data neste formato
'endereco_pagador' => "Endereço",
'bairro_pagador' => 'Bairro',
'cep_pagador' => '00000-000', // com hífem
'mensagem' => "{$boleto->instrucao1}</br>"
. "{$boleto->instrucao2}</br>"
. "{$boleto->instrucao3}</br>"
. "{$boleto->instrucao4}</br>",
'vlr_juros' => 0, // Valor do juros de 1 dia'
'data_multa' => date("Y-m-d", strtotime("+30 days", strtotime($boleto->vencimento))), // informar a data neste formato, // data da multa
'vlr_multa' => 30.00, // valor da multa
'taxa_multa' => 2.00, // taxa de multa em percentual
'taxa_juros' => 4.00, // taxa de juros em percentual
]);
array_push($idsBoletos, $boleto->id);
}
$resultado = utf8_decode($arquivo->getText()); // observar a header do seu php para não gerar comflitos de codificação de caracteres;
$file = 'remessa-' . date("Y-m-d_H:i:s") . '.rem';
file_put_contents("./assets/arquivos/remessas/{$file}", $resultado);
if (file_exists("./assets/arquivos/remessas/{$file}")) {
$this->conteudo = $resultado;
$this->path = $file;
$this->status = 1;
$this->atualizar();
$this->boleto->baixaRemessa($idsBoletos, $this->data);
return ["resultado" => TRUE, "msg" => "Remessa gerada", "file" => $file];
} else {
return ["resultado" => FALSE, "msg" => "Falha ao gerar remessa"];
}
}
Respondendo as perguntas 1 - Sim, acredito que seja a mora diária após o vencimento 1.1 - No dia seguinte começa a cobrança da mora diária 1.2 - A cobrança de R$ 0,33 ao dia
2 - Sim 2.1 - Os juros serão cobrados 10 dias após o vencimento 2.2 - A cobrança será percentual. 2%
Olá @guilherme00 , os erros ali em cima são auto-explicativos, vou repassar o exemplo de uso que acredito será mais fácil para você.
O Código de Transmissão é enviado pelo Santander e para o layout de 240 posições deve ter a seguinte regra:
//AGÊNCIA(4 dígitos) + 0000 (zeros fixo) + CONVENIO (6 dígitos) + DV Convênio (1 dígito)
//Exemplo de código de transmissão:
//AG: 1234
//Fixo: 0000
//Convênio: 123456
//Dv Convênio: 7
//Código de Transmissão será: 123400001234567
$arquivo = new Remessa('033', 'cnab240', [
'nome_empresa' => 'nome da sua empresa',
'tipo_inscricao' => 2, // CNPJ
'numero_inscricao' => 'Número do CNPJ da empresa',
'codigo_transmissao' => 'Código de Transmissão',// seria o 123400001234567
'numero_sequencial_arquivo' => 'Código sequencial da sua remessa - pode ser o seu Id no banco de dados',
'situacao_arquivo' => 'T',
'agencia' => 'Agencia', // No exemplo seria 1234
'agencia_dv' => 'Dígito da agência',
'conta' => 'Número da conta no banco',
'conta_dv' => 'dv da conta no banco',
'codigo_beneficiario' => 'Convênio', // No exemplo seria 123456
'codigo_beneficiario_dv' => 'Dv do convênio', // No exemplo seria o 7
]);
$lote = $arquivo->addLote([
'tipo_servico'=> 1,
'codigo_transmissao' => 'Código de transmissao',// Seria 123400001234567
]);
// Aqui você esta tendo problemas com os itens
$detalhe = [
'tipo_cobranca' => 5, // Carteira 5 é a registro simples, o banco informa a correta
'nosso_numero' => 'código do seu boleto',
'seu_numero' => 'código do seu boleto',// Repete
'data_vencimento' => date('Y-m-d'),
'valor' => '100.00',
'data_emissao' => date('Y-m-d'),
'codigo_juros' => '2', // Taxa Mensal (veja que estou cobrando % de juro)
'data_juros' => date('Y-m-d'),
'vlr_juros' => '33.3', // Valor da mora/dia ou Taxa mensal (equivale a 0,033% por dia de JURO)
'codigo_multa' => 2, // Percentual
'data_multa' => $dtVencimento->format('Y-m-d'),
'vlr_multa' => '2',
'codigo_desconto' => '0', // Valor fixo ate a data informada – Informar o valor no campo "valor de desconto a ser concedido"
'data_desconto' => '0',
'vlr_desconto' => '0',
'protestar' => '0', // NÃO PROTESTAR
'prazo_protesto' => '0', // Informar o número de dias apos o vencimento para iniciar o protesto
'baixar' => '2', // NÃO BAIXAR
'prazo_baixar' => '0',
'nome_pagador' => 'Nome do Pagador',
'tipo_inscricao' => 'Tipo de pagador', // 1 - CPF | 2 CNPJ
'numero_inscricao' => 'Número do documento', // CPF ou CNPJ do pagador
'endereco_pagador' => 'Logradouro',
'bairro_pagador' => 'bairro',
'cep_pagador' => 'cep', // 00000-000
'cidade_pagador' => 'cidade',
'uf_pagador' => 'Sigla do Estado', // SC- por exemplo
];
$lote->inserirDetalhe($arrDetalhe);
// Continue normalmente
Você pode inserir isto dentro de um loop ou qualquer outra estrutura de controle que tiver, o principal está ali nos códigos de multa e juros q vc não está informando nos detalhes, além do código de transmissão.
@gildonei obrigado pelas instruções, vou aplicar as correções e dou um retorno.
@gildonei a remessa passou no teste do Santander, porém está dando inconsistência na linha digitável e no código de barras, não bateu com a remessa. Alguma chance do problema ser na geração da remessa ? Estou usando o OpenBoleto p/ geração de boletos
@guilherme00 A remessa não tem haver com o seu boleto. A remessa tem por finalidade apenas avisar ao banco os títulos que você deseja registrar para que o banco saiba de sua existência.
O problema está na sua biblioteca de geração de boleto.
Passe o link do projeto ou lib do OpenBoleto q vc está usando
Já utilizei este projeto com outros bancos e funcionou normalmente.
Certifique-se de estar informando os dados corretamente, em especial a carteira que para o Santander é diferente na Remessa e no Boleto. No boleto se não me engano a carteira é a 101, mas é bom confirmar com o banco.
Se possível imprima um boleto pelo sistema do banco e compare com o impresso pelo seu sistema próprio e coloque aqui a linha digitável, pois a representação do código de barras é padrão 2of5 independentemente do banco e é gerada a partir da linha digitável.
Se as linhas digitáveis forem iguais em ambos os bancos, o código de barras será o mesmo.
Não acredito que seja o OpenBoleto, em um outro projeto que me passaram como modelo utilizam o projeto e fazem a geração da remessa com o código próprio deles, a carteira é a mesma deles 101. Essa foi a inconsistência que acusaram.
A data de vencimento e nosso número do título é o mesmo no boleto e na remessa?
Lembre-se q na remessa o Nosso Número vai com DV que é calculado no módulo 11 já no boleto não deve constar esta informação.
Em 4 de maio de 2018 11:39, Guilherme Mateus notifications@github.com escreveu:
Não acredito que seja o OpenBoleto, em um outro projeto que me passaram como modelo utilizam o projeto e fazem a geração da remessa com o código próprio deles, a carteira é a mesma deles 101. Essa foi a inconsistência que acusaram.
[image: santander] https://user-images.githubusercontent.com/6888653/39633879-3e812762-4f87-11e8-91c1-5101a05bc1d9.png
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/QuilhaSoft/OpenCnabPHP/issues/65#issuecomment-386622372, or mute the thread https://github.com/notifications/unsubscribe-auth/ABTrY1T5GOiO1Lnam7Be10I0jiXMnNrwks5tvGgYgaJpZM4TigDQ .
Quando gero a remessa, preciso setar o Nosso Número com o Módulo 11 ?
Atualmente, quando gero o boleto eu pego o Nosso Número que ele gera e salvo no banco, na geração da remessa apenas recupero o Nosso Número que está salvo e seto no array do detalhe, está correto ?
O problema acho q está exatamente neste seu procedimento.
Imagine o seguinte, você tem uma Fatura (cobrança) em seu banco de dados, o ID (chave única e sequencial) dela é 3854, este valor você deve informar nos 2 casos:
A) Remessa no campo nosso_numero (3854) B) Boleto no campo *sequencial *(3854)
Se vc estiver informando valores diferentes você terá problemas inclusive na importação do retorno para realizar a compensação do seu título.
Em 4 de maio de 2018 14:49, Guilherme Mateus notifications@github.com escreveu:
Quando gero a remessa, preciso setar o Nosso Número com o Módulo 11 ?
Atualmente, quando gero o boleto eu pego o Nosso Número que ele gera e salvo no banco, na geração da remessa apenas recupero o Nosso Número que está salvo e seto no array do detalhe, está correto ?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/QuilhaSoft/OpenCnabPHP/issues/65#issuecomment-386677184, or mute the thread https://github.com/notifications/unsubscribe-auth/ABTrYw7ro23AqDqT33ixmAa0YfZFUDOcks5tvJSzgaJpZM4TigDQ .
Provável que seja essa trocar de informações que esteja dando inconsistência entre os boletos e a remessa. Uma dúvida, Quando gero o boleto eu informo o número sequencial do boleto no meu sistema (ID:123), quando informar na remessa basta informar o numero sequencial direto ("nosso_numero"=>123) ?
Exatamente, o nosso número para o boleto e a remessa devem ser exatamente os mesmos conforme você mencionou no seu exemplo.
Em 4 de maio de 2018 15:47, Guilherme Mateus notifications@github.com escreveu:
Provável que seja essa trocar de informações que esteja dando inconsistência entre os boletos e a remessa. Uma dúvida, Quando gero o boleto eu informo o número sequencial do boleto no meu sistema (ID:123), quando informar na remessa basta informar o numero sequencial direto ("nosso_numero"=>123) ?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/QuilhaSoft/OpenCnabPHP/issues/65#issuecomment-386698148, or mute the thread https://github.com/notifications/unsubscribe-auth/ABTrYxwvrtdutiptxKW8aEP5OWIEj3nYks5tvKJNgaJpZM4TigDQ .
@gildonei realmente parece ser algo na geração da remessa. Fiz o teste com o Nosso Número processado e com o Sequencial e o resultado na remessa foi similar e a ocorrência persistiu, em contato com o analista de implantação do banco, o nosso número está contendo um número a mais, exemplo O boleto gera o Nosso Número: 0000000000404 E a remessa: 00000000004049
Está aparecendo mais um dígito dando a entender que o Nosso Número seria 4049 ao invés de 404.
Aqui a geração do boleto p/ persistiu no banco $boleto = new Santander([ // Parâmetros obrigatórios 'dataVencimento' => new DateTime($dados["vencimento"]), 'valor' => $dados["valor"], 'sequencial' => $dados["idParcela"], // Até 13 dígitos 'sacado' => $sacado, 'cedente' => $cedente, 'agencia' => $agencia[0], // Até 4 dígitos 'carteira' => $responseEmpresa->carteira, // 101, 102 ou 201 'conta' => $responseEmpresa->codigoPsk, // Código do cedente: Até 7 dígitos // IOS – Seguradoras (Se 7% informar 7. Limitado a 9%) // Demais clientes usar 0 (zero) 'ios' => $responseEmpresa->ios, // Apenas para o Santander // Parâmetros recomendáveis 'logoPath' => base_url("assets/img/marca.png"), // Logo da sua empresa 'agenciaDv' => $agencia[1], 'contaDv' => $conta[1], 'descricaoDemonstrativo' => [// Até 5 "Parcela {$dados["parcela"]}/{$dados["totalParcelamento"]}", "Após vencimento, juros de 1,99% ao mês" ], 'instrucoes' => [// Até 8 "Parcela {$dados["parcela"]}/{$dados["totalParcelamento"]}", $dados["instrucao1"], $dados["instrucao2"], $dados["instrucao3"], $dados["instrucao4"] ] ]);
Aqui a geração da remessa $lote->inserirDetalhe([ 'especie_titulo' => "DS", 'tipo_cobranca' => 5, //COM O NOSSO NÚMERO PURO 'nosso_numero' => $boleto->nossoNumero, // numero sequencial de boleto 'seu_numero' => $boleto->nossoNumero, // numero sequencial de boleto //COM O CÓDIGO SEQUENCIAL DO BOLETO // 'nosso_numero' => $boleto->idParcela, // numero sequencial de boleto // 'seu_numero' => $boleto->idParcela, // numero sequencial de boleto 'data_vencimento' => $boleto->vencimento, // informar a data neste formato 'valor' => $boleto->valor, // Valor do boleto como float valido em php 'data_emissao' => $boleto->dataEmissao, // informar a data neste formato 'codigo_juros' => '2', 'data_juros' => date("Y-m-d", strtotime("+1 days", strtotime($boleto->vencimento))), 'vlr_juros' => "199", 'codigo_multa' => '2', 'data_multa' => date("Y-m-d", strtotime("+30 days", strtotime($boleto->vencimento))), 'vlr_multa' => 200, 'codigo_desconto' => '0', // Valor fixo ate a data informada – Informar o valor no campo "valor de desconto a ser concedido" 'data_desconto' => '0', 'vlr_desconto' => '0', 'protestar' => '0', // NÃO PROTESTAR 'prazo_protesto' => '0', // Informar o número de dias apos o vencimento para iniciar o protesto 'baixar' => '2', // NÃO BAIXAR 'prazo_baixar' => '0', 'nome_pagador' => $boleto->nome, // O Pagador é o cliente, preste atenção nos campos abaixo 'tipo_inscricao' => 1, //campo fixo, escreva '1' se for pessoa fisica, 2 se for pessoa juridica 'numero_inscricao' => $boleto->cpf, //cpf ou ncpj do pagador 'cidade_pagador' => $boleto->cidade, 'uf_pagador' => $boleto->uf, 'endereco_pagador' => "Endereço", 'bairro_pagador' => 'Bairro', 'cep_pagador' => '00000-000', // com hífem 'mensagem' => "Após vencimento, juros de 1,99% ao mês" ]);
Aqui as duas remessas geradas com o Nosso Número processado e com o Sequencial do boleto COM NOSSO NUMERO PROCESSADO.txt COM NUMERO SEQUENCIAL.txt
OI Guilherme, não esqueça que no Arquivo de Remessa é incluído o DV do nosso número que é calculado seguindo o módulo 11. Se você olhar na documentação do manual verá que deve ser incluído o DV e na documentação do projeto existe o arquivo calculadora do Santander onde vc informa o nosso número e ele irá lhe mostrar o DV.
A remessa e retorno estão corretas, eu implementei e utilizo eles. Inclusive foi homologada recentemente e adaptada junto com Rogério Muniz autor do projeto.
Em 7 de maio de 2018 11:49, Guilherme Mateus notifications@github.com escreveu:
@gildonei https://github.com/gildonei realmente parece ser algo na geração da remessa. Fiz o teste com o Nosso Número processado e com o Sequencial e o resultado na remessa foi similar e a ocorrência persistiu, em contato com o analista de implantação do banco, o nosso número está contendo um número a mais, exemplo O boleto gera o Nosso Número: 0000000000404 E a remessa: 00000000004049
Está aparecendo mais um dígito dando a entender que o Nosso Número seria 4049 ao invés de 404.
Aqui a geração do boleto p/ persistiu no banco $boleto = new Santander([ // Parâmetros obrigatórios 'dataVencimento' => new DateTime($dados["vencimento"]), 'valor' => $dados["valor"], 'sequencial' => $dados["idParcela"], // Até 13 dígitos 'sacado' => $sacado, 'cedente' => $cedente, 'agencia' => $agencia[0], // Até 4 dígitos 'carteira' => $responseEmpresa->carteira, // 101, 102 ou 201 'conta' => $responseEmpresa->codigoPsk, // Código do cedente: Até 7 dígitos // IOS – Seguradoras (Se 7% informar 7. Limitado a 9%) // Demais clientes usar 0 (zero) 'ios' => $responseEmpresa->ios, // Apenas para o Santander // Parâmetros recomendáveis 'logoPath' => base_url("assets/img/marca.png"), // Logo da sua empresa 'agenciaDv' => $agencia[1], 'contaDv' => $conta[1], 'descricaoDemonstrativo' => [// Até 5 "Parcela {$dados["parcela"]}/{$dados["totalParcelamento"]}", "Após vencimento, juros de 1,99% ao mês" ], 'instrucoes' => [// Até 8 "Parcela {$dados["parcela"]}/{$dados["totalParcelamento"]}", $dados["instrucao1"], $dados["instrucao2"], $dados["instrucao3"], $dados["instrucao4"] ] ]);
Aqui a geração da remessa
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/QuilhaSoft/OpenCnabPHP/issues/65#issuecomment-387089487, or mute the thread https://github.com/notifications/unsubscribe-auth/ABTrY3gp6N_N-HC8BkxSyNMZ2RduYpIVks5twF73gaJpZM4TigDQ .
Em contato com o Analista deles, a remessa está correta. O problema está na impressão do boleto mesmo, esse dígito verificador não está sendo gerado na linha digitável por isso a inconsistência. Mas sinceramente, não entendo por que está acusando essa ocorrência sendo que testei no outro sistema e o boleto não continua o DV na impressão do boleto.
@gildonei onde encontro no projeto essa calculadora, procurei e não encontrei
Ontem remessa e boletos foram aprovados pelo Santander, vamos avançar p/ os testes de retorno mas acredito que vá dar tudo certo. O problema estava no Nosso Número que vai no boleto, eu não sabia que o Sequencial deveria ir junto com o DV do Nosso Número. Assim que os testes forem concluídos dou um retorno p/ fechar esse tópico.
Boa tarde, estou com uma duvida, o codigo_juros no que estou fazendo porém ele não aparece na remessa 'codigo_juros' => array( 'tamanho' => 1, 'default' => '0', 'tipo' => 'int', 'required' => true ),
poderia me dar uma luz
Bom dia @insidewill , fiz um teste simples adicionando 'codigo_juros'=> 2, no array de inserirDetalhe e funcionou certingo.
Estranho, vou realizar novamente o teste e ver e retorno
Olá amigos, boa tarde, venho informar que a remessa foi homologada e colocada em produção, por falta de tempo ainda não pude ajudar na implementação do registro S, mas irei ajudar.
Obrigado a todos, sempre!
Boa tarde @insidewill , já atualizei a readme da biblioteca com a homologação do santander cnab240
Obrigado a todos vocês pela disposição e ajuda!
Não sei se aqui é o lugar certo p/ pedir ajudar mas se puderem me ajudar eu agradeço. Fiz o envio do arquivo remessa p/ banco p/ homologação e me retornaram às seguintes ocorrências. Estou usando o OpenBoleto p/ geração de boletos.
01 - Campo inválido na linha 3. Tipo de registro [Detalhe - Segmento P]. O campo [Identificação do título no Banco], posição 45 a 57, Digito verificador inserido: 4, Digito verificador valido: 0 [Digito verificador do nosso número é invalido.]. Valor atual [0000000000404].
02 - Campo inválido na linha 3. Tipo de registro [Detalhe - Segmento P]. O campo [Código do juros de mora], posição 118 a 118, deve ser [1] Valor por dia - Informar no campo o valor/dia a mora a ser cobrada. ou [2] Taxa Mensal - Informar no campo taxa mensal o percentual a ser aplicado sobre valor do titulo que será calculado por dia de atraso. ou [3] Isento ou [4] Utilizar comissão permanência do Banco por dia de atraso ou [5] Tolerância valor por dia (cobrar juros a partir de) ou [6] Tolerância taxa mensal (cobrar juros a partir de). Valor atual [0].
03 - Campo inválido na linha 5. Tipo de registro [Detalhe - Segmento P]. O campo [Identificação do título no Banco], posição 45 a 57, Digito verificador inserido: 5, Digito verificador valido: 0 [Digito verificador do nosso número é invalido.]. Valor atual [0000000000405].
04 - Campo inválido na linha 5. Tipo de registro [Detalhe - Segmento P]. O campo [Código do juros de mora], posição 118 a 118, deve ser [1] Valor por dia - Informar no campo o valor/dia a mora a ser cobrada. ou [2] Taxa Mensal - Informar no campo taxa mensal o percentual a ser aplicado sobre valor do titulo que será calculado por dia de atraso. ou [3] Isento ou [4] Utilizar comissão permanência do Banco por dia de atraso ou [5] Tolerância valor por dia (cobrar juros a partir de) ou [6] Tolerância taxa mensal (cobrar juros a partir de). Valor atual [0].
05 - Campo inválido na linha 7. Tipo de registro [Detalhe - Segmento P]. O campo [Identificação do título no Banco], posição 45 a 57, Digito verificador inserido: 6, Digito verificador valido: 0 [Digito verificador do nosso número é invalido.]. Valor atual [0000000000406].
06 - Campo inválido na linha 7. Tipo de registro [Detalhe - Segmento P]. O campo [Código do juros de mora], posição 118 a 118, deve ser [1] Valor por dia - Informar no campo o valor/dia a mora a ser cobrada. ou [2] Taxa Mensal - Informar no campo taxa mensal o percentual a ser aplicado sobre valor do titulo que será calculado por dia de atraso. ou [3] Isento ou [4] Utilizar comissão permanência do Banco por dia de atraso ou [5] Tolerância valor por dia (cobrar juros a partir de) ou [6] Tolerância taxa mensal (cobrar juros a partir de). Valor atual [0].