/// <summary> /// Consulta o CNPJ especifico. /// </summary> /// <param name="cnpj">O CNPJ.</param> /// <param name="captcha">O captcha.</param> /// <returns>Dados da empresa.</returns> public ACBrEmpresa Consulta(string cnpj, string captcha = "") { Guard.Against <ACBrException>(cnpj.IsEmpty(), "Necessário informar o CNPJ."); Guard.Against <ACBrException>(!cnpj.IsCNPJ(), "CNPJ inválido."); if (captcha.IsEmpty() && OnGetCaptcha != null) { var e = new CaptchaEventArgs(); OnGetCaptcha.Raise(this, e); captcha = e.Captcha; } Guard.Against <ACBrException>(captcha.IsEmpty(), "Necessário digitar o captcha."); var request = GetClient(urlBaseReceitaFederal + paginaValidacao); var postData = new Dictionary <string, string> { { "origem", "comprovante" }, { "cnpj", cnpj.OnlyNumbers() }, { "txtTexto_captcha_serpro_gov_br", captcha }, { "submit1", "Consultar" }, { "search_type", "cnpj" } }; var retorno = request.SendPost(postData); Guard.Against <ACBrCaptchaException>(retorno.Contains("Imagem com os caracteres anti robô"), "Catpcha errado."); Guard.Against <ACBrException>(retorno.Contains("Erro na Consulta"), "Erro na Consulta."); Guard.Against <ACBrException>(retorno.Contains("Verifique se o mesmo foi digitado corretamente"), $"Não existe no Cadastro de Pessoas Jurídicas o número de CNPJ informado.{Environment.NewLine}Verifique se o mesmo foi digitado corretamente."); Guard.Against <ACBrException>(retorno.Contains("a. No momento não podemos atender a sua solicitação. Por favor tente mais tarde."), "Erro no site da receita federal. Tente mais tarde."); return(ProcessResponse(retorno)); }
/// <summary> /// Consultas the specified CNPJ. /// </summary> /// <param name="uf"></param> /// <param name="cnpj">The CNPJ.</param> /// <param name="ie">The ie.</param> /// <param name="captcha">The captcha.</param> /// <returns>ACBrEmpresa.</returns> public ACBrEmpresa Consulta(ConsultaUF uf, string cnpj = "", string ie = "", string captcha = "") { Guard.Against <ACBrException>(ie.IsEmpty() && cnpj.IsEmpty(), "É necessário informar o CNPJ ou o Número da Inscrição Estadual."); var consultaSintegra = GetConsulta(uf); if (captcha.IsEmpty() && OnGetCaptcha != null && consultaSintegra.HasCaptcha) { var e = new CaptchaEventArgs(); OnGetCaptcha.Raise(this, e); captcha = e.Captcha; } Guard.Against <ACBrCaptchaException>(captcha.IsEmpty() && consultaSintegra.HasCaptcha, "O captcha não pode ser vazio."); return(consultaSintegra.Consulta(cnpj, ie, captcha)); }
/// <summary> /// Consulta o CPF especifico. /// </summary> /// <param name="cpf">O CPF.</param> /// <param name="dataNascimento">A Data de Nascimento.</param> /// <param name="captcha">O captcha.</param> /// <returns>Dados da pessoa.</returns> public ACBrPessoa Consulta(string cpf, DateTime dataNascimento, string captcha = "") { Guard.Against <ACBrException>(cpf.IsEmpty(), "Necessário informar o CPF."); Guard.Against <ACBrException>(dataNascimento == DateTime.MinValue, "Necessário informar a data de nascimento."); Guard.Against <ACBrException>(!cpf.IsCPF(), "CPF inválido."); if (captcha.IsEmpty() && OnGetCaptcha != null) { var e = new CaptchaEventArgs(); OnGetCaptcha.Raise(this, e); captcha = e.Captcha; } Guard.Against <ACBrException>(captcha.IsEmpty(), "Necessário digitar o captcha."); var request = GetClient(urlBaseReceitaFederal + paginaValidacao); request.KeepAlive = false; var postData = new Dictionary <string, string>(); postData.Add("TxtCPF", cpf.FormataCPF()); postData.Add("txtDataNascimento", dataNascimento.ToShortDateString()); postData.Add("txtToken_captcha_serpro_gov_br", ""); postData.Add("txtTexto_captcha_serpro_gov_br", captcha); postData.Add("Enviar", "Consultar"); var retorno = request.SendPost(postData, Encoding.UTF8); Guard.Against <ACBrCaptchaException>(retorno.Contains("Os caracteres da imagem não foram preenchidos corretamente."), "Os caracteres da imagem não foram preenchidos corretamente."); Guard.Against <ACBrException>(retorno.Contains("O número do CPF não é válido."), "EO número do CPF não é válido. Verifique se o mesmo foi digitado corretamente."); Guard.Against <ACBrException>(retorno.Contains("Não existe no Cadastro de Pessoas Jurídicas o número de CPF informado."), $"Não existe no Cadastro de Pessoas Jurídicas o número de CPF informado.{Environment.NewLine}Verifique se o mesmo foi digitado corretamente."); Guard.Against <ACBrException>(retorno.Contains("a. No momento não podemos atender a sua solicitação. Por favor tente mais tarde."), "Erro no site da receita federal. Tente mais tarde."); return(new ACBrPessoa(retorno)); }