---
title: "Update a quote"
method: PUT
path: "/accounting/{connection_id}/quote/{id}"
tags: ["accounting", "quote"]
---

# Update a quote

`PUT /accounting/{connection_id}/quote/{id}`

## Request

- Base URL: `http://api.unified.to`
- URL: `http://api.unified.to/accounting/{connection_id}/quote/{id}`
- Auth: API key in header `authorization`

## Path parameters

- `connection_id` string, required
- `id` string, required

## Query parameters

- `fields` string[]
- `raw` string

## Request body

- AccountingQuote
  - `id` string
  - `created_at` string, date-time: (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
  - `updated_at` string, date-time: (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
  - `quote_number` string: External identifier for this quote (Xero QuoteNumber, QBO DocNumber, NetSuite tranId)
  - `reference` string: customer-side reference / PO number
  - `title` string: short title (Xero Title, max 100)
  - `summary` string: longer summary (Xero Summary, max 3000)
  - `payment_terms` 'ON_RECEIPT' | 'NET_7' | 'NET_10' | 'NET_15' | 'NET_20' | 'NET_25' | 'NET_30' | 'NET_45' | 'NET_60' | 'NET_90' | 'OTHER': unified payment terms enum, as on accounting_invoice / accounting_bill
  - `customer_message` string: customer-visible message
  - `memo` string: internal note, not customer-visible
  - `contact_id` string: (reference to AccountingContact)
  - `contacts` AccountingTransactionContact[]: denormalized parties, reusing the transaction contact shape
    - `id` string, required
    - `is_customer` boolean
    - `is_supplier` boolean
  - `issued_at` string, date-time: Xero Date, QBO TxnDate (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
  - `expires_at` string, date-time: Xero ExpiryDate, QBO ExpirationDate (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
  - `sent_at` string, date-time: (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
  - `accepted_at` string, date-time: (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
  - `declined_at` string, date-time: (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
  - `status` 'DRAFT' | 'SENT' | 'ACCEPTED' | 'DECLINED' | 'INVOICED' | 'EXPIRED' | 'VOIDED' | 'DELETED': where EXPIRED is derived (expires_at < now), the source status is preserved in raw
  - `currency` string
  - `currency_rate` number: exchange rate to the organization's base currency
  - `sub_total_amount` number
  - `tax_amount` number
  - `discount_amount` number
  - `total_amount` number
  - `tax_mode` 'INCLUSIVE' | 'EXCLUSIVE' | 'NONE': INCLUSIVE / EXCLUSIVE / NONE; maps Xero LineAmountTypes (a boolean cannot represent NoTax)
  - `lineitems` AccountingLineitem[]
    - `id` string
    - `created_at` string, date-time: (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
    - `updated_at` string, date-time: (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
    - `refunded_at` string, date-time: (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
    - `total_amount` number: unit_quantity * unit_amount + tax_amount
    - `refund_amount` number
    - `discount_amount` number
    - `tax_amount` number
    - `item_id` string: (reference to CommerceItem)
    - `unit_amount` number
    - `unit_quantity` number
    - `item_sku` string
    - `item_name` string
    - `item_description` string
    - `notes` string
    - `taxrate_id` string
    - `account_id` string: (reference to AccountingAccount)
    - `category_ids` string[]
    - `locations` AccountingReference[]
      - `id` string
      - `name` string
    - `item_variants` AccountingReference[]
      - `id` string
      - `name` string
    - `fees` AccountingFee[]
      - `type` 'TAX' | 'DISCOUNT' | 'PROMOTION' | 'SHIPPING' | 'GIFT_WRAP' | 'COD' | 'SURCHARGE' | 'TIP' | 'SERVICE_CHARGE' | 'OTHER', required: Unified fee category
      - `original_type` string: The provider's original fee label, e.g. "VAT" or a shipping carrier name
      - `amount` number, required
      - `currency` string: ISO 4217 currency code, e.g. USD
    - `contact_id` string: (reference to AccountingContact)
    - `project_id` string: ref -> AccountingProject; the project this line is coded to (reference to TaskProject)
    - `exchange_rate` number: The exchange rate applied to this line, for multi-currency documents
    - `is_billable` boolean: True when the line is rebillable to a customer
  - `invoice_id` string: populated once the quote is converted to an invoice; left null when the source cannot supply it (reference to AccountingInvoice)
  - `project_id` string: points to an AccountingProject (accounting costing project) (reference to TaskProject)
  - `group_id` string: points to a HRIS Group (reference to HrisGroup)
  - `category_ids` string[]: tracking categories / classes (AccountingCategory dimensions)
  - `url` string: public online-quote link where exposed
  - `organization_id` string
  - `metadata` AccountingMetadata[]
    - `id` string
    - `slug` string
    - `value` unknown
    - `namespace` string
    - `format` 'TEXT' | 'NUMBER' | 'DATE' | 'BOOLEAN' | 'FILE' | 'TEXTAREA' | 'SINGLE_SELECT' | 'MULTIPLE_SELECT' | 'MEASUREMENT' | 'PRICE' | 'YES_NO' | 'CURRENCY' | 'URL'
    - `extra_data` unknown
  - `raw` unknown

## Response `200`

Successful

- AccountingQuote
  - `id` string
  - `created_at` string, date-time: (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
  - `updated_at` string, date-time: (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
  - `quote_number` string: External identifier for this quote (Xero QuoteNumber, QBO DocNumber, NetSuite tranId)
  - `reference` string: customer-side reference / PO number
  - `title` string: short title (Xero Title, max 100)
  - `summary` string: longer summary (Xero Summary, max 3000)
  - `payment_terms` 'ON_RECEIPT' | 'NET_7' | 'NET_10' | 'NET_15' | 'NET_20' | 'NET_25' | 'NET_30' | 'NET_45' | 'NET_60' | 'NET_90' | 'OTHER': unified payment terms enum, as on accounting_invoice / accounting_bill
  - `customer_message` string: customer-visible message
  - `memo` string: internal note, not customer-visible
  - `contact_id` string: (reference to AccountingContact)
  - `contacts` AccountingTransactionContact[]: denormalized parties, reusing the transaction contact shape
    - `id` string, required
    - `is_customer` boolean
    - `is_supplier` boolean
  - `issued_at` string, date-time: Xero Date, QBO TxnDate (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
  - `expires_at` string, date-time: Xero ExpiryDate, QBO ExpirationDate (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
  - `sent_at` string, date-time: (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
  - `accepted_at` string, date-time: (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
  - `declined_at` string, date-time: (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
  - `status` 'DRAFT' | 'SENT' | 'ACCEPTED' | 'DECLINED' | 'INVOICED' | 'EXPIRED' | 'VOIDED' | 'DELETED': where EXPIRED is derived (expires_at < now), the source status is preserved in raw
  - `currency` string
  - `currency_rate` number: exchange rate to the organization's base currency
  - `sub_total_amount` number
  - `tax_amount` number
  - `discount_amount` number
  - `total_amount` number
  - `tax_mode` 'INCLUSIVE' | 'EXCLUSIVE' | 'NONE': INCLUSIVE / EXCLUSIVE / NONE; maps Xero LineAmountTypes (a boolean cannot represent NoTax)
  - `lineitems` AccountingLineitem[]
    - `id` string
    - `created_at` string, date-time: (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
    - `updated_at` string, date-time: (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
    - `refunded_at` string, date-time: (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
    - `total_amount` number: unit_quantity * unit_amount + tax_amount
    - `refund_amount` number
    - `discount_amount` number
    - `tax_amount` number
    - `item_id` string: (reference to CommerceItem)
    - `unit_amount` number
    - `unit_quantity` number
    - `item_sku` string
    - `item_name` string
    - `item_description` string
    - `notes` string
    - `taxrate_id` string
    - `account_id` string: (reference to AccountingAccount)
    - `category_ids` string[]
    - `locations` AccountingReference[]
      - `id` string
      - `name` string
    - `item_variants` AccountingReference[]
      - `id` string
      - `name` string
    - `fees` AccountingFee[]
      - `type` 'TAX' | 'DISCOUNT' | 'PROMOTION' | 'SHIPPING' | 'GIFT_WRAP' | 'COD' | 'SURCHARGE' | 'TIP' | 'SERVICE_CHARGE' | 'OTHER', required: Unified fee category
      - `original_type` string: The provider's original fee label, e.g. "VAT" or a shipping carrier name
      - `amount` number, required
      - `currency` string: ISO 4217 currency code, e.g. USD
    - `contact_id` string: (reference to AccountingContact)
    - `project_id` string: ref -> AccountingProject; the project this line is coded to (reference to TaskProject)
    - `exchange_rate` number: The exchange rate applied to this line, for multi-currency documents
    - `is_billable` boolean: True when the line is rebillable to a customer
  - `invoice_id` string: populated once the quote is converted to an invoice; left null when the source cannot supply it (reference to AccountingInvoice)
  - `project_id` string: points to an AccountingProject (accounting costing project) (reference to TaskProject)
  - `group_id` string: points to a HRIS Group (reference to HrisGroup)
  - `category_ids` string[]: tracking categories / classes (AccountingCategory dimensions)
  - `url` string: public online-quote link where exposed
  - `organization_id` string
  - `metadata` AccountingMetadata[]
    - `id` string
    - `slug` string
    - `value` unknown
    - `namespace` string
    - `format` 'TEXT' | 'NUMBER' | 'DATE' | 'BOOLEAN' | 'FILE' | 'TEXTAREA' | 'SINGLE_SELECT' | 'MULTIPLE_SELECT' | 'MEASUREMENT' | 'PRICE' | 'YES_NO' | 'CURRENCY' | 'URL'
    - `extra_data` unknown
  - `raw` unknown

---

[API](https://skmtc.dev/unified/apis/unified-to-api-2.md) · [All operations](https://skmtc.dev/unified/apis/unified-to-api-2/llms.txt) · [OpenAPI document](https://skmtc.dev/unified/apis/unified-to-api-2/revisions/7a38bdd7f089?raw)
