Skip to content

Update Quote

PATCH
/quotes/{quote_id}

Update a quote in place (PUT or PATCH — both accepted).

All fields are optional; only the ones you send change. Draft quotes edit directly. A sent / viewed quote is recalled to draft first (voiding its live signing link) while keeping the same row + quote number; terminal quotes (accepted/declined/voided/expired) reject the update.

owner_id reassigns the quote’s AE (a blank value is ignored — it never nulls an existing owner). billing_legal_name / billing_email / billing_primary_email / billing_address set the customer’s billing identity. Passing line_items replaces the entire line-item set (and re-runs quotable-product authorization). Totals recalculate automatically.

Authorizations

Parameters

Path Parameters

quote_id
required

Quote UUID

string

Quote UUID

Header Parameters

X-Target-Org-Id
Any of:
string

Request Body required

Partial update for a draft quote.

All fields optional. Passing line_items replaces them entirely (and re-runs quotable-product authorization). Quotes in any status other than draft reject updates with 400 — use edit-as-draft on a sent quote, or duplicate on a terminal one, to get a fresh editable copy.

object
accepted_payment_methods
Any of:
Array<string>
Allowed values: ach credit_card wire
billing_address
Any of:
string
<= 2000 characters
billing_contact_id
Any of:
integer
billing_email
Any of:
string
<= 255 characters
billing_legal_name
Any of:
string
<= 255 characters
billing_primary_email
Any of:
string
<= 255 characters
contract_duration_unit
Any of:
string
Allowed values: months weeks days
contract_duration_value
Any of:
number
>= 0.1 <= 3650
contract_end_date
Any of:
string
contract_months
Any of:
number
>= 0.1 <= 120
contract_start_date
Any of:
string
currency
Any of:
string
>= 3 characters <= 3 characters
deal_id
Any of:
string
line_items
Any of:
Array<object>
>= 1 items

One line item on a quote request body.

Shape mirrors integrations_v4.interfaces.fastapi.quote_router.LineItemDTO exactly. Pass either stripe_product_id + stripe_price_id (for a Stripe-catalogue product) or manual_product_id (for an org-owned manual catalogue entry), or neither (for a custom one-off line). Authorization is enforced server-side — non-quotable products are rejected with 400.

object
billing_frequency
Any of:
string
Allowed values: one_time month year quarter
billing_start_date
Any of:
string format: date
description
Any of:
string
<= 2000 characters
discount_pct
number
<= 100
manual_product_id
Any of:
string
product_name
required
string
>= 1 characters <= 255 characters
quantity
integer
default: 1 >= 1 <= 10000
sort_order
integer
start_month

Contract month when recurring billing begins; 1 means at contract start. Use billing_start_date instead for an exact date.

integer
default: 1 >= 1 <= 120
stripe_price_id
Any of:
string
stripe_product_id
Any of:
string
unit_amount
required

In cents

integer
<= 1000000000
marketing_rights
Any of:
Array<string>
Allowed values: logo quote case_study
mashup_company_id
Any of:
integer
notes
Any of:
string
<= 10000 characters
owner_id
Any of:
string
<= 255 characters
payment_terms
Any of:
string
Allowed values: due_on_receipt net_15 net_30 net_45 net_60 net_90
privacy_content
Any of:
string
<= 50000 characters
public_notes
Any of:
string
<= 50000 characters
signer_contact_id
Any of:
integer
signer_email
Any of:
string
<= 255 characters
signer_name
Any of:
string
<= 255 characters
tax_amount
Any of:
integer
<= 1000000000
terms_content
Any of:
string
<= 50000 characters
title
Any of:
string
>= 1 characters <= 500 characters
valid_until
Any of:
string

Responses

200

Successful Response

object
data
required

Full row + line items + activity + envelope from GET /quotes/{id}.

Open dict because _get_quote_detail returns the dynamic _row_to_dict shape plus resolved contact/company/envelope blocks.

object
activity
Any of:
Array<object>
object
key
additional properties
any
envelope
Any of:
object
key
additional properties
any
id
Any of:
string
line_items
Any of:
Array<object>
object
key
additional properties
any
quote_number
Any of:
string
status
Any of:
string
title
Any of:
string
key
additional properties
any
pagination
Any of:
object
has_next
required

Whether there are more pages

boolean
limit
required

Items per page

integer
next_cursor
Any of:
string
page
required

Current page number (1-indexed)

integer
total
required

Total number of items

integer

422

Validation Error

object
detail
Array<object>
object
loc
required
Array
msg
required
string
type
required
string