Skip to main content
PATCH
/
v1
/
quotes
/
{id}
Update quote
curl --request PATCH \
  --url https://api.hyperline.co/v1/quotes/{id} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: multipart/form-data' \
  --form owner_email=joe@acme.com \
  --form 'comments=Please find the contract and subscription details we discussed.' \
  --form 'terms=By signing this quote, you accept our conditions of use for the use of our products and services.' \
  --form amount=20000 \
  --form collect_payment_details=true \
  --form require_tax_id=false \
  --form display_quote_value=true \
  --form display_quote_value_with_tax=false \
  --form display_taxes=true \
  --form display_price_tiers=matching \
  --form display_phase_value=false \
  --form display_first_invoice_amount=false \
  --form display_documents_in_preview=false \
  --form display_subscription_on_update=false \
  --form expires_at=2024-04-28T14:12:09.293Z \
  --form 'subscription={
  "phases": [
    {
      "end_strategy": "duration",
      "billing_date_setting": "phase_start",
      "products": [
        {
          "id": "itm_FJKlqUb8COXw55",
          "name": "Product name",
          "description": "A description of the product.",
          "description_display_interval_dates": false,
          "payment_interval": {
            "period": "once"
          },
          "payment_schedule": "start",
          "price": {
            "type": "fee",
            "amount": 200
          },
          "prices": [
            {
              "type": "volume",
              "from": 0,
              "to": 20,
              "amount": 200,
              "unit_count": 1,
              "on_tier_incomplete": null
            },
            {
              "type": "volume",
              "from": 20,
              "to": null,
              "amount": 150,
              "unit_count": 1,
              "on_tier_incomplete": null
            }
          ],
          "count": 2,
          "unit_name": "user",
          "min_committed_count": 2,
          "min_amount": 123,
          "max_amount": 123,
          "bill_usage_difference": false,
          "credits_expiration_in_days": 123,
          "expire_credits_at_end_of_period": false
        }
      ],
      "activation_strategy": "manual",
      "name": "Name of the subscription phase.",
      "type": "standard",
      "status": "pending",
      "order": 0,
      "duration": {
        "count": 1,
        "period": "years"
      },
      "initial_billing_at": "2024-12-20T16:04:11Z",
      "starts_at": "2024-12-20T16:04:11Z",
      "ends_at": "2024-12-20T16:04:11Z",
      "billing_cycle_alignment": "anniversary",
      "do_not_invoice_phase": false,
      "transition_calculation_method": "prorata",
      "transition_invoicing_schedule": "immediately",
      "coupons": [
        {
          "id": "<string>",
          "duration_count": 123,
          "expires_at": "2024-12-20T16:04:11Z",
          "apply_at": "2024-12-20T16:04:11Z",
          "product_ids": [
            "<string>"
          ]
        }
      ]
    }
  ],
  "name": "<string>",
  "purchase_order": "<string>",
  "invoicing_entity_id": "ive_jerrb484RHn",
  "crm_opportunity_id": "<string>",
  "commitment_interval": {
    "period": "years",
    "count": 1
  },
  "renew_automatically": true,
  "renew_for": {
    "period": "years",
    "count": 1
  },
  "minimum_invoice_fee": 250,
  "starts_at": "2024-12-20T16:04:11Z",
  "contract_start": "2024-01-15T00:00:00Z",
  "contract_end": "2025-01-15T00:00:00Z",
  "initial_billing_at": "2024-12-20T16:04:11Z",
  "display_shipping_details": true,
  "cancel_at": "2024-12-20T16:04:11Z",
  "cancellation_amount": 123,
  "properties": {},
  "custom_properties": {},
  "tax_only": true,
  "generate_draft_invoices": true,
  "generate_document": true,
  "document_name": "<string>",
  "add_tax_to_document": true,
  "do_not_charge_subscription": true,
  "invoice_custom_note": "<string>",
  "plan_id": "plan_zHmjoDee4ZRmQV",
  "template_id": "subt_7gdusOkqr5L0B8",
  "template_configuration_id": "subtc_7mHWOlPStUogvp"
}'
{
  "id": "quo_hXQCd5y8P3GYXa",
  "customer_id": "cus_QalW2vTAdkR6IY",
  "invoicing_entity_id": "ive_47484fjdhy5",
  "template_id": "quot_9hNWq4c84Z146W",
  "crm_opportunity_id": null,
  "number": "327",
  "comments": "Please find the contract and subscription details we discussed.",
  "terms": "By signing this quote, you accept our conditions of use for the use of our products and services.",
  "owner_email": "joe@acme.com",
  "collect_payment_details": true,
  "collect_custom_property_ids": [],
  "require_tax_id": false,
  "display_quote_value": true,
  "display_quote_value_with_tax": false,
  "display_taxes": true,
  "display_price_tiers": "matching",
  "display_phase_value": false,
  "display_first_invoice_amount": false,
  "display_documents_in_preview": false,
  "display_subscription_on_update": false,
  "post_signature_activation_enabled": true,
  "attachments": [
    {
      "id": "quof_5GYXy8P3QCdaXh",
      "name": "General Conditions of Sale",
      "mimetype": "application/pdf"
    }
  ],
  "signed_file": null,
  "url": "https://billing.hyperline.co/quote/quo_hXQCd5y8P3GYXa",
  "created_at": "2024-04-23T09:10:00.220Z",
  "updated_at": "2024-04-23T10:22:08.100Z",
  "status": "draft",
  "amount": 200000,
  "expires_at": null,
  "type": "subscription",
  "subscription_id": "sub_B6ClkdqNqVNBgY",
  "child_subscription_ids": [
    "sub_0z39oqdhKl0PXb"
  ]
}

Documentation Index

Fetch the complete documentation index at: https://docs.hyperline.co/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

id
string
required

Body

multipart/form-data

Update quote payload.

This endpoint updates quote-level fields before a quote is finalized. On draft quotes, pass subscription to create or replace the draft subscription configuration attached to the quote. The subscription payload uses the same shape as quote creation and works whether or not the draft quote already has a subscription_id.

Draft quote subscription configuration must be updated through this endpoint, not PUT /v2/subscriptions/{subscription_id}. Keep phase and contract activation strategies compatible with the quote signature flow, such as quote_signature for phases that start on quote signature. Do not switch the quote flow to checkout, because checkout activation is a separate flow and requires a checkout session.

owner_email
string<email>

Email address of the Hyperline user acting as the quote owner.

Example:

"joe@acme.com"

comments
string | null

Custom comments displayed on the quote.

Example:

"Please find the contract and subscription details we discussed."

terms
string | null

Custom quotation terms.

Example:

"By signing this quote, you accept our conditions of use for the use of our products and services."

amount
number | null

Estimated contract value. Set to null to clear the manually set value.

Example:

20000

collect_payment_details

Collect customer payment method mandate during signature flow or not.

Example:

true

collect_custom_property_ids
string[]

IDs of the customer custom properties required to be filled during the signature flow.

Example:
[]
require_tax_id

Require the customer to provide a tax ID during the signature flow.

Example:

false

display_quote_value

Display the total quote value on the quote.

Example:

true

display_quote_value_with_tax

Display the total quote value including tax on the quote. Only applies to one_off quotes.

Example:

false

display_taxes

Display tax breakdown on the quote.

Example:

true

display_price_tiers

Controls which price tiers are displayed on the quote.

  • all: Display all pricing tiers.
  • matching: Only display the tiers used to compute the price based on quantity.
  • none: Hide all pricing tiers.
Available options:
all,
matching,
none
Example:

"matching"

display_phase_value

Display per-phase value breakdown on the quote.

Example:

false

display_first_invoice_amount

Display the first invoice amount on the quote.

Example:

false

display_documents_in_preview

Display attached documents in the quote preview.

Example:

false

display_subscription_on_update

Display subscription details on subscription update quotes.

Example:

false

expires_at
string<date-time> | null

Quote expiration date. UTC date time string in the ISO 8601 format. Set to null to clear the expiration.

Example:

"2024-04-28T14:12:09.293Z"

subscription
With phases · object

Subscription configuration constituting the quote. When provided on a draft quote, it creates or replaces the draft subscription attached to the quote.

Response

id
string
required

Quote ID.

Example:

"quo_hXQCd5y8P3GYXa"

customer_id
string
required

ID of the customer.

Example:

"cus_QalW2vTAdkR6IY"

invoicing_entity_id
string
required

ID of the invoicing entity attached to the quote.

Example:

"ive_47484fjdhy5"

template_id
string | null
required

ID of the quote template.

Example:

"quot_9hNWq4c84Z146W"

crm_opportunity_id
string | null
required

ID of the related opportunity/deal in the connected CRM.

Example:

null

number
string
required

Quote sequential number.

Example:

"327"

comments
string | null
required

Custom comments displayed on the quote.

Example:

"Please find the contract and subscription details we discussed."

terms
string | null
required

Custom quotation terms.

Example:

"By signing this quote, you accept our conditions of use for the use of our products and services."

owner_email
string<email> | null
required

Email address of the Hyperline user acting as the quote owner.

Example:

"joe@acme.com"

collect_payment_details
boolean
required

Collect customer payment method mandate during signature flow or not.

Example:

true

collect_custom_property_ids
string[]
required

IDs of the customer custom properties required to be filled during the signature flow.

Example:
[]
require_tax_id
boolean
required

Require the customer to provide a tax ID during the signature flow.

Example:

false

display_quote_value
boolean
required

Display the total quote value on the quote.

Example:

true

display_quote_value_with_tax
boolean
required

Display the total quote value including tax on the quote. Only applies to one_off quotes.

Example:

false

display_taxes
boolean
required

Display tax breakdown on the quote.

Example:

true

display_price_tiers
enum<string>
required

Controls which price tiers are displayed on the quote.

  • all: Display all pricing tiers.
  • matching: Only display the tiers used to compute the price based on quantity.
  • none: Hide all pricing tiers.
Available options:
all,
matching,
none
Example:

"matching"

display_phase_value
boolean
required

Display per-phase value breakdown on the quote.

Example:

false

display_first_invoice_amount
boolean
required

Display the first invoice amount on the quote.

Example:

false

display_documents_in_preview
boolean
required

Display attached documents in the quote preview.

Example:

false

display_subscription_on_update
boolean
required

Display subscription details on subscription update quotes.

Example:

false

post_signature_activation_enabled
boolean
required

Whether the subscription is automatically orchestrated after the quote is signed. Only applies to the Hyperline CPQ-only product.

Example:

true

attachments
object[]
required

List of documents attached to the quote.

Example:
[
{
"id": "quof_5GYXy8P3QCdaXh",
"name": "General Conditions of Sale",
"mimetype": "application/pdf"
}
]
signed_file
object
required

Final signed quote (manually uploaded).

Example:

null

url
string<uri> | null
required

URL to access the quote publicly. Only applies to the pending_signature or signed quote.

Example:

"https://billing.hyperline.co/quote/quo_hXQCd5y8P3GYXa"

created_at
string<date-time>
required

Quote creation date. UTC date time string in the ISO 8601 format.

Example:

"2024-04-23T09:10:00.220Z"

updated_at
string<date-time>
required

Quote update date. UTC date time string in the ISO 8601 format.

Example:

"2024-04-23T10:22:08.100Z"

status
enum<string>
required

Quote status.

  • draft: The quote is a draft.
  • pending_approval: The quote is pending manager review and approval.
  • changes_requested: Some changes have been requested following manager review.
  • approved: The quote is approved and ready to be sent to the customer.
  • pending_signature: The quote is awaiting the customer's signature.
  • signed: The quote is signed and fully finalized.
  • voided: The quote is voided.
Available options:
draft
Example:

"draft"

amount
number | null
required

Estimated contract value.

Example:

200000

expires_at
string<date-time> | null
required

Quote expiration date. UTC date time string in the ISO 8601 format.

Example:

null

type
enum<string>
required

Quote type.

  • subscription: The quote will create and start a new subscription.
  • subscription_update: The quote will update an existing subscription.
  • one_off: The quote will issue an one-off invoice.
Available options:
subscription,
subscription_update
Example:

"subscription"

subscription_id
string | null
required

ID of the subscription attached to the quote. It corresponds to the state at the time of the quote signature. Only applies to the subscription and subscription_update quote types. The get subscription endpoint (GET /v2/subscriptions/{id}) can be used to retrieve the related details.

Example:

"sub_B6ClkdqNqVNBgY"

child_subscription_ids
string[]
required

IDs of the created subscriptions from the quote. Subscriptions configuration can change after the quote signature. The get subscription endpoint (GET /v2/subscriptions/{id}) can be used to retrieve the related details.

Example:
["sub_0z39oqdhKl0PXb"]