meta données pour cette page
  •  

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
compta:exportxml [2026/03/27 15:49] – 45.147.21.143compta:exportxml [2026/08/26 15:24] (Version actuelle) – [Annexe technique] 45.147.21.143
Ligne 1: Ligne 1:
-====== Documentation : Fichier de Prélèvement SEPA (ISO 20022) ======+|{{:connexe.jpg?40|}} **Sujets connexes**|[[compta:exportxml:annexe]]\\ [[https://fr.wikipedia.org/wiki/ISO_20022]] | 
 +====== Export XML (prélèvement SEPA) ======
  
-Cette documentation détaille la structure et les champs obligatoires pour la génération des fichiers de prélèvement SEPA au format **pain.008.001.02** (norme en vigueur).+Cet écran permet de générer un fichier XML de prélèvement SEPA (norme bancaire), à partir d'une écriture comptable multi-ligne déjà existante — typiquement celle produite par l'écran [[:generation-cotisations-snap|Génération Cotisations]], mais pas seulement. Le fichier généré est ensuite à transmettre à la banque pour déclencher les prélèvements.
  
-===== 1. Présentation générale =====+===== Accès à l'écran ===== 
 +  * Menu **Comptabilité > Utilitaires** 
 +  * Sélectionner **Prélèvement SEPA** dans l'arborescence 
 +===== Organisation de l'écran =====
  
-Le prélèvement SEPA (SDD - SEPA Direct Debit) repose sur l'échange de fichiers XML. Un fichier est structuré en trois niveaux hiérarchiques : +==== 1. Choix de la multi-ligne à exporter ====
-  - **GrpHdr (En-tête) :** Informations communes à tout le fichier. +
-  - **PmtInf (Information de paiement) :** Informations relatives au créancier et au type de prélèvement. +
-  - **DrctDbtTxInf (Transaction) :** Détails de chaque débit individuel (un par client).+
  
-===== 2. Tableau des champs obligatoires =====+Une première grille liste les multi-lignes éligibles : **N° pièce**, **Date**, **Intitulé**, **Total crédit**. Une recherche libre est disponible, mais il n'y a pas de filtre par date : il faut retrouver sa multi-ligne dans la liste.
  
-^ Rôle ^ Balise XML ^ Nom du champ ^ Description / Format ^ +Seules les multi-lignes de type **Recette** ou **Bordereau**, non supprimées, sont proposées. Les multi-lignes de type **Dépense** (virements) ne sont **pas encore proposées** à ce stade, même si le mécanisme de génération de virement existe déjà techniquement en arrière-plan.
-| **Commun** | `<MsgId>` | ID du message | Identifiant unique du fichier (max 35 car.). | +
-| **Commun** | `<CreDtTm>` | Date et heure | Date de création (ex: %%2026-03-27T15:45:00%%). | +
-| **Commun** | `<NbOfTxs>` | Nb Transactions | Nombre total de prélèvements dans le fichier. | +
-| **Créancier** | `<InitgPty>` | Partie initiatrice | Nom de l'entité qui transmet le fichier (votre entreprise). | +
-| **Créancier** | `<Cdtr>` | Nom du créancier | Nom officiel de votre entreprise. | +
-| **Créancier** | `<CdtrAcct>` | IBAN Créancier | Votre compte à créditer. | +
-| **Créancier** | `<CdtrAgt>` | BIC Créancier | Le code BIC de votre banque. | +
-| **Créancier** | `<CdtrSchmeId>` | ID Créancier (ICS) | Votre identifiant émis par la Banque de France. | +
-| **Débiteur** | `<Dbtr>` | Nom du débiteur | Nom ou raison sociale de votre client. | +
-| **Débiteur** | `<DbtrAcct>` | IBAN Débiteur | Le compte client à débiter. | +
-| **Débiteur** | `<DbtrAgt>` | BIC Débiteur | Le code BIC de la banque de votre client. | +
-| **Mandat** | `<MndtId>` | Référence Mandat (RUM) | L'identifiant unique du mandat signé (max 35 car.). | +
-| **Mandat** | `<DtOfSgntr>` | Date de signature | Date à laquelle le client a signé le mandat. | +
-| **Paiement** | `<InstdAmt>` | Montant | Montant de la transaction (ex: %%125.50%%). | +
-| **Paiement** | `<EndToEndId>` | ID Transaction | Référence unique de bout en bout (souvent le n° de facture). | +
-| **Paiement** | `<ReqdColltnDt>` | Date de collection | Date souhaitée du débit sur le compte client. |+
  
-===== 3. Types de séquences (SeqTp) =====+==== 2. Détail des lignes de la multi-ligne sélectionnée ====
  
-Il est crucial de bien définir le type de prélèvement dans la balise %%<SeqTp>%% : +Une seconde grille affiche les lignes d'écriture (saisies) rattachées à la multi-ligne choisie : **Libellé**, **Adhérent**, **Montant**.
-  * **FRST** : Premier prélèvement d'une série récurrente (optionnel selon les banques depuis 2016, souvent remplacé par RCUR). +
-  * **RCUR** : Prélèvements suivants d'une série récurrente. +
-  * **OOFF** : Prélèvement ponctuel unique. +
-  * **FNAL** : Dernier prélèvement d'une série.+
  
-===== 4. Bonnes pratiques et contraintes =====+==== 3. Paramétrage avant génération ====
  
-> **Avertissement :** +Cette section n'apparaît qu'une fois une multi-ligne sélectionnée. Elle peut d'abord bloquer la suite avec un message si : 
-> * **Jeu de caractères :** Utilisez uniquement le jeu de caractères LATIN. Évitez les accents (é, à, ç), les caractères spéciaux (&, $, %) et les symboles de ponctuation complexes. + 
-> * **Délais :** La date de collection (%%ReqdColltnDt%%) doit être un jour ouvré bancaire (système TARGET2). +  * une ou plusieurs lignes ne sont pas liées à un adhérent ; 
-> * **Validation :** Avant envoi, le fichier doit être validé contre le schéma XSD fourni par l'EPC (European Payments Council).+  * la multi-ligne ne contient pas exactement **une seule** ligne sur un compte de trésorerie (compte bancaire, classe 5) — c'est cette ligne qui sert de contrepartie (le compte débité/crédité côté association). 
 + 
 +Deux blocs sont ensuite éditables (bouton "Modifier" / "Valider" / "Annuler" — réservé aux utilisateurs ayant le droit d'édition sur les fichiers) : 
 + 
 +  * **Identifiant Créancier SEPA (ICS) de l'organisation** : un champ unique, au format imposé par la norme SEPA. **Attention : c'est un paramètre global de la base**, pas propre à cette génération — le modifier ici le modifie pour toutes les générations futures. 
 +  * **Informations du compte de trésorerie** : IBAN, BIC, code banque, code agence, numéro de compte, clé RIB, domiciliation, informations banque 1 à 4. Le bouton "Valider" n'est actif que si IBAN et BIC sont renseignés. Raccourcis : ''Échap'' annule, ''Entrée'' valide. 
 + 
 +Un tableau récapitulatif (lecture seule) liste ensuite chaque ligne de contrepartie avec : titre, nom de l'adhérent, montant, IBAN/BIC (repris de la fiche personne — "Informations IBAN/BIC manquantes" si absentes), et adresse. Un message global signale s'il manque des coordonnées bancaires sur au moins un adhérent. 
 + 
 +==== 4. Génération du fichier ==== 
 + 
 +Le bouton de génération s'adapte au type de multi-ligne : 
 + 
 +  * **Recette / Bordereau** → **"Générer XML pour prélèvement"**, avec un rappel au-dessus : *"Prélèvement sur le compte {compte} - {banque} pour un montant total de {montant} €"*. 
 +  * **Dépense** → "Générer XML pour virement" (cas non atteignable pour l'instant, les Dépenses étant exclues en amont). 
 + 
 +Le bouton reste désactivé tant que les conditions ne sont pas réunies, qu'il manque des IBAN/BIC, ou qu'une édition (ICS / banque) est en cours. 
 + 
 +Si des données sont invalides (nom, adresse, IBAN, BIC, date de mandat...), la génération est bloquée et le détail des erreurs s'affiche sous l'en-tête **"Les erreurs ci-dessous ont empêché la génération du fichier SEPA XML"**. 
 + 
 +Si tout est valide, le fichier est **téléchargé directement par le navigateur** (pas d'envoi au serveur), nommé `directDebit_sepa_{ID}.xml` (ou `payment_sepa_{ID}.xml` pour un virement). 
 + 
 +===== Points d'attention ===== 
 + 
 +  * L'**ICS** est un paramètre **de la base**, pas de la génération en cours : une correction doit être faite une fois pour toutes, pas à chaque export. 
 +  * Si la **date de signature du mandat** n'est pas renseignée sur la fiche de l'adhérent, l'export utilise une date par défaut du **01/01/2024** — à vérifier/corriger sur la fiche adhérent pour un mandat plus récent avant de faire confiance à l'export. 
 +  * Un IBAN ou un BIC laissé **vide** n'est pas systématiquement signalé comme une erreur de format : c'est le contrôle sur les champs manquants (bouton désactivé, tableau récapitulatif) qui empêche réellement la génération, pas la validation de format en elle-même. 
 +  * Le pays de l'adresse d'un adhérent, s'il n'est pas reconnu comme un pays de la zone euro SEPA, retombe automatiquement sur "FR" — à surveiller pour les adhérents étrangers. 
 +  * L'écran ne propose aujourd'hui que les prélèvements (Recette/Bordereau) : pour un virement (Dépense), la génération n'est pas encore accessible depuis cette grille.
  
-===== 5. Exemple de structure XML (Squelette) ===== 
  
-<code> 
-<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.008.001.02"> 
-  <CstmrDrctDbtInitn> 
-    <GrpHdr> </GrpHdr> 
-    <PmtInf> 
-      <DrctDbtTxInf> 
-        </DrctDbtTxInf> 
-      <DrctDbtTxInf> 
-        </DrctDbtTxInf> 
-    </PmtInf> 
-  </CstmrDrctDbtInitn> 
-</Document> 
-</code>