web analytics
Passer au contenu principal

Cobham Solutions | Logiciel de conformité et performance en PAIE, DSN et RH

Structure DSN : blocs, rubriques et ordre du fichier

La structure de la DSN organise un fichier en messages, blocs et rubriques selon la norme NEODeS. En production 2026, consultez le cahier technique P26V01 et son journal de maintenance ; une version publiée pour 2027 n’est pas automatiquement applicable aux paies 2026.

Modèle de déclarations

Un modèle de déclaration est une arborescence de blocs d’informations, pour laquelle on décrit les cardinalités attendues. Tous les modèles de déclarations dont les signalements sont définis à partir d’une arborescence hiérarchique unique dénommée message DSN : ce sont donc des sous-arborescences d’une arborescence « maître ».

C’est la référence à suivre pour la composition d’une déclaration.

Code naturePériodicitéModèles de déclarationsPartenairesPoint de dépôt
              01              Mensuelle              DSN MensuelleUrssaf CN, CNAMTS, MSA, CNAV, AGIRC ARRCO, DARES, Institutions de prévoyance, Mutuelles, Sociétés d’assurance et délégataires de gestion, Organismes complémentaires non fédérés par un membre du GIP-MDS (CTIP, FFA, FNMF), France Travail, CAMIEG, CNIEG, CRPCEN, DGFiP, CCVRP, caisses de congés payés (CIBTP, Transport et Manutention portuaire), IRCANTEC, CNAF, CRPNPAC, ASP, INSEE, CPRP SNCF, Congés spectacles, CPF, RAFP, CNRACL, FSPOEIE, RAEP, DAM, ENIM          Point de dépôt régime général ou régime agricole
    04    Signalement d’évènement    Signalement Arrêt de travailCNAMTS, MSA, Institutions de prévoyance, Mutuelles, Sociétés d’assurance, délégataires de gestion et Organismes complémentaires non fédérés par un membre du GIP-MDS (CTIP, FFA, FNMF)  Point de dépôt régime général ou régime agricole
      05    Signalement d’évènement    Signalement Reprise suite à arrêt de travailCNAMTS, MSA, Institutions de prévoyance, Mutuelles, Sociétés d’assurance, délégataires de gestion et Organismes complémentaires non fédérés par un membre du GIP-MDS (CTIP, FFA, FNMF)  Point de dépôt régime général ou régime agricole
    07    Signalement d’évènement    Signalement Fin du contrat de travail uniqueFrance Travail, MSA, Institutions de prévoyance, Mutuelles, Sociétés d’assurance, délégataires de gestion et Organismes complémentaires non fédérés par un membre du GIP-MDS (CTIP, FFA, FNMF), DARES  Point de dépôt régime général ou régime agricole
      08    Signalement d’évènement    Signalement d’Amorçage des données variablesDGFIP, Institutions de prévoyance, Mutuelles, Sociétés d’assurance, délégataires de gestion et Organismes complémentaires non fédérés par un membre du GIP-MDS (CTIP, FFA, FNMF), DGEFP, ASP, DARES    Point de dépôt régime général ou régime agricole
    09  DSN de substitution    DSN de substitution    Urssaf CN, MSA, CNAV, Agirc-Arrco  Point de dépôt régime général ou régime agricole

Les rubriques qui identifient un modèle de déclaration sociale nominative ou signalement entre S10 et S90 sont les suivantes :

  • Nature de la déclaration S20.G00.05.001
  • Type de la déclaration S20.G00.05.002

Déclaration

Une déclaration est l’instanciation d’un modèle de déclaration, donc d’un des modèles listés ci-dessus. Ceci s’applique donc aussi pour les signalements d’évènements.

Structuration en blocs et rubriques

Les rubriques sont réparties en blocs (équivaut à la notion de « sous-groupes » en N4DS). Chaque rubrique appartient à un bloc et un seul. Un bloc contient au moins une rubrique ; il peut arriver qu’il n’en contienne qu’une seule.

Le principe est que chaque bloc possède une certaine homogénéité sur le plan du sens. Le nom du bloc a donc une importance, et il correspond la plupart du temps à un « objet métier » (entreprise, individu, contrat, versement individu …), les rubriques étant des « attributs » de cet objet.

Chaque bloc est caractérisé par un identifiant (par exemple, S21.G00.30), un nom (dans cet exemple, individu), une description éventuelle, et la liste des rubriques qu’il contient. L’ordre des rubriques est également une caractéristique du bloc fournie au début de chaque bloc.

Règles de nommage

Pour donner un identifiant aux blocs et aux rubriques, le principe adopté est de rester en cohérence avec le nommage qui prévaut dans la N4DS, et ce tant que la N4DS existe : le nommage des données reprend donc la logique de hiérarchisation en structure, groupe, bloc, rubrique.

Par exemple :

Structure (exemple : S21)

–Groupe (exemple : S21.G00)

—-Bloc (exemple : S21.G00.11)

—– Rubrique (exemple : S21.G00.11.001)

Ainsi, pendant toute la durée du projet DSN, la règle de nommage des données en sortie de logiciel de paie correspond à l’expression concaténée. Pour reprendre l’exemple précédent : S21.G00.11.001 comme identifiant de rubrique, ou S21.G00.11 comme identifiant de bloc.

Pour faciliter la lecture, le cahier technique de la DSN met en évidence l’identifiant officiel de chaque rubrique (en vert), l’identifiant « raccourci » (en gras), et à gauche, l’identifiant sémantique (sous forme objet. attribut) :

Exemple d’identifiants de blocs et de rubriques dans le cahier technique DSN

L’identifiant sémantique et l’identifiant futur sont donnés ici pour information uniquement. Seul l’identifiant « officiel » compte.

Ordonnancement des blocs et rubriques dans le message

Lors du lancement de la DSN, deux engagements ont été pris au titre de l’identification des blocs et rubriques définis par la norme :

  • L’identifiant d’un bloc ou d’une rubrique n’est jamais modifié, une fois que cet identifiant a fait l’objet d’une communication aux éditeurs et déclarants
  • L’identifiant d’un bloc ou d’une rubrique disparu à l’occasion d’une nouvelle version de la norme ne peut pas être réutilisé pour identifier un nouveau bloc ou une nouvelle rubrique

Ces deux engagements ont pour conséquence directe que l’ordre des blocs et rubriques dans un message ne peut plus être assis sur l’ordre croissant des identifiants de blocs et de rubriques.

En effet, considérons le cas de deux blocs numérotés S21.G00.68 et S21.G00.69 dans une version de la norme. Pour la version suivante, il est estimé nécessaire d’ajouter un bloc enfant du bloc 68. Pour mémoire un bloc enfant unique est positionné dans le message à la suite immédiate de son parent. Le respect de l’ordre des identifiants dans la constitution du message amènerait à identifier ce nouveau bloc par le code S21.G00.69. Cet identifiant étant déjà affecté, le respect de l’ordre des identifiants dans la constitution des messages amènerait à transgresser l’ensemble des engagements susmentionnés, en remodifiant dans un premier temps le bloc initialement identifié par S21.G00.69 puis, en réutilisant ensuite le code S21.G00.69 ainsi libéré pour identifier le nouveau bloc.

Considérons ensuite le cas d’un bloc constitué de trois rubriques. Pour la version suivante il est nécessaire d’insérer une rubrique supplémentaire entre des rubriques numérotées consécutivement. Ainsi on veut insérer une rubrique « Type » à la suite de « Nom et prénom du contact ». Or nous avons la séquence :

  • Nom et prénom du contact – S20.G00.07.001
  • Adresse téléphonique – S20.G00.07.002
  • Adresse mél du contact – S20.G00.07.003

L’insertion de la nouvelle rubrique « Type – S20.G00.07.004 » fera alors naître la séquence suivante :

  • Nom et prénom du contact – S20.G00.07.001
  • Adresse téléphonique – S20.G00.07.002
  • Adresse mél du contact – S20.G00.07.003
  • Type – S20.G00.07.004

Ainsi, le respect des engagements sur l’identification des blocs et rubriques nous mène à abandonner l’ordre lexicographique dans les messages.

L’ordonnancement des blocs dans un message ne doit donc plus répondre :

  • Pour les blocs, qu’aux contraintes fixées par les arborescences de messages définies au point 5.5 du présent document.
  • Pour les rubriques, à leur séquence dans le bloc telle que déclarée en liste détaillée des rubriques.

Précisions : toutes les rubriques d’un même bloc doivent être déclarées consécutivement. On ne peut donc trouver dans le message un enchainement mêlant des rubriques issues de blocs différents comme celui-ci :

  • S21.G00.60.001,’01’
  • S21.G00.65.001,’01012013’
  • S21.G00.60.002,’15102013’

Par ailleurs, un bloc enfant se rapporte toujours au bloc parent qui le précède, directement ou indirectement dans le message.

Ainsi, considérons l’extrait de message suivant (ici seuls les blocs sont représentés alors que dans un message réel, on trouverait les rubriques de ces blocs).

  • S21.G00.30 (Individu1)
  • S21.G00.40 (Contrat1)
  • S21.G00.40 (Contrat 2)
  • S21.G00.30 (Individu2)
  • S21.G00.40 (Contrat 3)

Les contrats 1 et 2 concernent l’individu 1 car dans l’arborescence de message (cf point 5.5), le bloc individu est parent du bloc contrat et que le dernier individu trouvé dans le message lu de bas en haut avant les contrats 1 et 2 est l’individu 1. Le contrat 3 concerne l’individu 2 par application du même raisonnement.

Attributs des rubriques

Chaque rubrique, on l’a vu, est dotée d’un identifiant qui lui est propre. L’identifiant d’une rubrique supprimée n’est jamais réutilisé.

Outre son identifiant, chaque rubrique possède un nom (par exemple, « identifiant du lieu de travail»), une éventuelle définition (commentaire qui figure au début de la rubrique), un ensemble de caractéristiques (usage, nature, longueur minimum, longueur maximum), une liste de valeurs (uniquement s’il s’agit d’une énumération), et des contrôles qui lui sont appliqués (0, 1 ou plusieurs).

Nature

  • X : alpha-numérique
  • N : numérique
  • D : Date (JJMMAAAA)
  • Enumération
  • Référentiel externe

Longueur

  • Longueur minimum
  • Longueur maximum

Usage

Les règles d’usage précises, par rubrique et par modèle de déclaration, sont fournies dans un tableau à la fin du cahier technique, en cohérence avec les usages décrits pour chaque rubrique. Cf. les explications au début de ce tableau.

Dans la définition des usages des rubriques, on veille aux points suivants :

  • Une rubrique Conditionnelle ne peut jamais être à zéro ou à blanc, sauf spécification contraire
  • La première rubrique de chaque bloc doit, sauf exception, être une rubrique obligatoire
  • Un bloc contient toujours au moins une rubrique d’usage obligatoire

Schéma physique du fichier DSN

Un fichier DSN est du type « séquentiel en ligne » (Ligne Sequential File en Cobol) connu aussi sous le nom de « fichier texte délimité ».

Il est constitué d’enregistrements de longueur variable avec un maximum de 256 caractères ASCII. Chaque enregistrement se termine par un retour chariot et un saut de ligne (CR-LF : Carriage Return et Line Feed), ou un saut de ligne (LF) seul. Le format de la ligne avant le retour chariot est [Sxx.Gyy.zz.aaa(.bbb) ?,’value’]

Ce ou ces octets « 0A » ou « 0D0A » (zéroDzéroA en hexadécimal) sont utilisés comme délimiteur d’enregistrement.

La virgule (« 2C » en hexadécimal) est utilisée comme séparateur de champ.

La valeur de la rubrique est incluse entre deux apostrophes ou deux quotes ‘ (« 27 » en hexadécimal).

Exemple : S21.G00.06.001,’332975200′

Le numéro SIREN de l’entreprise dans le bloc Entreprise (S21.G00.06) est 332975200 La table de caractères utilisable pour l’encodage du fichier est la suivante :

‘iso/iec 8859-1 (E) alphabet ‘Latin1’

Caractères autorisés : attention aux identités et aux adresses

Le fichier utilise l’encodage et le jeu de caractères définis par la norme. Les identités et les adresses ont des restrictions particulières : une grille Latin-1 générale ne suffit pas à déterminer les caractères acceptés dans une rubrique. Consultez les tableaux et les contrôles du cahier technique en production ; évitez les copier-coller qui introduisent des caractères incompatibles.

Expressions régulières : lire les contrôles sans les réinventer

Les expressions du cahier technique décrivent les valeurs acceptées pour chaque rubrique. Reprenez l’expression complète de la version applicable, avec ses échappements et sa syntaxe ; ne la reconstituez pas à partir d’un tableau simplifié.

ExempleLecture
[0-9]Un chiffre.
[A-Z]Une lettre majuscule non accentuée.
+Une ou plusieurs occurrences du motif précédent.
*Zéro ou plusieurs occurrences.
?Zéro ou une occurrence.
(01|12|37)Une alternative entre trois codes.
[01|12|37]Une classe de caractères, qui n’est pas une liste de trois codes.
[A-Z][0-9]{6}Une majuscule suivie de six chiffres.

Pour les montants, vérifiez notamment le point décimal, le nombre de décimales, l’autorisation d’un signe négatif et des zéros initiaux. Les dates respectent le format prévu par la rubrique. La validation technique n’atteste pas la justesse du calcul de paie.

Envoi du fichier DSN

C’est le fichier DSN produit par l’entreprise ou le tiers déclarant. Il commence par une structure de description de l’envoi (S10) : on y caractérise notamment l’envoi, l’émetteur, le contact chez l’émetteur, et le destinataire du compte-rendu d’exploitation. Il contient ensuite une ou plusieurs déclarations, chacune d’entre elles pouvant être d’une nature différente. Il s’achève par une structure de comptage (S90).

A noter que dans le cas du Machine to Machine, un envoi (S10) ne pourra contenir qu’une et une seule déclaration (S20).

Voir également:

Source : Cahier technique DSN 2026.

N'hésitez pas à nous contacter pour tout problème de conformité de la paie, de la DSN, des processus RH (rupture de contrat et autres) dans votre entreprise

    

Un de nos experts vous recontactera dans la journée pour vous présenter nos solutions.

Une fois que vous aurez confirmé votre choix un mail vous sera envoyé avec une invitation à enregistrer dans votre agenda.