Business-ES-NIF
view release on metacpan or search on metacpan
lib/Business/ES/NIF.pm view on Meta::CPAN
package Business::ES::NIF;
# ABSTRACT: Validate Spanish NIF, NIE and CIF numbers
our $VERSION = '0.15';
use strict;
use warnings;
use Class::XSAccessor { accessors => [qw(error extra nif status type iso3166 provincia VIES vies_check vies_error)] };
use constant {
NIF_LETRAS => 'TRWAGMYFPDXBNJZSQVHLCKE',
CIF_LETRAS => 'JABCDEFGHI',
RE_CIF => qr/^([ABCDEFGHJPQRUVNW])([0-9]{7})([0-9])$/,
RE_CIFe => qr/^([SQPK])([0-9]{7})([A-J])$/,
RE_NIF => qr/^([0-9]{8})([A-Z])$/,
RE_NIFe => qr/^([KLM])([0-9]{7})([A-Z])$/,
RE_NIE => qr/^([XYZ])([0-9]{7})([A-Z])$/
};
use constant NIE_PREFIX => { X => '0', Y => '1', Z => '2' };
use constant CIF_EXTRA => {
'A' => 'Sociedad Anonima - S.A',
'B' => 'Sociedad Limitada - S.L',
'C' => 'Sociedad Colectiva - S.C',
'D' => 'Sociedades comanditarias',
'E' => 'Comunidad de bienes y herencias',
'F' => 'Sociedades cooperativas',
'G' => 'Asociaciones',
'H' => 'Comunidaddes de propietarios',
'J' => 'Sociedades civiles',
'P' => 'Corporaciones locales',
'Q' => 'Organismos publicos',
'N' => 'Entidades extranjeras',
'R' => 'Congregaciones e instituciones religiosas',
'U' => 'Uniones temporales de epresas',
'V' => 'Otros tipos de sociedades',
'W' => 'Establecimientos permanentes de entidades no residentes en España'
};
use constant CIFe_EXTRA => {
'S' => 'Ãrganos de la Administración del Estado',
'Q' => 'Organismos autónomos o instituciones religiosas',
'P' => 'Corporaciones locales',
'K' => 'Formato antiguo (DNI sin letra de control)'
};
use constant PROVINCIAS => {
'00' => 'No Residente',
'01' => 'Ãlava',
'02' => 'Albacete',
'03' => 'Alicante',
'04' => 'AlmerÃa',
'05' => 'Ãvila',
'06' => 'Badajoz',
'07' => 'Islas Baleares',
'08' => 'Barcelona',
'09' => 'Burgos',
'10' => 'Cáceres',
'11' => 'Cádiz',
'12' => 'Castellón',
'13' => 'Ciudad Real',
'14' => 'Córdoba',
'15' => 'La Coruña',
'16' => 'Cuenca',
'17' => 'Gerona',
'18' => 'Granada',
'19' => 'Guadalajara',
'20' => 'Guipúzcoa',
'21' => 'Huelva',
'22' => 'Huesca',
'23' => 'Jaén',
'24' => 'León',
'25' => 'Lérida',
'26' => 'La Rioja',
'27' => 'Lugo',
'28' => 'Madrid',
'29' => 'Málaga',
'30' => 'Murcia',
'31' => 'Navarra',
'32' => 'Orense',
'33' => 'Asturias',
'34' => 'Palencia',
'35' => 'Las Palmas',
'36' => 'Pontevedra',
'37' => 'Salamanca',
'38' => 'Santa Cruz de Tenerife',
'39' => 'Cantabria',
'40' => 'Segovia',
'41' => 'Sevilla',
'42' => 'Soria',
'43' => 'Tarragona',
'44' => 'Teruel',
'45' => 'Toledo',
'46' => 'Valencia',
'47' => 'Valladolid',
'48' => 'Vizcaya',
'49' => 'Zamora',
'50' => 'Zaragoza',
'51' => 'Ceuta',
'52' => 'Melilla',
'53' => 'Alicante',
'54' => 'Alicante',
'55' => 'Gerona',
( run in 1.366 second using v1.01-cache-2.11-cpan-ceb78f64989 )