lucasgiovanny / laravel-serpro-datavalid
Laravel package to easily use Serpro Datavalid API
Fund package maintenance!
lucasgiovanny
Installs: 55
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 2
Open Issues: 0
pkg:composer/lucasgiovanny/laravel-serpro-datavalid
Requires
- php: ^8.0
- guzzlehttp/guzzle: ^7.5
- illuminate/support: ^9.0|^10.0
Requires (Dev)
- laravel/pint: ^1.7
- orchestra/testbench: ^7.0
- pestphp/pest: ^1.22
README
This package makes it easy to use Serpro Datavalid API with Laravel framework.
Contents
Installation
This package can be installed via composer:
composer require lucasgiovanny/laravel-serpro-datavalid
Usage
- Add your credentials to
.envfile
SERPRO_DATAVALID_CONSUMER_KEY=
SERPRO_DATAVALID_CONSUMER_SECRET=
SERPRO_DATAVALID_SANDBOX=false
- To use this package, you just need to import the Person Facades.
use LucasGiovanny\SerproDataValid\Person;
Available methods
rawValidation: Make a raw validation with any data you need to validate according to Datavalid API Docs.validateName: Returns whether the name belongs to the CPF and its rate of assertiveness.validateGender: Returns whether the CPF has this gender.isBrazilian: Returns whether the person to whom this CPF belongs is Brazilian or not.validateParentsName: Returns whether the parents name belongs to the CPF and its rate of assertiveness.isCPFRegular: Returns if CPF is regular with Brazilian government.validatePhoto: Returns if the person in the photo is the person that owns this CPF number.
rawValidation
| Param | Type |
|---|---|
| cpf | string (required) |
| answers | array (required) |
Example:
use LucasGiovanny\SerproDataValid\Person; $data = [ 'nome' => "João da Silva", 'sexo' => 'M' 'situacao_cpf' => 'regular', ]; $validation = Person::rawValidation("00000000000", $data);
Please, see the Data Valid API docs for a list of all the propriety that can be checked.
validateName
| Param | Type |
|---|---|
| cpf | string (required) |
| name | string (required) |
| getSimilarity | bool (default: false) |
Example:
use LucasGiovanny\SerproDataValid\Person; $validation = Person::validateName("00000000000", "João da Silva"); //return true or false; $validation = Person::validateName("00000000000", "João da Silva", true); //return an object, like: // $validation->nome = true; // $validation->nome_similaridade = 0.99
validateGender
| Param | Type |
|---|---|
| cpf | string (required) |
| gender | string (required) |
Example:
use LucasGiovanny\SerproDataValid\Person; $validation = Person::validateGender("00000000000", "F"); // gender needs to be "F" or "M" //return true or false;
isBrazilian
| Param | Type |
|---|---|
| cpf | string (required) |
Example:
use LucasGiovanny\SerproDataValid\Person; $validation = Person::isBrazilian("00000000000"); //return true or false;
validateParentsName
| Param | Type |
|---|---|
| cpf | string (required) |
| parents | array (required) |
| getSimilarity | bool (default: false) |
Example:
use LucasGiovanny\SerproDataValid\Person; $parents = [ 'mother_name' => 'Eurica Magalhães Souza'; 'father_name' => 'Frederico Fagundes Souza'; ]; // you can check just one of the names $validation = Person::validateParentsName("00000000000", $parents); //return an object with "mother_name" and "father_name" true or false values; $validation = Person::validateParentsName("00000000000", $parents, true); //return an object with "mother_name" and "father_name" true or false values, //and "mother_name_similarity" and "father_name_similarity" numbers, //just like in validateName method.
isCPFRegular
| Param | Type |
|---|---|
| cpf | string (required) |
Example:
use LucasGiovanny\SerproDataValid\Person; $validation = Person::isCPFRegular("00000000000"); //return true or false;
validatePhoto
| Param | Type |
|---|---|
| cpf | string (required) |
| photo | string (required) |
Example:
use LucasGiovanny\SerproDataValid\Person; $validation = Person::validatePhoto("00000000000", base64_encode($photo)); //return true or false;
Changelog
Please see CHANGELOG for more information what has changed recently.
Testing
Test needs to be written. Feel free to collaborate.
Security
If you discover any security related issues, please email lucasgiovanny@gmail.com instead of using the issue tracker.
Contributing
Please see CONTRIBUTING for details.
Credits
License
The MIT License (MIT). Please see License File for more information.
