SenBaoBat
Mes clés API

API SenBaoBat

API REST en JSON pour lire et alimenter vos données de chantier depuis votre comptabilité, un tableur, Power BI ou une application partenaire. Version 1.

Authentification

Créez une clé dans Réglages → API et intégrations. Une clé sc_read_… lit les données ; une clé sc_write_… peut aussi en créer. Envoyez-la dans l'en-tête Authorization. Gardez-la secrète : ne la placez jamais dans une page web publique.

curl https://www.senbaobat.com/api/v1/projects \
  -H "Authorization: Bearer sc_read_VOTRE_CLE"

Lire une liste

GET /api/v1/{ressource} renvoie les éléments les plus récents d'abord.

  • project_id : uniquement ce chantier (ressources rattachées à un chantier)
  • since : créés depuis cette date ISO 8601, ex. 2026-10-01 (synchronisation incrémentale)
  • limit : 1 à 200 (50 par défaut) · offset : pagination
GET https://www.senbaobat.com/api/v1/journal?project_id=…&limit=20

{
  "data": [
    { "id": "…", "project_id": "…", "day": "2026-10-24",
      "staff": [{ "code": "macon", "label": "Maçon", "count": 2 }],
      "work_done": "Coffrage et ferraillage de la dalle du RDC",
      "materials": [{ "label": "Ciment 42.5", "quantity": 40, "unit": "sacs" }],
      "incidents": null, "weather": "soleil", "created_at": "…" }
  ],
  "has_more": false, "limit": 20, "offset": 0
}

Lire un élément

GET /api/v1/{ressource}/{id}. Un devis renvoie ses lots et lignes (sections[].lines[]), une facture ses lignes et paiements.

Ressources

RessourceContenuproject_id
projectsChantiers : statut, région, type, surface, dates, budget—
clientsCarnet de clients—
quotesDevis (le détail inclut lots et lignes)oui
invoicesFactures (le détail inclut lignes et paiements)oui
paymentsEncaissements (Wave, Orange Money, espèces…)—
levelsNiveaux du chantier (RDC, R+1…)oui
workersEmployés et taux journaliers—
teamÉquipe prévue par posteoui
attendancePointages journaliersoui
worker_paymentsPaies et avancesoui
journalJournal de chantieroui
lot_progressAvancement par lot du devisoui
tasksPlanning (tâches, enchaînements, dates réelles)oui
suppliersFournisseurs—
purchase_ordersBons de commandeoui
stock_movesMouvements de stock (réceptions, sorties)oui
site_updatesActualités publiées pour le clientoui

Créer (clé en écriture)

POST sur clients, projects, journal et attendance, avec un corps JSON. Réponse 201 avec l'identifiant créé.

curl -X POST https://www.senbaobat.com/api/v1/journal \
  -H "Authorization: Bearer sc_write_VOTRE_CLE" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "…",
    "day": "2026-10-26",
    "staff": [{ "label": "Maçon", "count": 3 }],
    "work_done": "Élévation des murs R+1, façade nord",
    "materials": [{ "label": "Ciment 42.5", "quantity": 25, "unit": "sacs" }]
  }'

→ 201 { "data": { "id": "…" } }
  • clients : name*, phone, email, address
  • projects : name*, client_id, address, status (etude, en_cours, termine), region, building_type, surface_m2, start_date, duration_days, budget, description
  • journal : project_id*, work_done*, day, staff[], materials[], deliveries, incidents, weather (soleil, chaleur, nuageux, vent, pluie)
  • attendance : project_id*, worker_id*, status* (present, demi, absent), day — remplace le pointage existant du jour

Erreurs et limites

{ "error": { "code": "unauthorized", "message": "Clé API absente, invalide ou révoquée." } }
  • 401 unauthorized clé absente ou révoquée · 403 forbidden clé en lecture seule
  • 404 not_found ressource inconnue · 422 invalid données refusées (le message précise)
  • 429 rate_limited plus de 120 requêtes par minute et par clé
  • Montants en francs CFA (entiers), dates au format AAAA-MM-JJ, horodatages en UTC.
Documentation de l'API · SenBaoBat