---
title: "Updates an existing estimate. Only fields listed in the FieldsToUpdate array will be modified. When LineItems is included in FieldsToUpdate, all existing line items not present in the array are deleted."
method: PUT
path: "/api/Estimate"
tags: ["Estimate"]
---

# Updates an existing estimate. Only fields listed in the FieldsToUpdate array will be modified. When LineItems is included in FieldsToUpdate, all existing line items not present in the array are deleted.

`PUT /api/Estimate`

Estimates with a status of Accepted, Converted or Void cannot be updated.

## Request body

- UpdatedEstimate — Request model for updating an existing estimate. Only fields in FieldsToUpdate are modified. When LineItems is included, existing lines not in the array are deleted.
  - `FieldsToUpdate` string[], required — Required: The collection of Field Names you wish to update. Possible Values: EstimateNumber, CustomerPONumber, DateIssued, DueDate, Subject, Notes, EstimateTaxConfigCode, ExchangeRate, InvoiceTemplateIDFK, LineItems
  - `EstimateID` integer, required — The ID of the Estimate to update
  - `EstimateNumber` string — Pass a string or integer. Must remain unique within the account. Max 30 characters.
  - `CustomerPONumber` string — Plain UTF8 text. 100 characters max
  - `DateIssued` string, date-time — The Date the Estimate is issued. Date should be specified as local date.
  - `DueDate` string, date-time — The Expiry Date of the Estimate. Must be greater than or equal to the Issue Date. Pass null to clear the Expiry Date.
  - `Subject` string — Estimate Subject in plain UTF8 text. (no HTML). 255 characters max
  - `Notes` string — Estimate Notes in plain UTF8 text. (no HTML). Max 2000 characters
  - `EstimateTaxConfigCode` string — Possible values are (EX --- Tax Exclusive, INC --- Tax Inclusive). Changing this triggers recalculation of tax on all line items.
  - `ExchangeRate` number, double — Exchange rate is only valid for estimates in currency other than default account currency.
  - `InvoiceTemplateIDFK` integer — An id for an invoice template in the account.
  - `LineItems` UpdatedEstimateLineItem[] — When "LineItems" is included in FieldsToUpdate: items with a matching EstimateLineItemID are updated, items without an EstimateLineItemID are added, and existing line items not present in this collection are deleted.
    - `EstimateLineItemID` integer — Optional ID of an existing EstimateLineItem that should be retained and updated. Leave blank (or 0) to add a new line item.
    - `InventoryItemIDFK` integer, required — The ID of the InventoryItem this line item is linked to. Must belong to your account.
    - `Description` string — Plain UTF8 text. (no HTML). 5000 characters max
    - `Quantity` number, double, required — The quantity for the line item
    - `UnitPrice` number, double, required — The unit price for the lineitem.
    - `TaxIDFK` integer, required — Must match an existing Tax ID in your account.
    - `Discount` number, double — Enter 10.5 to give a 10.5% discount
  - `SendWebhooks` boolean — If true, fires the estimate_updated webhook event to any subscribed endpoints. Defaults to false to preserve existing integration behaviour.

## Response `200`

Returns the updated estimate details.

- EstimateDetails — An estimate (quote) including line items, status, amounts, and issuer/recipient details.
  - `EstimateID` integer — Unique identifier for the estimate.
  - `AccountIDFK` integer — The Avaza account this estimate belongs to.
  - `EstimatePrefix` string — Prefix used in the estimate number.
  - `EstimateItemNumber` string — The estimate number (without prefix).
  - `CompanyIDFK` integer — The customer company ID this estimate is for.
  - `CompanyName` string — Name of the customer company.
  - `Subject` string — Subject line for the estimate.
  - `DateIssued` string, date-time — Date the estimate was created/issued.
  - `DateSent` string, date-time — Date the estimate was sent to the customer.
  - `DueDate` string, date-time — Expiry date for the estimate.
  - `EstimateStatusCode` string — Current status. Values: Draft, Sent, Accepted, Converted, Expired, Rejected.
  - `TaxAmount` number, double — Total tax amount across all line items.
  - `EstimateTaxConfigCode` string — Tax configuration: 'EX' (exclusive) or 'INC' (inclusive).
  - `Balance` number, double — Remaining balance on the estimate.
  - `CurrencyCode` string — ISO 3-character currency code for the estimate.
  - `TotalAmount` number, double — Total estimate amount including tax.
  - `ExchangeRate` number, double — Exchange rate to the account's base currency.
  - `Notes` string — Additional notes on the estimate.
  - `DateCreated` string, date-time — Date and time the record was created.
  - `DateUpdated` string, date-time — Date and time the record was last updated.
  - `LineItems` EstimateLineItemDetails[] — Line items on this estimate.
    - `EstimateLineItemID` integer — Unique identifier for the estimate line item.
    - `InventoryItemIDFK` integer — The inventory/product item ID for this line item.
    - `InventoryItemName` string — Name of the inventory/product item.
    - `InventoryItemSKU` string — Stock Keeping Unit code for the inventory item.
    - `Description` string — Text description for the line item.
    - `Quantity` number, double — Quantity of items on this line.
    - `UnitPrice` number, double — Price per unit for this line item.
    - `TaxAmount` number, double — Calculated tax amount on this line item.
    - `TaxIDFK` integer — The tax rate ID applied to this line item.
    - `TaxCode` string — Short code for the applied tax rate.
    - `TaxName` string — Name of the applied tax rate.
    - `Amount` number, double — Calculated line total (Quantity x UnitPrice less Discount).
    - `Discount` number, double — Discount percentage applied to this line item.
  - `Links` EstimateLinks — URLs for client-facing view, internal view, and editing an estimate in Avaza.
    - `ClientView` string — URL for the customer to view the estimate online.
    - `View` string — URL for viewing the estimate in the Avaza application.
    - `Edit` string — URL for editing the estimate in the Avaza application.
  - `Issuer` IssuerDetails — Billing address and tax details for the Avaza account (the party issuing an invoice or estimate).
    - `BillingAddress` string — Formatted multi-line billing address.
    - `BillingAddressLine` string — Street address line of the billing address.
    - `BillingAddressCity` string — City/suburb of the billing address.
    - `BillingAddressState` string — State/province of the billing address.
    - `BillingAddressPostCode` string — Postal/ZIP code of the billing address.
    - `BillingCountryCode` string — ISO 3166-1 alpha-2 country code of the billing address.
    - `TaxNumber` string — Tax registration number (e.g. VAT number, ABN, EIN).
  - `Recipient` RecipientDetails — Billing address details for the customer receiving an invoice or estimate.
    - `CompanyIDFK` integer — The customer company ID.
    - `CompanyName` string — Name of the customer company.
    - `RecipientFormattedBillingAddress` string — Pre-formatted multi-line billing address for the recipient.
    - `RecipientBillingAddressLine` string — Street address line for the recipient.
    - `RecipientBillingAddressCity` string — City/suburb for the recipient.
    - `RecipientBillingAddressState` string — State/province for the recipient.
    - `RecipientBillingAddressPostCode` string — Postal/ZIP code for the recipient.
    - `RecipientBillingAddressCountryCode` string — ISO country code for the recipient.

## Other responses

- `401` — Unauthorized

---

[API](https://skmtc.net/avaza/apis/avaza-api-documentation.md) · [All operations](https://skmtc.net/avaza/apis/avaza-api-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/avaza/avaza-api-documentation/versions/1eeadf750514/schema)
