---
title: "Add or update a budget member"
method: PUT
path: "/v3/spend/budgets/{budgetId}/members/{userId}"
tags: ["budgets"]
---

# Add or update a budget member

`PUT /v3/spend/budgets/{budgetId}/members/{userId}`

Add a new user member to an existing budget. You can also update details about an existing user member assigned to the budget.

## Path parameters

- `budgetId` string, required — BILL-generated ID or UUID of the budget
- `userId` string, required — BILL-generated ID or UUID of the user

## Headers

- `apiToken` string, nullable — Access token for Spend & Expense API authentication

## Request body

- BudgetMemberUpsertRequestDto — Add a budget member
  - `limit` number — Funds assigned to the user in the current budget period. **Note**: This field is required with `shareBudgetFunds` is set as `false`.
  - `recurringLimit` number — Funds assigned to the user in all future budget periods. **Note**: This field is required when `shareBudgetFunds` is set as `false`.
  - `role` 'MEMBER' | 'OWNER' | 'OBSERVER' — Budget user role
  - `shareBudgetFunds` boolean — Set as `true` to share all the budget funds with the user. **Note**: You cannot set this field as `true` when either `limit` or `recurringLimit` is set.

## Response `200`

Add or update a budget member response

- BudgetMemberResponseDto — Budget members response.
  - `userId` string — BILL-generated ID of the user
  - `userUuid` string — BILL-generated UUID of the user
  - `spent` number — Total amount spent by the user in the current budget period
  - `limit` number — Funds assigned to the user in the current budget period
  - `recurringLimit` number — Funds assigned to the user in all future budget periods
  - `recurring` boolean — Set as `true` if the user receives the `recurringLimit` funds in all future budget periods.
  - `budgetRole` 'MEMBER' | 'OWNER' | 'OBSERVER' — Budget user role
  - `name` string — User display name
  - `retired` boolean — Set as `true` if the budget member is retired
  - `shareBudgetFunds` boolean — Set as `true` if all the budget funds are shared with the user

## Other responses

- `4XX` — List of errors.
- `5XX` — List of errors.

---

[API](https://skmtc.net/bill/apis/bill-v3-api.md) · [All operations](https://skmtc.net/bill/apis/bill-v3-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/bill/bill-v3-api/revisions/0483350c434e/schema)
