Bonjour à tous,

J'essaie d'utiliser l'API DPAE de l'URSSAF sachant que j'utilise déjà l'API DSN sans problème.

La doc indique que la méthode est exactement la même pour l'URSSAF et pour Net-entreprise.

Le principe est de faire un POST d'un bloc d'identification pour obtenir un jeton qui est à fournir pour les autres opérations.

la seul différence entre l'urssaf et Net-entreprise pour les DSN c'est :
AuthHostName qui est défini à https://mon.urssaf.com/autehntifier_dpae/ pour l'Urssaf
et AuthHostName = @"https://services.net-entreprises.fr//authentifier/1.0/"; pour les DSN

Lors de la vérification d'authentification l'API peut renvoyer une erreur 422 si le compte n'est pas autorisé à utiliser le service.
Mon problème est avant. Je reçoit une Erreur 500.

Le sujet a été évoqué sur une discussion dans le groupe Delphi mais je n'ai pas trouvé d’élément de réponse pour mon pb.
https://www.developpez.net/forums/d2...ssaf-api-dpae/


J'ai utilisé Postman pour tester l'API j'obtiens une erreur 422 qui est tout à fait normal. (le compte urssaf n'est pas encore actif)
Type POST https://mon.urssaf.fr/authentifier_dpae/
dans le body : raw xml avec le <identifiants>.....<>

Si je fait la même chose dans une appli Winforms, j'ai une erreur 500.




Est-ce que vous avez une piste ?

Merci

Le code pour vérifier l'authentification :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 string Jeton = "";
            string Identification =
              "<identifiants>"
              + "<siret>le siret</siret>"
              + "<nom>le nom</nom>"
              + "<prenom>le prénom</prenom>"
              + "<motdepasse>mot de passe</motdepasse>"
              + "<service>25</service>"
             + "</identifiants>";
            string AuthHostName = @"https://mon.urssaf.fr/authentifier_dpae/";
 
            System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
            System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls | System.Net.SecurityProtocolType.Tls12;
 
            HttpClient client = new HttpClient();
            client.DefaultRequestHeaders.Add("User-Agent", "Client-DSN (monappli/1.1; monappli)");
            StringContent vHttpContent = new StringContent(Identification, Encoding.UTF8, "application/xml");
 
            HttpResponseMessage response = null;
            try
            {
                response = client.PostAsync(AuthHostName, vHttpContent).Result;
                response.EnsureSuccessStatusCode();
                string responseBody = response.Content.ReadAsStringAsync().Result;
 
                Jeton = responseBody;
                LogBox.AppendText("Authentification réussie" + System.Environment.NewLine);
 
            }
            catch (HttpRequestException ex)
            {
                Console.WriteLine("\nException !");
                Console.WriteLine("Message :{0} ", ex.Message);
                LogBox.AppendText("Echec d'authentification :" + ex.Message + System.Environment.NewLine);
                LogBox.AppendText("Motif :" + response.Headers.WwwAuthenticate + System.Environment.NewLine);
 
            }