lucasgiovanny/laravel-serpro-datavalid

Laravel package to easily use Serpro Datavalid API

v1.0.0 2023-03-24 11:20 UTC

This package is auto-updated.

Last update: 2024-11-06 18:58:20 UTC


README

Laravel Serpro Datavalid

This package makes it easy to use Serpro Datavalid API with Laravel framework.

GitHub release (latest by date) GitHub

Contents

Installation

This package can be installed via composer:

composer require lucasgiovanny/laravel-serpro-datavalid

Usage

  1. Add your credentials to .env file
SERPRO_DATAVALID_CONSUMER_KEY=
SERPRO_DATAVALID_CONSUMER_SECRET=
SERPRO_DATAVALID_SANDBOX=false
  1. 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

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

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

Example:

use  LucasGiovanny\SerproDataValid\Person;

$validation = Person::validateGender("00000000000", "F"); // gender needs to be "F" or "M"
//return true or false;

isBrazilian

Example:

use  LucasGiovanny\SerproDataValid\Person;

$validation = Person::isBrazilian("00000000000");
//return true or false;

validateParentsName

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

Example:

use  LucasGiovanny\SerproDataValid\Person;

$validation = Person::isCPFRegular("00000000000");
//return true or false;

validatePhoto

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.