Gérez les factures fournisseurs à travers différents systèmes ERP avec une API REST unifiée.
Créez et lisez les factures fournisseurs pour Acomba, QuickBooks Online, Avantage, Sage 50 et autres systèmes ERP.
GET/Entity/SupplierInvoice
POST/Entity/SupplierInvoice
Aperçu
L’entité SupplierInvoice représente une facture fournisseur dans votre système ERP.
Cette API permet d’effectuer des opérations de lecture (GET), de création (POST) et de modification (PUT) sur les factures fournisseurs
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/SupplierInvoice – Récupérer une liste de factures fournisseurs
GET /Entity/SupplierInvoice/{id} – Récupérer une facture fournisseur spécifique
POST /Entity/SupplierInvoice – Créer une nouvelle facture fournisseur
💡 Note importante
Les champs disponibles et requis varient selon le système ERP. Les factures fournisseurs incluent généralement un en-tête avec les informations du fournisseur, ainsi que des lignes de détail pour chaque produit/service acheté.
Matrice de Support
Opérations supportées pour l’entité SupplierInvoice par système ERP :
Système ERP
GET
POST
PUT
Acomba
✓ Oui
✓ Oui
✗ Non
QuickBooks Online
✓ Oui
✓ Oui
✗ Non
Avantage
✓ Oui
✓ Oui
✗ Non
Sage 50
✓ Oui
✓ Oui
✗ Non
Servex
✗ Non
✗ Non
✗ Non
Servicentre
✗ Non
✗ Non
✗ Non
GET SupplierInvoice
Récupère une liste de factures fournisseurs avec support de filtrage, pagination et sélection de champs.
Crée une nouvelle facture fournisseur dans le système ERP. La facture doit inclure au moins une ligne de détail.
POST/Entity/SupplierInvoice
💡 Headers recommandés
Utilisez le header If-None-Match: * pour garantir que la création échouera si l’entité existe déjà.
Créer une facture fournisseur (Acomba)
POST /Entity/SupplierInvoice
Host: https://v4.api.onlineerp.solution.quebec/api
Content-Type: application/json
If-None-Match: *
{
"DateFacture": "2024-04-05",
"TypeDoc": "FACTURESFOURNISSEURS",
"NoProjet": "NumeroDeProjet", // numéro de projet, quand cela est applicable, au niveau de l'entête de la facture fournisseur"Description": "test1",
/*Numéro de la facture-fournisseur. Dans la plupart des ERP [Acomba et Avantage], il s'agira d'une clé unique [avec le Numéro Fournisseur, stocké sous InfoClientFacturerA.NoClient]*/"NoFacture": "test5",
"Référence": null,
"SousTotalFacture": -14.68, /* Doit correspondre à la somme des lignes enfants. *//* Dans sa forme actuelle, c'est ici qu'on verra les informations du FOURNISSEUR. Sera éventuellement remplacé */"InfoClientFacturerA": {
"NoClient": "0000000BOI"
},
/* Ici, une liste avec les lignes de factures Fournisseurs. Autant Acomba que Avantage requièrent CompteGL et PrixFinal */"LigneFacture": [
{
"DescriptionLigne": "COMPTES A PAYER",
"NoCompteGL": "21300",
"PrixFinal": -16.73
},
{
"DescriptionLigne": "ACHATS - MÉLAMINE TR",
"NoCompteGL": "41200",
"PrixFinal": 14.68
},
{
"DescriptionLigne": "T.P.S. à réclamer",
"NoCompteGL": "21340",
"PrixFinal": 0.88
},
{
"DescriptionLigne": "T.V.Q. à réclamer",
"NoCompteGL": "21370",
"PrixFinal": 1.17
}
]
}
Response (201 Created) – Acomba
{
"DateFacture": "2024-04-05",
"TypeDoc": "FACTURESFOURNISSEURS",
"NoProjet": "NumeroDeProjet", // numéro de projet, quand cela est applicable, au niveau de l'entête de la facture fournisseur"Description": "test1",
/*Numéro de la facture-fournisseur. Dans la plupart des ERP [Acomba et Avantage], il s'agira d'une clé unique [avec le Numéro Fournisseur, stocké sous InfoClientFacturerA.NoClient]*/"NoFacture": "test5",
"Référence": null,
"SousTotalFacture": -14.68, /* Doit correspondre à la somme des lignes enfants. *//* Dans sa forme actuelle, c'est ici qu'on verra les informations du FOURNISSEUR. Sera éventuellement remplacé */"InfoClientFacturerA": {
"NoClient": "0000000BOI"
},
/* Ici, une liste avec les lignes de factures Fournisseurs. Autant Acomba que Avantage requièrent CompteGL et PrixFinal */"LigneFacture": [
{
"DescriptionLigne": "COMPTES A PAYER",
"NoCompteGL": "21300",
"PrixFinal": -16.73
},
{
"DescriptionLigne": "ACHATS - MÉLAMINE TR",
"NoCompteGL": "41200",
"PrixFinal": 14.68
},
{
"DescriptionLigne": "T.P.S. à réclamer",
"NoCompteGL": "21340",
"PrixFinal": 0.88
},
{
"DescriptionLigne": "T.V.Q. à réclamer",
"NoCompteGL": "21370",
"PrixFinal": 1.17
}
]
}
Créer une facture fournisseur (Avantage)
POST /Entity/SupplierInvoice
Host: https://v4.api.onlineerp.solution.quebec/api
Content-Type: application/json
If-None-Match: *
{
"DateFacture": "2024-04-05",
"TypeDoc": "FACTURESFOURNISSEURS",
"NoProjet": "0000000100", // numéro de projet, quand cela est applicable, au niveau de l'entête de la facture fournisseur"Description": "test1",
/* Numéro de la facture-fournisseur. Dans la plupart des ERP [Acomba et Avantage], il s'agira d'une clé unique [avec le Numéro Fournisseur, stocké sous InfoClientFacturerA.NoClient] */"NoFacture": "test activitee 01",
"Référence": null,
"SousTotalFacture": -14.68, /* Doit correspondre à la somme des lignes enfants. *//* Dans sa forme actuelle, c'est ici qu'on verra les informations du FOURNISSEUR. Sera éventuellement remplacé */"InfoClientFacturerA": {
"NoClient": "0000000BOI"
},
/* Ici, une liste avec les lignes de factures Fournisseurs. Autant Acomba que Avantage requièrent CompteGL et PrixFinal */"LigneFacture": [
{
"DescriptionLigne": "COMPTES A PAYER",
"NoCompteGL": "21300",
"PrixFinal": -16.73
},
{
"DescriptionLigne": "ACHATS - MÉLAMINE TR",
"NoCompteGL": "41200",
"NoActivitee": "13560",
"PrixFinal": 14.68
},
{
"DescriptionLigne": "T.P.S. à réclamer",
"NoCompteGL": "21340",
"PrixFinal": 0.88
},
{
"DescriptionLigne": "T.V.Q. à réclamer",
"NoCompteGL": "21370",
"PrixFinal": 1.17
},
{
"DescriptionLigne": "Retenues à payer T.P.S.",
"NoCompteGL": "21341",
"PrixFinal": 0.88
},
{
"DescriptionLigne": "Retenues à payer T.V.Q.",
"NoCompteGL": "21370",
"PrixFinal": 1.17
}
],
/* Les retenues (seulement pour Avantage) se trouvent à l'intérieur de l'objet extended properties */"ExtendedProperties": {
"MontantTotalRetenue": 0.00,
"SoldeRetenueAPayer": 0.00,
"NoGlRetenuesAPayer": "21310",
"MontantPayeTVQTaux1SurRetenues": 0.00,
"MontantPayeTVQTaux2SurRetenues": 0.00,
"MontantPayeTPSSurRetenues": 0.00
}
}
Response (201 Created) – Avantage
{
"DateFacture": "2024-04-05",
"TypeDoc": "FACTURESFOURNISSEURS",
"NoProjet": "0000000100", // numéro de projet, quand cela est applicable, au niveau de l'entête de la facture fournisseur"Description": "test1",
/* Numéro de la facture-fournisseur. Dans la plupart des ERP [Acomba et Avantage], il s'agira d'une clé unique [avec le Numéro Fournisseur, stocké sous InfoClientFacturerA.NoClient] */"NoFacture": "test activitee 01",
"Référence": null,
"SousTotalFacture": -14.68, /* Doit correspondre à la somme des lignes enfants. *//* Dans sa forme actuelle, c'est ici qu'on verra les informations du FOURNISSEUR. Sera éventuellement remplacé */"InfoClientFacturerA": {
"NoClient": "0000000BOI"
},
/* Ici, une liste avec les lignes de factures Fournisseurs. Autant Acomba que Avantage requièrent CompteGL et PrixFinal */"LigneFacture": [
{
"DescriptionLigne": "COMPTES A PAYER",
"NoCompteGL": "21300",
"PrixFinal": -16.73
},
{
"DescriptionLigne": "ACHATS - MÉLAMINE TR",
"NoCompteGL": "41200",
"NoActivitee": "13560",
"PrixFinal": 14.68
},
{
"DescriptionLigne": "T.P.S. à réclamer",
"NoCompteGL": "21340",
"PrixFinal": 0.88
},
{
"DescriptionLigne": "T.V.Q. à réclamer",
"NoCompteGL": "21370",
"PrixFinal": 1.17
},
{
"DescriptionLigne": "Retenues à payer T.P.S.",
"NoCompteGL": "21341",
"PrixFinal": 0.88
},
{
"DescriptionLigne": "Retenues à payer T.V.Q.",
"NoCompteGL": "21370",
"PrixFinal": 1.17
}
],
/* Les retenues (seulement pour Avantage) se trouvent à l'intérieur de l'objet extended properties */"ExtendedProperties": {
"MontantTotalRetenue": 0.00,
"SoldeRetenueAPayer": 0.00,
"NoGlRetenuesAPayer": "21310",
"MontantPayeTVQTaux1SurRetenues": 0.00,
"MontantPayeTVQTaux2SurRetenues": 0.00,
"MontantPayeTPSSurRetenues": 0.00
}
}
Créer une facture fournisseur (QuickBooks)
POST /Entity/SupplierInvoice
Host: https://v4.api.onlineerp.solution.quebec/api
Content-Type: application/json
If-None-Match: *
{
"DateFacture": "2024-04-05",
"TypeDoc": "FACTURESFOURNISSEURS",
// "NoProjet":"NumeroDeProjet", // numéro de projet, quand cela est applicable, au niveau de l'entête de la facture fournisseur/* Obligatoire dans QuickBooks *//* Un terme de paiement creditcard doit cibler un compte de carte de crédit actif *//* Un terme de paiement check doit cibler un compte de banque actif */"CompteRecevable_No": "Visa Credit Card",
"Description": "Test 01",
/* Obligatoire dans QuickBooks */"TermeDePaiement": {
"NomTermeDePaiement": "Credit Card",
/* les types paiements supportés sont cash, check et creditcard */"TypeTerme": "creditcard"
},
/* Numéro de la facture-fournisseur. Dans la plupart des ERP [Acomba et Avantage], il s'agira d'une clé unique [avec le Numéro Fournisseur, stocké sous InfoClientFacturerA.NoClient] *//* QuickBooks : Champ libre de max 21 caractères */"NoFacture": "TestSupplierInvoice01",
"NoteGlobaleExterne01": "Memo QuickBooks",
/* Dans sa forme actuelle, c'est ici qu'on verra les informations du FOURNISSEUR. Sera éventuellement remplacé */"InfoClientFacturerA": {
"NoClient": "ROZA le Rénovateur"
},
/* Ici, une liste avec les lignes de factures Fournisseurs. Autant Acomba que Avantage et QuickBooks requièrent CompteGL et PrixFinal *//* Les comptes GL de cette section doivent être de type Expense dans QuickBooks */"LigneFacture": [
{
"DescriptionLigne": "achats divers",
"NoCompteGL": "Purchases", /* Dans QuickBooks on doit fournir le nom du Compte GL et non son numéro */"PrixFinal": 10.00
}
]
}
Response (201 Created) – QuickBooks
{
"DateFacture": "2024-04-05",
"TypeDoc": "FACTURESFOURNISSEURS",
// "NoProjet":"NumeroDeProjet", // numéro de projet, quand cela est applicable, au niveau de l'entête de la facture fournisseur/* Obligatoire dans QuickBooks *//* Un terme de paiement creditcard doit cibler un compte de carte de crédit actif *//* Un terme de paiement check doit cibler un compte de banque actif */"CompteRecevable_No": "Visa Credit Card",
"Description": "Test 01",
/* Obligatoire dans QuickBooks */"TermeDePaiement": {
"NomTermeDePaiement": "Credit Card",
/* les types paiements supportés sont cash, check et creditcard */"TypeTerme": "creditcard"
},
/* Numéro de la facture-fournisseur. Dans la plupart des ERP [Acomba et Avantage], il s'agira d'une clé unique [avec le Numéro Fournisseur, stocké sous InfoClientFacturerA.NoClient] *//* QuickBooks : Champ libre de max 21 caractères */"NoFacture": "TestSupplierInvoice01",
"NoteGlobaleExterne01": "Memo QuickBooks",
/* Dans sa forme actuelle, c'est ici qu'on verra les informations du FOURNISSEUR. Sera éventuellement remplacé */"InfoClientFacturerA": {
"NoClient": "ROZA le Rénovateur"
},
/* Ici, une liste avec les lignes de factures Fournisseurs. Autant Acomba que Avantage et QuickBooks requièrent CompteGL et PrixFinal *//* Les comptes GL de cette section doivent être de type Expense dans QuickBooks */"LigneFacture": [
{
"DescriptionLigne": "achats divers",
"NoCompteGL": "Purchases", /* Dans QuickBooks on doit fournir le nom du Compte GL et non son numéro */"PrixFinal": 10.00
}
]
}
Créer une facture fournisseur (Sage 50)
POST /Entity/SupplierInvoice
Host: https://v4.api.onlineerp.solution.quebec/api
Content-Type: application/json
If-None-Match: *
{
"DateFacture": "2025-07-01", /* La date doit être dans l'année fiscale en cours */"TypeDoc": "FACTURESFOURNISSEURS",
"Description": "test 12345",
/* Numéro de la facture-fournisseur. Dans la plupart des ERP [Acomba et Avantage], il s'agira d'une clé unique [avec le Numéro Fournisseur, stocké sous InfoClientFacturerA.NoClient] */"NoFacture": "1",
"SousTotalFacture": 1.0, /* Doit correspondre à la somme des lignes enfants. *//* Dans sa forme actuelle, c'est ici qu'on verra les informations du FOURNISSEUR. Sera éventuellement remplacé */"InfoClientFacturerA": {
"NoClient": "Harry's Lumber"
},
"NoteGlobaleExterne01": "", /* Champ optionnel pour les commentaires d'une facture *//* Ici, une liste avec les lignes de factures Fournisseurs. Autant Acomba que Avantage requièrent CompteGL et PrixFinal */"LigneFacture": [
{
"DescriptionLigne": "purchase test",
"NoCompteGL": "50300",
"strNoProduit": "Wood",
"Montant_TotalLigne": 1.0,
"PrixFinal": 1.0,
"QteCommande": 1.0
}
]
}
Response (201 Created) – Sage 50
{
"DateFacture": "2025-07-01", /* La date doit être dans l'année fiscale en cours */"TypeDoc": "FACTURESFOURNISSEURS",
"Description": "test 12345",
/* Numéro de la facture-fournisseur. Dans la plupart des ERP [Acomba et Avantage], il s'agira d'une clé unique [avec le Numéro Fournisseur, stocké sous InfoClientFacturerA.NoClient] */"NoFacture": "1",
"SousTotalFacture": 1.0, /* Doit correspondre à la somme des lignes enfants. *//* Dans sa forme actuelle, c'est ici qu'on verra les informations du FOURNISSEUR. Sera éventuellement remplacé */"InfoClientFacturerA": {
"NoClient": "Harry's Lumber"
},
"NoteGlobaleExterne01": "", /* Champ optionnel pour les commentaires d'une facture *//* Ici, une liste avec les lignes de factures Fournisseurs. Autant Acomba que Avantage requièrent CompteGL et PrixFinal */"LigneFacture": [
{
"DescriptionLigne": "purchase test",
"NoCompteGL": "50300",
"strNoProduit": "Wood",
"Montant_TotalLigne": 1.0,
"PrixFinal": 1.0,
"QteCommande": 1.0
}
]
}
Propriétés détaillées de SupplierInvoice
Identification et informations globales
Propriété
Type
Description
NoFacture
string
Numéro de la facture fournisseur (clé business)
NoUniqueSystemeSource
string
Clé unique interne de l’ERP
TypeDoc
enum
Type de document (doit être ‘ACHATS’ pour facture fournisseur)
Référence
string
Référence du document (ex: numéro de bon de commande)
NoAutorisation
string
Numéro d’autorisation du document
Description
string
Description générale de la facture
DateFacture
DateTime
Date de la facture fournisseur
CodeUsagerCreation
string
Code de l’utilisateur ayant créé le document
Fiche_DerniereModification
DateTime?
Date de dernière modification du document
EstActif
bool
Indique si le document est actif
SousTypeTransaction
string
Sous-type de transaction (crédit, facture normale, etc.)
NoteGlobaleExterne01
string
Note globale externe visible sur le document
EstInversee
bool
Indique si la facture a été inversée
RaisonInversement
string
Raison de l’inversement du document
ReferenceInversement
string
Référence du document d’inversement
Informations fournisseur
Propriété
Type
Description
Fournisseur_No
string
Numéro du fournisseur (clé business)
Fournisseur_NoUniqueSystemeSource
string
Clé interne du fournisseur dans l’ERP
Projet et employé responsable
Propriété
Type
Description
NoProjet
string
Numéro du projet associé
NoProjet_NoUniqueSystemeSource
string
ID interne du projet dans l’ERP
EmployeResponsable_No
string
Numéro de l’employé responsable
EmployeResponsable_NoUniqueSystemeSource
string
ID interne de l’employé responsable
Informations monétaires
Propriété
Type
Description
TotalFacture
decimal?
Montant total de la facture (taxes incluses)
SousTotalFacture
decimal?
Sous-total de la facture (avant taxes)
MontantNonPaye
decimal
Solde impayé sur la facture
FraisDeTransport
decimal
Frais de transport/livraison
Montant_Retrait
decimal
Montant du retrait
Montant_ChangeRemit
decimal
Montant de change remis
Montant_Depot
decimal
Montant du dépôt
Montant_MonnaieRecu
decimal
Montant de monnaie reçu
boolUtiliserMontantMonnaieRecu
bool
Indique si on utilise le montant de monnaie reçu
Devise
string
Devise de la facture (CAD, USD, etc.)
Taxes et comptabilité
Propriété
Type
Description
ListeDesTaxes
List<InfoTaxe>
Liste des taxes appliquées sur la facture
ComptePayable_No
string
Numéro du compte payable (Acomba)
CompteRecevable_No
string
Numéro du compte recevable (Acomba)
OptionsTaxesForcees
SettingForcedTaxes
Options de taxes forcées sur la facture
Termes de paiement
Propriété
Type
Description
TermeDePaiement
TermeDePaiement
Objet contenant les conditions de paiement
TermePaiement
string
⚠️ Obsolète – Utiliser TermeDePaiement à la place
Documents de référence
Propriété
Type
Description
NoCommandeRéférence
string
Numéro de commande d’achat de référence
NoCommandeRéférence_NoUniqueSystemeSource
string
ID interne de la commande de référence
NoSoumissionRéférence
string
Numéro de soumission de référence
NoSoumissionRéférence_NoUniqueSystemeSource
string
ID interne de la soumission de référence
NoLivraison01Référence
string
Numéro de livraison de référence
NoLivraison01Référence_NoUniqueSystemeSource
string
ID interne de la livraison de référence
NoFacture01Référence
string
Numéro de facture de référence
NoFacture01Référence_NoUniqueSystemeSource
string
ID interne de la facture de référence
DateExpirationDocument
DateTime?
Date d’expiration du document
Lignes de détail et paiements
Propriété
Type
Description
LigneFacture
List<LigneTransactions>
Liste des lignes de détail de la facture
NbLignes
int (readonly)
Nombre de lignes dans la facture
NbLignes_DocumentOriginal
int
Nombre de lignes du document original (avant modification)
ListeReglementFournisseur
List<APPayment>
Liste des paiements fournisseur associés
Informations de contrôle (usage interne)
Propriété
Type
Description
ctrl_Update_AncienNombreLigne
int
Ancien nombre de lignes (contrôle interne)
ctrl_InfoCreation_NomUsagerWindows
string
Nom de l’utilisateur Windows ayant créé le document
ctrl_InfoCreation_NomLogiciel
string
Nom du logiciel ayant créé le document
ctrl_InfoCreation_NomPoste
string
Nom du poste ayant créé le document
ctrl_NoDocumentLocal
string
Numéro de document local (avant création dans l’ERP)
Propriétés étendues
Propriété
Type
Description
ExtendedProperties
Dictionary<string, object>
Propriétés étendues personnalisées
💡 ExtendedProperties
Le dictionnaire ExtendedProperties permet d’ajouter des attributs personnalisés spécifiques à certains ERP ou besoins d’affaires particuliers sans modifier le modèle de données principal.