De acordo com o manual CNAB400, o documento do cedente será idenficado como:
4. Notas (1) TIPO/Nº DE INSCRIÇÃO DA EMPRESA/SACADOR TIPO INSCRIÇÃO NÚMERO DE INSCRIÇÃO
01 Nº DO CPF DO CEDENTE
02 Nº DO CNPJ DO CEDENTE
03 CPF DO SACADOR
04 CNPJ DO SACADOR Normalmente definem o tipo (CPF/CNPJ) e o número de inscrição do cedente. Se o título for negociado, deverão ser utilizados para indicar o CNPJ/CPF do sacador (cedente original), uma vez que os cartórios exigem essa informação para efetivação dos protestos. Para este fim, também poderá ser utilizado o registro tipo “5”.
Porém o banco manda o tipo de inscrição com o numero = 02 - como cnpj. Tenho retorno meu da minha conta física o cpf vem com formatação similar ao do cnpj, preenchido com zeros antes... Solução que arrumei: Acessei o arquivo .RET e troquei para 01 para funcionar... talvez se não houvesse a validação do cnpj/cpf ou até mesmo usar uma propriedade para ignorar certas discrepâncias vindas dos bancos.
No entanto, mesmo após colocar o 01 no arquivo, o mesmo insistia no erro de cnpj/cpf errado, pois o tipo de inscrição do cedente estava sendo trocado logo após a propriedade CNPJCPF ser trocado, com isso o evento Write da property aciona o SetCNPJCPF, que por sua vez faz a validação do dado informado.
O que fiz foi apenas inverter a linha onde seta o tipo de inscrição, fazendo o componente saber antes do CNPJ/CPF ser informado, que tipo de informação será validada.
Foi alterado no CNAB 240 e no 400.
Segue unit alterada do trunk2.
ACBrBancoItau.pas