Generate a Quote

Creates an official quote record in DealHub, links it to a CRM opportunity, and initiates any required approval workflows based on your active CPQ version.

This is an asynchronous endpoint. When you send a request, the API provides an immediate response to confirm that the quote generation process has started. The full processing, including data synchronization with your CRM, happens in the background.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

Creates an official quote record in DealHub, links it to a CRM opportunity, and initiates any required approval workflows based on your active CPQ version.

This is an asynchronous endpoint. When you send a request, the API provides an immediate response to confirm that the quote generation process has started. The full processing, including data synchronization with your CRM, happens in the background.

📘

CRM API integration

When your DealHub tenant uses the CRM API integration type rather than a native connector such as Salesforce or HubSpot, providing only the external_opportunity_id is not sufficient. You must also include an opportunity_data object with the following required fields:

  • external_opportunity_name: the name of the CRM opportunity
  • opportunity_owner: object describing the owner; requires external_user_id, email, and name
  • external_customer_id: the CRM customer (account) ID
  • customer_name: the CRM customer name
  • geo_code: geographic code
  • currency: ISO currency code (immutable after the opportunity or quote is created)
    The opportunity_data object also accepts optional customer_shipping_address, customer_billing_address, and customer_contacts fields.
❗️

quote_data is required

The quote_data field is required and must always be present in the request body. If you do not have any line items to include, send it as an empty array "quote_data": [].

Omitting the quote_data field entirely will result in an error. Note that the auto-generated code example on this page may not include quote_data when no line item values are provided, but the field itself must still be present in your request.

Body Params
string
required
length ≤ 50

CRM opportunity ID.

string
enum
required

Specifies the action (draft, submit, publish, or sign).

Allowed:
string
enum
Defaults to basic

Determines the level of detail included in the response for line items.

Allowed:
string
length ≤ 50

The unique name of the playbook (not the display name). If not provided, the system uses the first API-type playbook.

string
length ≤ 250

Quote or proposal name.

string
length ≤ 250

DealRoom publish name.

number

Total discount for all line items. Overrides default line-item discounts if provided.

int64

Quote expiration date as a Unix timestamp (milliseconds, GMT).

string
enum
required

Specifies document type (e.g., DealRoom, PDF, WORD).

Allowed:
partner_program
array of objects

List of selected partner programs.

partner_program
number

Timezone offset from GMT in hours.

string
length ≤ 1000

Includes the necessary comments for external signing. It is required if request_action is sign_externally.

quote_data
array of objects
required
Defaults to []

List of question group data, including questions and answers.

quote_data*
line_items
array of objects

A list of line items and their associated data. The system only validates that the SKU for each item exists. All other provided details are accepted as-is, and any existing data for these line items will be overwritten.

line_items
opportunity_data
object

Opportunity context required for CRM API tenants. Must be provided when the DealHub tenant uses the CRM API integration type.

Responses

Language
Credentials
Bearer
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json