Impossible d'envoyer le DPAE via l'API
Bonjour,
J'essaie d'envoyer une DPAE de test avec Postman sans succès.
Je reçois un code '422Unprocessable Entity' ,
Code:
1 2 3 4 5 6
| <envoi_anomalie>
<description>
<code>B1-105-10</code>
<message>Le format du fichier depot_mtom n'est pas reconnu.</message>
</description>
</envoi_anomalie> |
=> Sur le site http://net-entreprises.custhelp.com/...9v%E3%A8nement, cette erreur correspond au fait que l'indicateur du mode de traitement est mal renseigné.
Voici à quoi correspond ma requête envoyée:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| POST DEPOT.DPAE-EDI.URSSAF.FR/deposer-dsn/1.0
Authorization: DSNLogin jeton=monjeton
content-type: text/plain
Content-Encoding: gzip
<?xml version="1.0" encoding="ISO-8859-1"?>
<FR_DUE_Upload xsi:noNamespaceSchemaLocation="DUE_Upload.xsd" xmlnssi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rxphadr="http://www.repxml.org/PhoneAddress" xmlns:rxpers="http://www.repxml.org/Person_Identity" xmlns:rxpadr="http://www.repxml.org/PostalAddress" xmlns:rxorg="http://www.repxml.org/Organization" xmlns:rxdt="http://www.repxml.org/DataTypes" xmlns:cct="urn:oasis:names:tc:ubl:CoreComponentTypes:1.0:0.70">
<FR_DUE_Upload.Test.Indicator>1</FR_DUE_Upload.Test.Indicator>
<FR_DuesGroup>
<FR_Employer>
<FR_EmployerIdentity>
<rxorg:FR_Organization.SIRET.Identifier>55201530706397</rxorg:FR_Organization.SIRET.Identifier>
<rxorg:FR_Organization.Designation.Text>XXXX S.A.</rxorg:FR_Organization.Designation.Text>
<rxorg:FR_Organization.APE.Code>8430A</rxorg:FR_Organization.APE.Code>
</FR_EmployerIdentity>
<FR_Employer.URSSAF.Code>920</FR_Employer.URSSAF.Code>
<FR_EmployerAddress>
<rxpadr:FR_PostalAddress.StreetDesignation.Text>57 RUE HENRI BARBUSSE</rxpadr:FR_PostalAddress.StreetDesignation.Text>
<rxpadr:FR_PostalAddress.Town.Text>Paris</rxpadr:FR_PostalAddress.Town.Text>
<rxpadr:FR_PostalAddress.Postal.Code>75010</rxpadr:FR_PostalAddress.Postal.Code>
</FR_EmployerAddress>
<FR_EmployerContact>
<FR_PhoneNumber>
<rxphadr:FR_PhoneAddress.PhoneNumber.Text>0599999999</rxphadr:FR_PhoneAddress.PhoneNumber.Text>
</FR_PhoneNumber>
</FR_EmployerContact>
</FR_Employer>
<FR_EmployeeGroup>
<FR_Employee>
<FR_EmployeeIdentity>
<rxpers:FR_PersonIdentity.Surname.Text>TEST NOM DUE</rxpers:FR_PersonIdentity.Surname.Text>
<rxpers:FR_PersonIdentity.ChristianName.Text>TEST PRENOM DUE</rxpers:FR_PersonIdentity.ChristianName.Text>
<rxpers:FR_PersonIdentity.Sex.Code>M</rxpers:FR_PersonIdentity.Sex.Code>
<rxpers:FR_NNI>
<rxpers:FR_NNI.NIR.Identifier>18801753504</rxpers:FR_NNI.NIR.Identifier>
<rxpers:FR_NNI.NIRKey.Text>96</rxpers:FR_NNI.NIRKey.Text>
</rxpers:FR_NNI>
<rxpers:FR_Birth>
<rxpers:FR_Birth.Date>1988-01-08</rxpers:FR_Birth.Date>
<rxpers:FR_Birth.Town.Text>FRANCAISE</rxpers:FR_Birth.Town.Text>
</rxpers:FR_Birth>
</FR_EmployeeIdentity>
<FR_EmployeeComplement>
<FR_EmployeeComplement.Birth_Department.Code>75</FR_EmployeeComplement.Birth_Department.Code>
</FR_EmployeeComplement>
</FR_Employee>
<FR_Contract>
<FR_Contract.StartContract.Date>2020-10-01</FR_Contract.StartContract.Date>
<FR_Contract.StartContract.Time>09:00:00</FR_Contract.StartContract.Time>
<FR_Contract.Nature.Code>2</FR_Contract.Nature.Code>
<FR_Contract.HealthService.Text>MT175</FR_Contract.HealthService.Text>
<FR_Contract.TrialTime.Text>120</FR_Contract.TrialTime.Text>
</FR_Contract>
<FR_EmployeeGroup.Comment.Text>JE METS DU TEXTE ICI</FR_EmployeeGroup.Comment.Text>
</FR_EmployeeGroup>
</FR_DuesGroup>
</FR_DUE_Upload> |
Or, quand je remplace le corps de la requête par du contenu compressé (compression faite avec un outil gzi en ligne) comme c'est proposé sur ce fil de discussion, la requête ne passe pas non plus et je reçois en retour une erreur '404Not Found' (ressource non retrouvée).
Est-ce quelqu'un pour qui l'envoi d'une DPAE via l'API a fonctionné pourra poster un exemple de sa requête utilisée?
Merci d'avance pour votre aide
Dépôt DPAE API via Postman
J'ai finalement réussi à déclarer une DPAE via API depuis Postman.
1. Récupérer un jeton d'authentification via un POST sur https://mon.urssaf.fr/authentifier_dpae
Un seul header nécessaire : Content-Type = application/xml
Le body :
Code:
1 2 3 4 5 6 7
| <identifiants>
<siret>xxxxxxxxxx</siret>
<nom>xxxxxx</nom>
<prenom>xxxxxx</prenom>
<motdepasse>xxxxxxx</motdepasse>
<service>25</service>
</identifiants> |
Le SIRET, nom, prénom et mot de passe sont ceux du compte URSSAF du déclarant. Vous récupérez ainsi un jeton à utiliser pour les requêtes de dépôt.
2. Dépôt d'une DPAE via un POST sur https://depot.dpae-edi.urssaf.fr/deposer-dsn/1.0/
Headers :
- Authorization : DSNLogin jeton=jeton_récupérés_via_la_requête_précédente Attention à bien respecter les espaces.
- Content-Encoding : gzip Il faut forcer ce header qui n'est pas proposé par Postman
Body :
Construisez d'abord votre body XML à partir de celui proposé par la documentation de l'URSSAF. Pensez bien à spécifier que c'est un dépôt test en indiquant "1" (au lieu de 120 pour la prod) ici :
Code:
<FR_DUE_Upload.Test.Indicator>1</FR_DUE_Upload.Test.Indicator>
Enregistrez le dans un fichier .txt (via un notepad par exemple).
Convertissez le au format GZIP via un outil comme 7ZIP. Il faut "l'ajouter à l'archive" et sélectionner l'extension "GZIP".
Dans Postman, sélectionnez le format "binary" pour votre body et sélectionnez le fichier .gzip.
Il ne vous reste plus qu'à envoyer la requête, et vous devriez recevoir une 200.
En espérant avoir pu vous aider.