---
title: "Open Quote"
method: POST
path: "/api/v2/quote/open"
tags: ["CRM Integration"]
---

# Open Quote

`POST /api/v2/quote/open`

Retrieves a URL for an existing quote in DealHub. The user can then be redirected to this URL to view or edit the quote. This call can optionally update opportunity information for quotes in 'draft' status.

## Request body

- OpenQuoteRequest
  - `dealhub_user_id` string, required — ID of user in the DealHub system (as returned from Authentication request).
  - `dealhub_quote_id` string, required — DealHub quote ID.
  - `external_opportunity_id` string, required — CRM opportunity ID.
  - `opportunity_info` OpportunityInfo — A schema representing the data that can be sent to create or update an opportunity and its related quote.
    - `external_opportunity_name` string, required — CRM opportunity name.
    - `opportunity_owner` UserInformation — A list of fields required to create a user in DealHub.
      - `type` 'partner', required — The type of user, which must be 'partner'.
      - `user_id` string, required — The external ID of the user in the PRM system.
      - `login` string, required — Login of the user.
      - `email` string, email, required — The user's email to receive notifications.
      - `name` string, required — The user's first and last name.
      - `position` string — The user's position or job title.
      - `phone` string — The user's phone number.
      - `mobile` string — The user's mobile phone number.
      - `company` string — The user's company name.
      - `street` string — The user's street address.
      - `city` string — The user's city.
      - `state` string — The user's state or province.
      - `country` string — The user's country.
      - `postal_code` string — The user's postal code.
      - `profile_img` string, uri — A URL to the user's profile image.
    - `external_quote_id` string — CRM quote ID.
    - `external_customer_id` string, required — CRM customer ID (buyer account).
    - `customer_name` string, required — CRM customer name.
    - `customer_shipping_address` Address
      - `street` string — Street name.
      - `city` string — City name.
      - `state` string — State name.
      - `country` string — Country name.
      - `postal_code` string — Postal code.
    - `customer_billing_address` Address
      - `street` string — Street name.
      - `city` string — City name.
      - `state` string — State name.
      - `country` string — Country name.
      - `postal_code` string — Postal code.
    - `customer_contacts` Contact[] — List of customer contacts.
      - `salutation` string — Salutation (e.g., Mr., Ms.).
      - `first_name` string, required — First name of the contact.
      - `last_name` string, required — Last name of the contact.
      - `title` string — Job title of the contact.
      - `email` string, email, required — Primary email of the contact.
      - `phone` string — Phone number of the contact.
      - `account_name` string — Name of the contact's company.
      - `mailing_address` string — Postal address of the contact person.
      - `primary_contact` boolean — Flag indicating if this is the primary contact.
    - `geo_code` string, required — Geographic code.
    - `currency` string, required — The currency ISO code. This is immutable once an opportunity/quote is created.
    - `custom_fields` CustomField[] — A list of custom fields, where each object contains a key/value pair. This parameter supports the following data types: * `Numeric`: A single numeric value. An empty value will be treated as `0`. * `Text`: The value is captured and presented to the user exactly as received. The `value` field must be an array with a single string. * `Text list`: Can contain one or more values. This can be used in two modes: * Single-select: Only one value can be chosen from the list. * Multi-select: Multiple values from the list can be selected. * `UTC`: A date and time value. The format must be `yyyy-mm-dd`. An empty value will be treated as `NULL`.
      - `entries` object
      - `empty` boolean
    - `repeatable_groups` object[] — Used for subscription renewals. The system will attempt to render this data into the playbook; items that cannot be rendered will be ignored without error.
      - `group_id` string, required
      - `questions` object[], required

## Response `200`

Success. The response contains the URL for redirection.

- RedirectResponse
  - `url` string, uri — The URL to which the user's browser should be redirected.
  - `errors` object[]

## Other responses

- `400` — Bad Request.
- `403` — Unauthenticated.

---

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