---
title: "Update a bill"
method: PATCH
path: "/v3/bills/{billId}"
tags: ["bills"]
---

# Update a bill

`PATCH /v3/bills/{billId}`

Update details about a bill line item. You can also update other bill details.

You can use the PATCH operation to modify line item details, such as `amount` and `description`. The bill line item `id` does not change with a PATCH operation.

## Path parameters

- `billId` string, required — BILL-generated ID of the bill. The value begins with `00n`.

## Headers

- `sessionId` string, nullable — API session ID generated with `/v3/login`
- `devKey` string, nullable — Developer key generated with your BILL developer account

## Request body

- BillUpdateRequestDto — Update a bill
  - `vendorId` string — BILL-generated ID of the vendor. The value begins with `009`.
  - `description` string — Bill description
  - `dueDate` string, date — Bill due date. The value is in the `yyyy-MM-dd` format.
  - `paymentTermId` string, required
  - `billLineItems` BillUpdateLineItemDto[] — Bill line items information
    - `id` string, required — BILL-generated ID of the bill line item. The value begins with `bli`.
    - `amount` number — Bill line item amount. For a bill in an international currency (not USD), this value is in the local currency. If you set `amount`, `quantity`, and `price`, BILL uses the `amount` value as the bill line item total amount.
    - `quantity` number — Bill line item unit quantity
    - `price` number — Bill line item unit price. For a bill in an international currency (not USD), this value is in the local currency.
    - `description` string — Bill line item description
    - `classifications` object — General ledger classifications information for the bill line item
      - `chartOfAccountId` string — BILL-generated ID of the chart of accounts. The value begins with `0ca`.
      - `accountingClassId` string — BILL-generated ID of the accounting class. The value begins with `cls`.
      - `departmentId` string — BILL-generated ID of the department. The value begins with `0de`.
      - `employeeId` string — BILL-generated ID of the employee. The value begins with `emp`.
      - `jobId` string — BILL-generated ID of the job. The value begins with `job`.
      - `locationId` string — BILL-generated ID of the location. The value begins with `loc`.
      - `itemId` string — BILL-generated ID of the item. The value begins with `0ii`.
      - `customerId` string — BILL-generated ID of the customer. The value begins with `0cu`.
  - `invoice` object — Invoice information
    - `invoiceNumber` string — User-generated invoice number. This value can be your chosen number scheme or bill due date.
    - `invoiceDate` string, date — Date when the invoice is sent. This value is in the `yyyy-MM-dd` format.
  - `payFromChartOfAccountId` string — BILL-generated ID of the chart of accounts for the bill payment. The value begins with `0ca`.
  - `classifications` object — General ledger classifications information for the bill
    - `chartOfAccountId` string
    - `accountingClassId` string
    - `departmentId` string
    - `locationId` string
  - `vendorCredits` BillVendorCreditRequestItemDto[] — Vendor credits applied to the bill
    - `id` string, required — BILL-generated ID of the vendor credit applied to the bill payment. The value begins with `vcr`.
    - `amount` number, required — Credit amount
  - `purchaseOrderNumber` string — Purchase order number linked with the bill
  - `billApprovals` boolean — Set as `true` for BILL to add approvals information in the response. When you have approval policies set up for bills and a bill matches a policy, you see an additional `approvers` array of objects in the response. The array shows the list of individual users and/or user groups assigned as bill approvers. In addition, the array provides information about the status of the bill in the current approval flow. **Note**: When you set `billApprovals` as `true`, you must set the field as `true` if you want to replace the bill with `PUT /v3/bills/{billId}`.
  - `policyRematch` boolean — Rule for whether BILL re-matches the updated bill against your approval policies. The default value is `false`. * `true`: Rematch the updated bill. BILL removes any previously assigned approvers that are no longer valid, and then assigns any new approvers that match your policy rules. * `false`: Do not rematch the updated bill. BILL assigns any new approvers that match your policy rules. Any previously assigned approvers are not removed.

## Response `200`

Update a bill response

- BillResponseDto — Bills response.
  - `id` string, required — BILL-generated ID of the bill. The value begins with `00n`.
  - `archived` boolean, required — Set as `true` if the bill is archived
  - `vendorId` string, required — BILL-generated ID of the vendor. The value begins with `009`.
  - `fundingAmount` number — Bill total amount. This value is in USD.
  - `amount` number — Bill total amount. For a bill in an international currency (not USD), this value is in the local currency.
  - `paidAmount` number — Bill paid amount. This value is the sum of all cleared payments and any credit amount applied to the bill.
  - `dueAmount` number — Bill due amount. The value is calculated by subtracting any applied credits (`creditAmount`), scheduled payment (`scheduledAmount`), and cleared payment from the bill `amount`.
  - `scheduledAmount` number — Bill scheduled amount. The value is set as the vendor payment amount that is pending clearance.
  - `creditAmount` number — Credit amount applied to the bill
  - `exchangeRate` number — Exchange rate for the bill amount in an international currency (not USD). The BILL exchange rate changes periodically and a different rate may apply at the time of payment.
  - `description` string — Bill description
  - `dueDate` string, date — Bill due date. The value is in the `yyyy-MM-dd` format.
  - `paymentTermId` string
  - `invoice` object — Invoice information
    - `invoiceNumber` string
    - `invoiceDate` string, date
  - `billLineItems` BillResponseLineItem[] — Bill line item information
    - `id` string — BILL-generated ID of the bill line item. The value begins with `bli`.
    - `amount` number, required — Bill line item amount. For a bill in an international currency (not USD), this value is in the local currency. If you set `amount`, `quantity`, and `price`, BILL uses the `amount` value as the bill line item total amount.
    - `quantity` number — Bill line item unit quantity
    - `price` number — Bill line item unit price. For a bill in an international currency (not USD), this value is in the local currency.
    - `description` string — Bill line item description
    - `classifications` object — General ledger classifications information for the bill line item
      - `chartOfAccountId` string — BILL-generated ID of the chart of accounts. The value begins with `0ca`.
      - `accountingClassId` string — BILL-generated ID of the accounting class. The value begins with `cls`.
      - `departmentId` string — BILL-generated ID of the department. The value begins with `0de`.
      - `employeeId` string — BILL-generated ID of the employee. The value begins with `emp`.
      - `jobId` string — BILL-generated ID of the job. The value begins with `job`.
      - `locationId` string — BILL-generated ID of the location. The value begins with `loc`.
      - `itemId` string — BILL-generated ID of the item. The value begins with `0ii`.
      - `customerId` string — BILL-generated ID of the customer. The value begins with `0cu`.
  - `payFromChartOfAccountId` string — BILL-generated ID of the chart of accounts for the bill payment. The value begins with `0ca`.
  - `paymentStatus` 'PAID' | 'UNPAID' | 'PARTIALLY_PAID' | 'SCHEDULED' | 'IN_PROCESS' | 'UNDEFINED' — Bill payment status.
  - `approvalStatus` 'UNASSIGNED' | 'ASSIGNED' | 'APPROVED' | 'APPROVING' | 'DENIED' | 'UNDEFINED' — Bill approval status.
  - `createdBy` string — BILL-generated ID of the user that created the bill. The value begins with `006`.
  - `createdTime` string, date-time — Created date and time
  - `updatedTime` string, date-time — Updated date and time
  - `classifications` object — General ledger classifications information for the bill
    - `chartOfAccountId` string
    - `accountingClassId` string
    - `departmentId` string
    - `locationId` string
  - `purchaseOrderNumber` string — Purchase order number linked with the bill
  - `approvers` ApproverDto[] — Bill approvers information
    - `userId` string, required — BILL-generated ID of the individual user or approval group. * **Individual user**: The value begins with `006`. * **Approval group**: The value begins with `agp`.
    - `status` 'WAITING' | 'VIEWED' | 'REROUTED' | 'DENIED' | 'APPROVED' | 'UPCOMING' | 'STALE' | 'UNDEFINED' — Bill approver status.
    - `approverOrder` number — Bill approval order.
    - `statusChangedTime` string, date-time — Status change date and time

## 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)
