Ce document décrit le contenu des bilans de contrôle et le sens fonctionnel de leurs balises.
Chaque section décrit une balise en utilisant un tableau dont la première colonne contient le nom de la balise et la seconde la description de son contenu.
Toutes les balises ne font pas pour autant l’objet d’une section. Dans certains tableaux, la première colonne contient une séquence de balises séparées par des caractères ‘/’ (par exemple, description/code). Dans ce cas, la table contient la description de la balise code contenue dans la balise description.
A titre d’éléments techniques, nous faisons figurer le schéma XML des bilans de validation en fin de document.
L’élément rapport est l’élément racine des fichiers XML contenant les bilans de validation. Cet élément comporte les sous éléments décrits dans le tableau suivant :
Nom | Description |
---|---|
envoi | Ensemble des données concernant les anomalies relevées dans les rubriques décrivant l’envoi. |
declaration | Ensemble des données concernant les anomalies relevées dans les rubriques décrivant les déclarations. Il y a autant de sous-éléments déclaration que l’envoi contrôlé comporte de déclarations (valides ou invalides) |
L’élément envoi comporte l’ensemble des données relatives aux anomalies portant sur les rubriques de niveau envoi (les anomalies sur les rubriques de niveau déclaration sont décrites séparément).
Nom | Description |
---|---|
envoi_identification | Ensemble des données permettant d’identifier le fichier auquel se rapporte le bilan concerné (c.f. détail infra.) |
envoi_bilan | Bilan de l’envoi (données synthétiques sur l’envoi (c.f. détail infra) |
envoi_anomalie | Ensemble des données concernant les anomalies relevées dans les rubriques décrivant l‘envoi. Il y a autant de sous-éléments déclaration que l’envoi contrôlé comporte de déclarations (valides ou invalides) |
La balise identification de l’envoi contient tous les éléments permettant d’identifier un envoi.
Nom | Description |
---|---|
identifiant | Nom du fichier contenant l’envoi contrôlé |
version norme | Version de la norme utilisée pour le contrôle |
point_de_depot | 01 pour net-entreprises, 02 pour MSA |
type_envoi | Cette rubrique permet de définir s’il s’agit d’un envoi normal, ou d’un envoi contenant uniquement des déclarations mensuelles «néant». |
essai_reel | 01 pour envoi de test, 02 pour envoi réel |
emetteur_siret | SIRET de l’émetteur de l’envoi |
nom_logiciel | Nom du logiciel utilisé pour produire l’envoi |
editeur_logiciel | Editeur du logiciel utilisé pour produire l’envoi |
version_logiciel | Version du logiciel utilisé pour produire l’envoi |
code_conformite | Code de conformité attribué par une solution de contrôle en local permettant de dispenser l’envoi de certains contrôles sur serveur |
date_reception | Date de la réception du fichier |
heure_reception | Heure de la réception du fichier |
La balise envoi_bilan contient des éléments synthétiques sur les anomalies contenues dans un envoi.
Nom | Description |
---|---|
envoi_etat | OK ou KO selon que l’envoi est réputé valide ou pas |
envoi_contenu | Nombre de déclarations dans l’envoi et nombre de salariés concernés par l’envoi |
Envoi_compteurs | Nombre total d’anomalies (si balise envoi_categorie contient « total ») |
Envoi_compteurs | Nombre total d’anomalies de niveau déclaration (si balise envoi_categorie contient « declaration ») |
Envoi_compteurs | Nombre total d’anomalies de niveau envoi (si balise envoi_categorie contient « general ») |
La balise envoi_anomalie contient les éléments sur une anomalie de niveau envoi.
Nom | Description |
---|---|
description/code | Code de l’erreur (identifiant du contrôle en échec, le plus souvent) |
description/categorie | Catégorie d’anomalie (bloquant/non-bloquant) |
description/message | Message d’erreur associée à l’anomalie |
description/numero_ligne | Numéro de ligne de la rubrique déclenchante |
valeurs/rubrique_declenchante/identifiant | Identifiant de la rubrique déclenchante |
valeurs/rubrique_declenchante/libelle | Libellé de la rubrique déclenchante |
valeurs/rubrique_declenchante/valeur | Valeur de la rubrique déclenchante dans l’envoi |
L’élément declaration comporte l’ensemble des données relatives aux anomalies portant sur les rubriques de niveau déclaration (les anomalies sur les rubriques de niveau envoi sont décrites séparément).
Nom | Description |
---|---|
declaration_identification | Ensemble des données permettant d’identifier la déclaration concernée (c.f. détail infra.) |
declaration_bilan | Bilan de la déclaration (données synthétiques sur l’envoi (c.f. détail infra) |
declaration_anomalie (multiple) | Ensemble des données concernant les anomalies relevées dans les rubriques des déclarations. |
La balise declaration_identification contient tous les éléments nécessaires pour l’identification des déclarations.
Nom | Description |
---|---|
declaration_identification | Ensemble des données permettant d’identifier la déclaration concernée (c.f. détail infra.) |
rang | Rang de la déclaration dans l’envoi |
nature | Code nature (DSN mensuelle ...) |
type | Code type (normale, néant, annule et remplace…) |
fraction | Numéro de la fraction de déclaration |
ordre | Rang de constitution de la déclaration au cours du mois courant |
mois | Mois concernant la déclaration |
date | Date de la déclaration |
SIREN | SIREN de l’entreprise déclarante |
nic_siege | NIC du siège social de l’entreprise déclarante |
nic_affectation | NIC de l’établissement d’affectation du salarié concerné par l’anomalie |
La balise declaration_bilan contient des éléments faisant la synthèse des anomalies pour la déclaration concernée.
Nom | Description |
---|---|
declaration_etat | OK ou KO selon que la déclaration est réputée valide ou pas |
declaration_contenu | Nombre de salariés concernés par la déclaration |
declaration_compteurs | Nombre total d’anomalies bloquante dans la déclaration(si balise envoi_categorie contient « bloquant ») |
declaration_compteurs | Nombre total d’anomalies non bloquante dans la déclaration (si balise envoi_categorie contient « non-bloquant») |
La balise declaration_anomalie contient des éléments décrivant une anomalie dans une déclaration.
Nom | Description |
---|---|
description/code | Code de l’erreur (identifiant du contrôle en échec, le plus souvent) |
description/categorie | Catégorie d’anomalie (bloquant/non-bloquant) |
description/message | Message d’erreur associée à l’anomalie |
description/numero_ligne | Numéro de ligne de la rubrique déclenchante |
valeurs/rubrique_declenchante/identifiant | Identifiant de la rubrique déclenchante |
valeurs/rubrique_declenchante/libelle | Libellé de la rubrique déclenchante |
valeurs/rubrique_declenchante/valeur | Valeur de la rubrique déclenchante dans l’envoi |
environnement | Description de l’environnement de la rubrique déclenchante (informations utiles sur le salarié, c.f. détails infra.) |
La balise environnement contient des éléments relatifs au salarié concerné par l’anomalie.
Nom | Description |
---|---|
salarie/rang_salarie | Rang du salarié dans la déclaration (TODO) |
salarie/NIR | NIR du salarié |
salarie/nom | Nom du salarié |
salarie/prenom | Prénom du salarié |
salarie/matricule | Matricule du salarié dans l’entreprise concernée |
salarie/contrat_travail_date | Date de début du contrat de travail concerné (TODO) |
salarie/emploi | Libellé de l’emploi occupé |
Voici le Schéma XML :
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2010 rel. 3 (http://www.altova.com) by USER USER
(CNAV - DSI) -->
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:cnav="http://www.cnav.fr/xsd/current/"
targetNamespace="http://www.cnav.fr/xsd/current/" elementFormDefault="unqualified">
<annotation>
<documentation>
Schema decrivant le format de sortie des anomalies detectees dans les
controles associes a la DSN
Mapping vers DSN defini selon cahier final intitule
DSN_CT_Phase1_20120608.pdf
Enrichissement de l'environnement Salarie en V01R04
</documentation>
</annotation>
<element name="rapport">
<annotation>
<documentation>Element racine du bilan de controle DSN
</documentation>
</annotation>
<complexType>
<complexContent>
<extension base="cnav:rapport_type">
<attribute name="profil" type="string" use="required"
fixed="DSN" />
<attribute name="version" type="string" use="required"
fixed="P01V01R04" />
</extension>
</complexContent>
</complexType>
</element>
<complexType name="rapport_type">
<sequence>
<element name="envoi" type="cnav:envoi_type">
<annotation>
<documentation>Description du fichier</documentation>
</annotation>
</element>
<element name="declaration" type="cnav:declaration_type"
minOccurs="0" maxOccurs="unbounded">
<annotation>
<documentation> Description de la declaration </documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="envoi_type">
<sequence>
<element name="envoi_identification" type="cnav:envoi_identification_type" />
<element name="envoi_bilan" type="cnav:envoi_resultat_type">
<annotation>
<documentation>bilan des controles niveau envoi (anomalies
generales)</documentation>
</annotation>
</element>
<element name="envoi_anomalie" type="cnav:envoi_anomalie_type"
minOccurs="0" maxOccurs="unbounded" />
</sequence>
</complexType>
<complexType name="declaration_type">
<sequence>
<element name="declaration_identification" type="cnav:declaration_identification_type" />
<element name="declaration_bilan" type="cnav:declaration_resultat_type">
<annotation>
<documentation>bilan des controles niveau declaration
</documentation>
</annotation>
</element>
<element name="declaration_anomalie" type="cnav:declaration_anomalie_type"
minOccurs="0" maxOccurs="unbounded" />
</sequence>
</complexType>
<!-- debut types complexes -->
<complexType name="envoi_identification_type">
<annotation>
<documentation>
Identification de l'envoi au sens du fichier physique portant les DSN
</documentation>
</annotation>
<sequence>
<element name="identifiant_archive" type="cnav:identifiant_envoi_type"
minOccurs="0">
<annotation>
<documentation>nom de l'archive qui contenait le fichier physique
</documentation>
</annotation>
</element>
<element name="identifiant" type="cnav:identifiant_envoi_type">
<annotation>
<documentation>nom du fichier physique pour le traitement generant
ce bilan (peut différer du nom en sortie du système de l'émetteur)
</documentation>
</annotation>
</element>
<element name="version_norme" type="cnav:norme_type">
<annotation>
<documentation>S10.G00.00.006</documentation>
</annotation>
</element>
<element name="point_de_depot" type="string">
<annotation>
<documentation>S10.G00.00.007</documentation>
</annotation>
</element>
<element name="type_envoi" type="string">
<annotation>
<documentation>S10.G00.00.008</documentation>
</annotation>
</element>
<element name="essai_reel" type="string">
<annotation>
<documentation>01 (essai) ou 02 (reel), en S10.G00.00.005
</documentation>
</annotation>
</element>
<element name="emetteur_siret" type="cnav:SIRET_type">
<annotation>
<documentation>SIRET de l'emetteur, S10.G00.01.001, S10.G00.01.002
</documentation>
</annotation>
</element>
<element name="nom_logiciel" type="string">
<annotation>
<documentation>S10.G00.00.001</documentation>
</annotation>
</element>
<element name="editeur_logiciel" type="string">
<annotation>
<documentation>S10.G00.00.002</documentation>
</annotation>
</element>
<element name="version_logiciel" type="string" minOccurs="0">
<annotation>
<documentation>S10.G00.00.003</documentation>
</annotation>
</element>
<element name="code_conformite" type="string" minOccurs="0">
<annotation>
<documentation>sceau de precontrole en S10.G00.00.004
</documentation>
</annotation>
</element>
<element name="date_reception" type="date" minOccurs="0">
<annotation>
<documentation>date de réception du fichier sur le point de dépôt
de la DSN (bloc 1)</documentation>
</annotation>
</element>
<element name="heure_reception" type="time" minOccurs="0">
<annotation>
<documentation>heure date de réception du fichier sur le point de
dépôt de la DSN (bloc 1)</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="declaration_identification_type">
<annotation>
<documentation>
Identification d'une DSN dans l'envoi au sens fichier physique
</documentation>
</annotation>
<sequence>
<element name="rang" type="integer">
<annotation>
<documentation>
rang de la declaration dans le fichier
</documentation>
</annotation>
</element>
<element name="nature" type="string">
<annotation>
<documentation>S20.G00.05.001</documentation>
</annotation>
</element>
<element name="type" type="string">
<annotation>
<documentation>S20.G00.05.002</documentation>
</annotation>
</element>
<element name="fraction" type="integer">
<annotation>
<documentation>S20.G00.05.003</documentation>
</annotation>
</element>
<element name="ordre" type="integer" minOccurs="0">
<annotation>
<documentation>S20.G00.05.004</documentation>
</annotation>
</element>
<element name="mois" type="string" minOccurs="0">
<annotation>
<documentation>S20.G00.05.005</documentation>
</annotation>
</element>
<element name="id_annulation" type="integer" minOccurs="0">
<annotation>
<documentation>S20.G00.05.006</documentation>
</annotation>
</element>
<element name="date_fichier" type="string">
<annotation>
<documentation>Date de creation du fichier physique (envoi) portant
la declaration</documentation>
</annotation>
</element>
<element name="SIREN" type="cnav:SIREN_type">
<annotation>
<documentation>S21.G00.06.001</documentation>
</annotation>
</element>
<element name="nic_siege" type="cnav:raison_sociale_type">
<annotation>
<documentation>S21.G00.06.002</documentation>
</annotation>
</element>
<element name="nic_affectation" type="string" minOccurs="0">
<annotation>
<documentation>S21.G00.11.001</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="environnement_anomalie_type">
<choice>
<element name="salarie" type="cnav:identification_salarie_type" />
</choice>
</complexType>
<complexType name="envoi_resultat_type">
<sequence>
<element name="envoi_etat" type="cnav:envoi_etat_type" />
<element name="envoi_contenu" type="cnav:envoi_nombre_type"
minOccurs="0">
<annotation>
<documentation>Nombre de declarations et de salaries dans l'envoi
</documentation>
</annotation>
</element>
<element name="envoi_compteurs" type="cnav:envoi_categorie_type"
maxOccurs="unbounded">
<annotation>
<documentation>Nombre d'anomalies par categorie, nombre superieur a
zero seulement</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="declaration_resultat_type">
<sequence>
<element name="etat" type="cnav:etat_type" />
<element name="declaration_contenu" type="cnav:declaration_nombre_type"
minOccurs="0">
<annotation>
<documentation>Nombre de salaries par declaration</documentation>
</annotation>
</element>
<element name="declaration_compteurs" type="cnav:declaration_categorie_type"
maxOccurs="unbounded">
<annotation>
<documentation>Nombre d'anomalies par categorie, nombre superieur a
zero seulement</documentation>
</annotation>
</element>
<element name="niveau_conformite" type="cnav:niveau_conformite_type"
minOccurs="0">
<annotation>
<documentation>certificat de conformite de la declaration ou rejet
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="envoi_nombre_type">
<sequence>
<element name="declarations" type="integer" minOccurs="0" />
<element name="salaries" type="integer" minOccurs="0" />
</sequence>
</complexType>
<complexType name="envoi_categorie_type">
<sequence>
<element name="envoi_categorie" type="cnav:envoi_anomalie_categorie_type">
<annotation>
<documentation>Les categories pour un envoi portent le nombre
d'anomalies niveau envoi, le nombre d'anomalies niveau
déclaration, le nombre d'anomalies total </documentation>
</annotation>
</element>
<element name="nombre" type="integer" />
</sequence>
</complexType>
<complexType name="declaration_nombre_type">
<sequence>
<element name="salaries" type="integer" />
</sequence>
</complexType>
<complexType name="declaration_categorie_type">
<sequence>
<element name="categorie" type="cnav:categorie_anomalie_type">
<annotation>
<documentation>Les categories pour une déclaration portent le
nombre d'anomalies bloquantes (cette catégorie est la seule
utilisée actuellement), le nombre d'anomalies non-bloquantes
(cette catégorie n'est pas utilisée actuellement)</documentation>
</annotation>
</element>
<element name="nombre" type="integer" />
</sequence>
</complexType>
<simpleType name="ok_ko">
<restriction base="string">
<enumeration value="OK" />
<enumeration value="KO" />
</restriction>
</simpleType>
<complexType name="niveau_conformite_type">
<sequence>
<element name="etat_conformite" type="cnav:ok_ko">
<annotation>
<documentation>ok: déclaration conforme et prise en compte, ko:
déclaration rejetée</documentation>
</annotation>
</element>
<element name="certificat_conformite" type="string"
minOccurs="0">
<annotation>
<documentation>chaîne de certification de la prise en compte de la
déclaration (+ de 165 caractères)</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="envoi_anomalie_type">
<sequence>
<element name="description" type="cnav:description_anomalie_type" />
<element name="valeurs" type="cnav:valeurs_anomalie_type"
minOccurs="0" />
</sequence>
</complexType>
<complexType name="declaration_anomalie_type">
<sequence>
<element name="description" type="cnav:description_anomalie_type" />
<element name="valeurs" type="cnav:valeurs_anomalie_type"
minOccurs="0" />
<element name="environnement" type="cnav:environnement_anomalie_type"
minOccurs="0" />
</sequence>
</complexType>
<complexType name="valeurs_anomalie_type">
<sequence>
<element name="rubrique_declenchante" type="cnav:rubrique_type" />
<element name="rubrique_associee" type="cnav:rubrique_type"
minOccurs="0" maxOccurs="unbounded" />
</sequence>
</complexType>
<complexType name="rubrique_type">
<sequence>
<element name="identifiant" type="cnav:identifiant_rubrique_type" />
<element name="libelle" type="string" minOccurs="0" />
<element name="valeur" type="string" />
</sequence>
</complexType>
<complexType name="description_anomalie_type">
<sequence>
<element name="code" type="cnav:code_anomalie_type">
<annotation>
<documentation>Sous la forme Sxx.Gyy.aa.bb.ccc-CXX22 par exemple
</documentation>
</annotation>
</element>
<element name="categorie" type="cnav:categorie_anomalie_type">
<annotation>
<documentation>Contenu a definir ultérieurement, a priori un niveau
de gravité</documentation>
</annotation>
</element>
<element name="message" type="string">
<annotation>
<documentation>Message d'erreur</documentation>
</annotation>
</element>
<element name="numero_ligne" type="integer" minOccurs="0">
<annotation>
<documentation>Numéro de ligne dans le fichier d'entrée (texte, et
non XML)</documentation>
</annotation>
</element>
<element name="nombre" type="integer" minOccurs="0">
<annotation>
<documentation>Nombre d'anomalies identiques dans le fichier (pour
cet ID de contrôle au sens code = rubrique/regle)</documentation>
</annotation>
</element>
</sequence>
</complexType>
<complexType name="identification_salarie_type">
<annotation>
<documentation>
pour une DSN
</documentation>
</annotation>
<sequence>
<element name="rang_salarie" type="integer" minOccurs="0" maxOccurs="1">
<annotation>
<documentation>
rang du salarié dans la déclaration
</documentation>
</annotation>
</element>
<element name="NIR" type="cnav:NIR_type">
<annotation>
<documentation>S21.G00.30.001</documentation>
</annotation>
</element>
<element name="nom" type="string">
<annotation>
<documentation>S21.G00.30.002</documentation>
</annotation>
</element>
<element name="nom_usage" type="string">
<annotation>
<documentation>S21.G00.30.003</documentation>
</annotation>
</element>
<element name="prenom" type="string">
<annotation>
<documentation>S21.G00.30.004</documentation>
</annotation>
</element>
<element name="matricule" type="cnav:matricule_salarie_type"
minOccurs="0">
<annotation>
<documentation>matricule dans l'entreprise, S21.G00.80.003
</documentation>
</annotation>
</element>
<element name="contrat_travail_date" type="string" minOccurs="0">
<annotation>
<documentation>S21.G00.40.001 Date de début du contrat de travail
</documentation>
</annotation>
</element>
<element name="emploi" type="string" minOccurs="0">
<annotation>
<documentation>S21.G00.40.006 Libellé de l'emploi</documentation>
</annotation>
</element>
<element name="contrat_travail_numero" type="cnav:numero_contrat_type"
minOccurs="0">
<annotation>
<documentation>S21.G00.40.009 Numéro du contrat de travail
</documentation>
</annotation>
</element>
</sequence>
</complexType>
<!-- fin types complexes -->
<!-- début types simples autres que string -->
<simpleType name="envoi_etat_type">
<restriction base="string">
<enumeration value="OK">
<annotation>
<appinfo>
<label>envoi valide</label>
</appinfo>
</annotation>
</enumeration>
<enumeration value="KO">
<annotation>
<appinfo>
<label>envoi invalide</label>
</appinfo>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="etat_type">
<restriction base="string">
<enumeration value="OK">
<annotation>
<appinfo>
<label>declaration valide</label>
</appinfo>
</annotation>
</enumeration>
<enumeration value="KO">
<annotation>
<appinfo>
<label>declaration invalide</label>
</appinfo>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="envoi_anomalie_categorie_type">
<restriction base="string">
<enumeration value="generale">
<annotation>
<appinfo>
<label>nombre des anomalies generales dans l'envoi</label>
</appinfo>
</annotation>
</enumeration>
<enumeration value="declaration">
<annotation>
<appinfo>
<label>nombre des anomalies declaration dans l'envoi</label>
</appinfo>
</annotation>
</enumeration>
<enumeration value="total">
<annotation>
<appinfo>
<label>nombre total d'anomalies dans l'envoi</label>
</appinfo>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="categorie_anomalie_type">
<restriction base="string">
<enumeration value="bloquant">
<annotation>
<appinfo>
<label>anomalie bloquante</label>
</appinfo>
</annotation>
</enumeration>
<enumeration value="non-bloquant">
<annotation>
<appinfo>
<label>anomalie non-bloquante</label>
</appinfo>
</annotation>
</enumeration>
</restriction>
</simpleType>
<simpleType name="annee">
<restriction base="gYear" />
</simpleType>
<!-- fin types simples autres que string -->
<!-- début types simples egaux a string -->
<simpleType name="identifiant_envoi_type">
<restriction base="string" />
</simpleType>
<simpleType name="SIRET_type">
<restriction base="string" />
</simpleType>
<simpleType name="SIREN_type">
<restriction base="string" />
</simpleType>
<simpleType name="NIR_type">
<restriction base="string" />
</simpleType>
<simpleType name="NIC_type">
<restriction base="string" />
</simpleType>
<simpleType name="code_anomalie_type">
<restriction base="string" />
</simpleType>
<simpleType name="norme_type">
<restriction base="string" />
</simpleType>
<simpleType name="nom_fichier_type">
<restriction base="string" />
</simpleType>
<simpleType name="raison_sociale_type">
<restriction base="string" />
</simpleType>
<simpleType name="identifiant_rubrique_type">
<restriction base="string" />
</simpleType>
<simpleType name="matricule_salarie_type">
<restriction base="string" />
</simpleType>
<simpleType name="numero_contrat_type">
<restriction base="string" />
</simpleType>
<!-- début types simples egaux a string -->
<!-- fin types simples -->
</schema>