pfrug/validate-document-uy

Library to validate Uruguayan identity documents (CI numbers)

v3.0 2025-05-06 20:12 UTC

This package is auto-updated.

Last update: 2025-05-07 17:47:58 UTC


README

A Laravel 11+ package for validating Uruguayan identity documents (Cédula de Identidad). Supports validation via rule class or shorthand string rule (validate_ci), includes localization support and random generation for testing.

Installation

composer require pfrug/validate-document-uy

Register the service provider

In bootstrap/app.php:

use Pfrug\ValidateDocumentUy\Providers\ValidateDocumentUyServiceProvider;

->withProviders([
    ValidateDocumentUyServiceProvider::class,
])

Usage

Validation via string rule

$request->validate([
    'document' => 'required|validate_ci',
]);

Validation via rule class

use Pfrug\ValidateDocumentUy\Rules\ValidUruguayanCiRule;

$request->validate([
    'document' => ['required', new ValidUruguayanCiRule()],
]);

Using the facade

use Pfrug\ValidateDocumentUy\Facades\ValidateDocumentUy;

ValidateDocumentUy::isValid('12345672'); // true
ValidateDocumentUy::controlDigit('1234567'); // returns 2
ValidateDocumentUy::generateRandomDocument(); // returns a valid CI string

Translations

Validation messages are available in English and Spanish.

To publish the translation files:

php artisan vendor:publish --tag=validate-document-uy

The files will be located in:

resources/lang/vendor/validate-document-uy/en/validation.php
resources/lang/vendor/validate-document-uy/es/validation.php

Tests

vendor/bin/phpunit

Includes unit and feature tests for all validation cases.

Directory structure

src/
├── Facades/
│   └── ValidateDocumentUy.php
├── Providers/
│   └── ValidateDocumentUyServiceProvider.php
├── Rules/
│   └── ValidUruguayanCiRule.php
├── Services/
│   └── UruguayanCiValidator.php
├── Support/
│   └── ValidatesUruguayanCi.php

License

This package is open-sourced software licensed under the MIT license.