====== Documentation : Fichier de Prélèvement SEPA (ISO 20022) ======

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).

===== 1. Présentation générale =====

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 :
  - **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 =====

^ Rôle ^ Balise XML ^ Nom du champ ^ Description / Format ^
| **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) =====

Il est crucial de bien définir le type de prélèvement dans la balise %%<SeqTp>%% :
  * **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 =====

> **Avertissement :**
> * **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).
> * **Validation :** Avant envoi, le fichier doit être validé contre le schéma XSD fourni par l'EPC (European Payments Council).

===== 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>