Error Reference

This page provides a reference for the HTTP error codes and associated messages you may encounter while using the DealHub APIs. The errors are organized into common errors that apply across multiple APIs and errors that are specific to a single API.

📘

V1 Endpoints

This page provides error references for the V2 endpoints, such as GET /api/v2/quote/{id} and GET /api/v2/quotes. For errors related to V1 endpoints, please see the V1 Error Reference.

🚧

Placeholders in Error Messages

Error messages often contain placeholders (e.g., <PARAM_NAME>, <entity_id>, <MAX_LENGTH>, [SKU]) that are replaced dynamically with specific values in the actual response.

📘

Asynchronous Errors

Failures for asynchronous operations, such as activating a new version or uploading products, are sent via Failure WebHooks.

Common Errors

These errors can be returned by multiple APIs and typically indicate an issue with the request's format, content, or authentication.

Payload and Validation

HTTP codeWhen it occursError Message
400The request payload is not in a valid JSON format.Invalid payload format. [cite_start]Supported format: JSON
400A field in the request body exceeds its allowed character limit.The request parameter <PARAM_NAME> exceeds its limits. [cite_start]Allowed maximum length: <MAX_LENGTH>
400A required field is missing from the request body.Request payload missing mandatory field(s): <field1>, <field2>
400The request includes a parameter that is not recognized.Unrecognized parameter: <PARAM_NAME>
400A parameter is sent with a value that is not supported or invalid.<PARAMETER_NAME> - Invalid parameter value. Valid value(s): <VALID_VALUES>

Authentication

HTTP codeWhen it occursError Message
403The Authorization token is missing, invalid, or does not match the user.Unauthenticated

Entity Not Found

HTTP codeWhen it occursError Message
400The requested entity ID (e.g., for a quote, user, or opportunity) does not exist in DealHub.Entity (ID = <entity_id>) not found

API-Specific Errors

The following errors are unique to specific APIs.

Version API

These errors occur when managing Versions, Product Catalogs, and Hierarchies.

Version Management

HTTP CodeWhen it occursError Message
400Mismatch between domain name of the source version account and target version account during duplication.The domain name of the source version account does not match the target version account
400A request is made to activate a version that is already active.Version (id= <version_id>) already active.
400The name provided for a new version is not unique.A new version name should be unique. [cite_start]Please change the name and try again.
400An operation was attempted on a version with an invalid status (e.g., modifying an Active version).Specified version cannot be modified: Invalid version status.
400A request was made to fetch 'MODIFIED' products for a version in 'DRAFT' status.'MODIFIED' products option is not available for version in 'DRAFT' status. [cite_start]Fetch 'ALL' products instead.
400No version ID was provided, and the system could not find an 'ACTIVE' version to use as default.Could not find the 'ACTIVE' version.

Product Hierarchy & Catalog

HTTP CodeWhen it occursError Message
400Specific SKUs requested by the consumer were not found in the version.The following SKUs not found: <LIST_OF_SKUS>
400The number of SKUs in a fetch request exceeds the allowed limit.The number of requested items exceeds the allowed limit of <MAX_LIMIT>.
400The SKU provided in a hierarchy update does not exist in the product list.The SKU [SKU] at [path] does not exist in the products list. [cite_start]Please add the SKU...
400A SKU or Label name field is empty.Invalid data found at [path], SKU/ Label name field cannot be empty.
400The type field is invalid or empty (must be PRODUCT, LABEL, or BUNDLE).The field type is invalid / The field type is not defined.
400A label name exceeds the character limit (50 chars).A label name cannot exceed 50 characters.
400A SKU exceeds the character limit (200 chars).A SKU cannot exceed 200 characters.
400A label name contains invalid characters.The label name contains invalid characters.
400Structure: A label exists without any children (products/bundles).Label [name] is set without any related products.
400Structure: A label is mandatory but has no mandatory child products.Label [name] is a mandatory label without any mandatory products.
400Structure: An alternative item does not have at least one peer option at the same level.[Item NAME] has incomplete configuration. [cite_start]Please ensure there is at least one more alternative at the same level...
400Structure: Mismatch in mandatory/alternative settings among peer items.For [name], you have an alternative option in this level, and one is set as mandatory. [cite_start]Please set all fields as both mandatory and alternative.
400Validation: mandatory or alternative fields are empty or invalid.The item "[name]" has an empty/invalid mandatory or alternative field.
400The hierarchy exceeds the maximum depth of 10 levels.You have reached the maximum limit of 10 levels that can be added.
400The hierarchy exceeds the maximum item limit (50,000).You can only add a maximum of 50,000 products or labels to the product hierarchy.
400Delete: Attempt to delete a product that has children.Unable to delete product [SKU] that has related product/s in the product hierarchy.
400Delete: Attempt to delete a product marked as Mandatory or Alternative.Unable to delete product [SKU] that was set as [mandatory/alternative] in the product hierarchy.

Actions API

The following errors are specific to the Actions API and may occur when performing submit, publish, or sign externally actions on quotes.

HTTP CodeWhen it occursError Message
400The quote cannot be submitted due to failing submit validation.Submission failed: The quote did not pass submit validation requirements.
400The quote cannot be published due to failing submit validation.Publish quote failed: The quote did not meet submit validation requirements.
400The quote was created but cannot be signed due to failing submit validation.Sign externally failed: The quote did not pass submit validation requirements.
400The quote cannot be published due to a required approval.Publish quote failed: Approval is required before the quote can be published.
400The quote cannot be signed due to a required approval.Sign externally pending: Approval is required before the quote can be signed.
400The quote cannot be submitted because it has already been submitted.Submission failed: The quote has already been submitted.
400The quote cannot be published; the quote document type is not DealRoom.Publish quote failed: The quote's document type must be 'DealRoom' to proceed.
400The quote cannot be published because it has already been published.Publish quote failed: The quote has already been published.
400The quote cannot be published because its status is 'Draft'; it must be submitted first.Publish quote failed: The quote is in 'Draft' status and must be submitted first.
400The quote cannot be signed because it has already been signed.Sign externally failed: The quote has already been signed.
400The quote cannot be signed externally.Sign externally failed: The request cannot be processed.
400Failed to sign externally; the quote is partially signed.Sign externally failed: The quote is currently in the signing process and cannot be signed externally at this stage.
400Failed to sign externally; DealRoom has an active redline.Sign externally failed: The DealRoom is in the redlining process. External signing is only allowed after redlining is completed.
400Failed to submit; the draft quote requires an update before submission.Submission failed: The draft quote requires updates before it can be submitted. Complete updates via the DealHub UI.
400Failed to sign externally; Because a published quote has already existed in the opportunity.Sign externally failed: There is already another published quote's document type 'DealRoom' in the opportunity. Published the quote to sign it externally.
400Failed to sign the quote externally; The quote failed to sync.Sign quote externally failed: The quote failed to sync.
400Failed to sign the quote externally; The quote status is draft.Sign quote externally failed: The quote is in a draft status.
400Failed to sign the quote externally; The option to multi-sign externally is on and the quote needs to be published to sign it externally.Sign quote externally failed: There is already a signed quote under the opportunity. The quote needs to be published first.

Quote API

HTTP CodeWhen it occursError Message
400A document is requested for a quote that is still in Draft status.Cannot retrieve the document for the quote in 'Draft' status.
400A document is requested, but the quote was generated as an Excel file and has no document template specified.The quote does not have a template specified.
400The requested document type (e.g., PDF, WORD) is not enabled for the quote's playbook.<DOCUMENT_TYPE> is not supported by the quote playbook.
400The requested file type for a submitted quote is different from the type it was originally generated with.Cannot generate <DOCUMENT_TYPE> for the submitted quote (submitted with <FILE_TYPE>)
400An API request is made when no version is currently active in the account.Cannot complete request execution as there is no active Version configured.
400Signer information is requested for an opportunity that does not have a published DealRoom.No DealRoom instance found for the given opportunity ID
400A request is made to create a new opportunity, but an opportunity with the same ID already exists.Entity (opportunity ID= <entity ID>) already exists.

CRM API

HTTP CodeWhen it occursError Message
400A custom field is specified more than once in the custom_fields list.Parameter <custom_field_name> specified more than once in custom_fields list.
400The data type of a provided custom field does not match the type defined in the version configuration.Type mismatch: custom field (<custom_field_name>) type does not match to the type defined in version <version_id>
400The provided currency is not supported in DealHub.Currency <currency> is not supported in DealHub. Supported currencies: <list>
400A seller attempts to create a quote using a version that is not active.Sellers can create quotes only in the context of the active version...
400There is a mismatch between the provided quote ID and opportunity ID.Mismatch between quote ID <dealhub_quote_id> and opportunity <external_opportunity_id>
400The currency provided in the request conflicts with the currency already configured for an existing opportunity.Currency mismatch. Received <currency>, while specified opportunity <external_opportunity_id> already configured with <currency>

Generate Quote API

The following errors may occur when using the simulate or generate quote endpoints.

General Generation Errors

HTTP CodeWhen it occursError Message
400The system received an API request, but no active version is defined.Request failed: No active version is configured in the system.
400Simulate failed because the specified version ID does not exist.Simulation failed: The provided version ID does not exist in the system.
400Failed to generate a quote because the specified playbook does not exist.Quote generation failed: The provided playbook does not exist in the system.
400Failed to generate a quote because the specified playbook is disabled.Quote generation failed: The specified playbook is currently disabled.
400Failed to generate a quote because the specified playbook is not of type API.Quote generation failed: The playbook must be of type 'API' to proceed.
400Failed to generate a quote because the DealRoom name or quote name is missing/invalid.Quote generation failed: The [DealRoom publish / quote] name does not exist or is invalid.
400Failed to generate a quote because the expiration date is invalid or in the past.Quote generation failed: The expiration date does not exist or is invalid.
400Failed to generate a quote because the document/DealRoom template is not available or set to private.Quote generation failed: The [document / DealRoom] template is not available for this quote.
400Failed to generate the quote due to missing mandatory questions.Quote generation failed: Mandatory question is missing: <mandatory question name>.
400Failed to generate the quote because at least one product is required in the product summary table.Quote generation failed: At least one product must be included in the product summary table.
400Failed to generate the quote because the SKU provided in line_item does not exist.Quote generation failed: The SKU <SKU> does not exist in the system.
400Failed to generate a quote because the partner program configuration is invalid (missing levels or multiple programs per level).Quote generation failed: The required partner levels are missing...
400Failed to generate the quote due to a connection issue with the CRM.Quote generation failed: An error occurred while connecting to the CRM system.

Quote Data (Question) Validation

The quote generation process fails if the quote_data field contains invalid values.

HTTP CodeWhen it occursError Message
400Text List: The provided answer is not found in the predefined valid options.Quote generation failed: The answer for [Group ID - Question ID] contains invalid values. Not found in the predefined list.
400Text List: Multiple answers are provided for a single-select field.Quote generation failed: The answer for [Group ID - Question ID] contains invalid values. Multiple answers provided for a single-select field.
400Radio Button: The selected option is not valid.Quote generation failed: The answer for [Group ID - Question ID] contains invalid values. Selected option is not valid.
400Manual Item: The provided SKU does not exist.Quote generation failed: The answer for [Group ID - Question ID] contains invalid values. SKU not found in the system.
400Numeric List: The provided numeric answer is not in the predefined list.Quote generation failed: The answer for [Group ID - Question ID] contains invalid values. Not in the predefined numeric list.
400Numeric Answer: The value is outside allowed limits (min/max) or step interval.Quote generation failed: The answer for [Group ID - Question ID] contains invalid values. [Below/Exceeds] the allowed limit.
400Date: The selected date is not in yyyy-MM-dd format.Quote generation failed: The answer for [Group ID - Question ID] contains an invalid date format.

Line Item Attribute Validation

HTTP CodeWhen it occursError Message
400A proposal attribute for a line item exceeds the allowed character limit.The proposal attribute for line_item[SKU] contains invalid values and exceeds the character limit.
400A non-numeric value is provided for an attribute that requires a number/currency/percentage.The proposal attribute [name] for line_item[SKU] contains invalid values. The value is not numeric.
400A date attribute is provided in an invalid format.The proposal attribute [name] for line_item[SKU] contains invalid values. Contains an invalid date format.

Pricing API

HTTP CodeWhen it occursError Message
400The requested SKU cannot be found in the specified version.sku: <sku> could not be found in version <version>
400The specified version cannot be found.version <version> could not be found
400The specified currency ISO code is not supported.Currency ISO <ISO> is not supported in DealHub. Supported currencies: <list>
400The specified playbook name does not exist in the version, or the name is required but was not provided.playbook <name> is not available in the requested version / playbook name is required

User API

HTTP CodeWhen it occursError Message
400The requested user login is not found.Entity (ID = <unknown_id>) not found