{"id":18991548,"url":"https://github.com/juniorb2ss/zservices","last_synced_at":"2026-03-06T14:34:54.811Z","repository":{"id":52416750,"uuid":"57456585","full_name":"juniorb2ss/zServices","owner":"juniorb2ss","description":"Serviços de pesquisas nos portais federais e estaduais do Brasil.","archived":false,"fork":false,"pushed_at":"2021-04-29T20:18:04.000Z","size":114,"stargazers_count":13,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-29T14:41:34.070Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/juniorb2ss.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-04-30T18:39:32.000Z","updated_at":"2018-11-21T19:42:40.000Z","dependencies_parsed_at":"2022-09-11T19:22:59.673Z","dependency_job_id":null,"html_url":"https://github.com/juniorb2ss/zServices","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juniorb2ss%2FzServices","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juniorb2ss%2FzServices/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juniorb2ss%2FzServices/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juniorb2ss%2FzServices/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/juniorb2ss","download_url":"https://codeload.github.com/juniorb2ss/zServices/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249260556,"owners_count":21239610,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T17:14:12.499Z","updated_at":"2026-03-06T14:34:54.764Z","avatar_url":"https://github.com/juniorb2ss.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# zServices\n[![Laravel 5](https://img.shields.io/badge/Laravel-5-green.svg)](https://laravel.com)\n[![Latest Stable Version](https://poser.pugx.org/zservices/query/v/stable)](https://packagist.org/packages/zservices/query) [![Total Downloads](https://poser.pugx.org/zservices/query/downloads)](https://packagist.org/packages/zservices/query) [![Latest Unstable Version](https://poser.pugx.org/zservices/query/v/unstable)](https://packagist.org/packages/zservices/query) [![License](https://poser.pugx.org/zservices/query/license)](https://packagist.org/packages/zservices/query)\n[![Build Status](https://api.travis-ci.org/juniorb2ss/zServices.svg?branch=master)](https://travis-ci.org/juniorb2ss/zServices)\n[![Dependency Status](https://gemnasium.com/badges/github.com/juniorb2ss/zServices.svg)](https://gemnasium.com/github.com/juniorb2ss/zServices)\n[![Issues Status](https://img.shields.io/github/issues/juniorb2ss/zServices.svg)](https://github.com/juniorb2ss/zServices/issues)\n[![Stars Status](https://img.shields.io/github/stars/juniorb2ss/zServices.svg)](https://github.com/juniorb2ss/zServices/stargazers)\n[![Code Climate](https://codeclimate.com/github/juniorb2ss/zServices/badges/gpa.svg)](https://codeclimate.com/github/juniorb2ss/zServices)\n[![Issue Count](https://codeclimate.com/github/juniorb2ss/zServices/badges/issue_count.svg)](https://codeclimate.com/github/juniorb2ss/zServices)\n[![Test Coverage](https://codeclimate.com/github/juniorb2ss/zServices/badges/coverage.svg)](https://codeclimate.com/github/juniorb2ss/zServices/coverage)\n[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/juniorb2ss/zServices/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/juniorb2ss/zServices/?branch=master)\n\nPacote para buscar informações nos serviços federais e estaduais do Brasil\n\nÉ feito uma requisição no serviço, retornando `cookie` e `captcha` do serviço. Após usuário informar\no captcha é feito outra requisição, retornando informações do CNPJ.\n\nEste pacote deverá ser usado com responsabilidade, o autor e contribuidores não devem responder pelas implementações/ações feita com este pacote.\n\n### Atenção\n\nEste pacote foi desenvolvido com o intuito de facilidade consultas através de ERP ou serviços que necessitam de consistência de dados. Não foi criado com o intuito de ser utilizado como `bot`\n\nToda implementação será de sua responsabilidade.\n\n### Quebra Automática de Captcha\nFoi desenvolvido um pacote que facilita na resolução automática do captcha, faça o uso de sua responsabilidade.\n\nEste pacote já possui referencia para tal.\n\nExemplo:\n\n```php\nuse zServices\\ReceitaFederal\\Search as ReceitaFederal;\n\n$service = (new ReceitaFederal)-\u003eservice(); \n$request = $service-\u003erequest(); // inicia requisição na receita federal\n\n$cookie = $request-\u003ecookie();\n$captcha = $request-\u003ecaptcha();\n\n$document = '54787138000101' // CNPJ\n$decaptcher = (new \\Captcha\\DeathByCaptcha\\Service)-\u003ecredentials('yourLogin', 'yourPassword');\n$service-\u003edecaptcher($decaptcher); // Passa o serviço que será usado para quebra do captcha\n$array = $search-\u003edata($cnpj, $cookie, $captcha, [])-\u003escraping(); // após alguns segundos ele retorna array com as informações da entidade.\n```\n\nO pacote por enquanto apenas possui implementação do `DeathByCaptcha`, que é um serviço pago, porém valor muito baixo por pacote de captcha resolvido.\nVisite o site e adquire um plano.\n\n### Version Stable\n1.2.4\n\n### Instalação\n\n```sh\n$ composer require zservices/query 1.*\n```\n### Laravel 5\nConfigure os providers e aliases em `config/app.php`\n```php\n'providers' =\u003e [\n    // ....\n      zServices\\Laravel\\ServicesProvider::class,\n    //...\n];\n\n'aliases' =\u003e [\n    //...\n    'Sintegra' =\u003e zServices\\Laravel\\SintegraFacade::class,\n    'ReceitaFederal' =\u003e zServices\\Laravel\\ReceitaFederalFacade::class,\n    //...\n];\n```\n```php\nuse ReceitaFederal;\n$service = ReceitaFederal::service()-\u003erequest();\n\nreturn view('receitafederal.query.example',[\n    'cookie' =\u003e $service-\u003ecookie(),\n    'image'  =\u003e $service-\u003ecaptcha()\n]);\n```\n### Exemplos\n#### Receita Federal\n\n```php\n$rf = receitaFederal(); // retornará um array com cookie e base64 captcha\n```\n\nPara requisitar os dados\n```php\n$rf = receitaFederal($cnpj, $cookie, $captcha); // retornará um array com os dados do CNPJ na Receita Federal\n```\nou\n```php\nuse zServices\\ReceitaFederal\\Search as ReceitaFederal;\n$search = (new ReceitaFederal)-\u003eservice()-\u003erequest(); // initialize\n\n$captchaBase64Image = $search-\u003ecaptcha(); // captura base64_decode da imagem\n$cookieRequest = $search-\u003ecookie(); // captura o cookie do request iniciado\n\n```\n\nDados após o form\n```php\n// Requisitar dados\nuse zServices\\ReceitaFederal\\Search as ReceitaFederal;\n\n$search = (new ReceitaFederal)-\u003eservice();\n$crawler = $search-\u003edata($cnpj, $cookie, $captcha, []);\n$arrayData = $crawler-\u003escraping(); // array com as informações da entidade\n```\nPara consultar receita federal basta pegar o cookie e a imagem do captcha, após resolver o captcha é preciso\nretornar o cookie e a string resolvida para o serviço, ele deverá retornar um array associado com as informações\ndo CNPJ informado.\n#### Sintegra SP\n\nHelper\n\n```php\n$rf = sintegra(); // retornará um array com cookie e base64 captcha\n```\n\nPara requisitar os dados\n```php\n$rf = sintegra($cnpj, $cookie, $captcha, $params); // retornará um array com os dados do documento no Sintegra\n```\nou\n\n```php\nuse zServices\\Sintegra\\Search as Sintegra;\n$search = (new Sintegra)-\u003eservice('SP')-\u003erequest(); // initialize\n\n$captchaBase64Image = $search-\u003ecaptcha(); // captura base64_decode da imagem\n$cookieRequest = $search-\u003ecookie(); // captura o cookie do request iniciado\n$params = $search-\u003eparams(); // captura o valor dos inputs\n$paramBot = $params['parambot']; // captura parambot\n\n```\n\nDados após o form\n```php\n// Requisitar dados\nuse zServices\\Sintegra\\Search as Sintegra;\n\n$search = (new Sintegra)-\u003eservice('SP');\n$crawler = $search-\u003edata($cnpj, $cookie, $captcha, $paramBot);\n$arrayData = $crawler-\u003escraping(); // array com as informações da entidade\n\n```\nO portal do sintega de SP além do captcha possui um valor no formulário com nome de `paramBot`. Este valor é único por requisição, não por cookie. Então para que a requisição funcione corretamente é preciso pegar e devolver ele nas requisições posteriores.\n\nO método `$search-\u003eparams()` devolve um array com os inputs que são necessários devolver, que no caso do sintegra de sp é apenas `paramBot`. Este valor deverá ser inserido em seu formulário e devolvido como array associado na requisição das informações da entidade.\n\n### Retornos\nImagem de exemplo com as informações de retorno do serviço.\n#### Receita Federal\n![Retorno](https://camo.githubusercontent.com/50a04fb56500e16b07deb7afceeccb16bfc3809a/687474703a2f2f7333322e706f7374696d672e6f72672f7236306775726467352f53637265656e73686f745f66726f6d5f323031365f30345f32385f31385f34335f31332e706e67)\n#### Sintegra SP\n![Retorno](https://uploaddeimagens.com.br/images/000/612/350/original/Screenshot_from_2016-05-01_16-51-52.png?1462132324)\n\n\n### Desenvolvimento\nDeseja contribuir com desenvolvimento? pull request :)\n\n### To-do\n\nLicense\n----\nMIT\n\n**Free Software, Hell Yeah!**\n\n[//]: # (These are reference links used in the body of this note and get stripped out when the markdown processor does its job. There is no need to format nicely because it shouldn't be seen. Thanks SO - http://stackoverflow.com/questions/4823468/store-comments-in-markdown-syntax)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuniorb2ss%2Fzservices","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjuniorb2ss%2Fzservices","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuniorb2ss%2Fzservices/lists"}