Développeurs

Documentation API

Intégrez Axios à vos outils : créez et consultez clients, fournisseurs, produits, commandes et factures via une API REST JSON.

Introduction

L'API Axios est une API REST qui échange des données au format JSON. Toutes les requêtes se font sur l'URL de base suivante :

https://www.axios.ma/api/v1

Les données sont isolées par entreprise : chaque clé API ne donne accès qu'aux données de l'entreprise à laquelle elle appartient. Les corps de requête (POST) doivent être envoyés avec l'en-tête Content-Type: application/json.

Authentification

Chaque requête doit inclure votre clé API. Générez-la depuis Paramètres → Clé API dans votre espace Axios. Transmettez-la via l'en-tête Authorization :

Authorization: Bearer axk_votre_cle_api

L'en-tête alternatif X-API-Key: axk_votre_cle_api est également accepté.

Gardez votre clé secrète. Elle donne un accès complet aux données de votre entreprise. En cas de fuite, régénérez-la depuis les paramètres — l'ancienne clé sera immédiatement invalidée.

Gestion des erreurs

L'API utilise les codes de statut HTTP standard. Les erreurs renvoient un objet JSON avec un champ error.

CodeSignification
200Requête réussie
201Ressource créée
400Requête invalide (champ requis manquant, référence invalide)
401Clé API manquante ou invalide
404Ressource introuvable
500Erreur serveur
{ "error": "Clé API invalide." }

Clients

GET /clients

Liste tous les clients actifs de l'entreprise.

GET /clients/:id

Récupère un client par son identifiant.

POST /clients

Crée un client. Le code est généré automatiquement s'il est omis.

ChampTypeRequis
nomstringOui
codestringNon
emailstringNon
telephonestringNon
adressestringNon
villestringNon
icestringNon
plafond_creditnumberNon
curl -X POST https://www.axios.ma/api/v1/clients \
  -H "Authorization: Bearer axk_votre_cle_api" \
  -H "Content-Type: application/json" \
  -d '{"nom":"Société ABC","telephone":"0600000000","ice":"001234567000089"}'

Fournisseurs

GET /fournisseurs

Liste tous les fournisseurs actifs.

GET /fournisseurs/:id

Récupère un fournisseur par son identifiant.

POST /fournisseurs

Crée un fournisseur. Le code est généré automatiquement s'il est omis.

ChampTypeRequis
nomstringOui
codestringNon
emailstringNon
telephonestringNon
adressestringNon
villestringNon
icestringNon
curl -X POST https://www.axios.ma/api/v1/fournisseurs \
  -H "Authorization: Bearer axk_votre_cle_api" \
  -H "Content-Type: application/json" \
  -d '{"nom":"Grossiste XYZ","ville":"Casablanca"}'

Catégories

GET /categories

Liste toutes les catégories de produits.

GET /categories/:id

Récupère une catégorie par son identifiant.

POST /categories

Crée une catégorie. Son id peut ensuite être utilisé comme categorie_id lors de la création d'un produit.

ChampTypeRequisDéfaut
nomstringOui—
descriptionstringNonnull
curl -X POST https://www.axios.ma/api/v1/categories \
  -H "Authorization: Bearer axk_votre_cle_api" \
  -H "Content-Type: application/json" \
  -d '{"nom":"Mobilier","description":"Chaises, bureaux, rangements"}'

Produits

GET /produits

Liste tous les produits actifs.

GET /produits/:id

Récupère un produit par son identifiant.

POST /produits

Crée un produit. Le code est généré automatiquement s'il est omis.

ChampTypeRequisDéfaut
nomstringOui—
codestringNonauto
code_barrestringNonnull
referencestringNon—
descriptionstringNon—
categorie_idnumberNonnull
prix_achatnumberNon0
prix_ventenumberNon0
tvanumberNon20
stock_actuelnumberNon0
stock_minnumberNon5
stock_maxnumberNon1000
unitestringNonPCS
curl -X POST https://www.axios.ma/api/v1/produits \
  -H "Authorization: Bearer axk_votre_cle_api" \
  -H "Content-Type: application/json" \
  -d '{"nom":"Chaise de bureau","prix_vente":450,"tva":20,"stock_actuel":30}'

Commandes

Une commande contient un tableau lignes. Les totaux (HT, TVA, TTC) sont calculés automatiquement par le serveur à partir des lignes et de la remise globale.

GET /commandes

Liste toutes les commandes clients.

GET /commandes/:id

Récupère une commande avec ses lignes.

POST /commandes

ChampTypeRequis
client_idnumberOui
lignesarrayOui (non vide)
datestring (YYYY-MM-DD)Non (aujourd'hui)
livraison_prevuestring (YYYY-MM-DD)Non
remise_globalenumber (%)Non
statutstringNon (brouillon)
notesstringNon

Chaque objet de lignes accepte : designation (requis), quantite, prix_unitaire, remise (%), tva (%), produit_id (optionnel).

curl -X POST https://www.axios.ma/api/v1/commandes \
  -H "Authorization: Bearer axk_votre_cle_api" \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 1,
    "remise_globale": 5,
    "lignes": [
      {"designation": "Chaise de bureau", "quantite": 4, "prix_unitaire": 450, "tva": 20},
      {"designation": "Bureau", "quantite": 1, "prix_unitaire": 1200, "remise": 10}
    ]
  }'

Factures

Comme les commandes, une facture contient un tableau lignes et ses totaux sont calculés côté serveur.

GET /factures

Liste toutes les factures.

GET /factures/:id

Récupère une facture avec ses lignes.

POST /factures

ChampTypeRequis
client_idnumberOui
lignesarrayOui (non vide)
datestring (YYYY-MM-DD)Non (aujourd'hui)
echeancestring (YYYY-MM-DD)Non
remise_globalenumber (%)Non
statutstringNon (brouillon)
notesstringNon
curl -X POST https://www.axios.ma/api/v1/factures \
  -H "Authorization: Bearer axk_votre_cle_api" \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 1,
    "echeance": "2026-09-30",
    "lignes": [
      {"designation": "Prestation de conseil", "quantite": 2, "prix_unitaire": 1500, "tva": 20}
    ]
  }'

Réponse (201 Created) : l'objet facture créé, incluant total_ht, total_tva, total_ttc et le tableau lignes.