Ask for an invitation
Menu

Webhook event

member.role_changed

A member's role changed.

Type
member.role_changed
The object it carries
the member object
Subscribe with
member.role_changed, member.* or *

Example payload

The body of the request your endpoint receives, shown here over several lines. On the wire it is compact JSON; check its signature over the bytes exactly as they arrive.

Example payload

{
  "id": "evt_d7zh5w460dv3v5t62t0jhb3r",
  "object": "event",
  "livemode": true,
  "created": "2026-09-02T09:15:44.020Z",
  "type": "member.role_changed",
  "api_version": "2026-10-11",
  "data": {
    "object": {
      "id": "mem_re2bmvrnbzsbefcwx64ftp5w",
      "object": "member",
      "livemode": true,
      "created": "2026-09-02T09:15:44.020Z",
      "user": "usr_vhpdrdebjrkc46bb09vn6nbm",
      "email": "till@acme.example",
      "name": "Ana Lopez",
      "role": "support",
      "status": "active",
      "holds_wallet_key": false,
      "passkey_count": 1,
      "invited_by": null,
      "invitation_expires_at": null,
      "last_active_at": "2026-10-12T09:00:00.000Z"
    },
    "previous_attributes": {
      "role": "cashier"
    }
  },
  "request": {
    "id": null,
    "idempotency_key": null
  },
  "pending_webhooks": 1
}

Fields of data.object

Fields of data.object in member.role_changed
FieldIn this example
id"mem_re2bmvrnbzsbefcwx64ftp5w"
object"member"
livemodetrue
created"2026-09-02T09:15:44.020Z"
user"usr_vhpdrdebjrkc46bb09vn6nbm"
email"till@acme.example"
name"Ana Lopez"
role"support"
status"active"
holds_wallet_keyfalse
passkey_count1
invited_bynull
invitation_expires_atnull
last_active_at"2026-10-12T09:00:00.000Z"

What each field means is on the page of the member object. data.previous_attributes holds the old values of exactly the fields that changed: here role.

Endpoints behind it

Calls that change merchant, team and keys. An event is also sent when a payer, the network, a timer or a person in the dashboard causes the change; the sentence above says which.