Code purpose SEPA : SALA, SUPP, TAXS et quand les utiliser

2026-10-25

Vous préparez la remise des salaires dans votre banque en ligne, ou vous paramétrez l’export de virements de votre ERP, et un champ inattendu apparaît : « code purpose », « motif du paiement » ou « catégorie de paiement ». Faut-il le remplir ? Avec quoi ? Et que se passe-t-il si vous le laissez vide ?

Le code purpose SEPA est un code normalisé de quatre lettres qui indique la nature d’un paiement : SALA pour un salaire, SUPP pour un fournisseur, TAXS pour un impôt, PENS pour une pension. Il figure dans le fichier XML du virement et sert aux systèmes des banques, pas aux humains. Dans la grande majorité des virements SEPA entre entreprises, il est facultatif.

Il existe en réalité deux champs proches dans le fichier pain.001 : le code purpose de chaque virement et la catégorie de paiement du lot entier. C’est cette seconde catégorie, et surtout la valeur SALA, qui a des effets concrets dans les banques françaises. Voici la différence entre les deux, quand les remplir et les erreurs qui reviennent le plus souvent.

Qu’est-ce qu’un code purpose SEPA ?

Le code purpose vient de la norme ISO 20022, sur laquelle repose tout le format des fichiers SEPA XML. Il s’agit d’une valeur choisie dans une liste fermée, publiée et mise à jour par l’organisme de maintenance de la norme dans ses listes de codes externes ISO 20022. Chaque code fait quatre caractères et désigne un type de paiement.

Infographie expliquant la définition et la fonction du code purpose SEPA dans un paiement

Son rôle est de classer le paiement de façon lisible par une machine. Le libellé du virement (« Facture F-2026-118 », « Salaire octobre 2026 ») est du texte libre, destiné au bénéficiaire et à votre comptabilité. Le code purpose, lui, dit à la banque et aux logiciels du bénéficiaire de quel type de paiement il s’agit, sans avoir à interpréter le texte.

Il ne faut le confondre ni avec le libellé, ni avec la référence de bout en bout, ni avec les codes de rejet :

Élément Balise XML À quoi il sert Qui le lit
Code purpose Purp/Cd Nature d’un virement précis (salaire, loyer, impôt…) Banque et système du bénéficiaire
Catégorie de paiement CtgyPurp/Cd Nature de tout un lot de virements Banque du donneur d’ordre en priorité
Libellé RmtInf/Ustrd Texte libre de 140 caractères maximum Bénéficiaire, comptabilité
Référence de bout en bout EndToEndId Identifiant unique du virement, de votre système jusqu’au bénéficiaire Vous et le bénéficiaire, pour le rapprochement
Code de rejet Rsn/Cd (dans les retours) Motif d’un rejet ou d’un retour (AC04, AM04…) Vous, après coup

La référence de bout en bout et le libellé sont détaillés dans notre article sur la référence bancaire. Ici, on se concentre sur les deux premiers.

Code purpose et catégorie de paiement : deux champs à distinguer

Dans un fichier de virements pain.001, les virements sont regroupés en lots (PmtInf), et chaque lot contient un ou plusieurs virements (CdtTrfTxInf). Les deux codes se placent à des niveaux différents.

La catégorie de paiement, au niveau du lot

La balise CtgyPurp, dans le bloc d’informations de paiement (PmtTpInf), qualifie tout le lot. Elle s’adresse d’abord à votre propre banque, qui peut appliquer un traitement particulier à l’ensemble de la remise. Exemple :

<PmtTpInf>
  <SvcLvl><Cd>SEPA</Cd></SvcLvl>
  <CtgyPurp><Cd>SALA</Cd></CtgyPurp>
</PmtTpInf>

C’est elle qui compte pour les virements de salaires en France. Lorsqu’une remise porte la catégorie SALA, de nombreuses banques la traitent comme une remise de salaires : débit global sur votre relevé, confidentialité du détail des montants vis-à-vis des personnes qui consultent vos comptes, parfois une date de valeur ou un traitement spécifique. Les modalités exactes dépendent de votre contrat : interrogez votre conseiller chez BNP Paribas, Société Générale, Crédit Agricole, Crédit Mutuel, LCL ou Banque Populaire.

Le code purpose, au niveau de chaque virement

La balise Purp, à l’intérieur d’un virement individuel, qualifie ce seul paiement. Elle est transmise de bout en bout jusqu’à la banque du bénéficiaire, qui peut l’utiliser à son tour. Exemple :

<CdtTrfTxInf>
  <PmtId><EndToEndId>LOY-2026-11-004</EndToEndId></PmtId>
  <Amt><InstdAmt Ccy="EUR">1250.00</InstdAmt></Amt>
  <Purp><Cd>RENT</Cd></Purp>
  ...
</CdtTrfTxInf>

Écran affichant le code XML d'un paiement SEPA avec les codes purpose mis en évidence

Idée clé : la catégorie de paiement parle à votre banque et s’applique à tout le lot ; le code purpose voyage avec chaque virement jusqu’au bénéficiaire. Pour les salaires, c’est la catégorie SALA qui déclenche le traitement spécifique.

Le code purpose SEPA est-il obligatoire ?

Non, dans le cas général. Le schéma de virement SEPA défini par l’European Payments Council prévoit les deux champs comme facultatifs. Un virement fournisseur classique, entre deux comptes en France ou dans la zone SEPA, part parfaitement sans code purpose ni catégorie.

Il devient nécessaire dans trois situations :

  • Votre banque l’exige pour un service donné : remise de salaires confidentielle, virement de trésorerie urgent, flux traités sur un circuit particulier. C’est alors la convention de banque à distance qui fixe la règle.
  • Le bénéficiaire le demande : certains grands organismes ou administrations utilisent le code purpose pour orienter automatiquement les paiements reçus.
  • Le paiement sort de l’espace SEPA : plusieurs pays hors Europe imposent un code de motif économique sur les virements entrants. Ce n’est plus du virement SEPA, et les règles varient selon le pays de destination.

Concrètement, pour une entreprise française :

  • Virement fournisseur courant en France ou dans la zone SEPA : laissez le champ vide, ou mettez la catégorie SUPP si votre banque le recommande.
  • Remise de salaires : mettez la catégorie SALA sur le lot.
  • Paiement de pensions ou de retraites complémentaires : catégorie PENS sur le lot.
  • Impôts ou cotisations réglés par virement : TAXS, si l’organisme ou la banque le demande.
  • Virement interne entre sociétés d’un groupe : INTC, si votre banque l’utilise pour la trésorerie de groupe.

Règle pratique : si personne (banque, bénéficiaire, réglementation) ne vous demande un code précis, n’en inventez pas. Un code faux est pire qu’un champ vide, parce qu’il peut déclencher un traitement que vous n’avez pas voulu.

Les codes purpose les plus utilisés : SALA, SUPP, TAXS…

La liste ISO 20022 compte plusieurs centaines de codes purpose et quelques dizaines de catégories. En pratique, une entreprise française n’en utilise qu’une poignée.

Code Signification Exemple d’usage
SALA Salaire Paie mensuelle des salariés, en catégorie de lot
PENS Pension Versement de retraites ou de rentes
SUPP Paiement fournisseur Règlement de factures d’achats
TAXS Impôts et taxes Paiement d’un impôt par virement
VATX TVA Reversement de TVA quand il se fait par virement
SSBE Prestation sociale Versement d’une prestation par un organisme social
RENT Loyer Paiement d’un loyer commercial ou d’habitation
BONU Prime Prime ou bonus versé hors paie habituelle
INTC Paiement intragroupe Virement entre deux sociétés du même groupe
TREA Trésorerie Opération de trésorerie, souvent urgente

Certains codes n’existent que dans l’une des deux listes : vérifiez qu’une valeur est admise pour la catégorie (CtgyPurp) avant de l’utiliser au niveau du lot. Certains logiciels mettent par défaut la valeur OTHR (« autre ») dans la catégorie lorsqu’aucun usage particulier n’est prévu, ce qui revient pour la banque à un virement ordinaire.

Infographie sur l'usage des codes purpose SEPA dans les paiements, avec obligations et exemples

Les erreurs fréquentes avec le code purpose SEPA

Remplir le champ « par précaution »

C’est l’erreur la plus courante. Voyant un champ dans l’interface, l’équipe le remplit systématiquement, souvent avec la même valeur pour tous les virements. Résultat : des fournisseurs payés avec SALA, ou des salaires mélangés à des factures dans un lot marqué SUPP.

Mélanger salaires et fournisseurs dans le même lot

La catégorie s’applique au lot entier. Si vous mettez des salaires et des factures dans un même lot marqué SALA, les factures sont traitées comme des salaires, et si le lot n’est pas marqué SALA, vos salaires perdent leur confidentialité sur le relevé. La solution : un lot par nature de paiement, comme l’explique notre article sur le virement multiple.

Confondre code purpose et code de rejet

AC04, AM04 ou MS03 ne sont pas des codes purpose mais des motifs de rejet, renvoyés par la banque quand un paiement échoue. Ils apparaissent dans les comptes rendus, jamais dans le fichier que vous envoyez. L’index des messages R SEPA les recense tous.

Écrire le code en minuscules ou en clair

Le code doit être l’une des valeurs de la liste ISO, en majuscules et sur quatre caractères. « Salaire », « sala » ou « SAL » ne sont pas reconnus, et selon la banque, le fichier peut être refusé ou la valeur ignorée.

Croire que le code remplace le libellé

Le bénéficiaire ne voit généralement pas le code purpose sur son relevé. Pour qu’un fournisseur rapproche votre paiement, c’est le numéro de facture dans le libellé qui compte.

Gérer le code purpose SEPA dans vos remises

La bonne approche consiste à décider du code au moment où vous préparez la remise, selon la nature des paiements, plutôt que de le saisir ligne par ligne.

Dans GenerateSEPA, quand vous créez un fichier de virements à partir de votre Excel ou de votre CSV, vous indiquez le type de paiement : virements ordinaires ou salaires. Pour une remise de salaires, le fichier pain.001.001.03 généré porte la catégorie SALA sur le lot ; pour des virements ordinaires, il porte la catégorie OTHR. Vous n’avez donc pas à manipuler le XML ni à connaître les balises. Le fichier obtenu se dépose ensuite dans votre banque en ligne comme n’importe quelle remise.

Si vos virements partent directement de votre logiciel, l’API de GenerateSEPA accepte pour chaque paiement un motif (salaire, pension ou autre), qui détermine la catégorie inscrite dans le fichier. Le choix reste dans votre système, la traduction en XML est automatique. Pour les étapes de préparation d’une paie, l’aide SEPA pour la paie reprend le processus complet, et la fiche pain.001 décrit le format.

Dans tous les cas, gardez la règle d’un lot par nature de paiement : un fichier de salaires d’un côté, un fichier de fournisseurs de l’autre, chacun avec sa date d’exécution. Pour le cadre général des virements, consultez notre guide des virements SEPA.

Plan d’action : utiliser le code purpose à bon escient

Étape Ce que vous faites Quand
1 Demander à votre banque quelles catégories de paiement elle exploite (SALA, TREA, autres) et avec quel effet Une fois
2 Séparer vos remises par nature : salaires, fournisseurs, remboursements À chaque cycle de paiement
3 Marquer les remises de salaires avec la catégorie SALA Chaque mois
4 Laisser le code vide pour les virements ordinaires, sauf demande précise Par défaut
5 Vérifier que chaque code utilisé figure dans la liste ISO 20022 et dans la bonne liste (lot ou virement) Lors du paramétrage
6 Mettre le numéro de facture ou la période dans le libellé, pas dans le code À chaque virement
7 Documenter vos règles internes pour que l’équipe ne remplisse pas le champ au hasard Une fois, puis à chaque changement

Le code purpose SEPA n’est pas une case à cocher systématiquement : c’est un outil à réserver aux cas où il produit un effet, à commencer par la remise de salaires. Pour générer votre prochaine remise de salaires avec la bonne catégorie sans toucher au XML, partez de votre tableau Excel sur le convertisseur SEPA.


Questions fréquentes

Que signifie le code SALA sur un virement ?
SALA signifie que le paiement est un salaire. Placé dans la catégorie de paiement d'une remise, il permet à beaucoup de banques de traiter le lot comme une remise de salaires, avec un débit global et la confidentialité du détail sur le relevé. Les effets précis dépendent de votre contrat.
Le bénéficiaire voit-il le code purpose sur son relevé ?
En général non. Le code purpose est transmis à sa banque et peut être exploité par ses logiciels, mais le relevé affiche surtout le nom du donneur d'ordre et le libellé. Pour qu'il identifie le paiement, mettez la référence utile dans le libellé.
Un virement peut-il être rejeté à cause du code purpose ?
Oui, si la valeur n'est pas un code ISO 20022 valide, le fichier peut être refusé par la banque à la réception. Un code valide mais inadapté ne provoque en principe pas de rejet, mais peut déclencher un traitement non souhaité, par exemple un traitement de salaires appliqué à des factures.
Où trouver la liste complète des codes purpose ?
Elle est publiée par l'organisme de maintenance de la norme ISO 20022, dans les listes de codes externes (ExternalPurpose1Code pour le code purpose, ExternalCategoryPurpose1Code pour la catégorie). Ces listes sont mises à jour plusieurs fois par an, mais les codes courants comme SALA, SUPP ou TAXS ne changent pas.

Articles liés