PHPackages                             assurance-maladie/nir-validation - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Validation &amp; Sanitization](/categories/validation)
4. /
5. assurance-maladie/nir-validation

ActiveProject[Validation &amp; Sanitization](/categories/validation)

assurance-maladie/nir-validation
================================

Ce composant fournit une validation des valeurs selon les données d'identification française

v2.0.0(1y ago)948.3k↓81.6%4[3 issues](https://github.com/assurance-maladie-digital/nir-validation/issues)[3 PRs](https://github.com/assurance-maladie-digital/nir-validation/pulls)MITPHPPHP ^8.1CI passing

Since Mar 11Pushed 2mo ago5 watchersCompare

[ Source](https://github.com/assurance-maladie-digital/nir-validation)[ Packagist](https://packagist.org/packages/assurance-maladie/nir-validation)[ RSS](/packages/assurance-maladie-nir-validation/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (5)Dependencies (4)Versions (8)Used By (0)

Règles de validation pour un NIR
================================

[](#règles-de-validation-pour-un-nir)

Ce dépôt à pour but de proposer des contraintes sur la représentation des données d'identification française.

Nous proposons plusieurs règles :

- Numéro d'Inscription au Répertoire (NIR)
- Numéro National Provisoire (NNP)
- Migrant de passage (MIG)
- Numéro Identifiant d'Attente (NIA)

Utilisation
-----------

[](#utilisation)

### PHP natif

[](#php-natif)

Cette partie explique comment utiliser les fonctionnalités du validateur.

L'exemple suivant montre comment valider un NIR :

```
use Cnamts\Nir\Constraints\Nir;
use Symfony\Component\Validator\Validation;

$validator = Validation::createValidator();
$violations = $validator->validate('2 84 05 88 321 025 30', [new Nir()]);

if (count($violations) !== 0) {
    echo '';
    foreach ($violations as $violation) {
        echo ''.$violation->getMessage().'';
    }
    echo '';
}
```

### Symfony

[](#symfony)

Toutes les contraintes ont été intégrées pour pouvoir être utilisées dans tous les formats supportés par Symfony :

#### Attributs

[](#attributs)

```
// src/Entity/User.php
namespace App\Entity;

// ...
use Cnamts\Nir\Constraints as Assert;

class User
{
    #[Assert\Nir]
    private $identifier;
}
```

#### YAML

[](#yaml)

```
# config/validator/validation.yaml
App\Entity\User:
    properties:
        identifier:
            - Nir: ~
```

#### XML

[](#xml)

```

```

#### PHP

[](#php)

```
// src/Entity/User.php
namespace App\Entity;

// ...
use Cnamts\Nir\Constraints\Nir;
use Symfony\Component\Validator\Mapping\ClassMetadata;

class User
{
    private $identifier;

    public static function loadValidatorMetadata(ClassMetadata $metadata)
    {
        $metadata->addPropertyConstraint('identifier', new Nir());
    }
}
```

Contraintes
-----------

[](#contraintes)

### Numéro d'Inscription au Répertoire (NIR)

[](#numéro-dinscription-au-répertoire-nir)

Le NIR est un numéro à treize caractères dont la composition est définie par l'article 4 du décret n° 82-103 du 22 janvier 1982.

### Numéro National Provisoire (NNP)

[](#numéro-national-provisoire-nnp)

Le NNP est attribué aux personnes nées à l'étranger qui n'ont jamais été immatriculées dans le système français. Les NNP ont officiellement disparu au 31 décembre 2022.

### Migrant de passage (MIG)

[](#migrant-de-passage-mig)

Pour créer dans le Référentiel Individus (RFI) les individus présents dans les Bases de Données Opérantes (BDO) en tant que membres de la famille d'un migrant de passage, il est nécessaire de leur attribuer un numéro de type "Migrant", unique au niveau national.

### Numéro d'Ummatriculation d'Attente (NIA)

[](#numéro-dummatriculation-dattente-nia)

Le NIA, mis en place en 2016, a pour objectif de remplacer les numéros provisoires (NNP) créés de manière indépendante par les caisses.
Il améliore la gestion de l'identification en instaurant un numéro provisoire unique et partagé entre tous les Organismes de Protection Sociale.

###  Health Score

47

—

FairBetter than 93% of packages

Maintenance58

Moderate activity, may be stable

Popularity38

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 78.9% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~237 days

Total

5

Last Release

628d ago

Major Versions

v1.3.0 → v2.0.02024-10-14

PHP version history (2 changes)v1.0.0PHP ^7.3||^8.0

v2.0.0PHP ^8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/2c6b866d060534e3a421ccec3aac9d956397071e47e3c4762af6af4a8a721e37?d=identicon)[digitalCnamTL](/maintainers/digitalCnamTL)

---

Top Contributors

[![roukmoute](https://avatars.githubusercontent.com/u/2140469?v=4)](https://github.com/roukmoute "roukmoute (15 commits)")[![damienalexandre](https://avatars.githubusercontent.com/u/225704?v=4)](https://github.com/damienalexandre "damienalexandre (3 commits)")[![SVillette](https://avatars.githubusercontent.com/u/17042730?v=4)](https://github.com/SVillette "SVillette (1 commits)")

### Embed Badge

![Health badge](/badges/assurance-maladie-nir-validation/health.svg)

```
[![Health](https://phpackages.com/badges/assurance-maladie-nir-validation/health.svg)](https://phpackages.com/packages/assurance-maladie-nir-validation)
```

###  Alternatives

[easycorp/easyadmin-bundle

Admin generator for Symfony applications

4.3k17.9M388](/packages/easycorp-easyadmin-bundle)[api-platform/core

Build a fully-featured hypermedia or GraphQL API in minutes!

2.6k51.2M339](/packages/api-platform-core)[drupal/core

Drupal is an open source content management platform powering millions of websites and applications.

21866.0M1.7k](/packages/drupal-core)[rcsofttech/audit-trail-bundle

Enterprise-grade, high-performance Symfony audit trail bundle. Automatically track Doctrine entity changes with split-phase architecture, multiple transports (HTTP, Queue, Doctrine), and sensitive data masking.

1189.8k](/packages/rcsofttech-audit-trail-bundle)[api-platform/serializer

API Platform core Serializer

274.8M87](/packages/api-platform-serializer)[api-platform/validator

API Platform validator component

274.6M27](/packages/api-platform-validator)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
