Hoppa till innehållet

International Securities Identification Number

Från Wikipedia

International Securities Identification Number (ISIN) är en kod som är avsedd att entydigt identifiera ett värdepapper. ISIN-koden[1] utgörs av en alfanumerisk följd om tolv tecken. Koden har tre komponenter: den inleds med en tvåställig landskod enligt ISO-6166-standarden, därefter följer en nioställig alfannumerisk svit och därefter en kontrollsiffra som, medelst Luhn-algoritmen, beräknas från de elva föregående tecknen. Swedbanks akties ISIN-kod är t.ex. SE0000242455.

Kommentar till kontrollsiffran

[redigera | redigera wikitext]

Bokstäverna i koden ersätts med A=10, B=11 etc., innan Luhn-algoritmen tillämpas.

Exempelrutin i Python som avgör om en ISIN-kod har korrekt kontrollsiffra:

import re

def isin_check(s):
	if not bool(re.search("^[A-Z]{2}[A-Z\d]{9}\d$", s)):
			return False
	d=dict(zip(map(str, xrange(10)) + 
		map(chr, xrange(ord('A'), ord('Z')+1)), map(str, xrange(36))))
	p=re.compile("|".join(d.keys()))
	r=p.sub(lambda x: d[x.group()], s)
	return (sum(map(lambda x: x%10 + x/10,
		[int(r[i])*((i+(len(r)+1)%2)%2 + 1) for i in xrange(len(r))]))) % 10 == 0