Documentation API – Supplier Order

Supplier Order API

Gérez les bons de commandes fournisseurs à travers différents systèmes ERP avec une API REST unifiée.
Créez et lisez les bons de commandes pour Acomba, Avantage et autres systèmes ERP supportés.

GET/Entity/SupplierOrder
POST/Entity/SupplierOrder

Aperçu

L’entité SupplierOrder représente un bon de commande fournisseur (achat) dans votre système ERP.
Cette API permet d’effectuer des opérations de lecture (GET) et de création (POST) sur les bons de commandes
de manière standardisée, peu importe le système ERP sous-jacent.

L’API utilise des endpoints REST standards avec les méthodes HTTP appropriées :

  • GET /Entity/SupplierOrder – Récupérer une liste de bons de commandes fournisseurs
  • GET /Entity/SupplierOrder/{id} – Récupérer un bon de commande spécifique
  • POST /Entity/SupplierOrder – Créer un nouveau bon de commande fournisseur
💡 Note importante

Les champs disponibles et requis varient selon le système ERP. Les bons de commandes incluent généralement un en-tête avec les informations fournisseur, ainsi que des lignes de détail pour chaque produit commandé.

Matrice de Support

Opérations supportées pour l’entité SupplierOrder par système ERP :

Système ERP GET POST PUT
Acomba ✓ Oui ✓ Oui ✗ Non
Avantage ✓ Oui ✗ Non ✗ Non
QuickBooks Online ✗ Non ✗ Non ✗ Non
Sage 50 ✗ Non ✗ Non ✗ Non
Servex ✗ Non ✗ Non ✗ Non
Servicentre ✗ Non ✗ Non ✗ Non

GET SupplierOrder

Récupère une liste de bons de commandes fournisseurs avec support de filtrage, pagination et sélection de champs.

GET/Entity/SupplierOrder

Paramètres de requêtes

Paramètre Type Requis Description
$filter string Optionnel Expression de filtrage de style OData
$select string Optionnel Champs à retourner (séparés par des virgules)
$expand string Optionnel Champs à épandre
$orderby string Optionnel Permet de trier les résultats
$top integer Optionnel Nombre maximum de résultats
$skip integer Optionnel Nombre de résultats à ignorer (pagination)
💡 Note importante

Pour plus de détails sur la composition des requêtes, consultez : Composer une requête à l’API d’ERP Connector

Get SupplierOrder
GET /Entity/SupplierOrder?$filter=DateFacture ge '2024-01-01'&$select=NoFacture,DateFacture,Fournisseur_No,TotalFacture
Host: https://v4.api.onlineerp.solution.quebec/api
Content-Type: application/json
Response (200 OK)
[
    {
        "NoFacture": "BC-2024-001",
        "DateFacture": "2024-01-15T00:00:00",
        "TotalFacture": 2500.00,
        "SousTotalFacture": 2173.91,
        "Fournisseur_No": "FOUR001",
        "Référence": "PO-EXT-12345",
        "LigneFacture": [
            {
                "NoLigneFacture": 1,
                "strNoProduit": "PROD-001",
                "DescriptionLigne": "Matière première A",
                "QteCommande": 100,
                "PrixFinal": 15.00,
                "Montant_SousTotalLigne": 1500.00
            },
            {
                "NoLigneFacture": 2,
                "strNoProduit": "PROD-002",
                "DescriptionLigne": "Composant électronique B",
                "QteCommande": 50,
                "PrixFinal": 13.48,
                "Montant_SousTotalLigne": 673.91
            }
        ]
    },
    {
        "NoFacture": "BC-2024-002",
        "DateFacture": "2024-01-18T00:00:00",
        "TotalFacture": 875.50,
        "SousTotalFacture": 761.30,
        "Fournisseur_No": "FOUR002",
        "Référence": "PO-EXT-12346",
        "LigneFacture": [
            {
                "NoLigneFacture": 1,
                "strNoProduit": "PROD-003",
                "DescriptionLigne": "Fourniture de bureau",
                "QteCommande": 25,
                "PrixFinal": 30.45,
                "Montant_SousTotalLigne": 761.30
            }
        ]
    }
]

POST SupplierOrder (Création)

Crée un nouveau bon de commande fournisseur dans le système ERP. Le bon de commande doit inclure au moins une ligne de détail.

POST/Entity/SupplierOrder
💡 Headers recommandés

Utilisez le header If-None-Match: * pour garantir que la création échouera si l’entité existe déjà.

Champs requis (Acomba)

Champ Type Requis Description
TypeDoc string ✓ Required Doit être "ACHATS" pour un bon de commande fournisseur
DateFacture datetime ✓ Required Date du bon de commande
Fournisseur_No string ✓ Required Numéro du fournisseur
LigneFacture array ✓ Required Liste des lignes de détail du bon de commande

Structure d’une ligne de détail

Champ Type Requis Description
strNoProduit string ✓ Required Numéro du produit à commander
QteCommande decimal ✓ Required Quantité commandée
PrixFinal decimal Optional Prix unitaire (si non spécifié, le prix coûtant du produit sera utilisé)
DescriptionLigne string Optional Description personnalisée de la ligne
Créer un bon de commande fournisseur (Acomba)
POST /Entity/SupplierOrder
Host: https://v4.api.onlineerp.solution.quebec/api
Content-Type: application/json
If-None-Match: *

{
  "Facture": {
    "TypeDoc": "ACHATS", // Type doc OBLIGATOIRE pour bon de commande fournisseur
    "Référence": "PO-EXT-12345", 
    "Description": "Commande matières premières Q1",
    "DateFacture": "2024-04-24", // Date du bon de commande

    // Le numéro du fournisseur
    "Fournisseur_No": "FOUR001",

    /***************************************************/
    // Array des LIGNES du bon de commande à créer
    "LigneFacture": [
      { // Ligne simple : NoProduit et Qté. Le prix coûtant sera utilisé
        "QteCommande": 100,
        "strNoProduit": "PROD-001"
      },
      { // Ligne avec prix explicite
        "QteCommande": 50,
        "strNoProduit": "PROD-002",
        "PrixFinal": 13.48,
        "DescriptionLigne": "Composant électronique B - Promotion"
      },
      { // Une ligne de commentaire
        "DescriptionLigne": "Livraison urgente demandée"
      },
      { // Ligne avec groupe de produit
        "QteCommande": 25,
        "strNoGroupeProduit": "200", 
        "DescriptionLigne": "Fournitures diverses",
        "PrixFinal": 30.45
      }
    ] 
    /***************************************************/
  },

  // ReturnFullTransaction : peut être omis. Demande au Connecteur de nous retourner 100% du payload de la transaction créée
  "ReturnFullTransaction": true
}
Response (201 Created)
{
  "OrigRemoteTaskID": 129015,
  "ResultType": "Success",
  "ErrorType": "None",
  "ResultMessage": "Tâche terminée avec succès",
  "ResultPayload": {
    "Message": "OK - Bon de commande créé sous le numéro : BC-2024-003",
    "NoFacture": "BC-2024-003",
    "RecCardPos": "256",
    "SousTotal": 2935.21,
    "Total": 3376.14,
    "FullTransaction": {
      "NoFacture": "BC-2024-003",
      "NoUniqueSystemeSource": "256",
      "TypeDoc": 4,
      "Référence": "PO-EXT-12345",
      "Description": "Commande matières premières Q1",
      "DateFacture": "2024-04-24T00:00:00",
      "Fournisseur_No": "FOUR001",
      "SousTotalFacture": 2935.21,
      "TotalFacture": 3376.14,
      "ListeDesTaxes": [
        {
          "Taxe_Numero": "T.P.S. 100%",
          "Taxe_Description": "Taxe sur les produits et services",
          "MontantTaxe": 146.76,
          "Taxe_NumeroLegalGouv": "RT100393939933"
        },
        {
          "Taxe_Numero": "T.V.Q. 100%",
          "Taxe_Description": "Taxe de Vente Québec",
          "MontantTaxe": 294.17,
          "Taxe_NumeroLegalGouv": "TQ1000292929922"
        }
      ],
      "LigneFacture": [
        {
          "NoLigneFacture": 1,
          "strNoProduit": "PROD-001",
          "strNoGroupeProduit": "100",
          "DescriptionLigne": "Matière première A",
          "QteCommande": 100,
          "PrixFinal": 15.00,
          "PrixCoutant": 15.00,
          "Montant_SousTotalLigne": 1500.00,
          "Montant_TotalLigne": 1725.11
        },
        {
          "NoLigneFacture": 2,
          "strNoProduit": "PROD-002",
          "strNoGroupeProduit": "100",
          "DescriptionLigne": "Composant électronique B - Promotion",
          "QteCommande": 50,
          "PrixFinal": 13.48,
          "Montant_SousTotalLigne": 674.00,
          "Montant_TotalLigne": 775.24
        },
        {
          "NoLigneFacture": 3,
          "strNoProduit": "",
          "DescriptionLigne": "Livraison urgente demandée",
          "QteCommande": 0,
          "Montant_SousTotalLigne": 0
        },
        {
          "NoLigneFacture": 4,
          "strNoProduit": "",
          "strNoGroupeProduit": "200",
          "DescriptionLigne": "Fournitures diverses",
          "QteCommande": 25,
          "PrixFinal": 30.45,
          "Montant_SousTotalLigne": 761.21,
          "Montant_TotalLigne": 875.79
        }
      ],
      "NbLignes": 4
    }
  },
  "IsTaskCompleted": true
}
⚠️ Important

Pour les bons de commandes fournisseurs Acomba, le TypeDoc doit être "ACHATS". Les taxes sont calculées automatiquement selon le groupe de taxes configuré pour le fournisseur dans le système.

Modèle de Données Complet

En-tête de Bon de Commande (FicheTransactions)

Champ Type Description
NoFacture string Numéro du bon de commande
NoUniqueSystemeSource string Identifiant unique du système source ERP
TypeDoc enum Type de document (ACHATS pour bon de commande fournisseur)
DateFacture datetime Date du bon de commande
Référence string Numéro de référence externe (ex: PO du système appelant)
Description string Description générale du bon de commande
Fournisseur_No string Numéro du fournisseur
Fournisseur_NoUniqueSystemeSource string Identifiant unique du fournisseur dans l’ERP
TotalFacture decimal? Montant total incluant les taxes
SousTotalFacture decimal? Sous-total avant taxes
FraisDeTransport decimal Frais de livraison ou de transport
NoProjet string Numéro de projet associé
EmployeResponsable_No string Numéro de l’employé responsable de la commande
LigneFacture List<LigneTransactions> Liste des lignes de détail du bon de commande
ListeDesTaxes List<InfoTaxe> Détail des taxes calculées
EstActif bool Indique si le bon de commande est actif
DateExpirationDocument datetime? Date d’expiration du bon de commande

Lignes de Détail (LigneTransactions)

Champ Type Description
NoLigneFacture int Numéro de séquence de la ligne
strNoProduit string Numéro du produit
strNoGroupeProduit string Numéro du groupe de produit
DescriptionLigne string Description de la ligne
QteCommande decimal Quantité commandée
QteFacture decimal Quantité reçue/facturée
PrixFinal decimal Prix unitaire
PrixCoutant decimal Prix coûtant du produit
Montant_SousTotalLigne decimal Sous-total de la ligne avant taxes
Montant_TotalLigne decimal Montant total de la ligne incluant les taxes
NoGroupeTaxe string Numéro du groupe de taxes à appliquer
NoCompteGL string Numéro de compte du Grand Livre
NoProjet string Numéro de projet associé à la ligne
UniteMesure string Unité de mesure (unité, kg, m², etc.)
TypeLigne enum Type de ligne (produit, commentaire, sous-total, etc.)
ListeDesTaxes List<InfoTaxe> Détail des taxes calculées pour cette ligne
💡 ExtendedProperties

Les objets FicheTransactions et LigneTransactions supportent également un dictionnaire ExtendedProperties pour des propriétés personnalisées ou spécifiques à un ERP.