# Add budget member

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.

Endpoint: POST /v1/businesses/{client_id}/budgets/{budget_id}/members
Version: v1
Security: BearerAuth

## Path parameters:

  - `client_id` (integer, required)
    The ID of the business.

  - `budget_id` (string, required)
    The ID of the budget.

## Response 201 fields (application/json):

  - `id` (string)
    The ID of the budget member.
    Example: e33b7c61-5124-4ba0-b238-e4c573133715

  - `user` (object | null)

  - `user.id` (integer)
    The ID of the user.
    Example: 123

  - `user.first_name` (string)
    The first name of the user.
    Example: John

  - `user.last_name` (string)
    The last name of the user.
    Example: Doe

  - `user.name` (string)
    The full name of the user or the display name if the user has set one.
    Example: John Doe

  - `invite` (object)

  - `invite.id` (integer)
    The ID of the invite.
    Example: 99

  - `invite.email` (string)
    The email address the invite was sent to.
    Example: jane.doe@example.com

  - `invite.role_id` (string)
    The ID of the role assigned to the invitee.
    Example: a1b2c3d4-e5f6-7890-abcd-ef1234567890

  - `invite.role` (string)
    The name of the role assigned to the invitee.
    Example: Team Member

  - `invite.payment_types` (array)
    The payment types the invitee will have access to.
    Example: ["cards","reimbursements"]

  - `invite.used` (boolean)
    Whether the invite has been accepted.
    Example: false

  - `invite.created` (string)
    The date and time the invite was created in UTC.
    Example: 2026-05-01T00:00:00Z

  - `invite.updated` (string)
    The date and time the invite was last updated in UTC.
    Example: 2026-05-01T00:00:00Z

  - `available_amount` (number)
    The available amount of the budget member.
    Example: 800

  - `spent_amount` (number)
    The amount of the budget that has been spent by the budget member.
    Example: 200

  - `reset_amount` (number)
    The reset amount of the budget member.
    Example: 1000

  - `is_deleted` (boolean)
    Whether the budget member is deleted.
    Example: false

  - `created` (string)
    The date and time when the budget member was created in UTC.
    Example: 2024-01-01T00:00:00Z

  - `updated` (string)
    The date and time when the budget member was last updated in UTC.
    Example: 2024-01-01T00:00:00Z

