INTERFACE BANCAIRE : MODE OPERATOIRE
SOMMAIRE A. DESCRIPTION DE L’INTERFACE BANCAIRE
B. MODE D’AUTHENTIFICATION EDI
C. DESCRIPTION DU FICHIER DES ENTETES DE DOCUMENT ENVOYE PAR LA DGID AUX INSTITUTIONS FINANCIERES (Entete_document_impot)
D. DESCRIPTION DU FICHIER ATTENDU PAR LA DGID
E. EXEMPLE DU FICHIER XML A ENVOYER A LA DGID
F. VIREMENT A LA BCEAO DES PAIEMENTS RECUS PAR LES INSTITUTIONS FINANCIERES
1
A. DESCRIPTION DE L’INTERFACE BANCAIRE
2
1) Les entêtes des documents en attente de paiement sont mis à la disposition de l’institution financière sous format XML à chaque début de période d’imposition (cf. Annexe B - Entete_document_impot) 2) Le partenaire se connecte par FTPS sur la plateforme EDI en s’authentifiant par certificat électronique reconnu (mis à la disposition de la DGID par le partenaire) et télécharge les fichiers de ses clients ; 3)
Tous les jours, à une heure à déterminer (voir Convention), le partenaire envoie l’ensemble des paiements reçus sous format XML à la DGID par FTPS via le système EDI en respectant strictement les formats et contenu de la table BANK_SOURCE_DATA (cf. Annexe B) ; le fichier XML devra respecter l’algorithme suivant :
- Si le Header est égale à ‘N’ Alors seule la balise <CHEQUE_NO> peut être nulle. Toutes les autres doivent contenir de l’information. - Sinon (le Header = ‘Y’) Alors les balises <EXT_DOC_NO>, <TIN>, <TAX_PAYER_NAME> et <CHEQUE_NO> doivent être nulles. Toutes les autres balises contiennent de l’information. 4) Le système EDI charge les fichiers reçus dans une table de réception ; 5) Une notification est envoyée par mail au partenaire portant sur le résultat de l’opération qui aura le statut ‘Réussi’ ou ‘Echec’. Un log est produit en cas d’échec ; 6) L’institution financière procède au virement des fonds à la BCEAO à jour convenu. Pour chaque enregistrement envoyé, la banque précise les informations fournies par le client et le Bureau de recouvrement concerné. Le nom du Bureau de recouvrement est contenu dans le champ Bur_Recouvr contenu dans l’entête de déclaration. NB : Le mode d’authentification détaillé sera discuté en comité technique.
3
A. MODE D’AUTHENTIFICATION EDI 1) DESCRIPTION 1. La DGID reçoit la demande de connexion de la part du partenaire et la met à disposition du composant de communication de la plate-forme B2Bi ; 2. La plate-forme B2Bi vérifie que l’adresse IP du partenaire est autorisée et accepte la connexion ; 3. Le composant B2Bi récupère le certificat du partenaire. SI ce dernier n’est pas valide, la connexion est refusée. 4. Une fois l’authentification réussie, le partenaire signe avec sa clé privée le fichier XML contenant l’ensemble des paiements reçus et le transfère via la connexion FTPS établie. 5. Le système B2Bi vérifie la signature du partenaire via sa clé publique et stocke le fichier en cas de conformité. Ce mécanisme permet en même temps de vérifier l’intégrité des données transmises afin de d’éviter les corruptions de fichier. NB : les éléments de contrôle de la connexion (adresse IP publique, certificat et clé publique) sont préalablement fournis par le partenaire à la DGID. 2) PREREQUIS Le partenaire doit disposer de : un certificat type SSL V3 / TLS V1 du standard x.509 de 128 bits valide et reconnu ;
une adresse publique internet à utiliser pour les échanges.
4
B. DESCRIPTION DU FICHIER DES ENTETES DE DOCUMENT ENVOYE PAR LE DGID AUX INSTITUTIONS FINANCIERES (Entete_document_impot)
Nom de la colonne
Obligatoire Type de donnée (Taille)
Description
Ext_doc_no
Y
Varchar2(10)
Le Numéro de Document émis par le système de la DGID
TIN
Y
Varchar2(9)
Tax_payer_name
Y
Varchar2(100)
Le Numéro d’Identification National des Entreprises et Associations (NINEA) du contribuable Le nom du contribuable (Prénom Nom ou Raison sociale)
Tax_type_desc
Y
Varchar2(20)
Description de la Nature d’impôt à acquitter
Tper_year
Y
Number(4)
Année de la période d’imposition
Tper_month
Y
Number(2)
Mois de la période d’imposition
Bur_Recouvr
Y
Number(2)
Identification du Bureau de Recouvrement du contribuable pour l’impôt – A envoyer à la BCEAO lors du virement.
5
C. DESCRIPTION DU FICHIER ATTENDU PAR LA DGID
Nom de la colonne
Obligatoire Type de donnée (sauf exception (Taille) définie dans la colonne description)
REF_NO
Y
VARCHAR2 (25 Char)
SEQUENCE_NO
Y
VARCHAR2 (10 Char)
Défaut
Description
Le numéro de référence interne à la Banque, unique à chaque session d'envoi de données vers cette table intermédiaire. Sa valeur ne dépend pas du type de l'enregistrement envoyé. Le format du champ est le suivant CodeBank_DateTransfert_NumSession. NumSession : de 1 à n remis à 0 toutes les 24 heures Format de date : JJMMAAAA Le numéro de séquence unique pour chacun des enregistrements au sein d'une session d'envoi de données vers cette table intermédiaire. Si l'enregistrement est de type "Entête", ce champ est positionné au nombre d'enregistrements envoyés durant la session. "N"
HEADER_REC_FL
Y
VARCHAR2 (1 Char)
Défini le type d'enregistrement envoyé. Si sa valeur est à "N", l'enregistrement est de type "Transaction". Si sa valeur est à "Y", l'enregistrement est de type "Entête".
BANK_ACCT_NO
Y
Number (2)
Numéro unique d’identification de la banque dans le système de la DGID (14 pour ECOBANK, 2 pour BICIS, etc.)
EXT_DOC_NO TIN TAX_PAYER_NAME PAYMENT DATE
Y Y Y Y
VARCHAR2 (25 Char) VARCHAR2 (20 Char) VARCHAR2 (100 Char) VARCHAR2 (15 Char)
AMOUNT
Y
VARCHAR2 (16 Char)
Le Numéro de Document (transaction) émis par la DGID – null si HEADER_REC_FL = ‘Y’ Le NINEA du contribuable – null si HEADER_REC_FL = ‘Y’ Le nom du contribuable (Prénom Nom ou Raison sociale) – null si HEADER_REC_FL = ‘Y’ Date de payement auprès de la banque. Le format est ‘JJMMAAAA’. Le montant payé par le contribuable. Exemple: 2012.58 La virgule n'est pas utilisée comme séparateur. Si l'enregistrement est de type "Entête", ce champ est positionné au montant total (addition de tous les montants individuels envoyés durant la session).
CHEQUE_NO
N
VARCHAR2 (25 Char)
Le numéro du chèque utilisé pour le payement. – null si HEADER_REC_FL = ‘Y’ 6
A chaque envoi correspond une session. Un enregistrement de type Entête (ou Header) est envoyé par session et permet de transmettre deux informations : -
le montant total (somme de tous les montants individuels de chacun des enregistrements de type "Transaction") de la session et, le nombre total d'enregistrements inséré dans la même session d'envoi. (correspond à sequence_no, s’il n’y a eu aucune annulation de transaction).
7
D. EXEMPLE DU FICHIER XML A ENVOYER A LA DGID <? xml version="1.0" encoding="ISO-8859-1" ?> <ROWDATA> <ROW> -- ligne en-tête <REF_NO>XXX1111201311</REF_NO> <SEQUENCE_NO>2</SEQUENCE_NO> -- nombre de transactions à transmettre <HEADER_REC_FL>Y</HEADER_REC_FL> <BANK_ACCT_NO>14</BANK_ACCT_NO> <EXT_DOC_NO></EXT_DOC_NO> <TIN></TIN> <TAX_PAYER_NAME></TAX_PAYER_NAME> <PAYMENT_DATE>11112013</PAYMENT_DATE> <AMOUNT>40000</AMOUNT> -- montant total des transactions <CHEQUE_NO></CHEQUE_NO> </ROW> <ROW> -- ligne transaction (1ere transaction) <REF_NO>XXX1111201312</REF_NO> <SEQUENCE_NO>1</SEQUENCE_NO> <HEADER_REC_FL>N</HEADER_REC_FL> <BANK_ACCT_NO>14</BANK_ACCT_NO> <EXT_DOC_NO>0030252225</EXT_DOC_NO> <TIN>000030771</TIN> <TAX_PAYER_NAME>Raison sociale 1</TAX_PAYER_NAME> <PAYMENT_DATE>11112013</PAYMENT_DATE> <AMOUNT>25000</AMOUNT> <CHEQUE_NO>235689</CHEQUE_NO> </ROW> <ROW>-- ligne transaction (2ème transaction) <REF_NO>XXX2013111113</REF_NO> <SEQUENCE_NO>2</SEQUENCE_NO> <HEADER_REC_FL>N</HEADER_REC_FL> <BANK_ACCT_NO>14</BANK_ACCT_NO> <EXT_DOC_NO>0034993355</EXT_DOC_NO> <TIN>000016628</TIN> <TAX_PAYER_NAME>Raison sociale 2</TAX_PAYER_NAME> <PAYMENT_DATE>11112013</PAYMENT_DATE> <AMOUNT>15000</AMOUNT> <CHEQUE_NO></CHEQUE_NO> </ROW> </ROWDATA> -- balise REF_NO = CodeBankDateTransfertNumSession CodeBank=XXX DateTransfert=11112013 NumSession=11 -- balise REF_NO = CodeBankDateTransfertNumSession CodeBank=XXX DateTransfert=11112013 NumSession=12 8
E.
VIREMENT A LA BCEAO DES PAIEMENTS RECUS DES INSTITUTIONS FINANCIERES Lors du virement des paiements cumulés durant la journée dans les comptes du TRESOR, la banque inclura parmi les informations de virement, le nom du Bureau de recouvrement auquel est rattaché le contribuable. Le nom dudit bureau de recouvrement (Bur_Recouvr) est contenu dans l’entête de fichier mis à la disposition de la banque par la DGID. NB : Le bureau de recouvrement peut varier d’un contribuable à un autre et peut changer d’une période d’imposition à l’autre. Les virements sont logés dans un seul compte du Trésor à la BCEAO, sauf pour les impôts FSSIP, TPT, TUR, CODETE, CSMC et RUTEL pour lesquels les comptes de destination à la BCEAO devront être précisés.
9