Protocole CODA (Belgique)

Il est possibilité d’émettre ou de recevoir des fichiers au format interbancaire CODA.

Deux maquettes sont opérationnelles : l’une pour les échanges interbancaires au format belge, l’autre pour les échanges interbancaires internationaux.

Echanges interbancaires au format belge :

longueur=999
largeur=128
%CR ----------------------------------------------------------
%CR * Génération des fichiers CODA pour les paiements belges *
%CR * format : layout128 *
%CR * Auteur : DEC *
%CR ----------------------------------------------------------
%CR
%CR Déclaration des variables
%CR
V ~007=C(4)
V ~008=C(2)
V ~009=C(2)
V ~010=C(2)
V ~011=C(6)
V ~012=C(12)
V ~013=C(7)
V ~014=C(3)
V ~015=C(2)
V ~016=C(10)
V ~050=C(3)
V ~100="9999"
V ~102="999999999999"
V ~103=C(26)
V ~104=C(26)
V ~105=C(4)
V ~106=C(22)
V ~107=C(26)
V ~108=C(26)
V ~109=C(4)
V ~110=C(22)
V ~131=C(15)
V ~141=C(3)
V ~142=C(7)
V ~143=C(2)
V ~144=C(10)
V ~145=C(12)
V ~170="999999999999"
V ~200="9999"
V ~301=C(12)
V ~302=C(12)
V ~303=C(12)
V ~304=C(12)
V ~305=C(12)
V ~306=C(12)
V ~307=C(12)
V ~308=C(12)
V ~320=C(13)
V ~321=C(25)V ~322=C(26)
V ~323=C(38)
V ~324=C(39)
V ~325=C(53)
V ~330=C(13)
V ~331=C(25)
V ~332=C(26)
V ~333=C(38)
V ~334=C(39)
V ~335=C(53)
V ~800=C(2)
V ~801=C(6)
V ~802=C(4)
V ~803=C(8)
V ~804=C(14)
V ~805=C(18)
V ~806=C(8)
V ~900=C(11)
V ~910=C(4)V ~911=C(5)
V ~996=C(1)V ~997=C(54)
V ~999="zz"
%CR
%CR Chargement du code etablissement
VEE ~050=@46
%CR
%CR Chargement du numero de compte bancaire de l'etablissement
VEE ~013=@247[1:7]
%CR
%CR Chargement du code banque de l'etablissement
VEE ~014=@244[1:3]
%CR
%CR Chargement de la cle rib de l'etablissment
VEE ~015=@248[1:2]
%CR
%CR Concatenation des differentes zones du RIB
VEE ~016=~014+~013
VEE ~012=~016+~015
%CR
%CR Récupération de l'adresse de l'établissment
VEE ~103=@230[1:26]
VEE ~104=@231[1:26]
VEE ~105=@234[3:6]
VEE ~106=@235[1:22]
%CR
%CR En fonction du code etablissement, on charge le champ TVA intracom
TEE si (@46="AB")
VEE ~900="00400536853"
VEE ~800="AB"
TEE fsi
TEE si (@46="SMA")
VEE ~900="00400545662"
VEE ~800="SM"
TEE fsi
TEE si (@46="TH")
VEE ~900="00400591291"
VEE ~800="TH"
TEE fsi
TEE si (@46="JIS")
VEE ~900="00454803405"
VEE ~800="JI"
TEE fsi
TEE si (@46="MDD")
VEE ~900="00442811631"
VEE ~800="MD"
TEE fsi
TEE si (@46="FDP")
VEE ~900="00400487858"
VEE ~800="FD"
TEE fsi
%CR
%CR Affichage de la ligne d'entete
%CR
%2100000~011 20001~011 000~012 ~103 ~104 ~105~106 2~806 1
%CR
%CR Récupération du montant du paiement
V10 ~170=@11
%CR
%CR Récupération du code banque du fournisseur
V10 ~141=@005[1:3]
%CR
%CR Récupération du compte bancaire du fournisseur
V10 ~142=@009[1:7]
%CR
%CR Récupération de la clé RIB du fournisseur
V10 ~143=@006[1:2]
%CR
%CR Concaténation du RIB du fournisseur
V10 ~144=~141+~142
V10 ~145=~144+~143
%CR
%CR En fonction du code langue du fournisseur, on positionne l'indicateur du fichier
V10 ~996="2"
T10 si (~991="DUT")
V10 ~996="1"
T10 fsi
T10 si (~991="FRA")
V10 ~996="2"
T10 fsi
T10 si (~991="DEU")
V10 ~996="3"
T10 fsi
%CR
V10 ~102=~102+@011
V20 ~102=0
V10 ~107=@02[1:26]
V10 ~108=@013[1:26]
V10 ~109=@016[3:6]
V10 ~110=@017[1:22]
%CR
%CR Incrementation du compteur de mouvement
V10 ~100=~100+1
%CR
%CR Concatenation d'un zero au compteur de mouvement
V10 ~910=~100
V10 ~911=~910+"0"
%CR
%CR Initialisation du compteur de facture
V10 ~999=0
%CR
%CR Initialisation des zones de récupération des factures
V10 ~301=" "
V10 ~302=" "
V10 ~303=" "
V10 ~304=" "
V10 ~305=" "
V10 ~306=" "
V10 ~307=" "
V10 ~308=" "
%CR
%CR Initialisation des compteurs de mouvements
V20 ~100=0
V20 ~200=0
%CR
%CR Incrémentation du nombre de facture
V15 ~999=~999+1
%15 Valeur du compteur ~999
%15 Valeur de facture @13
%CR
%CR Récupération des numéro factures frs reglées par le paiement
T15 si (~999=1)
V15 ~301=@13
T15 fsi
T15 si (~999=2)
V15 ~302=@13
T15 fsi
T15 si (~999=3)
V15 ~303=@13
T15 fsi
T15 si (~999=4)
V15 ~304=@13
T15 fsi
T15 si (~999=5)
V15 ~305=@13
T15 fsi
T15 si (~999=6)
V15 ~306=@13
T15 fsi
T15 si (~999=7)
V15 ~307=@13
T15 fsi
T15 si (~999=8)
V15 ~308=@13
T15 fsi
%CR
%CR Chargement de la date du paiement au format mmjjaa
V21 ~010=@011[9:10]
V21 ~009=@011[4:5]
V21 ~008=@011[1:2]
V21 ~007=~008+~009
V21 ~011=~007+~010
%CR
%CR Elaboration du nom du fichier
V21 ~801="ap$in:"
V21 ~802=".fms"
V21 ~803=~801+~800
V21 ~804=~803+~011
V21 ~805=~804+~802
V21 ~806=~800+~011
%CR
%CR Multiplication par 2 du compteur des mouvements
V40 ~200=~100*2
%CR
%CR Alimentation des 4 premiers numeros de facture
V42 ~320=~301+" "
V42 ~321=~320+~302
V42 ~322=~321+" "
V42 ~323=~322+~303
V42 ~324=~323+" "
V42 ~325=~324+~304
%CR
%CR Concatenation du code langue et de la premiere zone de communication
V42 ~997=~996+~325
%CR
%CR Alimentation des 4 derniers numeros de facture
V42 ~330=~305+" "
V42 ~331=~330+~306
V42 ~332=~331+" "
V42 ~333=~332+~307
V42 ~334=~333+" "
V42 ~335=~334+~308
%CR
%CR Affichage du bloc de détail
%CR
%421~100 0000000000~145 ~170 ~107 ~997 3
%422~911 ~108 ~109~110 ~335 0 
%CR
%CR Affichage de la dernière ligne du paiement
%CR
%419~200~100~102 000~012 ~900 
P INTERFACE="~805"
Echanges interbancaires internationaux
longueur=999
largeur=128
V ~007=C(4)
V ~008=C(2)
V ~009=C(2)
V ~010=C(2)
V ~011=C(6)
V ~012=C(12)
V ~100="9999"
V ~101="999999"
V ~102="9999999999999.99"
V ~103=C(26)
V ~104=C(26)
V ~105=C(4)
V ~106=C(22)
V ~107=C(26)
V ~108=C(26)
V ~109=C(4)
V ~110=C(22)
V ~111="999999"
V ~131="999999999999999"
V ~141=C(3)
V ~142=C(7)
V ~143=C(2)
V ~144=C(10)
V ~145=C(12)
V ~150=C(3)
V ~200="9999"
V ~300=C(4)
V ~301=C(6)
V ~304=C(6)
V ~305=C(6)
V ~306=C(6)
V ~307=C(6)
V ~308=C(6)
V ~309=C(6)
V ~310=C(6)
V ~311=C(6)
V ~320=C(35)
V ~333=C(35)
V ~334=C(35)
V ~335=C(35)
V ~336=C(10)
V ~337=C(25)
V ~338=C(35)
V ~800=C(4)
V ~801=C(6)
V ~802=C(4)
V ~803=C(10)
V ~804=C(16)
V ~805=C(20)
V ~806=C(10)
V ~900=C(11)
%CR
TEE si (@46="AB")
VEE ~900="00400536853"
VEE ~800="ABET"
TEE fsi
TEE si (@46="SMA")
VEE ~900="00400545662"
VEE ~800="SMET"
TEE fsi
TEE si (@46="TH")
VEE ~900="00400591291"
VEE ~800="THET"
TEE fsi
TEE si (@46="JIS")
VEE ~900="00454803405"
VEE ~800="JIET"
TEE fsi
TEE si (@46="MDD")
VEE ~900="00442811631"
VEE ~800="MDET"
TEE fsi
TEE si (@46="FDP")
VEE ~900="00400487858"
VEE ~800="FDET"
TEE fsi
VEE ~333=@230
VEE ~334=@231
VEE ~335=@232
VEE ~336=@234[1:10]
VEE ~337=@235[1:25]
VEE ~338=~336+~337
VEE ~103=@230[1:26]
VEE ~104=@231[1:26]
VEE ~105=@234[1:4]
VEE ~106=@233[1:22]
VEE ~141=@244[1:3]
VEE ~142=@247[1:7]
VEE ~143=@248[1:2]
VEE ~144=~141+~142
VEE ~145=~144+~143
V21 ~010=@011[9:10]
V21 ~009=@011[4:5]
V21 ~008=@011[1:2]
V21 ~007=~008+~009
V21 ~011=~007+~010
V21 ~012=@020[1:12]
%CR
%CR Elaboration du nom du fichier
V21 ~801="ap$in:"
V21 ~802=".vme"
V21 ~803=~801+~800
V21 ~804=~803+~011
V21 ~805=~804+~802
V21 ~806=~800+~011
V21 ~150=@15[1:3]
%210~011 20051~806 00000000000~900 3 1
V10 ~100=~100+1
V10 ~300=~100
V10 ~301=~300+"01"
V10 ~304=~300+"04"
V10 ~305=~300+"05"
V10 ~306=~300+"06"
V10 ~307=~300+"07"
V10 ~308=~300+"08"
V10 ~309=~300+"09"
V10 ~310=~300+"10"
V10 ~311=~300+"11"
V10 ~320=@03
V10 ~131=~131+~101
V10 ~102=~102+@011
V10 ~107=@02[1:26]
V10 ~108=@13[1:26]
V10 ~109=@16[1:4]
V10 ~110=@15[1:22]
V10 ~111=~111+6
%101~301 ~011 ~806 ~150C@11 ~145 
%101~304 ~320
%101~306 @09 @02 @13 
%101~307 @16 @17
%101~310 NOR 000000000000 @18 
%101~311 000@011 Aan- en verkoop goed. in of uitgevo 
M10 @011="9999999999999.99"
V20 ~100=0
V20 ~200=0
V20 ~102=0
V20 ~111=0
V40 ~200=~100*2
V40 ~101=~100
%419~111 ~101 ~102 
P INTERFACE="~805"