---
title: "Update reimbursable expense transaction"
method: PUT
path: "/companies/{companyId}/sync/expenses/reimbursable-expense-transactions/{transactionId}"
tags: ["Reimbursements"]
---

# Update reimbursable expense transaction

`PUT /companies/{companyId}/sync/expenses/reimbursable-expense-transactions/{transactionId}`

## Request

- Base URL: `https://api.codat.io`
- URL: `https://api.codat.io/companies/{companyId}/sync/expenses/reimbursable-expense-transactions/{transactionId}`
- Auth: API key in header `Authorization`

The *Update reimbursable expense* endpoint updates an existing employee expense claim in the accounting platform for a given company's connection. 

Updating an existing [reimbursable expense transaction](https://docs.codat.io/sync-for-expenses-api#/schemas/UpdateReimbursableExpenseTransactionRequest) will update the existing **bill** against an employee (who exists as a supplier in the accounting software).

### Supported Integrations
| Integration           | Supported |
|-----------------------|-----------|
| FreeAgent             | Yes       |
| QuickBooks Online     | Yes       |
| Oracle NetSuite       | Yes       |
| Zoho Books            | Yes       |

## Request body

- UpdateReimbursableExpenseTransactionRequest
  - `reference` string, nullable: User-friendly reference for the reimbursable expense.
  - `contactRef` ReimbursementContactRef, required
    - `id` string, required: Identifier of contact.
  - `apAccountRef` ApAccountRef, nullable
    - `id` string: Unique identifier for the Accounts Payable account associated with the transaction. The `apAccountRef` object is currently supported only for QuickBooks Desktop.
  - `issueDate` 1, required (unresolved $ref)
  - `dueDate` 1, required (unresolved $ref)
  - `currency` string, required: Currency the transaction was recorded in.
  - `currencyRate` CurrencyRate (unresolved $ref)
  - `notes` string: Any private, company notes about the transaction.
  - `lines` ReimbursableExpenseTransactionLine[]: Array of transaction lines.
    - `description` string: line description
    - `netAmount` number, required: Amount of the line, exclusive of tax.
    - `taxAmount` number: Amount of tax for the line.
    - `taxRateRef` RecordRef
      - `id` string: Identifier of linked reference from mapping options.
    - `accountRef` RecordRef
      - `id` string: Identifier of linked reference from mapping options.
    - `itemRef` ItemRef, nullable
      - `id` string: Unique identifier for the item associated with the transaction. The `itemRef` object is currently supported only for QuickBooks Desktop. You can specify either `itemRef` or `accountRef`, but not both.
    - `trackingRefs` TrackingRef[], nullable
      - `id` string: Unique identifier of the linked reference from mapping options or the unique identifier of the linked customer.
      - `dataType` 'trackingCategories' | 'customers': The type of the linked reference
    - `invoiceTo` InvoiceTo, nullable: Unique identifier for the customer billed for the transaction. The `invoiceTo` object is currently supported only for QuickBooks Online and QuickBooks Desktop.
      - `id` string: identifier of customer.
      - `type` 'customer': The type of contact.

## Response `200`

OK

- CreateReimbursableExpenseResponse
  - `syncId` string, uuid: Unique id of sync created

## Other responses

- `400`: The request made is not valid.
- `401`: Your API request was not properly authorized.
- `402`: An account limit has been exceeded. The type of limit is described in the error property: - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io.
- `403`: You are using an outdated API key or a key not associated with that resource.
- `404`: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted.
- `429`: Too many requests were made in a given amount of time. Wait a short period and then try again.
- `500`: There is a problem with our server. Please try again later.
- `503`: The Codat API is temporarily offline for maintenance. Please try again later.

## Changes

- **2024-10-15** `adda03cdf761`: 1 info
  - added the new optional request property `apAccountRef`

[Operation history](https://skmtc.dev/codatio/apis/sync-for-expenses-v1/changes/companies/:companyId/sync/expenses/reimbursable-expense-transactions/:transactionId/put.md)

---

[API](https://skmtc.dev/codatio/apis/sync-for-expenses-v1.md) - [All operations](https://skmtc.dev/codatio/apis/sync-for-expenses-v1/llms.txt) - [OpenAPI document](https://skmtc.dev/codatio/apis/sync-for-expenses-v1/revisions/ca501f1fd9a0?raw)
