API referenceCustomers

Customers

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

Get a customer's journey timeline at one store.

The Business-app customer-detail timeline: a single chronological (newest-first) feed interleaving every recorded touchpoint for one member at one store, paginated by a before cursor. Also returns whether the customer has any store-scoped agreements on record. Store-scoped and relationship-gated: a customer with no relationship at this store returns 404.

Parameters

customerIdstringpathrequired
store_idstring · uuidqueryrequired

Store whose journey with the customer to read (also authorises the merchant).

limitintegerqueryoptional

Page size (default 25, max 50).

beforestringqueryoptional

ISO 8601 cursor, return events strictly older than this timestamp.

Response, 200

eventsarray of objectrequired
22 child fields
idstringrequired
typeenumrequired
joinedstampvoucher_earnedvoucher_redeemedordermessageemailjourneymomentclass_bookingmembership
channelenumrequired
in_storein_appemailjourneymomentgym
timestampstringrequired
titlestringrequired
subtitlestringrequired
statusstring, nullablerequired
detailstring, nullablerequired
campaignNamestring, nullableoptional
openedboolean, nullableoptional
clickedboolean, nullableoptional
returningVisitAtstring, nullableoptional
returnDaysnumber, nullableoptional
amountPencenumber, nullableoptional
refundedPencenumber, nullableoptional
promoDiscountPencenumber, nullableoptional
appliedPromoCodestring, nullableoptional
currencystring, nullableoptional
autoSentboolean, nullableoptional
resultKindstring, nullableoptional
resultAtstring, nullableoptional
resultValuePencenumber, nullableoptional
paginationobjectrequired
4 child fields
limitnumberrequired
beforestring, nullablerequired
nextCursorstring, nullablerequired
hasMorebooleanrequired
has_store_agreementsbooleanrequired
curl -G "https://www.membber.com/api/v1/customers/a1c10999-0000-4000-8000-d0c5000000a1/journey" \
  -H "Authorization: Bearer $MEMBBER_TOKEN" \
  --data-urlencode "store_id=6659c139-0000-4000-8000-d0c500000066"
Response, 200
{
  "events": [
    {
      "id": "00000d1b-0000-4000-8000-d0c500000000",
      "type": "joined",
      "channel": "in_store",
      "timestamp": "<timestamp>",
      "title": "Morning class",
      "subtitle": "<subtitle>",
      "status": "<status>",
      "detail": "<detail>",
      "campaignName": "<campaignName>",
      "opened": true,
      "clicked": true,
      "returningVisitAt": "<returningVisitAt>",
      "returnDays": 1,
      "amountPence": 1500,
      "refundedPence": 1,
      "promoDiscountPence": 1,
      "appliedPromoCode": "EXAMPLE10",
      "currency": "GBP",
      "autoSent": true,
      "resultKind": "<resultKind>",
      "resultAt": "<resultAt>",
      "resultValuePence": 1
    }
  ],
  "pagination": {
    "limit": 25,
    "before": "<before>",
    "nextCursor": "<nextCursor>",
    "hasMore": true
  },
  "has_store_agreements": true
}

List a store's customer roster (filterable, sortable, paginated).

Merchant browses their full customer roster, everyone who has interacted with the store, enriched with lifecycle stage, visits, stamp count, order count + net spend, and marketing consent. Supports stage/facet/text filters, sort by recent/spend/visits/name, and pagination with a true filtered total_count.

Parameters

store_idstring · uuidqueryrequired

Store whose roster to list (also authorises the merchant).

sortenumqueryoptional

Sort order (default recent).

recentspendvisitsname
stageenumqueryoptional

Lifecycle-stage filter.

newactivestalelapsedreturning
facetstringqueryoptional

Comma-separated AND filters: has_orders, has_stamps, marketing_opted_in.

qstringqueryoptional

Filter the roster by name/email/phone.

limitintegerqueryoptional

Page size (default 30, max 100).

offsetintegerqueryoptional

Page offset.

Response, 200

customersarray of objectrequired
11 child fields
idstringrequired
namestring, nullablerequired
phonestring, nullablerequired
emailstring, nullablerequired
last_visit_atstring, nullablerequired
lifecycle_stagestring, nullablerequired
total_visitsnumberrequired
stamp_countnumberrequired
order_countnumberrequired
total_spent_pencenumberrequired
marketing_opted_inbooleanrequired
paginationobjectrequired
4 child fields
limitnumberrequired
offsetnumberrequired
has_morebooleanrequired
total_countnumberrequired
curl -G "https://www.membber.com/api/v1/customers/list" \
  -H "Authorization: Bearer $MEMBBER_TOKEN" \
  --data-urlencode "store_id=6659c139-0000-4000-8000-d0c500000066"
Response, 200
{
  "customers": [
    {
      "id": "00000d1b-0000-4000-8000-d0c500000000",
      "name": "Example name",
      "phone": "+44 7700 900123",
      "email": "alex@example.com",
      "last_visit_at": "<last_visit_at>",
      "lifecycle_stage": "<lifecycle_stage>",
      "total_visits": 1,
      "stamp_count": 1,
      "order_count": 1,
      "total_spent_pence": 1500,
      "marketing_opted_in": true
    }
  ],
  "pagination": {
    "limit": 25,
    "offset": 0,
    "has_more": true,
    "total_count": 1
  }
}

Search a store's customers by name, phone, or email.

Merchant searches the customers who have interacted with their store (class bookings, stamps, or paid orders). A 2+ character term filters by name/phone/email; a short/empty term returns the most-recent customers as a list.

Parameters

store_idstring · uuidqueryrequired

Store whose customers to search (also authorises the merchant).

qstringqueryoptional

Search term; 2+ chars filters by name/phone/email, else returns the most-recent 20.

Response, 200

customersarray of objectrequired
5 child fields
idstringrequired
namestring, nullablerequired
phonestring, nullablerequired
emailstring, nullablerequired
last_seenstring, nullablerequired
curl -G "https://www.membber.com/api/v1/customers/search" \
  -H "Authorization: Bearer $MEMBBER_TOKEN" \
  --data-urlencode "store_id=6659c139-0000-4000-8000-d0c500000066"
Response, 200
{
  "customers": [
    {
      "id": "00000d1b-0000-4000-8000-d0c500000000",
      "name": "Example name",
      "phone": "+44 7700 900123",
      "email": "alex@example.com",
      "last_seen": "<last_seen>"
    }
  ]
}
WhatsApp
Book a Call
Start Free