# Update a bill

Endpoint: PATCH /bills/{billId}
Version: 2.0.0
Security: oauth2ClientCredentials

## Path parameters:

  - `billId` (string, required)

## Header parameters:

  - `org_wallet_ref` (string)

  - `business_id` (string, required)

## Request fields (application/json):

  - `invoice_no` (string)
    Example: INV-001

  - `invoice_amount` (number)
    Example: 12000

  - `status` (string)
    Enum: "draft", "outstanding"

  - `supplier` (object)

  - `budget_owner` (object)

  - `team` (object)
    Selected team. The middleware derives budget_owner from its reviewers/employees before forwarding.

  - `payments` (array)

  - `attachments` (array)

  - `withholding_taxes` (array)

  - `description` (string)
    Example: Consulting services - June

  - `due_date` (string)
    Due date (YYYY-MM-DD)
    Example: 2026-06-30

  - `budget` (array)
    Budget ObjectId(s) this bill is assigned to (upstream stores `budget: [ObjectId]`)

  - `is_draft` (boolean)
    Whether the bill is saved as a draft
    Example: true

  - `category` (string)
    Category name

  - `category_code` (string)
    Category / subcategory code

  - `paid_amount` (number)
    Amount already paid / to be paid

  - `send_on` (string)
    Date the bill payment should be sent (YYYY-MM-DD)

  - `currency` (string)
    Bill currency
    Enum: "KES", "USD", "UGX"

  - `wallet_currency` (string)
    Wallet currency
    Enum: "KES", "USD", "UGX"

  - `original_currency` (string)
    Original currency
    Enum: "KES", "USD", "UGX"

  - `tags` (array)
    Tag ids attached to the bill

  - `fx_rate` (number)
    FX rate at time of bill creation (original → wallet currency)
    Example: 129.5

