API des bons de commande
đ Pourquoi utiliser lâAPI des bons de commande?â
Les bons de commande sont des Ă©lĂ©ments essentiels de la gestion des stocks et de la logistique dans DataDocks. Ils reprĂ©sentent des ententes concernant la livraison de produits vers vos entrepĂŽts (entrants) ou leur expĂ©dition depuis ces derniers (sortants). LâAPI des bons de commande vous permet de crĂ©er, suivre et gĂ©rer ces documents critiques de façon programmatique, en reliant directement vos systĂšmes de chaĂźne d'approvisionnement Ă vos opĂ©rations dâentrepĂŽt.
ProblĂšmes rĂ©els rĂ©solus par cette APIâ
- Rationalise le traitement des commandes : créez et mettez à jour automatiquement les bons de commande à partir de votre systÚme ERP ou de gestion de commandes
- Améliore la visibilité des stocks : suivez les arrivées et départs attendus avec des informations détaillées sur les produits
- Simplifie la gestion des transporteurs : associez des transporteurs aux bons de commande pour faciliter la logistique
- Optimise la planification : définissez les échéanciers attendus pour mieux gérer les ressources de l'entrepÎt
- Active lâanalyse avancĂ©e : accĂ©dez Ă des donnĂ©es structurĂ©es sur les bons de commande pour les rapports et analyses
DĂ©marrage rapide en 5 minutesâ
PrĂȘt Ă crĂ©er votre premier bon de commande via lâAPI? Suivez ces Ă©tapes simplesâŻ:
- Obtenez votre jeton API auprĂšs du support
- Identifiez le sous-domaine de votre emplacement (exemple :
votre-entrepot.datadocks.com
) - CrĂ©ez un bon de commande de base avec la commande suivanteâŻ:
Voir lâexemple cURL
curl -X POST \
https://your-warehouse.datadocks.com/api/v1/purchase_orders \
-H 'Authorization: Token YOUR_API_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"purchase_order": {
"po_number": "PO-2023-001",
"carrier_name": "Express Logistics",
"outbound": false,
"expected_starts_at": "2023-06-01T08:00:00-04:00",
"expected_ends_at": "2023-06-01T16:00:00-04:00",
"purchase_order_items": [
{
"product_name": "Widgets",
"unit_name": "Pallet",
"quantity": 10,
"weight": 500
}
]
}
}'
- Câest terminĂ© ! Votre bon de commande est maintenant dans DataDocks. VĂ©rifiez votre tableau de bord pour le voir.
Aperçu de lâarchitecture de lâAPIâ
âââââââââââââââââââ âââââââââââââââââââ âââââââââââââââââââ
â Votre systĂšme ââââââââ¶â API DataDocks ââââââââ¶â OpĂ©rations â
â (ERP/OMS/TMS) ââââââââ†(REST/JSON) ââââââââ†EntrepĂŽt (BC/PI)â
âââââââââââââââââââ âââââââââââââââââââ âââââââââââââââââââ
â âČ
â â
⌠â
âââââââââââââââââââ
â Rendez-vous â
â et horaires â
â â
âââââââââââââââââââ
Authentificationâ
Toutes les requĂȘtes API doivent inclure votre jeton API dans lâen-tĂȘte Authorization
âŻ:
Authorization: Token YOUR_API_TOKEN
Lister les bons de commandeâ
Objectifâ
RĂ©cupĂ©rez une liste paginĂ©e de bons de commande avec possibilitĂ© de filtrage par numĂ©ro de BC. Utilisez ce point de terminaison pour synchroniser les bons de commande avec vos systĂšmes, vĂ©rifier le statut des livraisons attendues ou prĂ©parer des rapports sur lâactivitĂ© de lâentrepĂŽt.
Cas dâusage mĂ©tierâ
- Synchroniser les bons de commande avec votre ERP ou systĂšme de gestion des commandes
- Générer des rapports sur les mouvements de stocks attendus
- Surveiller les livraisons ou expéditions à venir
- Suivre la performance des transporteurs Ă travers les bons de commande
RequĂȘte HTTPâ
GET https://[location_subdomain].datadocks.com/api/v1/purchase_orders
ParamĂštres de requĂȘteâ
ParamĂštre | Type | Obligatoire | Description | Exemple |
---|---|---|---|---|
page | Integer | Non | Numéro de page (pagination, valeur par défaut 1) | page=2 |
po_number | String | Non | Filtrer par numéro de BC exact (insensible à la case) | po_number=A-1000 |
Format de rĂ©ponseâ
La rĂ©ponse contient un tableau dâobjets bons de commande, chacun avec les champs suivantsâŻ:
Champ | Type | Description |
---|---|---|
id | Integer | Identifiant unique du bon de commande |
po_number | String | Numéro du bon de commande |
name | String | Nom généré automatiquement d'aprÚs les détails du BC |
carrier_name | String | Nom du transporteur attribué au bon de commande |
location_name | String | Nom de l'emplacement/entrepĂŽt |
outbound | Boolean | Indique si la commande est sortante (true) ou entrante (false) |
expected_starts_at | String | Timestamp ISO8601 du début prévu |
expected_ends_at | String | Timestamp ISO8601 de fin prévue |
custom_values | Object | Paires clé-valeur de champs personnalisés |
purchase_order_items | Array | Liste des articles associés à ce bon de commande |
Chaque item dans purchase_order_items
contient :
Champ | Type | Description |
---|---|---|
id | Integer | Identifiant unique de lâarticle |
customer_name | String | Nom du client associĂ© Ă lâarticle |
product_name | String | Nom du produit |
unit_name | String | Unité de mesure (ex. : « Palette », « Boßte ») |
quantity | Number | Quantité du produit |
weight | Number | Poids de lâarticle |
custom_values | Object | Paires clé-valeur de champs personnalisés pour cet article |
Exemples de codeâ
cURLâ
Voir lâexemple cURL
# Liste de base
curl -H "Authorization: Token YOUR_API_TOKEN" \
https://YOUR_LOCATION.datadocks.com/api/v1/purchase_orders
# Filtrer par numéro de BC
curl -H "Authorization: Token YOUR_API_TOKEN" \
"https://YOUR_LOCATION.datadocks.com/api/v1/purchase_orders?po_number=A-1000"
JavaScriptâ
Voir lâexemple JavaScript
// Utiliser fetch API avec filtre par numéro de BC
const getPurchaseOrders = async (poNumber) => {
const params = new URLSearchParams();
if (poNumber) params.append("po_number", poNumber);
const response = await fetch(
`https://YOUR_LOCATION.datadocks.com/api/v1/purchase_orders?${params.toString()}`,
{
method: "GET",
headers: {
Authorization: "Token YOUR_API_TOKEN",
"Content-Type": "application/json",
},
}
);
if (!response.ok) {
const errorData = await response.json();
throw new Error(
`Impossible dâobtenir la liste des bons de commande : ${JSON.stringify(errorData)}`
);
}
return response.json();
};
Exemple de rĂ©ponseâ
Voir un exemple de réponse
[
{
"id": 1,
"po_number": "A-1000",
"name": "A-1000-FastCo-Cereal",
"carrier_name": "FastCo",
"location_name": "Toronto",
"outbound": false,
"expected_starts_at": "2020-10-09T13:35:00-04:00",
"expected_ends_at": "2020-10-15T13:35:00-04:00",
"custom_values": {
"expected_at": "2020-10-09",
"travel_type": "Plane",
"forklift_operator": "Joe"
},
"purchase_order_items": [
{
"id": 2,
"customer_name": "FishCo",
"product_name": "Trout",
"unit_name": "Skid",
"quantity": 16,
"weight": 102,
"custom_values": {}
},
{
"id": 1,
"customer_name": "FishCo",
"product_name": "Cereal",
"unit_name": "Skid",
"quantity": 33,
"weight": 581,
"custom_values": {}
}
]
}
]
RĂ©cupĂ©rer un seul bon de commandeâ
Objectifâ
Obtenez lâinformation dĂ©taillĂ©e dâun bon de commande prĂ©cis par son ID. Utilisez ce point de terminaison lorsque vous avez besoin de toutes les donnĂ©es sur une commande, incluant les lignes dâarticles et les champs personnalisĂ©s.
Cas dâusage mĂ©tierâ
- Afficher les dĂ©tails dâun bon de commande dans votre application
- Vérifier les détails avant traitement
- Accéder à la liste complÚte des articles de la commande
- VĂ©rifier les valeurs de champs personnalisĂ©s Ă des fins dâintĂ©gration
RequĂȘte HTTPâ
GET https://[location_subdomain].datadocks.com/api/v1/purchase_orders/:id
ParamĂštres dâURLâ
ParamĂštre | Type | Obligatoire | Description |
---|---|---|---|
id | Integer | Oui | Identifiant unique du bon de commande |
RĂ©ponseâ
Une requĂȘte rĂ©ussie retourne une rĂ©ponse 200 OK
avec lâobjet complet du bon de commande, au mĂȘme format que pour la liste.
Exemples de codeâ
cURLâ
Voir lâexemple cURL
curl -H "Authorization: Token YOUR_API_TOKEN" \
https://YOUR_LOCATION.datadocks.com/api/v1/purchase_orders/1
JavaScriptâ
Voir lâexemple JavaScript
const getPurchaseOrder = async (purchaseOrderId) => {
try {
const response = await fetch(
`https://YOUR_LOCATION.datadocks.com/api/v1/purchase_orders/${purchaseOrderId}`,
{
method: "GET",
headers: {
Authorization: "Token YOUR_API_TOKEN",
"Content-Type": "application/json",
},
}
);
if (!response.ok) {
if (response.status === 404) {
throw new Error(`Bon de commande #${purchaseOrderId} non trouvé`);
}
const errorData = await response.json();
throw new Error(
`Impossible de récupérer le bon de commande : ${JSON.stringify(errorData)}`
);
}
return await response.json();
} catch (error) {
console.error("Erreur lors de la récupération du bon de commande :", error);
throw error;
}
};
CrĂ©er un bon de commandeâ
Objectifâ
CrĂ©er un nouveau bon de commande dans DataDocks. Ce point de terminaison permet dâajouter des bons de commande et leurs lignes dâarticles de façon automatisĂ©e, intĂ©grant ainsi votre systĂšme de gestion de commandes directement aux opĂ©rations de lâentrepĂŽt.
Arbre de dĂ©cision : Quand crĂ©er un BC via APIâ
âââââââââââââââââââ
â Ajouter un BC ? â
ââââââââââŹâââ ââââââ
â
âŒ
âââââââââââââââââââââââ Oui ââââââââââââââââââââ
â IntĂ©gration avec âââââââââââ¶â IdĂ©al via lâAPI !â
â votre ERP/SGC ? â â â
ââââââââââŹâââââââââââââ ââââââââââââââââââââ
â Non
âŒ
âââââââââââââââââââââââ Oui ââââââââââââââââââââââ
â Plusieurs BC Ă crĂ©erââââââââââ¶â Utiliser lâimport â
â dâun seul coup ? â â en lot â
ââââââââââŹâââââââââââââ âââââââââââââââââââââââ
â Non
âŒ
âââââââââââââââââââ
â Utiliser lâUI â
â web â
âââââââââââââââââââ
Cas dâusage mĂ©tierâ
- Intégration des systÚmes : Créer directement des bons de commande via votre ERP ou gestion de commandes
- Traitement automatisé des commandes : Transformer les commandes de vente en BCs de façon programmée
- Intégration EDI : Convertir des documents EDI 850 en BCs DataDocks
- Intégration fournisseurs : Permettre aux fournisseurs de soumettre leurs BC via vos systÚmes
RequĂȘte HTTPâ
POST https://[location_subdomain].datadocks.com/api/v1/purchase_orders
Corps de la requĂȘteâ
ParamÚtre | Type | Oblig. | Description | Contraintes | Défaut | Exemple |
---|---|---|---|---|---|---|
po_number | String | Oui | NumĂ©ro du bon de commande | Doit ĂȘtre unique | Aucun | "PO-2023-001" |
carrier_name | String | Non * | Nom du transporteur | Aucun | Aucun | "Express Logistics" |
carrier_number | String | Non | NumĂ©ro dâentreprise du transporteur | Doit correspondre Ă un transporteur | Aucun | "EXP-001" |
location_name | String | Non | Nom de lâemplacement | Doit correspondre Ă un entrepĂŽt | Emplacement actif | "EntrepĂŽt Toronto" |
outbound | Boolean | Non | Indique si la commande est sortante | Aucun | false | true |
expected_starts_at | String | Non | Timestamp ISO8601 du début prévu | Format ISO8601 valide | Aucun | "2023-06-01T08:00:00-04:00" |
expected_ends_at | String | Non | Timestamp ISO8601 de fin prévue | Format ISO8601 valide | Aucun | "2023-06-01T16:00:00-04:00" |
alternate_reference_number | String | Non | Numéro de référence secondaire | Aucun | Aucun | "REF-123" |
closed | Boolean | Non | Statut fermé du BC | Aucun | false | true |
custom_values | Object | Non * | Valeurs des champs personnalisĂ©s | Selon paramĂštres de lâemplacement | {} | {"department": "Produce"} |
purchase_order_items | Array | Non | Lignes dâarticles du BC | Au moins un recommandĂ© | [] | Voir ci-dessous |
Chaque article dans purchase_order_items
peut inclureâŻ:
ParamĂštre | Type | Oblig. | Description | Contraintes | Exemple |
---|---|---|---|---|---|
customer_name | String | Non * | Nom du client | Aucun | "Acme Corp" |
customer_number | String | Non * | NumĂ©ro dâentreprise du client | Doit correspondre Ă un client | "ACME-001" |
product_name | String | Non * | Nom du produit | Aucun | "Widgets" |
unit_name | String | Non * | Unité de mesure | Aucun | "Pallet" |
quantity | Number | Non * | QuantitĂ© du produit | Doit ĂȘtre positive | 10 |
weight | Number | Non * | Poids de lâarticle | Doit ĂȘtre positif | 500 |
custom_values | Object | Non * | Champs personnalisĂ©s pour lâarticle | Selon paramĂštres de lâemplacement | {"color": "Blue"} |
* Peut ĂȘtre obligatoire selon les prĂ©fĂ©rences de lâemplacement
RĂ©ponseâ
Une création réussie retourne une réponse 200 OK
avec lâobjet BC complet, incluant lâid
généré et autres valeurs systÚme.
Exemples de codeâ
cURLâ
Voir lâexemple cURL
curl -H "Authorization: Token YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-X POST \
-d '{
"purchase_order": {
"po_number": "PO-2023-001",
"carrier_name": "Express Logistics",
"outbound": false,
"expected_starts_at": "2023-06-01T08:00:00-04:00",
"expected_ends_at": "2023-06-01T16:00:00-04:00",
"custom_values": {
"department": "Electronics",
"priority": "High"
},
"purchase_order_items": [
{
"product_name": "Laptops",
"unit_name": "Box",
"quantity": 50,
"weight": 250,
"custom_values": {
"model": "XPS 13"
}
},
{
"product_name": "Monitors",
"unit_name": "Pallet",
"quantity": 10,
"weight": 500,
"custom_values": {
"size": "27-inch"
}
}
]
}
}' \
https://YOUR_LOCATION.datadocks.com/api/v1/purchase_orders
JavaScriptâ
Voir lâexemple JavaScript
const createPurchaseOrder = async (purchaseOrderData) => {
try {
const response = await fetch(
`https://YOUR_LOCATION.datadocks.com/api/v1/purchase_orders`,
{
method: "POST",
headers: {
Authorization: "Token YOUR_API_TOKEN",
"Content-Type": "application/json",
},
body: JSON.stringify({ purchase_order: purchaseOrderData }),
}
);
if (!response.ok) {
const errorData = await response.json();
const errorMessages = Object.entries(errorData.errors || {})
.map(([field, messages]) => `${field}: ${messages.join(", ")}`)
.join("\n");
throw new Error(`Ăchec de la crĂ©ation du bon de commande :\n${errorMessages}`);
}
return await response.json();
} catch (error) {
console.error("Erreur API :", error);
throw error;
}
};
Mettre Ă jour un bon de commandeâ
Objectifâ
Mettre Ă jour les dĂ©tails dâun bon de commande existant. Ce point dâAPI permet de modifier tous les aspects dâun BC, incluant ses articles, ses dates, le transporteur et les champs personnalisĂ©s.
Cas dâusage mĂ©tierâ
- Données à jour : ajuster les dates de livraison ou le transporteur en cas de changement
- Modifier le contenu : ajouter/retirer/changer des articles selon le besoin
- Changer le statut du BC : marquer un bon de commande comme terminé/fermé
- Ajouter des informations de suivi : mettre à jour les champs personnalisés avec des informations complémentaires
RequĂȘte HTTPâ
PUT https://[location_subdomain].datadocks.com/api/v1/purchase_orders/:id
ParamĂštres dâURLâ
ParamĂštre | Type | Obligatoire | Description |
---|---|---|---|
id | Integer | Oui | Identifiant unique du bon de commande |
Corps de la requĂȘteâ
Ce corps accepte les mĂȘmes paramĂštres que la crĂ©ation. Nâincluez que les champs Ă modifier.
ScĂ©narios courantsâ
Mise Ă jour des datesâ
{
"purchase_order": {
"expected_starts_at": "2023-06-05T08:00:00-04:00",
"expected_ends_at": "2023-06-05T16:00:00-04:00"
}
}
Changement de transporteurâ
{
"purchase_order": {
"carrier_name": "Fast Transit Inc",
"carrier_number": "FTI-001"
}
}
Fermeture dâun bon de commandeâ
{
"purchase_order": {
"closed": true
}
}
Mise Ă jour des articlesâ
{
"purchase_order": {
"purchase_order_items": [
{
"id": 123,
"quantity": 15
},
{
"product_name": "New Product",
"unit_name": "Box",
"quantity": 5,
"weight": 25
}
]
}
}
Exemples de codeâ
cURLâ
Voir lâexemple cURL
curl -H "Authorization: Token YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-X PUT \
-d '{
"purchase_order": {
"carrier_name": "Updated Logistics Co",
"expected_starts_at": "2023-06-02T08:00:00-04:00",
"custom_values": {
"tracking_number": "TRK12345"
}
}
}' \
https://YOUR_LOCATION.datadocks.com/api/v1/purchase_orders/1
JavaScriptâ
Voir lâexemple JavaScript
const updatePurchaseOrder = async (purchaseOrderId, updateData) => {
try {
const response = await fetch(
`https://YOUR_LOCATION.datadocks.com/api/v1/purchase_orders/${purchaseOrderId}`,
{
method: "PUT",
headers: {
Authorization: "Token YOUR_API_TOKEN",
"Content-Type": "application/json",
},
body: JSON.stringify({ purchase_order: updateData }),
}
);
if (!response.ok) {
const errorData = await response.json();
throw new Error(
`Ăchec de la mise Ă jour du bon de commande : ${JSON.stringify(errorData)}`
);
}
return await response.json();
} catch (error) {
console.error("Erreur lors de la mise Ă jour du bon de commande :", error);
throw error;
}
};
Supprimer tous les articles du BCâ
Pour retirer toutes les lignes dâun bon de commande, ajoutez le paramĂštre clear_po_items
avec la valeur true
:
{
"purchase_order": {
"clear_po_items": "true",
"purchase_order_items": [
{
"product_name": "New Product",
"unit_name": "Box",
"quantity": 10
}
]
}
}
Cela supprimera tous les articles existants et les remplacera par ceux fournis (le cas échéant).
Supprimer un bon de commandeâ
Objectifâ
Supprimer un bon de commande du systĂšme. Ce point de terminaison permet dâĂ©liminer des BC devenus inutiles.
Points importantsâ
Avant de supprimer un BC, considĂ©rez ce qui suitâŻ:
- Il ne doit pas ĂȘtre associĂ© Ă des rendez-vous actifs
- La suppression est définitive et irréversible
- Il est souvent préférable de marquer le bon de commande comme "fermé" plutÎt que de le supprimer
Cas dâusages mĂ©tiersâ
- Nettoyage de données de test : enlever les BC fictifs ou de test
- Ălimination des doublons : nettoyage lors des dĂ©duplications de donnĂ©es
- Entretien du systÚme : suppression des vieux enregistrements inutilisés
RequĂȘte HTTPâ
DELETE https://[location_subdomain].datadocks.com/api/v1/purchase_orders/:id
ParamĂštres dâURLâ
ParamĂštre | Type | Obligatoire | Description |
---|---|---|---|
id | Integer | Oui | Identifiant unique du bon de commande |
RĂ©ponseâ
Une suppression réussie retourne 204 No Content
, indiquant que la suppression a été effectuée avec succÚs.
Exemples de codeâ
cURLâ
Voir lâexemple cURL
curl -H "Authorization: Token YOUR_API_TOKEN" \
-X DELETE \
https://YOUR_LOCATION.datadocks.com/api/v1/purchase_orders/1
JavaScriptâ
Voir lâexemple JavaScript
const deletePurchaseOrder = async (purchaseOrderId) => {
try {
const response = await fetch(
`https://YOUR_LOCATION.datadocks.com/api/v1/purchase_orders/${purchaseOrderId}`,
{
method: "DELETE",
headers: {
Authorization: "Token YOUR_API_TOKEN",
},
}
);
if (!response.ok) {
if (response.status === 404) {
throw new Error(`Bon de commande #${purchaseOrderId} non trouvé`);
}
const errorData = await response.json();
throw new Error(
`Ăchec de la suppression du bon de commande : ${JSON.stringify(errorData)}`
);
}
return true; // Suppression réussie
} catch (error) {
console.error("Erreur lors de la suppression du bon de commande :", error);
throw error;
}
};
RĂ©solution automatique des entitĂ©sâ
RĂ©solution du transporteurâ
Lors de la crĂ©ation ou la modification dâun bon de commande, vous pouvez fournir soit carrier_name
, soit carrier_number
(ou les deux)âŻ:
- Si vous fournissez
carrier_number
, le systĂšme essayera de trouver un transporteur correspondant via son numĂ©ro dâentreprise - Si une correspondance est trouvĂ©e, le nom et lâID du transporteur seront automatiquement associĂ©s au BC
- Sinon, la valeur fournie sera utilisée comme
carrier_name
RĂ©solution du produitâ
Pour la crĂ©ation ou mise Ă jour dâarticles du bon de commandeâŻ:
- Si le nom du produit correspond à un produit existant (insensible à la case), celui-ci sera utilisé
- Sinon, lâarticle sera créé mais sera peut-ĂȘtre non liĂ© Ă un produit enregistrĂ©
- contactez le support si vous souhaitez créer un produit inexistant
RĂ©solution de lâunitĂ©â
Comme pour les produitsâŻ:
- Si le nom de lâunitĂ© correspond Ă une unitĂ© existante (insensible Ă la case), elle sera utilisĂ©e
- Sinon, lâarticle nâaura pas dâassociation de type dâunitĂ© valide
- contactez le support si lâunitĂ© nâexiste pas encore
Bonnes pratiquesâ
Gestion des donnĂ©esâ
- Utilisez des numéros de BC uniques : assurez-vous que chaque BC a un identifiant unique
- Fournissez les numĂ©ros dâentreprise des transporteurs : pour une association fiable avec un transporteur
- Validez les donnĂ©es cĂŽtĂ© client : effectuez des validations de base avant lâenvoi
- Privilégiez le statut "fermé" : marquez les BCs comme fermés plutÎt que de les supprimer
- Gérez adéquatement les champs personnalisés : utilisez seulement ceux configurés pour votre emplacement
Optimisation de performanceâ
- Inclure toutes les donnĂ©es pertinentes : si possible, envoyez tous les dĂ©tails en une seule requĂȘte API
- Utiliser les opérations groupées : regroupez les modifications de BC liées ensemble
- Soyez prĂ©cis dans vos requĂȘtes : utilisez les filtres disponibles pour limiter le volume de donnĂ©es transfĂ©rĂ©es
ProblĂšmes frĂ©quents et dĂ©pannageâ
- UnicitĂ© du numĂ©ro de BC : les numĂ©ros doivent ĂȘtre uniques par emplacement
- Formatage des dates : toutes les dates doivent ĂȘtre au format ISO8601 (ex.âŻ: « 2023-06-01T08:00:00-04:00 »)
- Association des transporteurs : vĂ©rifiez le numĂ©ro dâentreprise pour une association automatique correcte
- Types des champs personnalisés : Les champs JSON demeurent en JSON, les autres sont convertis en chaßnes
- Suppression des articles : utilisez le paramĂštre
clear_po_items
pour effacer/redéfinir tous les articles
Gestion des erreursâ
Code dâerreur | Description | Cause possible |
---|---|---|
400 | RequĂȘte invalide | Valeurs ou format incorrects |
404 | Introuvable | ID du bon de commande inexistant |
422 | Entité non traitable | Validation échouée (ex : champ requis manquant) |
401 | Non autorisé | Jeton API invalide ou manquant |
403 | Interdit | Permissions insuffisantes |
Exemple de rĂ©ponse dâerreurâ
{
"errors": {
"po_number": ["ne peut pas ĂȘtre vide"],
"purchase_order_items": ["doit contenir au moins un article"]
}
}
Aide et supportâ
Si vous rencontrez des problĂšmes qui ne sont pas couverts dans cette documentationâŻ:
- VĂ©rifiez la rĂ©ponse dâerreurâŻ: la plupart des erreurs API incluent des indications prĂ©cises sur la cause
- VĂ©rifiez les permissionsâŻ: assurez-vous que votre jeton API a les autorisations nĂ©cessaires
- Testez par Ă©tapesâŻ: dĂ©composez les opĂ©rations complexes pour isoler la cause du problĂšme