API referenceNotifications

Notifications

3 operations. Every schema and example on this page is generated from the platform contract.

Record the answer to the marketing-notification ask.

Always scoped to the signed-in customer. Accepting writes the per-store opt-in; declining writes no preference row (marketing is opt-in by default, so absence already means no) but still records that the ask happened, which is what bounds it to two asks per store.

Request body

store_idstring · uuidrequired

The store the customer was asked about.

acceptedbooleanrequired

true = they want rewards and offers from this store on their phone.

Response, 200

okbooleanrequired
curl -X POST "https://www.membber.com/api/v1/notifications/marketing-opt-in" \
  -H "Authorization: Bearer $MEMBBER_TOKEN" \
  -H "Idempotency-Key: 1f0e2d3c-4b5a-4678-9abc-def012345678" \
  -H "Content-Type: application/json" \
  -d '{
    "store_id": "6659c139-0000-4000-8000-d0c500000066",
    "accepted": true
  }'
Response, 200
{
  "ok": true
}

List the customer per-store notification preferences.

Per-store notification preferences for the signed-in customer: one row per store they have interacted with, with the mute + per-category toggles (messages, class reminders, class / voucher / stamp / membership / penalty events, marketing). Messages-muted and marketing default off; every other category defaults on.

auth customer:readop listNotificationPreferencesrate limitederrors

Response, 200

preferencesarray of objectrequired
10 child fields
storeIdstringrequired

Store the preferences belong to.

storeNamestringrequired

Store display name, or 'Unknown' if unavailable.

messagesMutedbooleanrequired

Chat messages muted for this store (defaults off).

classRemindersbooleanrequired

Class reminder notifications (defaults on).

classEventsEnabledbooleanrequired

Class event notifications (defaults on).

voucherEventsEnabledbooleanrequired

Voucher event notifications (defaults on).

stampEventsEnabledbooleanrequired

Stamp event notifications (defaults on).

membershipEventsEnabledbooleanrequired

Membership event notifications (defaults on).

penaltyEventsEnabledbooleanrequired

Penalty event notifications (defaults on).

marketingEnabledbooleanrequired

Marketing notifications (defaults off).

curl -G "https://www.membber.com/api/v1/notifications/preferences" \
  -H "Authorization: Bearer $MEMBBER_TOKEN"
Response, 200
{
  "preferences": [
    {
      "storeId": "8fb04ddc-0000-4000-8000-d0c50000008f",
      "storeName": "<storeName>",
      "messagesMuted": true,
      "classReminders": true,
      "classEventsEnabled": true,
      "voucherEventsEnabled": true,
      "stampEventsEnabled": true,
      "membershipEventsEnabled": true,
      "penaltyEventsEnabled": true,
      "marketingEnabled": true
    }
  ]
}

Upsert the customer's per-store notification preferences.

Upsert one store's notification preferences for the signed-in customer: the mute toggle plus the per-category flags (messages, class reminders, class / voucher / stamp / membership / penalty events, marketing). Any toggle omitted from the body is left unchanged. Idempotent via the (customer_id, store_id) unique key, a repeat call merges the same row, never a duplicate.

Request body

storeIdstringrequired

Store whose notification preferences to upsert (the target, not identity).

messagesMutedbooleanoptional

Mute chat messages for this store. Omit to leave unchanged.

classRemindersbooleanoptional

Class reminder notifications. Omit to leave unchanged.

classEventsEnabledbooleanoptional

Class event notifications. Omit to leave unchanged.

voucherEventsEnabledbooleanoptional

Voucher event notifications. Omit to leave unchanged.

stampEventsEnabledbooleanoptional

Stamp event notifications. Omit to leave unchanged.

membershipEventsEnabledbooleanoptional

Membership event notifications. Omit to leave unchanged.

penaltyEventsEnabledbooleanoptional

Penalty event notifications. Omit to leave unchanged.

marketingEnabledbooleanoptional

Marketing notifications. Omit to leave unchanged.

Response, 200

storeIdstringrequired

The store the preferences were written for.

updatedbooleanrequired

Always true on a successful upsert (the row was created or merged).

curl -X POST "https://www.membber.com/api/v1/notifications/preferences" \
  -H "Authorization: Bearer $MEMBBER_TOKEN" \
  -H "Idempotency-Key: 1f0e2d3c-4b5a-4678-9abc-def012345678" \
  -H "Content-Type: application/json" \
  -d '{
    "storeId": "8fb04ddc-0000-4000-8000-d0c50000008f"
  }'
Response, 200
{
  "storeId": "8fb04ddc-0000-4000-8000-d0c50000008f",
  "updated": true
}
WhatsApp
Book a Call
Start Free