Référence API
Inventoria expose une API REST complète, protégée par tokens Sanctum. Elle permet d'intégrer Inventoria à des outils tiers ou d'automatiser des opérations.
Base URL : https://<votre-instance>/api/v1
Authentification
Toutes les routes (sauf /login) requièrent un header Authorization :
Authorization: Bearer <votre_token>
Voir Tokens API pour générer un token.
Se connecter
POST /login
{ "login": "utilisateur", "password": "motdepasse" }
Retourne un token Bearer à utiliser dans les requêtes suivantes.
Profil utilisateur
GET /me
Retourne l'id, le nom, l'email, les rôles et les permissions de l'utilisateur connecté.
Se déconnecter
POST /logout
Révoque le token courant.
Articles
Liste
GET /articles
Paramètres optionnels : ?search=, ?category_id=, ?brand_id=, ?is_active=
Créer
POST /articles
{
"name": "MacBook Pro 14\"",
"reference": "MBP14-M3",
"brand_id": 1,
"category_id": 3,
"amortization_category_id": 2
}
Détail
GET /articles/{id}
Modifier
PATCH /articles/{id}
Supprimer
DELETE /articles/{id}
Achats
Liste
GET /purchases
Paramètres optionnels : ?article_id=, ?code=
Créer
POST /purchases
{
"article_id": 5,
"purchase_date": "2024-03-15",
"purchase_price": 1299.00,
"supplier_id": 2,
"warranty_end_date": "2027-03-15"
}
Détail
GET /purchases/{id}
Modifier
PATCH /purchases/{id}
Supprimer
DELETE /purchases/{id}
Lookup QR
Retourne l'achat correspondant à un code — point d'entrée principal de l'application mobile.
GET /scan/{code}
Inventaires
Liste des sessions
GET /inventories
Créer une session
POST /inventories
{ "year": 2025, "inventory_date": "2025-01-15" }
Détail d'une session
GET /inventories/{id}
Retourne les statistiques de progression (scannés / total / pourcentage).
Enregistrer un scan
POST /inventories/{id}/scan
{ "code": "ABC12345" }
Réponses possibles (toujours HTTP 200) :
status | message | Signification |
|---|---|---|
success | Article ajouté | Scan enregistré |
warning | Déjà scanné | Code déjà enregistré dans cette session |
error | Code inconnu | Aucun achat ne correspond à ce code |
Achats non scannés
GET /inventories/{id}/unscanned
Données de référence
Ces routes sont en lecture seule.
| Ressource | Route |
|---|---|
| Marques | GET /brands, GET /brands/{id} |
| Catégories | GET /categories, GET /categories/{id} |
| Catégories d'amortissement | GET /amortization-categories, GET /amortization-categories/{id} |
Fournisseurs
GET /suppliers
POST /suppliers
GET /suppliers/{id}
PATCH /suppliers/{id}
DELETE /suppliers/{id}
Paramètre optionnel sur la liste : ?is_active=true
Codes de réponse
| Code | Signification |
|---|---|
200 | Succès |
201 | Ressource créée |
401 | Non authentifié — token manquant ou invalide |
403 | Accès refusé — droits insuffisants |
404 | Ressource introuvable |
422 | Erreur de validation — vérifiez les champs envoyés |
500 | Erreur serveur |