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).+
  
-===== 2Tableau 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éesLes multi-lignes de type **Dépense** (virementsne 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|+
  
-===== 3Types de séquences (SeqTp) =====+==== 2Dé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 (saisiesrattaché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.+
  
-===== 4Bonnes pratiques et contraintes =====+==== 3Paramé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 envoile 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** : IBANBIC, 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 seuleliste ensuite chaque ligne de contrepartie avec : titrenom de l'adhérentmontantIBAN/BIC (repris de la fiche personne — "Informations IBAN/BIC manquantes" si absentes)et adresseUn 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écapitulatifqui 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>