---
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`

## Request

- Base URL: `https://public.letsweel.com`
- URL: `https://public.letsweel.com/v1/businesses/{client_id}/budgets/{budget_id}/members`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/letsweel/apis/weel-openapi/docs/v1/businesses/:client_id/budgets/:budget_id/members/post.ts> (a function with typed inputs; its response is checked against the schema)

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

## Changes

- **2026-09-23** `4c7e73b7c4e9`: 1 warning
  - added the new `external_expenses` enum value to the `invite/payment_types/items/` response property for the response status `201`

[Operation history](https://skmtc.dev/letsweel/apis/weel-openapi/changes/v1/businesses/:client_id/budgets/:budget_id/members/post.md)

---

[API](https://skmtc.dev/letsweel/apis/weel-openapi.md) - [All operations](https://skmtc.dev/letsweel/apis/weel-openapi/llms.txt) - [OpenAPI document](https://skmtc.dev/letsweel/apis/weel-openapi/revisions/b1e30cdf67f3?raw)
