---
title: "Update a reimbursement"
method: PATCH
path: "/v3/spend/reimbursements/{reimbursementId}"
tags: ["reimbursements"]
---

# Update a reimbursement

`PATCH /v3/spend/reimbursements/{reimbursementId}`

Update details about an existing reimbursement.

## Path parameters

- `reimbursementId` string, required — BILL-generated ID or UUID of the reimbursement

## Headers

- `apiToken` string, nullable — Access token for Spend & Expense API authentication

## Request body

- UpdateReimbursementRequestDto — Update a reimbursement (Date updated)
  - `userId` string — BILL-generated ID of the user to be reimbursed
  - `budgetId` string — BILL-generated ID of the budget to be used for the reimbursement
  - `amount` number — Reimbursement amount
  - `note` string — Reimbursement note. Use this field to describe the business purpose for the expense.
  - `merchantName` string — Merchant name for the expense
  - `occurredDate` string, date — Expense created date. The value is in the `yyyy-MM-dd` format.
  - `customFields` UpdateCustomFieldDto[] — List of reimbursement custom fields and values
    - `customFieldId` string, required — BILL-generated ID or UUID of the custom field
    - `selectedValues` string[] — List of selected custom field values. Set the custom field value ID or UUID values. **Note**: Clear the `selectedValues` array to clear all the custom field selected values.
    - `note` string — Updated custom field note. **Note**: This field is available only for custom fields with `type` set as `NOTE`.

## Response `200`

Update a reimbursement response

- ReimbursementResponseDto — DTO representing a reimbursement response.
  - `id` string — BILL-generated ID of the reimbursement
  - `uuid` string — BILL-generated UUID of the reimbursement
  - `amount` number — Reimbursement amount
  - `fulfillmentType` 'PAYROLL' | 'ACH' | 'UNSPECIFIED' — Reimbursement fulfillment type.
  - `fundRequestAmount` number — Amount that must be added to the user funds for the user to have enough funds for this reimbursement
  - `fundRequestBudgetAmount` number — Amount that must be added to the budget for the user to have enough funds for this reimbursement
  - `merchantName` string — Merchant name for the expense
  - `note` string — Reimbursement note. Use this field to describe the business purpose for the expense.
  - `submittedTime` string, date-time — Reimbursement request submission date and time
  - `occurredDate` string, date — Expense created date. The value is in the `yyyy-MM-dd` format.
  - `retired` boolean — This field is set as `true` if the reimbursement has been deleted
  - `status` 'UNSPECIFIED' | 'CREATED' | 'AWAITING_APPROVAL' | 'APPROVAL_UNDONE' | 'AWAITING_TIER2_APPROVAL' | 'TIER2_APPROVAL_UNDONE' | 'APPROVED' | 'CANCEL_PAYMENT' | 'FUNDING_RECEIVED' | 'PAID' | 'PAYMENT_FAILED' | 'DENIED' | 'DENIAL_UNDONE' | 'DELETED' — Reimbursement status.
  - `type` 'PURCHASE' | 'MILEAGE' — Reimbursement type.
  - `batchId` string — ACH batch ID. You can use `batchId` to identify the set of reimbursements bundled together when funds are withdrawn from the company bank account. Reimbursements with the same `batchId` are withdrawn at the same time.
  - `batchAmount` number — ACH batch amount
  - `statusHistory` StatusHistory[] — Reimbursement approval status history
    - `actorId` string — BILL-generated ID of the user that approved or denied the reimbursement
    - `actorRole` 'SUBMITTER' | 'MANAGER' | 'BUDGET_OWNER' | 'ADMIN' | 'SYSTEM' — Reimbursement role of the user.
    - `occurredTime` string, date-time — Reimbursement action date and time
    - `note` string — Reimbursement action note
    - `status` 'UNSPECIFIED' | 'CREATED' | 'AWAITING_APPROVAL' | 'APPROVAL_UNDONE' | 'AWAITING_TIER2_APPROVAL' | 'TIER2_APPROVAL_UNDONE' | 'APPROVED' | 'CANCEL_PAYMENT' | 'FUNDING_RECEIVED' | 'PAID' | 'PAYMENT_FAILED' | 'DENIED' | 'DENIAL_UNDONE' | 'DELETED' — New status after the reimbursement action.
  - `budgetId` string — BILL-generated ID of the budget to be used for the reimbursement
  - `budgetUuid` string — BILL-generated UUID of the budget to be used for the reimbursement
  - `userId` string — BILL-generated ID of the user to be reimbursed
  - `userUuid` string — BILL-generated UUID of the user to be reimbursed
  - `receipts` ReceiptImage[] — List of reimbursement receipts
    - `url` string, required — Uploaded receipt URL
    - `filename` string, required — Receipt file name
    - `uuid` string, required — BILL-generated UUID for the receipt image
  - `customFields` CustomFieldDto[] — List of reimbursement custom fields and values
    - `id` string — BILL-generated ID of the custom field
    - `uuid` string — BILL-generated UUID of the custom field
    - `name` string — Custom field name
    - `note` string — Custom field note
    - `isRequired` boolean — Set as `true` if the custom field is required
    - `selectedValues` CustomFieldValueDto[] — List of selected values for this custom field. **NOTE**: In the response, you get up to 20 selected values for a custom field. Use `GET /v3/spend/custom-fields/{customFieldId}/values` to get the complete list of selected values.
      - `id` string — BILL-generated ID of the custom field value
      - `uuid` string — BILL-generated UUID of the custom field value
      - `value` string — Custom field value

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