Sim utilizando a API free oficial, esta funcionando perfeitamente, de ontem pra hoje dei uma melhorada nela, encapsulando. segue a unit.
Fiz uma função para chamar.
function TfrmPessoas.ConsultarCNPJ(const CNPJ: string): TCNPJInfo;
begin
Result := TCNPJInfo.Create;
try
Result.Consultar(CNPJ);
except
on E: Exception do
begin
// Trate as exceções, se necessário.
ShowMessage('Erro ao consultar CNPJ: ' + E.Message);
Result.Free; // Libere a instância em caso de erro.
Result := nil; // Defina o resultado como nulo em caso de erro.
end;
end;
end;
// MODO DE USAR...
InfoCNPJ := ConsultarCNPJ(DM.TiraPontos(txtDocumento.Text)); // Substitua pelo CNPJ desejado.
if InfoCNPJ.Achou = 'Sim' then
begin
// achou
end
else
// não achou...
espero ter ajudado, qualquer duvida ou melhorias é bem vinda...
CNPJInfo.pas