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
| Ressource | Contenu | project_id |
|---|---|---|
| projects | Chantiers : statut, région, type, surface, dates, budget | — |
| clients | Carnet de clients | — |
| quotes | Devis (le détail inclut lots et lignes) | oui |
| invoices | Factures (le détail inclut lignes et paiements) | oui |
| payments | Encaissements (Wave, Orange Money, espèces…) | — |
| levels | Niveaux du chantier (RDC, R+1…) | oui |
| workers | Employés et taux journaliers | — |
| team | Équipe prévue par poste | oui |
| attendance | Pointages journaliers | oui |
| worker_payments | Paies et avances | oui |
| journal | Journal de chantier | oui |
| lot_progress | Avancement par lot du devis | oui |
| tasks | Planning (tâches, enchaînements, dates réelles) | oui |
| suppliers | Fournisseurs | — |
| purchase_orders | Bons de commande | oui |
| stock_moves | Mouvements de stock (réceptions, sorties) | oui |
| site_updates | Actualités publiées pour le client | oui |
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, addressprojects: name*, client_id, address, status (etude, en_cours, termine), region, building_type, surface_m2, start_date, duration_days, budget, descriptionjournal: 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 unauthorizedclé absente ou révoquée ·403 forbiddenclé en lecture seule404 not_foundressource inconnue ·422 invaliddonnées refusées (le message précise)429 rate_limitedplus de 120 requêtes par minute et par clé- Montants en francs CFA (entiers), dates au format AAAA-MM-JJ, horodatages en UTC.