Bom dia,
Não sei se aqui seria o melhor lugar para colocar isso, mas não quis abrir uma nova discussão sobre o assunto.
por isso procurei uma que já estive em aberto.
O retorno de erro do Consulta CPF está muito genérico e as vezes causa confusão.
Um erro muito comum é a digitação errada da data de nascimento e o site da receita retorna esse erro
porém no acbr ele apenas retorna que não foi possível buscar os dados.
eu modifiquei aqui na nossa empresa pra ele retornar que a data foi digitada errada,
caso queiram replicar para o fonte oficial ou melhorar o que eu fiz acredito que seria um bom acréscimo
para o componente.
if Erro = '' then
begin
Result:= True;
Resposta := TStringList.Create;
try
Resposta.Text := StripHTML(RespHTTP.Text);
RemoveEmptyLines( Resposta );
//DEBUG:
//Resposta.SaveToFile('C:\temp\cpf.txt');
FCPF := LerCampo(Resposta,'No do CPF:');
FNome := LerCampo(Resposta,'Nome da Pessoa Física:');
FDataNascimento := LerCampo(Resposta,'Data de Nascimento:');
FSituacao := LerCampo(Resposta,'Situação Cadastral:');
FEmissao := LerCampo(Resposta,'Comprovante emitido às:');
FCodCtrlControle := LerCampo(Resposta,'Código de controle do comprovante:');
FDigitoVerificador := LerCampo(Resposta,'Digito Verificador:');
//coloquei aqui pra capturar se o erro é de data caso o nome esteja vazio
if Trim(FNome) = '' then
begin
Erro := LerCampo(Resposta,'Data de nascimento informada');
if Trim(Erro) <> '' then
Erro := 'Erro de data';
end;
//fim da adição de código
finally
Resposta.Free;
end ;
//caso tenha capturado o erro de data ele da raise
if Trim(Erro) = 'Erro de data' then
raise EACBrConsultaCPFException.Create('Data de nascimento divergente da base da Receita Federal.');
// fim da adição de código
if Trim(FNome) = '' then
raise EACBrConsultaCPFException.Create('Não foi possível obter os dados.');