# Configuration de la connexion API D365 F&O

## Microsoft Azure

### Enregistrement de l'application

URL : [https://portal.azure.com/#home](https://portal.azure.com/#home) à ouvrir.

1. Cliquer sur Enregistrements d'applications
2. Cliquer sur "Nouvel enregistrement".
 
<div drawio-diagram="2325"><img src="https://fr.wiki.dedesales.de/uploads/images/gallery/2026-09/WxhphSg3FbztOWay-nkkcqz9icqklyder-drawing-8-1780315123.png" alt="NKkCQz9icqKLyder-drawing-8-1780315123.png"/></div>

#### Nom

Cela devrait être un nom courant, par exemple "Accès API DeDeSales"

#### Types de comptes pris en charge

En général, il faut sélectionner ici "Un seul mandant - ..." avec le nom de votre mandant. Si un accès à plusieurs mandants est nécessaire, vous devez configurer cela en conséquence.

#### Configurer les URI de redirection

Deux URI sont nécessaires pour vos systèmes de test et de production. La plateforme doit toujours être "Web".

[![image.png](https://fr.wiki.dedesales.de/uploads/images/gallery/2026-09/cyhRjiWLa1IhgVSE-8yocallcyfj4znvp-image.png)](https://wiki.dedesales.de/uploads/images/gallery/2026-06/8yoCallcyfJ4znVp-image.png)

Dans la capture d'écran, les URL suivantes ont été utilisées :

1. [https://usnconeboxax1aos.cloud.onebox.dynamics.com/](https://usnconeboxax1aos.cloud.onebox.dynamics.com/)
2. [https://usnconeboxax1aos.cloud.onebox.dynamics.com/oauth/](https://usnconeboxax1aos.cloud.onebox.dynamics.com/oauth/)
 
<p class="callout info">Il se peut que vous n'ayez pas besoin d'entrer d'URL ici, cela dépend de votre environnement.  
Mais si vous en entrez, vous devez inscrire vos URL. Les URL montrées ici à titre d'exemple ne fonctionneront pas chez vous.</p>

<p class="callout success">Cliquez maintenant sur "Enregistrer"</p>

### Créer une clé client

Sous "Gérer", cliquez sur "Certificats &amp; secrets". Sélectionnez "Nouvelle clé secrète client".

[![image.png](https://fr.wiki.dedesales.de/uploads/images/gallery/2026-09/zBEXekI2jG2F4uMv-inaw6xfhy9pmcaqr-image.png)](https://wiki.dedesales.de/uploads/images/gallery/2026-06/inaW6xfHY9PmCaqr-image.png)

Nommez la clé "Secret" et choisissez une durée de 24 mois. Cliquez ensuite sur "Ajouter".

[![image.png](https://fr.wiki.dedesales.de/uploads/images/gallery/2026-09/t5IFFAri4JKau3uv-ejbpcjq6gipzofu2-image.png)](https://wiki.dedesales.de/uploads/images/gallery/2026-06/ejbpCJq6GIPzoFu2-image.png)

La clé secrète sera alors affichée dans la colonne "Valeur".

[![image.png](https://fr.wiki.dedesales.de/uploads/images/gallery/2026-09/FHFESq9xi8auljB5-t6f3lqcmedgqvkqi-image.png)](https://wiki.dedesales.de/uploads/images/gallery/2026-06/t6f3lqcMedGqVkqi-image.png)

<p class="callout warning">Attention ! Elle n'est visible qu'une seule fois et doit être copiée maintenant, car nous en aurons besoin.</p>

### Autorisations API

Ajoutez maintenant les autorisations montrées ici.

1. Cliquez sur "Ajouter une autorisation"
2. Dans Dynamics ERP, sélectionnez l'autorisation indiquée ci-dessous.
3. L'autorisation Microsoft Graph "User.Read" est également nécessaire.
4. Cliquez sur "Accorder le consentement de l'administrateur"
 
<div drawio-diagram="2324"><img src="https://fr.wiki.dedesales.de/uploads/images/gallery/2026-09/xeUJqu1FBWvRAk64-glmvpcfio0go8yad-drawing-8-1780311981.png" alt="GLMvpcfiO0go8YAD-drawing-8-1780311981.png"/></div>

### ID de l'application (client)

Vous trouverez l'ID de l'application en cliquant sur Aperçu. Copiez l'ID de l'application qui apparaît, car nous en aurons besoin.

## D365 Finance &amp; Operation

### Applications Microsoft Entra ID

Ouvrez D365 F&amp;O et recherchez "Applications Microsoft Entra ID".

<p class="callout info">Par exemple accessible via :  
Modules -&gt; Administration système -&gt; +Tout développer -&gt; sous la catégorie "Configuration-&gt; Applications Microsoft Entra ID</p>

Créez une nouvelle entrée et saisissez ce qui suit :

1. ID de l'application
2. Nom comme indiqué ci-dessus : "Accès API DeDeSales"
3. Choisissez un utilisateur sous le contexte duquel l'appel API sera effectué par nous. 
    1. Utilisez un mot de passe fort
    2. Ne sélectionnez <span style="text-decoration:underline;">pas</span> l'option de changement de mot de passe au premier appel.
    3. Désactivez <span style="text-decoration:underline;">tout</span> MFA pour l'utilisateur
    4. Attribuez à l'utilisateur le rôle et les droits corrects. Un aperçu de l'accès aux entités requises vous sera fourni par votre Chef de projet.
    5. Le rôle "System user" est une obligation et doit être attribué à l'utilisateur.
 
<div drawio-diagram="2327"><img src="https://fr.wiki.dedesales.de/uploads/images/gallery/2026-09/7a8iX2bb3mQjdHue-dcqiqrju23jimryy-drawing-8-1780315822.png" alt="dcqIqrju23jImrYy-drawing-8-1780315822.png"/></div>

## Configuration de la sécurité

Les autorisations décrites ici couvrent le connecteur standard de DeDeSales. Pour des adaptations individuelles, les autorisations doivent être étendues en conséquence.

<p class="callout info">N'oubliez pas de publier les privilèges et rôles après leur création !</p>

### Privilèges

Veuillez créer une nouvelle entrée : DeDeSales API

#### Entités

Attribuez les entités suivantes et donnez les droits correspondants.

<table id="bkmrk-entity-read-update-c" style="border-collapse:collapse;width:100%;height:407.953px;"><colgroup><col style="width:20.0238%;"></col><col style="width:20.0238%;"></col><col style="width:20.0238%;"></col><col style="width:20.0238%;"></col><col style="width:20.0238%;"></col></colgroup> <thead> <tr style="height:29.7969px;"> <td style="height:29.7969px;">Entité</td> <td style="height:29.7969px;">Lecture</td> <td style="height:29.7969px;">Mise à jour</td> <td style="height:29.7969px;">Création</td> <td style="height:29.7969px;">Suppression</td> </tr> </thead> <tbody> <tr style="height:29.7969px;"> <td style="height:29.7969px;">CustCustomerV3Entity</td> <td style="height:29.7969px;">Accorder</td> <td style="height:29.7969px;">Non défini</td> <td style="height:29.7969px;">Non défini</td> <td style="height:29.7969px;">Non défini</td> </tr> <tr style="height:46.5938px;"> <td style="height:46.5938px;">CustomerPaymentMethodEntity</td> <td style="height:46.5938px;">Accorder</td> <td style="height:46.5938px;">Non défini</td> <td style="height:46.5938px;">Non défini</td> <td style="height:46.5938px;">Non défini</td> </tr> <tr style="height:29.7969px;"> <td style="height:29.7969px;">DeliveryTermsEntity</td> <td style="height:29.7969px;">Accorder</td> <td style="height:29.7969px;">Non défini</td> <td style="height:29.7969px;">Non défini</td> <td style="height:29.7969px;">Non défini</td> </tr> <tr style="height:46.5938px;"> <td style="height:46.5938px;">EcoResProductBarcodeV3Entity</td> <td style="height:46.5938px;">Accorder</td> <td style="height:46.5938px;">Non défini</td> <td style="height:46.5938px;">Non défini</td> <td style="height:46.5938px;">Non défini</td> </tr> <tr style="height:29.7969px;"> <td style="height:29.7969px;">EcoResProductV2Entity</td> <td style="height:29.7969px;">Accorder</td> <td style="height:29.7969px;">Non défini</td> <td style="height:29.7969px;">Non défini</td> <td style="height:29.7969px;">Non défini</td> </tr> <tr style="height:46.5938px;"> <td style="height:46.5938px;">EcoResReleasedProductV2Entity</td> <td style="height:46.5938px;">Accorder</td> <td style="height:46.5938px;">Non défini</td> <td style="height:46.5938px;">Non défini</td> <td style="height:46.5938px;">Non défini</td> </tr> <tr style="height:29.7969px;"> <td style="height:29.7969px;">InventProductSpecificOrderSettingsV3Entity</td> <td style="height:29.7969px;">Accorder</td> <td style="height:29.7969px;">Non défini</td> <td style="height:29.7969px;">Non défini</td> <td style="height:29.7969px;">Non défini</td> </tr> <tr style="height:29.7969px;"> <td style="height:29.7969px;">PaymentTermEntity</td> <td style="height:29.7969px;">Accorder</td> <td style="height:29.7969px;">Non défini</td> <td style="height:29.7969px;">Non défini</td> <td style="height:29.7969px;">Non défini</td> </tr> <tr style="height:29.7969px;"> <td style="height:29.7969px;">SalesOrderHeaderV2Entity</td> <td style="height:29.7969px;">Accorder</td> <td style="height:29.7969px;">Accorder</td> <td style="height:29.7969px;">Accorder</td> <td style="height:29.7969px;">Accorder</td> </tr> <tr style="height:29.7969px;"> <td style="height:29.7969px;">SalesOrderLineV2Entity</td> <td style="height:29.7969px;">Accorder</td> <td style="height:29.7969px;">Accorder</td> <td style="height:29.7969px;">Accorder</td> <td style="height:29.7969px;">Accorder</td> </tr> <tr style="height:29.7969px;"> <td style="height:29.7969px;">smmContactPersonV2Entity</td> <td style="height:29.7969px;">Accorder</td> <td style="height:29.7969px;">Accorder</td> <td style="height:29.7969px;">Accorder</td> <td style="height:29.7969px;">Accorder</td> </tr> <tr> <td>smmEmploymentJobFunctionEntity</td> <td>Accorder</td> <td>Non défini</td> <td>Non défini</td> <td>Non défini</td> </tr> </tbody> </table>

### Rôles

Créez un rôle nommé "DeDeSales API Role".

#### Fonctions

Ajoutez ce qui suit :

- Maintenir les contacts
 
#### Privilèges

Ajoutez ce qui suit :

- DeDeSales API
- DeDeSalesPriceDiscountsView
 
## Clore la commande

### Test de l'API

L'API doit être accessible à l'URL indiquée ci-dessus /metadata et fournir le résultat suivant. Exemple : https://usnconeboxax1aos.cloud.onebox.dynamics.com/metadata/DataEntities

[![image.png](https://fr.wiki.dedesales.de/uploads/images/gallery/2026-09/uyT8rpuUNrX6zQeL-7ifrsjstzyjgjfbu-image.png)](https://wiki.dedesales.de/uploads/images/gallery/2026-06/7IFrsjSTzYjgJfbu-image.png)

### Depuis votre configuration, nous avons besoin de

1. ID de l'application
2. Secret
3. TenantId
4. URL
 