Ask for an invitation
Menu

Webhook event

member.joined

An invitation was accepted.

Type
member.joined
The object it carries
the member object
Subscribe with
member.joined, 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_v4wxh161dzh1sn01hw0665rh",
  "object": "event",
  "livemode": true,
  "created": "2026-09-02T09:15:44.020Z",
  "type": "member.joined",
  "api_version": "2026-10-11",
  "data": {
    "object": {
      "id": "mem_ddc4wbzck462zs616tww8gw8",
      "object": "member",
      "livemode": true,
      "created": "2026-09-02T09:15:44.020Z",
      "user": "usr_dndqgvd7bn8rfe30e9sc1112",
      "email": "dev@acme.example",
      "name": "Lee Park",
      "role": "developer",
      "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": {
      "status": "invited",
      "user": null
    }
  },
  "request": {
    "id": null,
    "idempotency_key": null
  },
  "pending_webhooks": 1
}

Fields of data.object

Fields of data.object in member.joined
FieldIn this example
id"mem_ddc4wbzck462zs616tww8gw8"
object"member"
livemodetrue
created"2026-09-02T09:15:44.020Z"
user"usr_dndqgvd7bn8rfe30e9sc1112"
email"dev@acme.example"
name"Lee Park"
role"developer"
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 status, user.

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.