La gestion de l'API-DSN au sein de LDpaye a été entièrement revue, pour mieux prendre en charge diverses possibilités fournies par cet API et surtout pour prendre en compte le fait qu'en DSN Phase 3, le nombre de retours reçus pour chaque flux explose : en sus de ceux déjà gérés en Phase 2, on va avoir à gérer les retours de l'AGIRC-ARRCO et ceux des OC (caisses de prévoyance, Sociétés d'assurance, Mutuelles).
Le guide d'implémentation de l'API DSN indiquait depuis toujours une limitation qui a finalement été mise en place durant l'été 2016 : l'API-DSN n'accepte en phase 3 qu'une seule déclaration par envoi (soit un seul bloc 05-Déclaration par bloc 00-Envoi).
Cela étant, il n'était pas question de décliner cette limitation dans LDPaye. Cela aurait été beaucoup trop lourd d'avoir à gérer les déclarations de façon unitaire dans LDPaye. On peut donc toujours préparer, modifier, contrôler, imprimer des envois comportant plusieurs déclarations, que ces déclarations correspondent à plusieurs sociétés ou plusieurs établissements.
C'est lorsqu'on procède au dépôt via l'API que le fichier final est découpé en autant de parties qu'il y a de déclarations, juste après avoir été contrôlé par l'outil DSN-VAL, chacune de ces parties (chaque déclaration correspondant à un bloc 05 et tous ses blocs enfants) étant « ré enveloppée » avec en tête les blocs 00-Envoi, 01-Emetteur et 02-Contact et en queue le bloc 90-Total de l'envoi (les nombres de rubriques et de déclarations portées dans ce blocs sont bien sûr ajustés en conséquence).
Ainsi, si un envoi comporte 9 déclarations (par exemple 3 sociétés comportant chacune 3 établissements), le fichier créé initialement et contrôlé par l'outil DSN-VAL est découpé en 9 parties, chacune de ces parties étant transmises par l'API séparément. On a 9 flux d'échange successifs.
Et comme on a émis 9 flux distincts, il faut ensuite collecter, toujours par l'API-DSN, les retours de chacun de ces flux.
En raison de la multiplicité des flux et des retours de chaque flux, la stratégie de récupération des retours a été revue.
Auparavant, le système tentait de récupérer les retours après chaque envoi, 5 fois successivement pour chaque envoi, avec 1 minute entre chaque tentative. Par la suite, il fallait demander manuellement le rafraîchissement d'un envoi pour récupérer les nouveaux retours, en cliquant sur le bouton Rafraîchir après avoir sélectionné l'envoi à traiter.
En Phase 3, ces retours peuvent être très nombreux, et certains peuvent arriver avec un différé de plusieurs heures, voire plusieurs jours par rapport à l'envoi. Cette méthode s'avérait donc peu pratique. Il aurait fallu sans cesse venir rafraîchir les retours de tous les envois effectués dans les derniers jours pour s'assurer que rien de plus n'était disponible.
Désormais, les retours sont récupérés par une méthode dite de « polling ». LDPaye demande régulièrement à récupérer tous les retours ajoutés ou modifiés depuis la demande précédente, pour tous les envois effectués par l'API-DSN, et ce pour chacun des identifiants DSN utilisés dans LDPaye.
Cette méthode est plus « économique » en termes de bande passante car les échanges sont minimes s'il n'y a aucun nouveau retour (soit la majorité des cas). Elle est aussi plus efficace car on récupère tous les retours au fur et à mesure de leur mise à disposition. L'utilisateur n'a plus de raison d'utiliser la fonction Rafraîchir (bien qu'elle soit toujours présente) car il ne peut plus louper un retour.
La récupération des retours, exécutée en tache de fond invisible, se déclenche 15 secondes après l'ouverture de la fenêtre principale de gestion des Déclarations DSN et se répète ensuite toutes les 5 minutes tant que cette fenêtre reste ouverte. Un message en bas de la fenêtre (à droite) indique la durée restant avant la prochaine récupération. Il est même possible de désactiver ou de forcer une récupération immédiate en cliquant sur ce message.
Parallèlement à cela, la présentation des retours a été revue.
Tout d'abord, l'affichage au niveau de chaque envoi et de chaque déclaration a été revu :