L'API REST de Board+ vous permet d'intégrer vos applications externes avec le système de gestion. Tous les endpoints sont sécurisés et utilisent l'authentification par token.
Base URL : https://votre-domaine.com/api/v1
Authentification : Bearer Token (dans l'en-tête Authorization)
POST /api/v1/auth/login
Content-Type: application/json
{
"email": "admin@example.com",
"password": "motdepasse"
}
{
"success": true,
"data": {
"user": {
"id": 1,
"name": "Admin",
"email": "admin@example.com"
},
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
"token_type": "Bearer",
"expires_in": 3600
}
}
GET /api/v1/products
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...
GET /api/v1/products?page=1&per_page=20&search=ordinateur
page : Numéro de page (défaut: 1)per_page : Nombre d'éléments par page (défaut: 15)search : Recherche par nom ou référencecategory_id : Filtrer par catégoriestock_status : low, out, availablePOST /api/v1/products
Content-Type: application/json
{
"name": "Ordinateur Portable",
"reference": "PC-001",
"description": "Ordinateur portable professionnel",
"category_id": 1,
"purchase_price": 500.00,
"selling_price": 750.00,
"stock_quantity": 10,
"min_stock_level": 2,
"tax_rate": 20.0,
"unit": "pièce"
}
PUT /api/v1/products/1
Content-Type: application/json
{
"selling_price": 800.00,
"stock_quantity": 15
}
POST /api/v1/products/1/adjust-stock
Content-Type: application/json
{
"quantity": 5,
"type": "addition",
"reason": "Réception fournisseur",
"notes": "Commande #123"
}
GET /api/v1/clients?search=dupont
POST /api/v1/clients
Content-Type: application/json
{
"name": "Dupont SARL",
"email": "contact@dupont.com",
"phone": "+33123456789",
"address": "123 Rue de la Paix",
"city": "Paris",
"postal_code": "75001",
"country": "France",
"tax_number": "FR123456789",
"payment_terms": "30 jours"
}
POST /api/v1/orders
Content-Type: application/json
{
"client_id": 1,
"items": [
{
"product_id": 1,
"quantity": 2,
"unit_price": 750.00,
"discount": 0
},
{
"product_id": 2,
"quantity": 1,
"unit_price": 50.00,
"discount": 5.00
}
],
"notes": "Commande urgente",
"delivery_date": "2024-12-25"
}
PATCH /api/v1/orders/1/status
Content-Type: application/json
{
"status": "confirmed",
"notes": "Commande confirmée et préparée"
}
POST /api/v1/pos/sale
Content-Type: application/json
{
"items": [
{
"product_id": 1,
"quantity": 1,
"price": 750.00
}
],
"payment_method": "cash",
"payment_amount": 750.00,
"customer_name": "Client au comptoir",
"notes": "Vente en espèces"
}
GET /api/v1/pos/receipt/123
Accept: application/pdf
POST /api/v1/invoices/from-order/1
Content-Type: application/json
{
"due_date": "2024-02-15",
"notes": "Facture générée automatiquement"
}
POST /api/v1/invoices/1/mark-paid
Content-Type: application/json
{
"payment_date": "2024-01-15",
"payment_method": "bank_transfer",
"payment_reference": "TRF-001",
"notes": "Paiement reçu"
}
GET /api/v1/reports/sales?start_date=2024-01-01&end_date=2024-01-31&format=json
GET /api/v1/reports/stock?alerts_only=true
Configurez des webhooks pour recevoir des notifications en temps réel sur les événements importants.
order.created - Nouvelle commandeorder.updated - Commande modifiéepos.sale.completed - Vente POS terminéeinvoice.paid - Facture payéeproduct.stock.low - Stock faibleproduct.stock.out - Rupture de stockproduct.created - Nouveau produitproduct.updated - Produit modifiéPOST /api/v1/webhooks
Content-Type: application/json
{
"url": "https://mon-app.com/webhook",
"events": ["order.created", "invoice.paid"],
"secret": "mon-secret-webhook",
"active": true
}
{
"event": "order.created",
"timestamp": "2024-01-15T10:30:00Z",
"data": {
"order_id": 123,
"client_id": 456,
"total_amount": 1500.00,
"status": "pending"
},
"signature": "sha256=abc123..."
}
| Code | Signification | Description |
|---|---|---|
| 200 | Succès | Requête traitée avec succès |
| 201 | Créé | Ressource créée avec succès |
| 400 | Mauvaise requête | Données invalides ou manquantes |
| 401 | Non autorisé | Token manquant ou invalide |
| 403 | Interdit | Permissions insuffisantes |
| 404 | Non trouvé | Ressource inexistante |
| 422 | Entité non traitable | Erreur de validation des données |
| 429 | Trop de requêtes | Limite de taux dépassée |
| 500 | Erreur serveur | Erreur interne du serveur |
Limites de l'API : 1000 requêtes par heure pour les comptes gratuits, contactez-nous pour augmenter cette limite.
Besoin d'aide pour intégrer l'API ? Notre équipe technique est à votre disposition.
Support développeur