---
title: "Updates an existing expense"
method: PUT
path: "/api/expense"
tags: ["Expense"]
---

# Updates an existing expense

`PUT /api/expense`

## Request body

- ExpenseDTODetail
  - `accountGuid` string, uuid, required — Used to set the reference in POST and PUT
  - `projectGuid` string, uuid, required — Used to set the reference in POST and PUT
  - `lastModifiedDate` string, date-time — 
  - `accountingAccountGuid` string, uuid — Used to set the reference in POST and PUTWhen creating an expense, this is used to reference the expense category. When creating an expense, this is used to reference the expense category.
  - `lastModifiedBy` UserRef
    - `guid` string, uuid
    - `displayName` string — 
    - `name` string — 
    - `timeZoneId` string
  - `userGuid` string, uuid — Used to set the reference in POST and PUTWhen creating or updating a time entry, this is used to associate a user with this time entry. When creating or updating a time entry, this is used to associate a user with this time entry.
  - `isDeleted` boolean — 
  - `isBillable` boolean, required — Set this to true to indicate this expense is billable to the client and should be added to an invoice.
  - `isBilled` boolean, required — Set this to true to indicate this expenses has already been billed to the client.
  - `hardCostPaymentMethod` 'Cash' | 'Check' | 'CreditCard' | 'PayPal' | 'AuthorizeNet' | 'Other' | 'Stripe' | 'Wire' | 'Transfer' | 'LawPay' | 'PantherPaymentsCC' | 'PantherPaymentsECheck' | 'JournalEntry'
  - `hardCostPaymentCheckNumber` integer
  - `hardCostPaymentBankAccountGuid` string, uuid — Used to set the reference in POST and PUT
  - `hardCostPaymentBankAccount` BankAccountRef
    - `guid` string, uuid
    - `name` string, required
    - `type` 'Operating' | 'Trust' | 'CreditCard'
    - `isArchived` boolean
  - `hardCostPaymentCheckPayeeGuid` string, uuid — Used to set the reference in POST and PUT
  - `hardCostPaymentCheckIsPrinted` boolean
  - `hardCostPaymentCheckIsToPrint` boolean
  - `hardCostPaymentChartOfAccountGuid` string, uuid — Used to set the reference in POST and PUT
  - `hardCostPaymentChartOfAccountName` string
  - `hardCostPaymentNotes` string
  - `hardCostPaymentGuid` string, uuid — Used to set the reference in POST and PUT
  - `utbmsCodeId` integer — When creating or updating a time entry, this is used to attach the UtbmsCode
  - `primaryReceiptGuid` string, uuid — Used to set the reference in POST and PUT
  - `isMatchedToBankTransaction` boolean
  - `account` AccountRef
    - `nameAndNumber` string — 
    - `guid` string, uuid
    - `utbmsIsEnabled` boolean
    - `id` integer
  - `accountTags` TagDTO[]
    - `name` string, required
  - `projectTags` TagDTO[]
    - `name` string, required
  - `accountingAccount` AccountingAccountRef
    - `guid` string, uuid
    - `name` string
    - `code` string
    - `chartOfAccountId` integer
  - `project` ProjectRef
    - `nameAndNumber` string — This is a read only property This is a read only property
    - `guid` string, uuid
    - `accountGuid` string, uuid — Used to set the reference in POST and PUT
    - `id` integer
  - `notes` string — Internal notes, Not visible on the invoice.
  - `description` string — Description, visible on the invoice.
  - `user` UserRef
    - `guid` string, uuid
    - `displayName` string — 
    - `name` string — 
    - `timeZoneId` string
  - `date` string, date-time, required — The date of this expense. It will be added to the invoice and indicated on the reports.
  - `amount` number, double, required — The amount, in the account's (contact) currency.
  - `qty` number, double, required
  - `totalAmount` number, double
  - `utbmsCode` UtbmsCodeRef
    - `name` string
    - `code` string
  - `createdDate` string, date-time — 
  - `createdBy` UserRef
    - `guid` string, uuid
    - `displayName` string — 
    - `name` string — 
    - `timeZoneId` string
  - `primaryReceipt` BlobRef
    - `guid` string, uuid
    - `name` string
  - `status` 'Billable' | 'Billed' | 'Paid' | 'NotBillable' — This is a read only property, will be set on GET requests This is a read only property, will be set on GET requests
  - `costType` 'SoftCost' | 'HardCost' — Hard costs are expenses incurred on behalf of a client that require a direct payment by the firm to a vendor. For example if a firm writes a check for a court filing fee, it is considered a hard cost. Soft costs are expenses that are charged to the client but a direct payment is not made to a vendor.
  - `saleDocumentItem` SaleDocumentItemRefWithSaleDocumentRef
    - `saleDocument` SaleDocumentRef
      - `guid` string, uuid
      - `number` integer
      - `name` string — 
      - `type` 'Invoice' | 'Quote' — Indicates if this sale document is an Invoice or a Quote
      - `invoiceType` 'Sale' | 'Refund' | 'Credit' — If this sale document is of type 'invoice', will indicate if this is a sale, refund or credit invoice.
      - `date` string, date-time, required — The issue date for this invoice / quote.
    - `guid` string, uuid
    - `name` string
  - `guid` string, uuid
  - `name` string — 

## Response `200`

OK

- ExpenseDTODetail
  - `accountGuid` string, uuid, required — Used to set the reference in POST and PUT
  - `projectGuid` string, uuid, required — Used to set the reference in POST and PUT
  - `lastModifiedDate` string, date-time — 
  - `accountingAccountGuid` string, uuid — Used to set the reference in POST and PUTWhen creating an expense, this is used to reference the expense category. When creating an expense, this is used to reference the expense category.
  - `lastModifiedBy` UserRef
    - `guid` string, uuid
    - `displayName` string — 
    - `name` string — 
    - `timeZoneId` string
  - `userGuid` string, uuid — Used to set the reference in POST and PUTWhen creating or updating a time entry, this is used to associate a user with this time entry. When creating or updating a time entry, this is used to associate a user with this time entry.
  - `isDeleted` boolean — 
  - `isBillable` boolean, required — Set this to true to indicate this expense is billable to the client and should be added to an invoice.
  - `isBilled` boolean, required — Set this to true to indicate this expenses has already been billed to the client.
  - `hardCostPaymentMethod` 'Cash' | 'Check' | 'CreditCard' | 'PayPal' | 'AuthorizeNet' | 'Other' | 'Stripe' | 'Wire' | 'Transfer' | 'LawPay' | 'PantherPaymentsCC' | 'PantherPaymentsECheck' | 'JournalEntry'
  - `hardCostPaymentCheckNumber` integer
  - `hardCostPaymentBankAccountGuid` string, uuid — Used to set the reference in POST and PUT
  - `hardCostPaymentBankAccount` BankAccountRef
    - `guid` string, uuid
    - `name` string, required
    - `type` 'Operating' | 'Trust' | 'CreditCard'
    - `isArchived` boolean
  - `hardCostPaymentCheckPayeeGuid` string, uuid — Used to set the reference in POST and PUT
  - `hardCostPaymentCheckIsPrinted` boolean
  - `hardCostPaymentCheckIsToPrint` boolean
  - `hardCostPaymentChartOfAccountGuid` string, uuid — Used to set the reference in POST and PUT
  - `hardCostPaymentChartOfAccountName` string
  - `hardCostPaymentNotes` string
  - `hardCostPaymentGuid` string, uuid — Used to set the reference in POST and PUT
  - `utbmsCodeId` integer — When creating or updating a time entry, this is used to attach the UtbmsCode
  - `primaryReceiptGuid` string, uuid — Used to set the reference in POST and PUT
  - `isMatchedToBankTransaction` boolean
  - `account` AccountRef
    - `nameAndNumber` string — 
    - `guid` string, uuid
    - `utbmsIsEnabled` boolean
    - `id` integer
  - `accountTags` TagDTO[]
    - `name` string, required
  - `projectTags` TagDTO[]
    - `name` string, required
  - `accountingAccount` AccountingAccountRef
    - `guid` string, uuid
    - `name` string
    - `code` string
    - `chartOfAccountId` integer
  - `project` ProjectRef
    - `nameAndNumber` string — This is a read only property This is a read only property
    - `guid` string, uuid
    - `accountGuid` string, uuid — Used to set the reference in POST and PUT
    - `id` integer
  - `notes` string — Internal notes, Not visible on the invoice.
  - `description` string — Description, visible on the invoice.
  - `user` UserRef
    - `guid` string, uuid
    - `displayName` string — 
    - `name` string — 
    - `timeZoneId` string
  - `date` string, date-time, required — The date of this expense. It will be added to the invoice and indicated on the reports.
  - `amount` number, double, required — The amount, in the account's (contact) currency.
  - `qty` number, double, required
  - `totalAmount` number, double
  - `utbmsCode` UtbmsCodeRef
    - `name` string
    - `code` string
  - `createdDate` string, date-time — 
  - `createdBy` UserRef
    - `guid` string, uuid
    - `displayName` string — 
    - `name` string — 
    - `timeZoneId` string
  - `primaryReceipt` BlobRef
    - `guid` string, uuid
    - `name` string
  - `status` 'Billable' | 'Billed' | 'Paid' | 'NotBillable' — This is a read only property, will be set on GET requests This is a read only property, will be set on GET requests
  - `costType` 'SoftCost' | 'HardCost' — Hard costs are expenses incurred on behalf of a client that require a direct payment by the firm to a vendor. For example if a firm writes a check for a court filing fee, it is considered a hard cost. Soft costs are expenses that are charged to the client but a direct payment is not made to a vendor.
  - `saleDocumentItem` SaleDocumentItemRefWithSaleDocumentRef
    - `saleDocument` SaleDocumentRef
      - `guid` string, uuid
      - `number` integer
      - `name` string — 
      - `type` 'Invoice' | 'Quote' — Indicates if this sale document is an Invoice or a Quote
      - `invoiceType` 'Sale' | 'Refund' | 'Credit' — If this sale document is of type 'invoice', will indicate if this is a sale, refund or credit invoice.
      - `date` string, date-time, required — The issue date for this invoice / quote.
    - `guid` string, uuid
    - `name` string
  - `guid` string, uuid
  - `name` string — 

---

[API](https://skmtc.net/practicepanther/apis/legacy-api-v1.md) · [All operations](https://skmtc.net/practicepanther/apis/legacy-api-v1/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/practicepanther/legacy-api-v1/revisions/a444c5b1e78b/schema)
