function buscacependereco(url, endereco, numero, bairro, cidade, uf, idpessoa = null, obj = null) {
    var url = decodeEntities(url);
    
    if (url) {
        console.log("url: " + url);
        console.log("idpessoa: " + idpessoa);

        // busca cep por rua
        $.ajax({
            type: "POST",
            crossDomain: true,
            dataType: 'jsonp',
            url: url,
            success: function (response) {
                var cep = null;
                var dados = eval(response);
                if (Array.isArray(dados) && dados.length > 0) {
                    console.log("Dados 1:");
                    console.log(dados);

                    $.ajax({
                        type: "POST",
                        crossDomain: true,
                        dataType: 'jsonp',
                        url: '/api/cep',
                        data: {
                            idpessoa: idpessoa,
                            numero: numero,
                            dados: dados[0]
                        },
                        success: function (data) {
                            if (data == 'erro') {
                                console.log("Dados 2:");
                                console.log(JSON.stringify(dados));
                            } else {
                                cep = data.cep;
                                if (obj) {
                                    obj.val(data.cep);
                                }
                                console.log("Dados 3:");
                                console.log(JSON.stringify(data));
                            }
                        }
                    });

                    // cep por rua falhou
                } else {
                    console.log( 'https://' + $(location).attr('hostname') + '/cadastro/pessoa/update?id=' + idpessoa);
                    console.log('erro busca por rua');
                    //retorna url busca cep por cidade

                    $.ajax({
                        type: "POST",
                        crossDomain: true,
                        dataType: 'jsonp',
                        url: '/api/cep',
                        data: {
                            idpessoa: idpessoa,
                            localidade: cidade,
                            uf: uf
                        },
                        success: function (data) {
                            if (data == 'erro') {
                                console.log("Dados 4:");
                                console.log(JSON.stringify(dados));
                            } else if (data.url) {
                                // retorna url
                                console.log("url:" + url);
                                // busca cep por cidade
                                $.ajax({
                                    type: "POST",
                                    crossDomain: true,
                                    dataType: 'jsonp',
                                    url: url,
                                    success: function (data) {
                                        var cep = null;
                                        var dados = eval(response);
                                        if (Array.isArray(dados) && dados.length > 0) {
                                            console.log("Dados 5:");
                                            console.log(dados);


                                            $.ajax({
                                                type: "POST",
                                                crossDomain: true,
                                                dataType: 'jsonp',
                                                url: '/api/cep',
                                                data: {
                                                    idpessoa: idpessoa,
                                                    numero: numero,
                                                    dados: dados[0]
                                                },
                                                success: function (data) {
                                                    if (data == 'erro') {
                                                        console.log("Dados 6:");
                                                        console.log(JSON.stringify(dados));
                                                    } else {
                                                        cep = data.cep;
                                                        if (obj) {
                                                            obj.val(data.cep);
                                                        }
                                                        console.log("Dados 7:");
                                                        console.log(JSON.stringify(data));
                                                    }
                                                }
                                            });

                                        } else {
                                            console.log(data);
                                            console.log('erro log por cidade');
                                        }
                                    }
                                });
                            }
                        }
                    });

                }
            },
            error: function (response) {
                console.log("erro:");
                console.log(response.responseJSON);
            }
        });

    }

}