Ressources

Une lecture guidée des routes les plus utilisées. Chaque champ, chaque paramètre et chaque code de réponse sont dans le schéma OpenAPI (GET /openapi.json) ; cette page dit à quoi sert chaque famille et montre un exemple.

Toutes les routes sont préfixées par /companies/{companyId}.

Ventes et factures

Méthode et chemin Rôle
GET /sales Liste des ventes. Filtres : from, to, partnerId, paymentStatus, channel, businessUnitId, q ; limit ou page+size.
GET /sales/{saleId} Une vente avec ses lignes, paiements et livraisons.
GET /sales/{saleId}/invoice.pdf Le PDF tel que l'application l'imprime.
GET /sales/{saleId}/invoice.xml La facture en UBL 2.1 (EN 16931 / Peppol BIS 3.0).
GET /sales/{saleId}/invoice.cii.xml La même en CII (Factur-X, XRechnung).
POST /sales Crée une vente. Lignes, client, établissement, portefeuille si payée.
POST /sales/{saleId}/payments Enregistre un paiement.
POST /sales/{saleId}/deliveries Enregistre une livraison, totale ou partielle.
POST /sales/{saleId}/reminder Envoie un rappel au client (e-mail).
POST /sales/{saleId}/refund Rembourse, en tout ou partie.
POST /sales/{saleId}/cancel Annule une vente non payée.

Créer une vente :

POST /companies/{companyId}/sales
{
  "businessUnitId": "…",
  "partnerId": "…",
  "lines": [
    { "itemId": "…", "quantity": 2, "unitPrice": 12.5 },
    { "label": "Livraison", "quantity": 1, "unitPrice": 5, "service": true }
  ],
  "paidInFull": false,
  "note": "Commande web #1042"
}

Les prix sont donnés en unité majeure dans les corps de requête ; la réponse les rend en unité mineure. Une vente sans paidInFull ni paiement devient une créance et émet invoice.issued.

Devis

GET /quotes, GET /quotes/{quoteId} Liste et détail.
POST /quotes Crée un devis — même forme qu'une vente, plus validUntil.
POST /quotes/{quoteId}/convert Transforme le devis accepté en vente.

Achats

GET /purchases, GET /purchases/{purchaseId} Commandes et factures fournisseurs.
POST /purchases Crée une commande ; receiveNow met le stock à jour tout de suite.
POST /purchases/{purchaseId}/receipts Réceptionne, en tout ou partie.
POST /purchases/{purchaseId}/payments Règle le fournisseur.
POST /purchases/{purchaseId}/cancel Annule.

Catalogue et stock

GET /items, POST /items, PATCH /items/{itemId} Articles et services, prix, coûts, seuils d'alerte.
GET /stock Les quantités par article et par établissement.
GET /stock/movements L'historique des entrées et sorties.
GET /stock/transfers, POST /stock/transfers Transferts entre établissements.
GET /stock/counts, POST /stock/counts Inventaires physiques.

Partenaires

GET /partners, POST /partners, PATCH /partners/{partnerId} Clients et fournisseurs. kind vaut customer, supplier ou both.
GET /reports/reconciliation/partner/{partnerId} Le relevé d'un partenaire : ce qu'il doit, ce qu'il a payé.

Pour la facturation électronique, renseignez country (code à deux lettres), vatNumber et, en Europe, peppolId (0208:0123456789).

Trésorerie

GET /wallets Caisses, comptes bancaires, comptes mobile money, avec leurs soldes.
GET /transactions, POST /transactions Les mouvements. Une entrée ou une sortie libre, hors vente.
POST /wallets/transfer Un virement entre deux portefeuilles.
GET /budgets, PUT /budgets Les budgets de dépenses par catégorie.
GET /cash-sessions Les sessions de caisse ouvertes et clôturées.
POST /wallets/{walletId}/statements Importe un relevé (CAMT.053, MT940, CSV) dans un compte.
GET /bank-transactions?walletId&status Les lignes bancaires et leur état de rapprochement.
GET /bank-transactions/{id}/suggestions, POST …/match, POST …/transaction, POST …/ignore, POST …/reopen Le rapprochement d'une ligne.

Heures

GET /time-entries Les entrées, filtrées par from, to, partnerId, billed.
GET /time-entries/summary Les heures et le non-facturé par client.
PUT /time-entries Crée ou met à jour une entrée (externalId pour celles qui viennent de Clockify ou Toggl).
DELETE /time-entries/{id} Supprime une entrée non facturée.
POST /time-entries/bill Crée une facture à partir d'entrées.

Rapports et exports

GET /reports/summary?period=… Le tableau de bord : ventes, marge, créances, stock.
GET /reports/exports/charts Les plans comptables disponibles (SYSCOHADA, PCMN, PCG).
GET /reports/exports/ledger?from&to&chart= Le grand livre, en CSV.
GET /reports/exports/ledger.fec Le Fichier des écritures comptables (France).
GET /reports/exports/ledger.datev.csv Le format DATEV (Allemagne).
GET /reports/ohada/ledger.csv, GET /reports/ohada/balance.csv?period&chart= Le grand livre et la balance OHADA.
GET /reports/receivables Les créances, par client.

Détails : Exports comptables.

Conformité

GET /fiscal Les régimes applicables au pays de l'entreprise et leur état.
PUT /fiscal/{regime} Active ou modifie un régime.
POST /fiscal/submit/sale/{saleId} Transmet une facture maintenant.
GET /fiscal/submissions/{kind}/{id} Les transmissions d'un document.
GET /fiscal/journal, GET /fiscal/journal/verify Le journal scellé et la vérification de sa chaîne.

Détails : Comment Hela traite les régimes.

Intégrations

GET /integrations Les connecteurs disponibles et leur état pour cette entreprise.
POST /integrations/{provider}/connect Connecte un partenaire à clé d'API.
GET /integrations/{provider}/authorize Démarre une connexion OAuth ; renvoie l'adresse où envoyer l'utilisateur.
PATCH /integrations/{provider}/settings Modifie les réglages.
POST /integrations/{provider}/test, /sync Teste, synchronise.
DELETE /integrations/{provider} Déconnecte.
POST /integrations/documents/{kind}/{id}/payment-link Crée un lien de paiement pour une vente ou un devis.
POST /integrations/documents/sale/{id}/push-to-phone Demande un paiement mobile money.
POST /integrations/documents/{kind}/{id}/signature Envoie en signature.
POST /integrations/documents/{kind}/{id}/archive Archive le PDF.

Développeurs

GET /api-keys, POST /api-keys, DELETE /api-keys/{keyId} Les clés. Nécessite une session humaine, jamais une clé.
GET /webhooks, POST /webhooks, PATCH /webhooks/{id}, DELETE /webhooks/{id} Les points de terminaison.
POST /webhooks/{id}/test, /rotate Ping, rotation du secret.
GET /webhooks/{id}/deliveries, POST …/deliveries/{deliveryId}/replay Les envois et leur rejeu.
DELETE /webhooks?url= Supprime par adresse — ce qu'utilisent les REST hooks de Zapier.
GET /events?cursor&limit&type Le journal des événements.
GET /events/catalogue Le catalogue, avec les descriptions.

Un passage est faux ou manquant ? Écrivez-nous.