Customer Preferences API

Per-customer notification preferences, language, and currency settings stored as JSONB.

Base: /api/v1/preferences  |  X-Tenant-ID required  |  Requires auth 🔒
GET /api/v1/preferences 🔒 Auth Required

Retrieve the current user's preferences.

Response

{
  "success": true,
  "data": {
    "preferences": {
      "notifications": { "order_placed": true, "order_status_change": true, "delivery_fee_adjustment": true, "promotions": false },
      "language": "en",
      "currency": "KES"
    }
  }
}
PUT /api/v1/preferences 🔒 Auth Required

Update preferences. Partial updates accepted — only provided keys are overwritten.

Request Body

{
  "notifications": {
    "order_placed": true,
    "order_status_change": true,
    "delivery_fee_adjustment": true,
    "promotions": false
  },
  "language": "en",
  "currency": "KES"
}

Response

{ "success": true, "data": { "preferences": { ... } } }