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-05-06 17:48:44 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

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.