Documentation technique de la déclaration sociale nominative (DSN)

Mis à jour le 07/10/2021

Au 1er janvier 2016, la DSN deviendra obligatoire pour toutes les entreprises. Elle rassemblera l'ensemble des formalités administratives adressées par les entreprises aux organismes de protection sociale et remplacera les déclarations sociales périodiques ou événementielles existantes. Les données issues de la paie seront alors adressées mensuellement et de manière automatisée en un seul point via le logiciel de paie.

Documentation technique de la déclaration sociale nominative (DSN)

Un déploiement progressif et volontaire

La substitution de la DSN aux différentes déclarations sociales se fait de manière progressive en plusieurs étapes et sur la base du volontariat des entreprises et des tiers déclarants.


Vous êtes éditeur de logiciels de paie et souhaitez développer la DSN ?

Retrouvez toutes les informations nécessaires dans les cahiers techniques de la DSN phases 1 et 2 à télécharger ci-dessous :

Cahier technique DSN phase 1
Cahier technique DSN phase 2

Pour en savoir plus sur la norme DSN, l'outil de pré contrôle, la plateforme de test ou le journal de la maintenance de la norme :

www.dsn-info.fr/developper.htm
Une erreur s'est produite lors du traitement du gabarit.
The following has evaluated to null or missing:
==> serviceLocator.findService("com.liferay.portlet.journal.service.JournalArticleLocalService")  [in template "10136#10174#BLOC_ARTICLES_LIES_TEMPLATE" at line 1, column 39]

----
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign JournalArticleLocalService = ...  [in template "10136#10174#BLOC_ARTICLES_LIES_TEMPLATE" at line 1, column 1]
----
1<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.portlet.journal.service.JournalArticleLocalService")>
 
2<#assign layoutService = serviceLocator.findService("com.liferay.portal.service.LayoutLocalService") />
 
3<#assign themeDisplay = request['theme-display'] />
 
4<#assign mainPath = themeDisplay['path-friendly-url-public'] />
 
5<#assign aLayout = themeDisplay['plid'] />
 
6<#assign layoutActuel = layoutService.getLayout(aLayout?number) />
 
7<#assign path = layoutActuel.getGroup().friendlyURL />	
 
8
 
9<#if .vars['Lien_Publication'].getSiblings()?has_content>
 
10	<#assign listArticles = []>
 
11	<#list .vars['Lien_Publication'].getSiblings() as cur_item>
 
12			<#assign link_to_layout = cur_item.getFriendlyUrl()/>
 
13			<#assign layout = cur_item.getData()/>
 
14			<#if layoutService.getLayout(getterUtil.getLong(groupId), false, getterUtil.getLong(layout))??>
 
15			<#assign layoutObject = layoutService.getLayout(getterUtil.getLong(groupId), false, getterUtil.getLong(layout)) />
 
16				<#assign pathArticle = layoutObject.getFriendlyURL(locale) />
 
17				<#assign linkToArticle = mainPath+path+pathArticle />
 
18				<#assign layoutType= layoutObject.getLayoutType().getAllPortlets() />
 
19	
 
20					<#list layoutType as portlet >
 
21						<#if portlet.getPortletId()?starts_with("56_INSTANCE_")>
 
22						<#assign portletId= portlet.getPortletId() />
 
23						<#assign PortletPreferencesFactoryUtil = staticUtil["com.liferay.portlet.PortletPreferencesFactoryUtil"] />
 
24						<#assign portletSetup = PortletPreferencesFactoryUtil.getLayoutPortletSetup(layoutObject, portletId) />
 
25						
 
26						<#assign articleId = portletSetup.getValue("articleId", "")>
 
27						<#assign groupIdA = portletSetup.getValue("groupId", "")>
 
28						<#assign article = JournalArticleLocalService.getArticle(getterUtil.getLong(groupIdA), articleId)!"" >
 
29						
 
30						<#break>
 
31						</#if>
 
32					</#list>
 
33				<#if validator.isNotNull(article) >	
 
34					<#assign listArticles = listArticles + [
 
35					  {"title":article.title, "description":article.description, "date":article.modifiedDate, "url":linkToArticle}
 
36					]>
 
37				</#if>
 
38			</#if>	
 
39	</#list>
 
40</#if>
 
41<#if listArticles?has_content>
 
42    <div class="articlesLies">
 
43    	<div>
 
44    		<h2>${.vars['Titre_Bloc'].getData()}</h2>
 
45    	</div>
 
46    	<div class="content jcarousel-wrapper row">
 
47    		<div class="jcarousel-control-prev no-padding">
 
48    		    <i class="ia-chevron"></i>
 
49    		</div>
 
50    		<div class="articlesLies jcarousel no-padding">
 
51    			<ul>
 
52    			<#list listArticles as article>
 
53    				<li>
 
54    					<div class="bg articleLie">
 
55    						<h3 class="">
 
56    							<a href="${article.url}">
 
57    							${article.title}
 
58    							</a>
 
59    						</h3>
 
60    						<p class="resume-article">
 
61    						<#assign entrySummaryShortened = stringUtil.shorten(article.description, 89 , "...")  />
 
62    						${entrySummaryShortened} <br />
 
63    						</p>
 
64    					</div>
 
65    				</li>
 
66    			</#list>			
 
67    			</ul>
 
68    		</div>
 
69    		<div class="jcarousel-control-next no-padding">
 
70                <i class="ia-chevron"></i>
 
71            </div>
 
72    	</div>			
 
73    </div>
 
74</#if> 

Site utile

Le site de la déclaration sociale nominative (DSN)