[XML] Remises informatisées d'ordres de paiement SEPA (ISO 20022)

Remises informatisées d'ordres de paiement SEPA (ISO 20022) [XML] - XML/XSL - Programmation

Marsh Posté le 04-04-2012 à 09:22:32    

Bonjour,
 
Pour me situer : je suis nouveau dans le vaste monde des développeurs. En gros, j'ai la chance d'avoir trouvé un employeur qui m'embauche sans formation autre que la débrouille et qui me forme sur le tas en parallèle de cours du soir que je prends au CNAM...
 
Bref, l'entreprise pour laquelle je travaille rencontre un problème pour la mise à la norme SEPA des virements. Ils souhaitent exporter un fichier XML dans lequel seraient contenues les informations de virement (IBAN, BIC) depuis le logiciel qu'ils développent pour ensuite le transmettre à une banque et réaliser le virement souhaité. Il semble qu'une étape au moins manque (certification ? données manquantes dans le fichier ? format ?). J'aurais aimé savoir si certains d'entre vous se sont déjà frottés à la certification XML dans le cadre de virements bancaires et quelles sont les particularités d'une telle opération.
 
Merci  :hello:
 
Mise à jour :  
Trouvé ce document
 
Le contenu nécessaire est indiqué, mais je n'ai pas encore trouvé la cause du refus du fichier par la banque...


Message édité par topmoomoot le 04-04-2012 à 15:33:30

---------------
Elle n'était pas vraiment pour. Je ne lui demandais pas vraiment son avis.
Reply

Marsh Posté le 04-04-2012 à 09:22:32   

Reply

Marsh Posté le 04-04-2012 à 09:28:02    

Information complémentaire : lorsqu'on envoie le fichier XML à la banque, elle nous retourne un simple code erreur "pmtInf" suivi d'une explication succinte "Anomalie 032 - Le fichier ne contient pas de remise".


---------------
Elle n'était pas vraiment pour. Je ne lui demandais pas vraiment son avis.
Reply

Marsh Posté le 04-04-2012 à 11:05:31    

:hello:  
J'ai été jeter un oeil à ton document et à la norme elle même.
Tu as quelque part le schema XML de la norme ISO 20022?  
Tu disposes de quels outils pour la validation d'un document XML par rapport à son schéma?
A+,  


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 04-04-2012 à 13:25:05    

Merci pour ta réponse !
 
Le développeur avec qui je travaille (et qui est à l'origine du programme développé par la boite) n'avait pas pris le temps de trouver un vérificateur XML à la norme ISO 20022. Je viens d'en trouver un (version d'évaluation : SEPA Online) qui m'a retourné une erreur + concrète que la banque.  
 
A savoir :
 

Code :
  1. DOMDocument::schemaValidate() [domdocument.schemavalidate]: Element '{urn:iso:std:iso:20022:tech:xsd:pain.001.001.02}Pmtinf': This element is not expected. Expected is ( {urn:iso:std:iso:20022:tech:xsd:pain.001.001.02}PmtInf ).


 
Il semblerait donc que le problème vienne simplement d'une majuscule oubliée. Je vais lui dire d'essayer ainsi. Je placerai le sujet comme résolu si ca fonctionne. Ca m'aura au moins permis de découvrir le validateur SEPA (difficile à trouver en gratuit...).
 
Si ca t'intéresse je peux poster la structure d'un fichier XML à la norme ISO 20022, ca pourra peut être servir pour d'autres.


Message édité par topmoomoot le 04-04-2012 à 13:44:04

---------------
Elle n'était pas vraiment pour. Je ne lui demandais pas vraiment son avis.
Reply

Marsh Posté le 04-04-2012 à 13:32:25    

Il y a également d'autres erreurs dans le fichier, des lettres oubliées dans les balises notamment. Je poste la structure utilisée dès que j'ai corrigé ca.


---------------
Elle n'était pas vraiment pour. Je ne lui demandais pas vraiment son avis.
Reply

Marsh Posté le 04-04-2012 à 13:38:52    

Citation :

la structure d'un fichier XML à la norme ISO 20022

C'est plus ou moins dans le lien que tu as donné. Le schema xsd de la norme ISO serait plus intéressant (car sans doute un poil plus complet), mais il doit être soumis à des restrictions de copyright faisant que tu ne peux probablement pas le poster publiquement.
Concrètement, ce qui génère tes documents (faux), c'est quoi? Un programma ad-hoc développé à la pogne?
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 04-04-2012 à 13:47:57    

Nous développons un logiciel de gestion de base de données pour entreprises. Ici, le but est de pouvoir, depuis l'enregistrement d'un RIB sous forme SEPA dans la base, faire un virement à un client, un salarié ou autre... Le problème est en sortie de la base : essentiellement un souci de formatage des données (BIC) + quelques majuscules oubliées dans les balises... Donc rien de grave en soi mais les validateurs sont difficiles à trouver et les erreurs ne sautent pas forcément aux yeux (surtout pour moi qui débute ^^).
 
Et le logiciel est développé sous 4D pour info.


---------------
Elle n'était pas vraiment pour. Je ne lui demandais pas vraiment son avis.
Reply

Marsh Posté le 04-04-2012 à 14:01:19    

Je vois.
Si j'ai bien pigé, au vu de ton document initial, c'est le pain.001.001.03 qui t'intéresse. Le schéma XML se trouve sur cette page: http://www.iso20022.org/full_catalogue.page
Ensuite, il faut faire passer tes documents à travers un validateur de conformité au xsd. Par exemple Xerces de Apache (il y en a d'autres, éventuellement plus adaptés à ton environnement de travail)
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 04-04-2012 à 14:49:33    

En effet. La version 02 de la norme est obsolète. A priori, ca fonctionne. Ce sera en test demain pour un véritable dialogue avec la banque mais le fichier est valide en tout cas. Le souci effectivement, c'est qu'on nous demande de valider le fichier mais qu'on n'a pas accès au XSD. Donc obligation de passer par d'autres vérificateurs pour la plupart payants.  
 
M'enfin, je me suis débrouillé. Merci en tout cas :)


---------------
Elle n'était pas vraiment pour. Je ne lui demandais pas vraiment son avis.
Reply

Marsh Posté le 04-04-2012 à 15:10:20    

Citation :

mais qu'on n'a pas accès au XSD

Il suffit de le télécharger sur la page de l'ISO que j'ai indiqué. pain.001.001.03.zip
Noter qu'au vu de ton document initial, il y a peut être des contraintes supplémentaires spécifiques aux banques françaises à prendre en compte, comme l'indique par exemple ce paragraphe:

Citation :

Les caractères autorisés dans les messages ISO 20022 sont ceux de la norme UTF8. Cependant, les  
banques françaises se limitent au jeu de caractères latins, composé de :
a b c d e f g h i j k l m n o p q r s t u v w x y z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9
/ - ? : ( ) . , ‟ +
Espace


ça peut être fait en modifiant le schéma xsd pour intégrer ces contraintes ou en ajoutant un niveau supplémentaire de vérification après le passage par le validateur (ou en amont, à la création du document si les seul documents vérifiés sont ceux que tu génères).
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 04-04-2012 à 15:10:20   

Reply

Marsh Posté le 04-04-2012 à 15:32:21    

Wah top ! J'étais passé à côté... Hop : dans ma réserve à moutarde !
 
Pour ce qui est du formatage FR, ca reste à voir : c'est surtout pour permettre aux clients de faire des virements en Europe (vocation 1ère du SEPA justement). Donc pour l'instant on va laisser comme ca je pense. Si la banque accepte le fichier c'est tout bon :D  
 
Merci beaucoup encore. Je n'y connaissais rien en XML, je commence à en comprendre l'intérêt et pourquoi tant de monde l'utilise...


---------------
Elle n'était pas vraiment pour. Je ne lui demandais pas vraiment son avis.
Reply

Marsh Posté le 04-04-2012 à 16:28:05    

Citation :

Je n'y connaissais rien en XML

Je nageais la dedans que ça portait pas encore ce nom :)
Si tu veux t'y initier et que l'anglais te rebute pas, tu as les bouquins de Neil Bradley qui sont plutôt bien foutus et assez complets (The XML Companion, The XML Scheme Companion et moins utile pour ce que tu fais, The XSL Companion. Bon, je sais pas s'ils ont été remis à jour récemment par contre). Bon, ce sont pas des tutorials, mais ça, il y en a sur le web.
 
A la limite, pour les restrictions sur les caractères etc, tu pourrais générer un warning dans un fichier de log dans un premier temps (et dans un second, quand tu sauras lesquelles refusent les documents pas conformes aux restrictions supplémentaires, en tenir compte lors de la génération du document).
A+,


Message édité par gilou le 04-04-2012 à 16:31:16

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 05-04-2012 à 08:15:11    

Je vais y jeter un oeil d'ici cet été je pense (quand les exams seront passés). Pour l'instant, entre le boulot à apprendre sur le tas et les cours... Ca me laisse trop peu de temps. Mais merci pour les références, ca fera ca en + à rentrer dans mon crâne !


---------------
Elle n'était pas vraiment pour. Je ne lui demandais pas vraiment son avis.
Reply

Marsh Posté le 19-08-2013 à 16:12:47    

Bonjour,  
je suis actuellement en stage pour développer un module pour une application web de gestion de copropriétés afin de pouvoir émettre des virements et des prélèvements a l'aide de la norme SEPA (SCT, SDD).
le module doit permettre à chaque copropriété à partir de sa session de faire des prélèvements sur les comptes bancaires  de ses propriétaires et émettre des virements sur les comptes bancaires de ses fournisseurs.
chaque copropriété possède son propre compte bancaire.
l'appli gère environ 1000 copropriétés.  
Si quelqu'un s'est déjà confronté a ce genre de problématique, une aide est la bienvenue.
je connait la procédure à suivre pour mettre en place la norme SEPA avec une banque mais ce que je cherche, est un moyen s'il existe, afin d'éviter de traiter chaque banque de chaque  copropriété.
 
merci d'avance.
cordialement.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed