---
title: "Update Member"
method: PATCH
path: "/members/{id}"
tags: ["Members"]
---

# Update Member

`PATCH /members/{id}`

## Request

- Base URL: `https://api.whop.com/api/v1`
- URL: `https://api.whop.com/api/v1/members/{id}`
- Auth: HTTP bearer

Sets the name the account uses for a member. Every invoice for this member shows it as the customer name, paid invoices included, in place of the user's own name. It does not change the user's Whop profile.

## Request body

- object
  - `name` string, nullable: The customer name to show on this member's invoices, at most 255 bytes. Leading and trailing spaces are trimmed. `null` or a blank string clears it, so invoices show the user's own name again.

## Response `200`

member updated

- Member
  - `access_level` 'no_access' | 'admin' | 'customer', required: What the member can reach on the account: `customer` for paying members, `admin` for team members, `no_access` once every grant has lapsed.
  - `account_id` string, required: The account this member belongs to, prefixed `biz_`.
  - `created_at` string, required: When the member record was created, as an ISO 8601 timestamp.
  - `display_name` string, required: The name to show for this member: the user's name, or their username when they have not set one. The buying business's name when `user` is `null`.
  - `earnings_usd` UserEarningsAmount, required
    - `last_24_hours` string, required: Gross income in USD over the last 24 hours.
    - `last_30_days` string, required: Gross income in USD over the last 30 days.
    - `last_7_days` string, required: Gross income in USD over the last 7 days.
    - `lifetime` string, required: All-time gross income in USD.
  - `email` string, nullable, required: The user's email address. `null` without `member:email:read` on the account, when the buyer is another business, or when the user has no assigned email.
  - `id` string, required: Member ID, prefixed `mber_`.
  - `joined_at` string, required: When the member first joined the account, as an ISO 8601 timestamp.
  - `last_accessed_at` string, nullable, required: When the member last opened the account's content, as an ISO 8601 timestamp. `null` if they never have.
  - `most_recent_action` 'canceling' | 'churned' | 'finished_split_pay' | 'paused' | 'paid_subscriber' | 'paid_once' | 'expiring' | 'joined' | 'left' | 'trialing' | 'pending_entry' | 'renewing' | 'past_due' | 'null', nullable, required: The member's latest lifecycle state on the account, derived from their memberships, such as `paid_subscriber`, `canceling`, or `churned`. `null` until it is first computed.
  - `most_recent_action_at` string, nullable, required: When `most_recent_action` took effect, as an ISO 8601 timestamp. `null` when `most_recent_action` is `null`.
  - `name` string, nullable, required: The name the account gave this customer with `PATCH /members/:id`. Invoices show it as the customer name on every invoice for this member, in place of the user's own name. `null` when the account has not set one.
  - `phone_number` string, nullable, required: The member's phone number: the most recent number collected (or verified) at checkout, otherwise their account number when they have shared one with this seller. `null` without `member:phone:read` on the account, or when there is neither.
  - `status` 'joined' | 'left', required: `joined` while the member is part of the account, `left` after they leave.
  - `token_balance` number, required: The member's current token balance for this account, computed from token transactions.
  - `usd_total_spent` Money, required
    - `amount` string, required: The amount in major units, as an exact decimal string — `"10.00"` is ten dollars. A string so no float rounds it in transit.
    - `currency` string, required: Three-letter ISO 4217 currency code, lowercase.
    - `decimals` integer, required: How many decimal places the amount CARRIES — the precision the charge itself runs at.
    - `display_decimals` integer, required: How many decimal places to SHOW. Usually equal to `decimals`, and deliberately not always: COP is charged in centavos but written in whole pesos, so it is `2` and `0`. Format the number in your own locale using this.
  - `user` UserSummary, required
    - `id` string, required: User ID, prefixed `user_`.
    - `name` string, nullable, required: Display name.
    - `profile_picture` UserProfilePicture, required
      - `url` string, required: Avatar image URL. Always present — a generated placeholder when the user set no picture.
    - `username` string, required: Public username.

## Other responses

- `400`: Invalid Parameters
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Resource not found

## Changes

> 203 revisions in range; 1 not diffed.

- **2026-10-30** `2af1a3aa41c9`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/whop/apis/whop-api/changes/members/:id/patch.md)

---

[API](https://skmtc.dev/whop/apis/whop-api.md) - [All operations](https://skmtc.dev/whop/apis/whop-api/llms.txt) - [OpenAPI document](https://skmtc.dev/whop/apis/whop-api/revisions/9993d9eaebc8?raw)
