Aller au contenu principal

Paramètres d'organisation

Base URL : /api/v1/admin/org/settings

Configuration de l'organisation : devise, fuseaux horaires, règles métier, notifications et fonctionnalités.


GET /admin/org/settings​

Récupère la configuration de l'organisation.

Permissions : settings.read ou organization.manage

Réponse (200)​

{
"notification_config": {
"channels": {
"email": { "enabled": true },
"sms": { "enabled": false },
"whatsapp": { "enabled": false }
},
"event_routing": {
"anomaly_detected": ["email"],
"recharge_completed": ["email"]
},
"email_default_from": "noreply@caffette.app"
},
"settings": {
"default_locale": "fr",
"currency": "XOF",
"default_low_stock_threshold": 10,
"max_reservation_days_ahead": 30,
"max_daily_spend_cents": 5000,
"self_service_enabled": true,
"parent_features_enabled": true,
"default_payment_provider": "fedapay",
"utc_offset_minutes": 0,
"business_hours": {
"timezone": "Africa/Lome",
"days": {
"monday": { "open": "07:00", "close": "18:00", "closed": false }
}
},
"reservation_cutoff_time": "18:00",
"reservation_cancellation_cutoff_days": 1,
"reservation_cancellation_cutoff_time": "09:00",
"reservation_service_hour": "12:00",
"reservation_min_advance_days": 1,
"reservation_creation_deadline_time": "09:00",
"reservation_allow_product_deadlines": true,
"auto_close_register_time": "18:00",
"auto_close_register_enabled": true,
"daily_report_enabled": true,
"daily_report_time": "20:00",
"daily_report_email": "admin@courslumiere.com",
"daily_report_recharges": true,
"daily_report_ventes": true,
"daily_report_soldes": true
}
}

Champs de settings​

ChampTypeDescription
default_localestringLangue par défaut
currencystringDevise ISO 4217
default_low_stock_thresholdintegerSeuil de stock bas par défaut
max_reservation_days_aheadintegerHorizon de réservation (jours)
max_daily_spend_centsintegerPlafond de dépense journalier
self_service_enabledbooleanPortail libre-service porteurs
parent_features_enabledbooleanFonctionnalités parent-enfant
default_payment_providerstringFournisseur de paiement par défaut
utc_offset_minutesintegerDécalage UTC en minutes
business_hoursobjectHoraires (timezone + jours)
reservation_cutoff_timetimeHeure limite de réservation
reservation_cancellation_cutoff_daysintegerDélai min avant annulation (jours)
reservation_cancellation_cutoff_timetimeHeure limite d'annulation
reservation_service_hourtimeHeure de service
reservation_min_advance_daysintegerPréavis minimum (jours)
reservation_creation_deadline_timetimeHeure limite de création
reservation_allow_product_deadlinesbooleanAutoriser les délais par produit
auto_close_register_enabledbooleanFermeture automatique des caisses
auto_close_register_timetimeHeure de fermeture auto
daily_report_enabledbooleanRapport quotidien par email
daily_report_timetimeHeure d'envoi
daily_report_emailstringDestinataire
daily_report_recharges / daily_report_ventes / daily_report_soldesbooleanSections incluses

PUT /admin/org/settings​

Met à jour la configuration.

Permissions : settings.update ou organization.manage

ChampTypeDescription
notification_configobjectConfiguration des notifications (remplacement)
settingsobjectParamètres (fusion JSON)
PUT /api/v1/admin/org/settings
Content-Type: application/json

{
"settings": {
"currency": "XOF",
"self_service_enabled": true,
"parent_features_enabled": true
},
"notification_config": {
"channels": {
"email": { "enabled": true },
"sms": { "enabled": true }
}
}
}
Fusion JSON

Le champ settings est fusionné : seules les clés de premier niveau fournies sont écrasées, les autres sont conservées. notification_config, en revanche, est remplacé en bloc.

Réponse (200)​

{
"message": "Paramètres mis à jour"
}

Permissions​

PermissionDescription
settings.readLecture des paramètres
settings.updateModification des paramètres
organization.manageSuper-permission couvrant settings.*

Voir aussi​