Go to file
Nemo 5dd903adde [ci] Improve the final release artifact 2022-05-14 18:30:02 +05:30
.github/workflows [ci] Improve the final release artifact 2022-05-14 18:30:02 +05:30
.gitignore [ci] Improve the final release artifact 2022-05-14 18:30:02 +05:30
CITATION.cff Update CITATION.cff 2022-05-14 12:59:05 +05:30
IN9.csv add header to CSV files 2022-05-14 18:22:54 +05:30
INE.csv add header to CSV files 2022-05-14 18:22:54 +05:30
INF.csv add header to CSV files 2022-05-14 18:22:54 +05:30
LICENSE Create LICENSE 2022-05-04 16:32:27 +05:30
Makefile [ci] Improve the final release artifact 2022-05-14 18:30:02 +05:30
README.md Explain ISIN format in README 2022-05-14 15:58:16 +05:30
datapackage.json [ci] Improve the final release artifact 2022-05-14 18:30:02 +05:30
diff.py [ci] Improve the final release artifact 2022-05-14 18:30:02 +05:30
fetch.sh [ci] Improve the final release artifact 2022-05-14 18:30:02 +05:30
header.csv [ci] Improve the final release artifact 2022-05-14 18:30:02 +05:30
release.mako [ci] Improve the final release artifact 2022-05-14 18:30:02 +05:30
requirements.txt [ci] Improve the final release artifact 2022-05-14 18:30:02 +05:30

README.md

India ISIN Data

DOI GitHub release (latest by date) GitHub tag (latest SemVer) GitHub repo size

ISIN Data from various public securities.

Source: NSDL Website Detailed ISIN Search.

Automatically updated every midnight (IST).

File Issuer Tracked
INA.csv Central Government No
INB.csv State Government No
INE.csv Company, Statuatory Corporation, Banking Company Yes
INF.csv Mutual Funds Yes
IN9.csv Partly paid up shares Yes

Note: The NSDL Website returns zero valid results for INA, INB, so those are not tracked.

ISIN Structure

ISIN (Internation Security Identification Numbering System) is defined by ISO 6166:2021 and adopted in India by BIS as IS 15415:2021 ((PDF)) ((PDF2)). ISINs in India are alloted by NSDL for all securities except Government Securities (See Page 9).

This Indian Standard (Second Revision) which is identical with ISO 6166 : 2021 Financial services - International securities identification number (ISIN) issued by the International Organization for Standardization (ISO) was adopted by the Bureau of Indian Standards on recommendation of the Banking and Financial Services Sectional Committee and approval of the Services Sector Division Council.

ISIN, as per the ISO standard consists of 3 parts:

  1. 2 Character country code as prefix (ISO-3166). For ISINs issued in India, this will always be IN.
  2. The Basic Number, 9 alphanumeric characters left padded with zeroes.
  3. A check digit.

The basic number in India is issued by NSDL and is composed of 4 parts:

  1. 1 Character for the kind of issuer. This varies from A-F/9.
  2. A 4 character Issuer Code. Alphanumeric.
  3. A 2 Character code for security type. Alphanumeric.
  4. A 2 Digit serial number for the security itself. Alphanumeric.

Hence, each issuer can issue 36^2 = 1296 securities under each type. The table below explains the same with an example:

Field Country Code Issuer Type Issuer Code Security Type Serial Number Check Digit
Index 1 2 3 4 5 6 7 8 9 10 11 12
Class I N A-F,9 alpha alpha alpha alpha alpha alpha alpha alpha 0-9
Sample I N F 7 8 9 F 0 1 X A 0

In the above ISIN (INF789F01XA0), here's the breakdown:

  • Country Code: IN
  • Issuer Type: F (Mutual Funds)
  • Issuer Code: 789F (UTI Mutual Fund)
  • Security Type: 01 (Equity Shares)
  • Serial Number: XA
  • Check Digit: 0

Isser Types

Issuer Type 3rd Character
Central Government A
State Government B
Municipal Corporation C
Union Territories D
Company, Statuatory Corporation, Banking Company E
Mutual Funds F
Partly Paidup Shares G

Issuer Code

Please see issuers.csv (🚧)

Security Type

TODO: This is missing a few values.

Code Security Type
01 Equity Shares
02 Postal Savings Scheme
03 Preference Shares
04 Bonds
05 Deep Discount Bonds
06 Floating Rate Boands
07 Commercial Papers
08 Step Discount Bonds
09 Regular Return Bonds
10 Certificate of Deposits
11 Securitised Instruments
12 Debentures

Check Digit

The last digit (check-digit) is calculated using the Luhn Algorithm with a slight change to accomodate alphanumeric characters. Alphabets are converted to digits by adding 9 to the usual numeric value of each letter. For example A=10,B=12,C=13……Z=35. A few examples:

ISIN Payload Check Digit Validate
INE009A01021 18 23 14 009 10 0102 1 CyberChef
US0378331005 30 28 0378331001 5 CyberChef
AU0000XVGZA3 10 30 0000 33 31 16 35 10 3 CyberChef
INF789F01XA0 18 23 15 789 15 01 33 10 0 CyberChef

References:

Code

You can run the fetch.sh script to generate the tracked the files from scratch. Dependencies:

Alternative Sources

ISINs for India can be found at a few other sources:

License

Licensed under the Creative Commons Zero v1.0 Universal license. There are no guarantees made as to the correctness or accuracy of this data.