changes from 1.14 to 1.15
-------------------------

* Add modules for the following number formats:

  - CUI or CIF (Codul Unic de Înregistrare, Romanian company identifier)
  - PEID (Liechtenstein tax code for individuals and entities)
    (thanks Matthias Schmid)
  - ЄДРПОУ, EDRPOU (Identifier for enterprises and organizations in Ukraine)
    (thanks Leandro Regueiro)
  - РНОКПП, RNTRC (Individual taxpayer registration number in Ukraine)
    (thanks Leandro Regueiro)

* Make list of EU member states part of public API
* Retain RO prefix in Romanian VAT numbers
* Support international VAT numbers that are only valid with country prefix
* Expanded validation for Belgian VAT numbers
* Use ABN as Australian VAT number
* Remove GB from EU member states


changes from 1.13 to 1.14
-------------------------

* Add modules for the following number formats:

  - УНП, UNP (Учетный номер плательщика, the Belarus VAT number)
  - AIC (Italian code for identification of drugs) (thanks Fabrizio Montanari)
  - Company Number (מספר חברה, or short ח.פ. Israeli company number)
    (thanks Leandro Regueiro)
  - NIT (Número de Identificación Tributaria, El Salvador tax number)
    (thanks Leandro Regueiro)
  - USCC (Unified Social Credit Code, 统一社会信用代码, China tax number)
    (thanks Leandro Regueiro)
  - UEN (Singapore's Unique Entity Number) (thanks Leandro Regueiro)
  - BRN (사업자 등록 번호, South Korea Business Registration Number)
    (thanks Leandro Regueiro)
  - MST (Mã số thuế, Vietnam tax number) (thanks Leandro Regueiro)
  - NPWP (Nomor Pokok Wajib Pajak, Indonesian VAT Number)
    (thanks Leandro Regueiro)
  - UBN (Unified Business Number, 統一編號, Taiwanese tax number)
    (thanks Leandro Regueiro)
  - UTR (United Kingdom Unique Taxpayer Reference) (thanks Mohammed Salman)
  - ONRC (Ordine din Registrul Comerţului, Romanian Trade Register identifier)
    (thanks dotbit1)
  - GS1-128 (Standard to encode product information in Code 128 barcodes)
    (thanks Sergi Almacellas Abellana)
  - VATIN (International value added tax identification number)
    (thanks Leandro Regueiro)

* Fix missing Dominican Republic NCF document types (thanks Gustavo Valverde)
* Fix issue with extra plus or minus in Swedish Personnummer
  (thanks balderman)
* Update Dominican Republic DGII endpoint (thanks Gustavo Valverde)
* Support validating temporary Finnish personal identity codes
  (thanks Aleksi Hoffman)
* Fix misleading docstring in se.personnummer.get_birth_date()
  (thanks Leon Sandøy)
* Improve birth date validation in Danish CPR (thanks Leon Sandøy)
* Add birth date validating in Norwegian Fødselsnummer (thanks Leon Sandøy)
* Add missing vat aliases for a number of countries (thanks Leandro Regueiro)
* Use HTTPS instead of HTTP fox VIES lookups (thanks grzekru)
* Switch to HTTPS URLs where possible
* Support 6 as third digit in Ecuadorian CI (thanks Christopher Ormaza)
* Add an online check for South Korean BRN
* Fix unescaping in Dominican Republic RNC online check (thanks evaldez89)
* Support foreign residents for Romanian CNP (thanks dotbit1)


changes from 1.12 to 1.13
-------------------------

* Add modules for the following number formats:

  - ESR, ISR, QR-reference (reference number on Swiss payment slips)
    (thanks Kurt Keller)
  - ID number (South African Identity Document number)

* Add format function for ISO 11649 numbers (thanks Kurt Keller)
* Add support for Python 3.8 (thanks Sergi Almacellas Abellana)
* Clarify that the Italian Codice Fiscale can also be the IVA for companies
  (thanks Nicholas Fiorentini)
* Support the new Dutch btw-identificatienummer (thanks Cas Vissers,
  Jeroen van Heiningen, Jerome Hanke, Nicolas Martinelli, Ronald Portier and
  Tim Muller)
* Extend test for Argentinian CUIT to check first two digits
* Add more country codes to ISIN (thanks nocluebutalotofit, Anwar Baroudi and
  alexbond73)


changes from 1.11 to 1.12
-------------------------

* Add modules for the following number formats:

  - NRT (Número de Registre Tributari, Andorra tax number)
    (thanks Leandro Regueiro)
  - CPF (Cédula de Persona Física, Costa Rica physical person ID number)
    (thanks Leandro Regueiro)
  - CPJ (Cédula de Persona Jurídica, Costa Rica tax number)
    (thanks Leandro Regueiro)
  - CR (Cédula de Residencia, Costa Rica foreigners ID number)
    (thanks Leandro Regueiro)
  - NIT (Número de Identificación Tributaria, Guatemala tax number)
    (thanks Leandro Regueiro)
  - Identity Number (Mispar Zehut, מספר זהות, Israeli identity number)
  - CN (法人番号, hōjin bangō, Japanese Corporate Number)
    (thanks Alan Hettinger)
  - RRN (South Korean resident registration number)
    (thanks Dimitri Papadopoulos)
  - IRD number (New Zealand Inland Revenue Department (Te Tari Tāke) number)
    (thanks Leandro Regueiro)
  - CUI (Cédula Única de Identidad, Peruvian identity number)
  - RUC (Registro Único de Contribuyentes, Peruvian company tax number)
  - RUC number (Registro Único de Contribuyentes, Paraguay tax number)
    (thanks Leandro Regueiro)
  - VKN (Vergi Kimlik Numarası, Turkish tax identification number)
    (thanks Leandro Regueiro)
  - RUT (Registro Único Tributario, Uruguay tax number)
    (Leandro Regueiro)
  - RIF (Registro de Identificación Fiscal, Venezuelan VAT number)
    (thanks Kevin Kaiser)
  - TIN (South African Tax Identification Number) (thanks Leandro Regueiro)

* Support GTIN (EAN-14) validation as part of EAN
  (thanks Sergi Almacellas Abellana)
* Support Dominican Republic e-CF within NCF (thanks Jeffry Jesus De La Rosa)
* Fix Dominican Republic DGII lookups of NCF (thanks Jeffry Jesus De La Rosa)
* Fix German Handelsregisternummer to not confuse Hamburg with Homburg and to
  accept shorter numbers (thanks Kevin Kaiser)
* Support lookups of German Handelsregisternummer in OffeneRegister.de web
  service
* Handle - and + sign correctly in Swedish Personnummer
  (thanks Amin Solhizadeh)
* Provide various personalid and vat aliases for existing numbers
  (thanks Andreas Häber)
* Improve descriptions of Spanish codes (thanks Gerard Dalmau)
* Fix handling and normalisation of various Unicode digit representations
  (thanks Helge Munk Jacobsen)


changes from 1.10 to 1.11
-------------------------

* Add modules for the following number formats:

  - DNI (Documento Nacional de Identidad, Argentinian national identity nr.)
  - VNR, SVNR, VSNR (Versicherungsnummer, Austrian social security number)
  - NI (Número de identidad, Cuban identity card numbers)
  - AMKA (Αριθμός Μητρώου Κοινωνικής Ασφάλισης, Greek social security number)
  - Asmens kodas (Lithuanian, personal numbers)
  - MAC address (Media Access Control address)
  - IDNO (Moldavian company identification number)
  - CURP (Clave Única de Registro de Población, Mexican personal ID)
  - Fødselsnummer (Norwegian birth number, the national identity number) (thanks Ilya Vihtinsky)
  - New Zealand bank account number
  - Personnummer (Swedish personal identity number) (thanks Ilya Vihtinsky)

* Code style improvements
* Change Dominican Republic DGII check URL to HTTPS (thanks Gustavo Valverde)
* Support Ecuadorian Cedula and RUC of foreigners (thanks Christopher Ormaza)
* Add format() function for Argentinian CUIT number (thanks Mario Puntin)
* Support passing formatted numbers to all get_birth_date() and similar functions
* Handle Dominican Republic DGII lookup returning multiple entities (thanks Andrés R)


changes from 1.9 to 1.10
------------------------

* Add modules for the following number formats:

  - Bitcoin address
  - ISO 11649 (Structured Creditor Reference)
  - ID number (Mauritian national identifier)
  - Norwegian IBAN (International Bank Account Number)
  - Konto nr. (Norwegian bank account number)

* Fix a bug in handling of Mexican tax numbers
* Improve Spanish CIF and NIF validation
* Update Dominican Republic NCF numbers online check
* Improve Unicode conversion for bytestrings
* Improvements to some corner cases in IBAN validation
* Documentation improvements
* Add stdnum.ru.vat as an alias for stdnum.ru.inn


changes from 1.8.1 to 1.9
-------------------------

* Add modules for the following number formats:

  - Postleitzahl (Austrian postal code)
  - Abgabenkontonummer (Austrian tax identification number)
  - Belgian IBAN (International Bank Account Number)
  - Handelsregisternummer (German company register number)
  - St.-Nr. (Steuernummer, German tax number)
  - FIGI (Financial Instrument Global Identifier)
  - Montenegro IBAN (International Bank Account Number)

* Have documentation rebuilt reproducibly (thanks Chris Lamb)
* Allow configuring the SOAP request timeout
* Support spaces in ISO 9362 (SWIFT) BIC codes
* Add check_dgii() to stdnum.do.cedula module
* Add validation for "individual" part of hetu (thanks Esa Halsti)
* Support new style of Dominican Republic NCF numbers
* Fix issue when using PySimpleSOAP for DGII lookups
* Fix an issue in splitting certain IMSI values
* Support building a universal wheel
* Documentation and code style improvements


changes from 1.8 to 1.8.1
-------------------------

* Fix a packaging issue in the long description


changes from 1.7 to 1.8
-----------------------

* Add modules for the following number formats:

  - NCF (Números de Comprobante Fiscal, Dominican Republic receipt number)
  - Euro banknote serial numbers
  - CAS RN (Chemical Abstracts Service Registry Number)
  - Aadhaar (Indian digital resident personal identity number)
    (thanks Srikanth Lakshmanan)
  - PAN (Permanent Account Number, Indian income tax identifier)
    (thanks Srikanth Lakshmanan)

* Add functions for using the Dominican Republic DGII web service to validate
  and search for RNC and NCF numbers
* Add/update whitelists for Dominican Republic RNC and Cedula
* Support zeep as preferred SOAP library (suds and pysimplesoap are tried
  as fallback)
* Rename stdnum.iso9362 to stdnum.bic (iso9362 is deprecated but still
  available for compatibility)
* Add tests for web services (not normally run to avoid unnecessary load)
* Fixes and improvement to the sample online validation service

Development of the NCF format validation and DGII web service validation
was funded by iterativo | http://iterativo.do


changes from 1.6 to 1.7
-----------------------

* Add modules for the following number formats:

  - BN (Canadian Business Number)
  - SIN (Canadian Social Insurance Number)
  - IdNr (Steuerliche Identifikationsnummer, German personal tax number)
    (thanks Mohammed Salman of Holvi)
  - Registrikood (Estonian organisation registration code)
    (thanks Mohammed Salman of Holvi)
  - Veronumero (Finnish individual tax number)
    (thanks Mohammed Salman of Holvi)
  - UPN (English Unique Pupil Number)

* Fix a bug in the Czech DIČ check digit calculation
* Fix conversion of 9 digit ISBN to ISBN13
* Fix a bug in the Damm is_valid() function
* More validation of 13-digit ISBN values
* More validation of ISMN values
* Various code and test improvements (100% branch coverage now)
* Documentation improvements


changes from 1.5 to 1.6
-----------------------

* Add modules for the following number formats:

  - CBU (Clave Bancaria Uniforme, Argentine bank account number)
    (thanks Luciano Rossi)
  - EIC (European Energy Identification Code)
  - NACE (classification for businesses in the European Union)
  - LEI (Legal Entity Identifier)
  - n° TVA (taxe sur la valeur ajoutée, Monacan VAT number)
  - PIB (Poreski Identifikacioni Broj, Serbian tax identification number)

* Add online check example that finds valid formats for a given number
* Fix support for Ñ in Spanish Referencia Catastral
* Updates to U.S. Employer Identification Number (thanks Greg Kuwaye)
* Various minor improvements


changes from 1.4 to 1.5
-----------------------

* Add modules for the following number formats:

  - ABN (Australian Business Number)
  - ACN (Australian Company Number)
  - TFN (Australian Tax File Number)
  - CCC (Código Cuenta Corriente, Spanish Bank Account Code)
  - CUPS (Código Unificado de Punto de Suministro, Supply Point Unified Code)
  - Spanish IBAN (International Bank Account Number)
  - Referencia Catastral (Spanish real estate property id)

* The IBAN module now support validating the country-specific part
* The Belgian VAT number is now also referenced as businessid
* Add a Tox configuration file


changes from 1.3 to 1.4
-----------------------

* Add modules for the following number formats:

  - NIF (Numéro d'Immatriculation Fiscale, French tax identification number)
    provided by Dimitri Papadopoulos
  - NIR (French personal identification number) provided by Dimitri
    Papadopoulos
  - SIRET (a French company establishment identification number) provided by
    Yoann Aubineau
  - NHS (United Kingdom National Health Service patient identifier)
  - T.C. Kimlik No. (Turkish personal identification number)

* Add an implementation of the Damm algorithm
* Ensure data files are properly closed
* Documentation improvements
* Extend test suite
* A number of minor bug fixes and improvements


changes from 1.2 to 1.3
-----------------------

* Fix ISO 6346 check digit calculation (thanks Ronald Paloschi)
* Fix problem with check_vies_approx() (thanks Lionel Elie Mamane)
* Fix problem with SOAP client when using suds
* Include documentation that was previously on the Trac wiki


changes from 1.1 to 1.2
-----------------------

* Add modules for the following number formats:

  - Austrian Company Register Numbers
  - CNPJ (Cadastro Nacional da Pessoa Jurídica, Brazilian company identifier)
  - UID (Unternehmens-Identifikationsnummer, Swiss business identifier)
  - VAT, MWST, TVA, IVA, TPV (Mehrwertsteuernummer, the Swiss VAT number)
  - CUSIP number (financial security identification number)
  - Wertpapierkennnummer (German securities identification code)
  - Isikukood (Estonian Personcal ID number)
  - Finnish Association Identifier
  - Y-tunnus (Finnish business identifier)
  - SEDOL number (Stock Exchange Daily Official List number)
  - IMO number (International Maritime Organization number)
  - ISIN (International Securities Identification Number)
  - RFC (Registro Federal de Contribuyentes, Mexican tax number)
  - PESEL (Polish national identification number)
  - REGON (Rejestr Gospodarki Narodowej, Polish register of economic units)
  - ИНН (Идентификационный номер налогоплательщика, Russian tax identifier)

* Add an alternate VIES check (check_vies_approx()) that includes a proof
  (certificate) that the check was performed
* Fall back to pysimplesoap if suds is unavailable
* Test and code quality improvements


changes from 1.0 to 1.1
-----------------------

* Add number formats based on the implementation in the vatnumber module:

  - NIPT (Numri i Identifikimit për Personin e Tatueshëm, Albanian VAT number)
  - CUIT (Código Único de Identificación Tributaria, Argentinian tax number)
  - RUT (Rol Único Tributario, Chilean national tax number)
  - NIT (Número De Identificación Tributaria, Colombian identity code)
  - COE (Codice operatore economico, San Marino national tax number)

* Add modules for the following number formats:

  - Cedula (Dominican Republic national identification number)
  - RNC (Registro Nacional del Contribuyente, Dominican Republic tax number)
  - Kennitala (Icelandic personal and organisation identity code, provided by
    Tuomas Toivonen)
  - VSK number (Virðisaukaskattsnúmer, Icelandic VAT number, provided by
    Tuomas Toivonen)
  - ISO 9362 (Business identifier codes, provided by Tony Bajan)
  - MVA (Merverdiavgift, Norwegian VAT number, provided by Tuomas Toivonen)
  - Orgnr (Organisasjonsnummer, Norwegian organisation number, provided by
    Tuomas Toivonen)
  - Orgnr (Organisationsnummer, Swedish company number, provided by Tomas
    Thor Jonsson)

* Add Croatia to list of EU VAT numbers
* Update getcnloc script
* Various small fixes and additional tests for existing modules


changes from 0.9 to 1.0
-----------------------

* Add modules for the following number formats:

  - Swiss social security number ("Sozialversicherungsnummer")
  - RIC No. (Chinese Resident Identity Card Number)
  - CI (Cédula de identidad, Ecuadorian personal identity code)
  - RUC (Registro Único de Contribuyentes, Ecuadorian company tax number)
  - SEPA Identifier of the Creditor (AT-02)
  - ISO 6346 (International standard for container identification)
  - Codice Fiscale (Italian tax code for individuals)
  - RTN (Routing transport number)

* Add support for 2013 extension of Irish PPS Numbers
* Update getisbn script
* Update getmybp URLs for Malaysian code lists
* Various other minor improvements


changes from 0.8.1 to 0.9
-------------------------

* Add modules for the following number formats:

  - Brin number (Dutch number for schools)
  - Postcode (Dutch postal code)
  - ATIN (U.S. Adoption Taxpayer Identification Number)
  - EIN (U.S. Employer Identification Number)
  - ITIN (U.S. Individual Taxpayer Identification Number)
  - PTIN (U.S. Preparer Tax Identification Number)
  - TIN (U.S. Taxpayer Identification Number)

* Try to replace Unicode characters with similar-looking ASCII characters
* Update getimsi script (thanks eneq123)
* Update getiban script
* Add proxy support to the stdnum.eu.vat.check_vies() function (thanks
  Cédric Krier)
* Support newer United Kingdom VAT numbers


changes from 0.8 to 0.8.1
-------------------------

* Include some files that were missing from the source tarball


changes from 0.7 to 0.8
-----------------------

* Add modules for the following number formats:

  - NRIC No. (Malaysian National Registration Identity Card Number)

* All modules now provide a validate() function that throws an exception
  that contains more information on the failure reason
* Documentation improvements
* Remove add_check_digit parameter from GRid's format() function
* Improvements to the tests
* Re-add Python3 support (now tested with Python 2.7, 3.2 and 3.3)


changes from 0.6 to 0.7
-----------------------

* Add modules for the following number formats:

  - Onderwijsnummer (Dutch school number)
  - BTW-nummer (Omzetbelastingnummer, the Dutch VAT number)
  - HETU (Finnish personal identity code) as provided by Jussi Judin (#5)
  - RČ (Rodné číslo, the Czech and Slovak birth numbers)
  - SIREN (a French company identification number)
  - FPA, ΦΠΑ (Foros Prostithemenis Aksias, the Greek VAT number)
  - Ust ID Nr. (Umsatzsteur Identifikationnummer, the German VAT number)
  - BTW, TVA, NWSt (Belgian VAT number)
  - DNI (Documento nacional de identidad, Spanish personal identity codes)
  - NIE (Número de Identificación de Extranjeros, Spanish foreigner number)
  - CIF (Certificado de Identificación Fiscal, Spanish company tax number)
  - NIF (Número de Identificación Fiscal, Spanish VAT number)
  - PVN (Pievienotās vērtības nodokļa, Latvian VAT number)
  - CVR (Momsregistreringsnummer, Danish VAT number)
  - TVA (taxe sur la valeur ajoutée, Luxembourgian VAT number)
  - CNP (Cod Numeric Personal, Romanian Numerical Personal Code)
  - CF (Cod de înregistrare în scopuri de TVA, Romanian VAT number)
  - Partita IVA (Italian VAT number)
  - Αριθμός Εγγραφής Φ.Π.Α. (Cypriot VAT number)
  - UID (Umsatzsteuer-Identifikationsnummer, Austrian VAT number)
  - NIF (Número de identificação fiscal, Portuguese VAT number)
  - IČ DPH (IČ pre daň z pridanej hodnoty, Slovak VAT number)
  - ALV nro (Arvonlisäveronumero, Finnish VAT number)
  - DIČ (Daňové identifikační číslo, Czech VAT number)
  - ANUM (Közösségi adószám, Hungarian VAT number)
  - VAT (Irish VAT number)
  - KMKR (Käibemaksukohuslase, Estonian VAT number)
  - PVM (Pridėtinės vertės mokestis mokėtojo kodas, Lithuanian VAT number)
  - n° TVA (taxe sur la valeur ajoutée, French VAT number)
  - VAT (Maltese VAT number)
  - NIP (Numer Identyfikacji Podatkowej, Polish VAT number)
  - ID za DDV (Davčna številka, Slovenian VAT number)
  - VAT (Moms, Mervärdesskatt, Swedish VAT number)
  - VAT (United Kingdom (and Isle of Man) VAT registration number)
  - EGN (ЕГН, Единен граждански номер, Bulgarian personal identity codes)
  - PNF (ЛНЧ, Личен номер на чужденец, Bulgarian number of a foreigner)
  - VAT (Идентификационен номер по ДДС, Bulgarian VAT number)
  - VAT (European Union VAT number)
  - OIB (Osobni identifikacijski broj, Croatian identification number)
  - PPS No (Personal Public Service Number, Irish personal number)
  - CPR (personnummer, the Danish citizen number)

* Additional tests for robustness and use introspection to test all modules
* Some code refactoring with the introduction of an internal utility module
* Improvements to the docstring documentation
* Generate API documentation using Sphinx


changes from 0.5 to 0.6
-----------------------

* Fix a problem with handling an ISBN13 with a valid check digit but with an
  unknown bookland prefix
* Add an IMSI (International Mobile Subscriber Identity) module
* Implement a conversion function from ISBN13 to ISBN10
* Implement an ismn.ismn_type() function
* Implement an imei.split() function that splits the number into a TAC, serial
  number and checksum or software version
* Source code layout changes to better follow PEP8


changes from 0.4 to 0.5
-----------------------

* Add modules for the following number formats:

  - EAN (International Article Number)

* Refactoring to use the EAN check digit code for ISBN and ISMN checks
* Implement a conversion function from ISSN to EAN
* Support Python3 with the same codebase
* Python 2.5 compatibility improvement


changes from 0.3 to 0.4
-----------------------

* Add modules for the following number formats:

  - CPF (Cadastro de Pessoas Físicas, the Brazilian national identification
    number)
  - IBAN (International Bank Account Number)
  - ISIL (International Standard Identifier for Libraries and Related
    Organizations)
  - SSN (U.S. Social Security Number)

* Implement an internal module to store and handle hierarchically organised
  data structures efficiently
* Regional-specific numbers are now in ISO 3166 packages (the BSN module
  is now in stdnum.nl.bsn)
* ISBN module functions now have a convert flag to convert to ISBN-13 on
  the fly


changes from 0.2 to 0.3
-----------------------

* Add modules for the following number formats:

  - ISMN (International Standard Music Number)
  - ISAN (International Standard Audiovisual Number)
  - IMEI (International Mobile Equipment Identity)
  - MEID (Mobile Equipment Identifier)
  - GRid (Global Release Identifier)

* Add modules for handling the following check digit algorithms:

  - the Verhoeff algorithm
  - the Luhn and Luhn mod N algorithms
  - some algorithms described in ISO/IEC 7064: Mod 11, 2, Mod 37, 2,
    Mod 97, 10, Mod 11, 10 and Mod 37, 36

* Added more unit tests


changes from 0.1 to 0.2
-----------------------

* Rename validate() function to is_valid() for all modules
* Handle wrong types passed to is_valid() more gracefully
* Add more tests and fix some minor bugs