Conexio vitrine du développeur

API Acomba — factures clients

Lire, créer et modifier les factures clients de Acomba depuis votre application, par une simple requête HTTP : pas de SDK, pas d’ODBC. Conexio relaie l’appel vers Acomba et vous répond en JSON — entité CustomerInvoice.

✓ Lire (GET)✓ Créer (POST)✓ Modifier (PUT)

Lire les factures clients

Une requête GET sur /api/Entity/CustomerInvoice, avec les modificateurs $select, $filter et $top. L’en-tête ALLOW_PAGINATION renvoie { Data, ResultsCount, TotalCount }.

HTTP
GET https://gateway.conexio.dev/api/Entity/CustomerInvoice?$select=NoFacture,DateFacture,EstActif,Description,DateExpirationDocument&$filter=DateFacture ge '2026-01-01'&$top=10
Authorization: Basic base64(CODE_LICENCE:CLE_API)
COMPANY_CODE: VOTRE_COMPAGNIE
ALLOW_PAGINATION: true
curl
curl 'https://gateway.conexio.dev/api/Entity/CustomerInvoice?$select=NoFacture,DateFacture,EstActif,Description,DateExpirationDocument&$filter=DateFacture%20ge%20'2026-01-01'&$top=10' \
  -u "$CONEXIO_LICENCE:$CONEXIO_API_KEY" \
  -H 'COMPANY_CODE: VOTRE_COMPAGNIE' \
  -H 'ALLOW_PAGINATION: true'
JavaScript (fetch)
const response = await fetch("https://gateway.conexio.dev/api/Entity/CustomerInvoice?$select=NoFacture,DateFacture,EstActif,Description,DateExpirationDocument&$filter=DateFacture%20ge%20'2026-01-01'&$top=10", {
  headers: {
    Authorization: "Basic " + btoa(`${CODE_LICENCE}:${CLE_API}`),
    COMPANY_CODE: "VOTRE_COMPAGNIE",
    ALLOW_PAGINATION: "true",
  },
})
const { Data, TotalCount } = await response.json()
C# et Python
C# (HttpClient)
var http = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://gateway.conexio.dev/api/Entity/CustomerInvoice?$select=NoFacture,DateFacture,EstActif,Description,DateExpirationDocument&$filter=DateFacture%20ge%20'2026-01-01'&$top=10");
request.Headers.Authorization = new AuthenticationHeaderValue("Basic",
    Convert.ToBase64String(Encoding.UTF8.GetBytes($"{codeLicence}:{cleApi}")));
request.Headers.Add("COMPANY_CODE", "VOTRE_COMPAGNIE");
request.Headers.Add("ALLOW_PAGINATION", "true");
var json = await (await http.SendAsync(request)).Content.ReadAsStringAsync();
Python (requests)
import requests

response = requests.get(
    "https://gateway.conexio.dev/api/Entity/CustomerInvoice?$select=NoFacture,DateFacture,EstActif,Description,DateExpirationDocument&$filter=DateFacture%20ge%20'2026-01-01'&$top=10",
    auth=(CODE_LICENCE, CLE_API),
    headers={"COMPANY_CODE": "VOTRE_COMPAGNIE", "ALLOW_PAGINATION": "true"},
)
data = response.json()["Data"]

Filtrer

Les champs filtrables de CustomerInvoice sur Acomba, et leurs opérateurs $filter :

ChampOpérateurs
NoFactureeq in
NoUniqueSystemeSourceeq in
DateFacturege gt le lt
Fiche_DerniereModificationge gt le lt
CompteRecevable_Noeq
Référenceeq ne
Descriptioneq ne
MontantNonPayeeq ne gt ge lt le
NoVendeureq ne
NoTerritoireeq ne

Créer des factures clients

Un POST sur la même adresse, avec l’élément en JSON (les champs obligatoires sur Acomba) :

HTTP
POST https://gateway.conexio.dev/api/Entity/CustomerInvoice
Authorization: Basic base64(CODE_LICENCE:CLE_API)
COMPANY_CODE: VOTRE_COMPAGNIE
Content-Type: application/json

{
  "DateFacture": "2026-01-01",
  "TypeDoc": "VALEUR",
  "InfoClientFacturerA": {
    "NoClient": "VALEUR"
  },
  "LigneFacture": "VALEUR"
}

Les champs

ChampLireCréerModifier
NoFacture✓✓✓
NoUniqueSystemeSource✓—✓
DateFacture requis✓✓✓
Fiche_DerniereModification✓——
CompteRecevable_No✓✓✓
TypeDoc requis✓✓✓
SousTypeTransaction✓——
EstActif✓——
Référence✓✓✓
Description✓✓✓
DateExpirationDocument✓✓✓
NoSoumissionRéférence✓✓✓
NoCommandeRéférence✓✓✓
NoCommandeRéférence_NoUniqueSystemeSource—✓✓
TotalFacture✓——
SousTotalFacture✓——
MontantNonPaye✓——
FraisDeTransport✓✓—
Montant_MonnaieRecu✓✓—
boolUtiliserMontantMonnaieRecu✓✓—
Montant_Retrait—✓—
Montant_ChangeRemit—✓—
Montant_Depot—✓—
NoVendeur✓✓✓
NoVendeur_NoUniqueSystemeSource✓✓✓
Vendeur_NomComplet✓——
NoTerritoire✓✓✓
NoTerritoire_NoUniqueSystemeSource✓✓✓
NoProjet✓✓✓
NoProjet_NoUniqueSystemeSource✓✓✓
NoModeExpedition✓✓✓
NoModeExpedition_NoUniqueSystemeSource✓✓✓
NomModeExpedition✓——
CodeUsagerCreation✓——
TermeDePaiement.NoTermeDePaiement✓✓✓
TermeDePaiement.NomTermeDePaiement✓——
TermeDePaiement.TypeTerme✓——
TermeDePaiement.EscompteJour_Escompte✓——
TermeDePaiement.EscompteJour_NbJour✓——
TermeDePaiement.EscompteJour_NbJourMax✓——
InfoClientFacturerA requis✓✓✓
InfoClientFacturerA.NoClient requis✓✓✓
InfoClientFacturerA.NoUniqueSystemeSource✓✓✓
InfoClientFacturerA.NomClient✓✓✓
InfoClientFacturerA.Adresse✓✓✓
InfoClientFacturerA.Ville✓✓✓
InfoClientFacturerA.CodePostal✓✓✓
InfoClientFacturerA.Pays✓✓✓
InfoClientFacturerA.NomPersonneContact✓✓✓
InfoClientFacturerA.ListeTelephonique[].Numero✓✓✓
InfoClientLivrerA.NoClient✓✓✓
InfoClientLivrerA.NomClient✓✓✓
InfoClientLivrerA.Adresse✓✓✓
InfoClientLivrerA.Ville✓✓✓
InfoClientLivrerA.CodePostal✓✓✓
InfoClientLivrerA.Pays✓✓✓
InfoClientLivrerA.NomPersonneContact✓✓✓
InfoClientLivrerA.ListeTelephonique[].Numero✓✓✓
LigneFacture requis✓✓✓
LigneFacture[].strNoProduit✓✓✓
LigneFacture[].strNoProduit_NoUniqueSystemeSource✓✓✓
LigneFacture[].strNoGroupeProduit✓✓✓
LigneFacture[].strNoGroupeProduit_NoUniqueSystemeSource✓✓✓
LigneFacture[].DescriptionLigne✓✓✓
LigneFacture[].QteFacture✓✓✓
LigneFacture[].QteCommande✓✓✓
LigneFacture[].PrixOrig✓✓✓
LigneFacture[].PrixFinal✓✓✓
LigneFacture[].PrixCoutant✓✓✓
LigneFacture[].MontantRabais_pct✓✓✓
LigneFacture[].NoLigneFacture✓✓✓
LigneFacture[].TypeLigne✓✓✓
LigneFacture[].NoUniqueSystemeSource✓——
LigneFacture[].NoCompteGL✓——
LigneFacture[].NoCompteGL_NoUniqueSystemeSource✓✓—
LigneFacture[].NoProjet✓✓✓
LigneFacture[].NoProjet_NoUniqueSystemeSource✓✓✓
LigneFacture[].NoProduitFournisseur_NoUniqueSystemeSource—✓✓
LigneFacture[].MustHideInvoicingLineToFinalPrinting—✓✓
LigneFacture[].BackOrderPermit—✓✓
LigneFacture[].NoSerieProduit_NoUniqueSystemSource—✓✓
LigneFacture[].ItemProduit_NoUniqueSystemeSource—✓✓
LigneFacture[].Caracteristique01_No—✓✓
LigneFacture[].Montant_SousTotalLigne✓——
ExtendedProperties✓——

Les mêmes factures clients, dans les autres logiciels

Même requête, même JSON : seule la compagnie change.

Pour aller plus loin