Documentation API Board+

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)

Authentification

Obtenir un token d'accès

POST /api/v1/auth/login
Content-Type: application/json

{
  "email": "admin@example.com",
  "password": "motdepasse"
}

Réponse réussie :

{
  "success": true,
  "data": {
    "user": {
      "id": 1,
      "name": "Admin",
      "email": "admin@example.com"
    },
    "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
    "token_type": "Bearer",
    "expires_in": 3600
  }
}

Utiliser le token

GET /api/v1/products
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...

Gestion des Produits

Lister les produits

GET /api/v1/products?page=1&per_page=20&search=ordinateur

Paramètres :

  • 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érence
  • category_id : Filtrer par catégorie
  • stock_status : low, out, available

Créer un produit

POST /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"
}

Mettre à jour un produit

PUT /api/v1/products/1
Content-Type: application/json

{
  "selling_price": 800.00,
  "stock_quantity": 15
}

Ajuster le stock

POST /api/v1/products/1/adjust-stock
Content-Type: application/json

{
  "quantity": 5,
  "type": "addition",
  "reason": "Réception fournisseur",
  "notes": "Commande #123"
}

Gestion des Clients

Lister les clients

GET /api/v1/clients?search=dupont

Créer un client

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"
}

Gestion des Commandes

Créer une commande

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"
}

Mettre à jour le statut

PATCH /api/v1/orders/1/status
Content-Type: application/json

{
  "status": "confirmed",
  "notes": "Commande confirmée et préparée"
}

Point de Vente (POS)

Créer une vente POS

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"
}

Obtenir le reçu

GET /api/v1/pos/receipt/123
Accept: application/pdf

Facturation

Créer une facture depuis une commande

POST /api/v1/invoices/from-order/1
Content-Type: application/json

{
  "due_date": "2024-02-15",
  "notes": "Facture générée automatiquement"
}

Marquer comme payée

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"
}

Rapports

Rapport de ventes

GET /api/v1/reports/sales?start_date=2024-01-01&end_date=2024-01-31&format=json

État des stocks

GET /api/v1/reports/stock?alerts_only=true

Webhooks

Configurez des webhooks pour recevoir des notifications en temps réel sur les événements importants.

Événements disponibles

Ventes & Commandes

  • order.created - Nouvelle commande
  • order.updated - Commande modifiée
  • pos.sale.completed - Vente POS terminée
  • invoice.paid - Facture payée

Stocks & Produits

  • product.stock.low - Stock faible
  • product.stock.out - Rupture de stock
  • product.created - Nouveau produit
  • product.updated - Produit modifié

Configuration d'un webhook

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
}

Format des notifications

{
  "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..."
}

Codes d'erreur

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