---
title: "Add budget member"
method: POST
path: "/v1/businesses/{client_id}/budgets/{budget_id}/members"
tags: ["Budget Members"]
---

# Add budget member

`POST /v1/businesses/{client_id}/budgets/{budget_id}/members`

Adds a user (or pending invite) as a member of the budget. Provide
exactly one of `user` or `invite`. If an invite has already been
accepted, the response will contain `user` rather than `invite`.

**Side effect:** On budgets with per-member limits, adding a member
increases the budget's total limit and available amount by the new
member's `reset_amount`. Re-fetch the budget if you need the
updated totals. Shared-pot budgets are unaffected.

## Path parameters

- `client_id` integer, required
- `budget_id` string, required

## Request body

- union — Provide exactly one of `user` or `invite`. `reset_amount` is required when the budget has `has_member_limits=true` and must be omitted otherwise.
  - object
    - `user` object, required — An accepted user in this business.
      - `id` integer, required — The user's ID.
    - `invite` object — A pending invite in this business.
      - `id` string, required — The invite's ID.
    - `reset_amount` number — The member's spending limit. Required when the budget has `has_member_limits=true`. Must be omitted when `has_member_limits=false` (the member inherits the budget's `reset_amount`).
  - object
    - `user` object — An accepted user in this business.
      - `id` integer, required — The user's ID.
    - `invite` object, required — A pending invite in this business.
      - `id` string, required — The invite's ID.
    - `reset_amount` number — The member's spending limit. Required when the budget has `has_member_limits=true`. Must be omitted when `has_member_limits=false` (the member inherits the budget's `reset_amount`).

## Response `201`

Created

- BudgetMember
  - `id` string — The ID of the budget member.
  - `user` SubUser, nullable
    - `id` integer — The ID of the user.
    - `first_name` string — The first name of the user.
    - `last_name` string — The last name of the user.
    - `name` string — The full name of the user or the display name if the user has set one.
  - `invite` Invite
    - `id` integer — The ID of the invite.
    - `email` string, email — The email address the invite was sent to.
    - `role_id` string, uuid — The ID of the role assigned to the invitee.
    - `role` string — The name of the role assigned to the invitee.
    - `payment_types` PaymentType[] — The payment types the invitee will have access to.
    - `used` boolean — Whether the invite has been accepted.
    - `created` string, date-time — The date and time the invite was created in UTC.
    - `updated` string, date-time — The date and time the invite was last updated in UTC.
  - `available_amount` number — The available amount of the budget member.
  - `spent_amount` number — The amount of the budget that has been spent by the budget member.
  - `reset_amount` number — The reset amount of the budget member.
  - `is_deleted` boolean — Whether the budget member is deleted.
  - `created` string, date-time — The date and time when the budget member was created in UTC.
  - `updated` string, date-time — The date and time when the budget member was last updated in UTC.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found

---

[API](https://skmtc.net/letsweel/apis/weel-openapi.md) · [All operations](https://skmtc.net/letsweel/apis/weel-openapi/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/letsweel/weel-openapi/versions/55da5fa350fb/schema)
