Aller au contenu






Photo
- - - - -

International Bank Account Number

Posté par Vincent , 07 décembre 2006 · 1 416 visite(s)

Scripts
IBAN est l'abréviation pour Internatinal Bank Account Number. Il s'agit d'un numéro de compte répondant au normes internationales ISA, désignant sans aucune ambiguïté une relation de compte dans les opérations de paiement transfrontalière entre pays européens.

l'IBAN doit être considéré comme une "enveloppe" internationalement reconnue à laquelle les numéros de compte existantes peuvent être intégrés.

l'IBAN a une longueur maximale de 34 caractères alphanumériques :
  • les deux premières lettres identifient le pays de tenue du compte.
  • les deux chiffres suivants contiennent le chiffre de contrôle qui permet de vérifier l'exactitude formelle du numéro IBAN.
  • La dernière partie comporte des informations locales, telles que l’identification de l’établissement ou le numéro de compte.
Afin d’améliorer la lisibilité en cas de présentation sur
papier, l’IBAN est divisé en groupes de quatre.
Exemple d’un IBAN suisse représenté sur papier:
CH35 0023 0230 5042 2318 T

CdPays - Pays - Long. - Exemple d'IBAN
DE - Allemagne - 22 - DE89 3704 0044 0532 0130 00
AD - Andorre - 24 - AD12 0001 2030 2003 5910 0100
AT - Autriche - 20 - AT97 1904 3002 3457 3201
BE - Belgique - 16 - BE68 5390 0754 7034
CY - Chypre - 28 - CY17 0020 0128 0000 0012 0052 7600
HR - Croatie - 21 - HR12 1001 0051 8630 0016 0
DK - Danemark - 18 - DK50 0040 0440 1162 43
ES - Espagne - 24 - ES91 2100 0418 4502 0005 1332
EE - Estonie - 20 - EE38 2200 2210 2014 6585
FI - Finlande - 18 - FI21 1234 5600 0007 85
FR - France - 27 - FR14 2004 1010 0505 0001 3M02 606
GI - Gibraltar - 23 - GI75 NEBK 0000 0000 7099 453
GR - Grèce - 27 - GR16 0110 1250 0000 0001 2300 695
GL - Groenland - 18 - GL56 0444 9876 5432 10
HU - Hongrie - 28 - HU42 1177 3016 1111 1018 0000 0000
FO - Îles Féroé - 18 - FO97 5432 0388 8999 44
IE - Irlande - 22 - IE29 AIBK 9311 5212 3456 78
IS - Islande - 26 - IS14 0159 2600 7654 5510 7303 39
IT - Italie - 27 - IT60 X054 2811 1010 0000 0123 456
LV - Lettonie - 21 - LV80 BANK 0000 4351 9500 1
LI - Liechtenstein - 21 LI21 0881 0000 2324 013A A
LT - Lituanie - 20 -LT12 1000 0111 0100 1000
LU - Luxembourg - 20 - LU28 0019 4006 4475 0000
MK - Macédoine - 19 - MK07 3000 0000 0042 425
MT - Malte - 31 - MT84 MALT 0110 0001 2345 MTLC AST0 01S
MC - Monaco - 27 - MC93 2005 2222 1001 1223 3M44 555
NO - Norvège - 15 - NO93 8601 1117 947
NL - Pays-Bas - 18 - NL91 ABNA 0417 1643 00
PL - Pologne - 28 - PL27 1140 2004 0000 3002 0135 5387
PT - Portugal - 25 - PT50 0002 0123 1234 5678 9015 4
CZ - République Tchèque - 24 - CZ65 0800 0000 1920 0014 5399
RO - Roumanie - 24 - RO49 AAAA 1B31 0075 9384 0000
GB - Royaume-Uni - 22 - GB29 NWBK 6016 1331 9268 19
SM - San Marino - 27 - SM62 Y054 3219 8760 0444 5333 222
CS - Serbie et Monténégro - 22 - CS73 2600 0560 1001 6113 79
SK - Slovaquie - 24 - SK31 1200 0000 1987 4263 7541
SI - Slovénie - 19 - SI56 1910 0000 0123 438
SE - Suède - 24 - SE35 5000 0000 0549 1000 0003
CH - Suisse - 21 - CH93 0076 2011 6238 5295 7
TN - Tunisie - 24 - TN59 1420 7207 1007 0712 9648
TR - Turquie - 26 - TR33 0006 1005 1978 6457 8413 26


Voilà pour le coté théorique, en pratique, voici l'algorithme du calcul de la clé de controle :
  • Créer un code IBAN articiel, composé du code du pays (ISO 3166), suivi de "00" et du compte bancaire.
  • Déplacer les 4 premiers caractères de l'IBAN vers la droite du numéro.
  • Convertir les lettres en chiffres, conformément à la table de conversion (A=10, Z=35)
  • Appliquer le modulo 97 et retrancher le reste de 98.
  • Si le résultat comporte 1 seul chiffre, inserer un 0 devant.
  • Insérer le résultat ainsi obtenu à la position 3 de l'IBAN articiel créé auparavant (ce qui reviens a remplacer les 2 zéros)
Maintenant que vous savez tout sur l'IBAN, a vous de bosser ;)
Voici la procédure Uniface que j'utilise pour le controle de l'Iban
Je vous laisse le soin de la transcrire en dans votre langage préféré :p
;--------------------------------------------------------------
;			LP_IBAN	
;--------------------------------------------------------------
ENTRY LP_IBAN
variables
	numeric	lv_mod, lv_cle
	string	lv_iban
	string 	lv_cbanq, lv_cgui, lv_cptban, lv_rib
endvariables

; Dans le principe de l'IBAN, d'abord on met a la suite les champ du compte bancaire precede du pays et de 00
; avant de calculer ce qui va supplanter le "00" (qui sera la clé de controle)

	lv_cbanq = cbanq
	call LP_COMPLETER(lv_cbanq,5)
	lv_cgui = cgui
	call LP_COMPLETER(lv_cgui,5)
	lv_cptban = cptban
	call LP_COMPLETER(lv_cptban,11)
	lv_rib = rib
	call LP_COMPLETER(lv_rib,2)

; on pourrait faire plus simple mais cette manipulation a le mérite de rendre plus clair le découpage IBAN

	iban1 = "FR00"
	iban2 = lv_cbanq[1:4]
	iban3 = "%%lv_cbanq[5:1]%%%%%lv_cgui[1:3]%%%"
	iban4 = "%%lv_cgui[4:2]%%%%%lv_cptban[1:2]%%%"
	iban5 = lv_cptban[3:4]
	iban6 = lv_cptban[7:4]
	iban7 = "%%lv_cptban[11:1]%%%%%lv_rib%%%"

; calcul de la clé : Phase 2 (déplacement du iban1 vers la fin)
	lv_iban = "%%iban2%%%%%iban3%%%%%iban4%%%%%iban5%%%%%iban6%%%%%iban7%%%%%iban1%%%"

; calcul de la clé : Phase 3 (Remplacement des lettres par des chiffres)
	lv_iban = $replace(lv_iban, 1, "A", "10", -1)
	lv_iban = $replace(lv_iban, 1, "B", "11", -1)
	lv_iban = $replace(lv_iban, 1, "C", "12", -1)
	lv_iban = $replace(lv_iban, 1, "D", "13", -1)
	lv_iban = $replace(lv_iban, 1, "E", "14", -1)
	lv_iban = $replace(lv_iban, 1, "F", "15", -1)
	lv_iban = $replace(lv_iban, 1, "G", "16", -1)
	lv_iban = $replace(lv_iban, 1, "H", "17", -1)
	lv_iban = $replace(lv_iban, 1, "I", "18", -1)
	lv_iban = $replace(lv_iban, 1, "J", "19", -1)
	lv_iban = $replace(lv_iban, 1, "K", "20", -1)
	lv_iban = $replace(lv_iban, 1, "L", "21", -1)
	lv_iban = $replace(lv_iban, 1, "M", "22", -1)
	lv_iban = $replace(lv_iban, 1, "N", "23", -1)
	lv_iban = $replace(lv_iban, 1, "O", "24", -1)
	lv_iban = $replace(lv_iban, 1, "P", "25", -1)
	lv_iban = $replace(lv_iban, 1, "Q", "26", -1)
	lv_iban = $replace(lv_iban, 1, "R", "27", -1)
	lv_iban = $replace(lv_iban, 1, "S", "28", -1)
	lv_iban = $replace(lv_iban, 1, "T", "29", -1)
	lv_iban = $replace(lv_iban, 1, "U", "30", -1)
	lv_iban = $replace(lv_iban, 1, "V", "31", -1)
	lv_iban = $replace(lv_iban, 1, "W", "32", -1)
	lv_iban = $replace(lv_iban, 1, "X", "33", -1)
	lv_iban = $replace(lv_iban, 1, "Y", "34", -1)
	lv_iban = $replace(lv_iban, 1, "Z", "35", -1)
	
; calcul de la clé : Phase 4 (modulo 97)	
	lv_mod = frac(lv_iban / 97) * 97
	lv_cle = 98 - lv_mod[round]
	iban1 = "FR%%lv_cle%%%"
END

Entry LP_COMPLETER
params
	string p_num : inout
	string p_max : inout
endparams
	length p_num
	while ($result < p_max)
		p_num = "0%%p_num%%%"
		length p_num
	endwhile
	return 0
End


  • 0



Derniers commentaires

0 utilisateur(s) actif(s)

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)

Rechercher dans le blog

experts referencement   Seo .fr