• Help Desk reporting gives you real-time visibility into your support operation without the manual work. Ask our experts about which metrics matter most! AMA Dec 8-12.

    Ask us anything

how to create a signed quote in hubspot using API

testaccount123
Member

i want to create signed quote in hubspot using API(Postman). how can ?

here is my API: 

 

quote_create_url = "https://api.hubapi.com/crm/v3/objects/quotes/batch/create"

 

here is payload:

 

{'inputs': [{'properties': {'hs_title': "Odoo Contact 1's opportunity", 'hs_expiration_date': '2025-11-27T00:00:00.000Z', 'hs_status': 'APPROVAL_NOT_NEEDED', 'hs_language': 'en', 'hubspot_owner_id': '147646', 'hs_sender_email': 'admin@admin.com', 'hs_sender_firstname': 'Odoo', 'hs_sender_lastname': 'Admin', 'hs_template_type': 'CUSTOMIZABLE_QUOTE_TEMPLATE'}}]}

 


but getting following error:

 

{"status":"error","message":"There was a problem with the request.","correlationId":"7b3e34a8-5753-404e-8e8b-0e6597c20d02"}

0 Upvotes
2 Accepted solutions
suprdense
Solution
Participant

Hey @testaccount123 

You are getting the generic “There was a problem with the request” error because HubSpot rejects invalid or incomplete quote data.

Main causes

  1. You included a read-only property such as hubspot_owner_id.

  2. The quote was published without required associations like quote template, line items, or deal.

  3. E-signatures were not set up correctly. hs_esign_enabled was not true or signer contacts were not linked through the correct quote to contact association.

  4. You used the wrong endpoint or sent property values in the wrong format.

  5. The token was expired or missing the needed scopes.

Fix sequence

  1. Create the quote in draft status with only writable fields.

  2. Create and associate line items, quote template, and deal using the v4 association endpoints.

  3. Update the quote to set hs_esign_enabled to true.

  4. Associate each signer contact using the correct association type ID for signers.

  5. Update hs_status to APPROVAL_NOT_NEEDED or APPROVED to publish.

Check that all associations exist, property formats are valid, and the token has proper scopes before retrying.

View solution in original post

0 Upvotes
RubenBurdin
Solution
Top Contributor

Hi @testaccount123 , good question, quotes via API are a bit stricter than they look from the UI and that generic error doesn’t help much.

 

First, what you have now will create at best a draft quote, not a “signed” one. The usual flow is: create a draft quote with only writable fields, then wire up all the required associations (deal, line items, template, signer contacts), then move it through status and e-signature.

 

For creation, I’d switch to the single create endpoint /crm/v3/objects/quotes while you’re testing, send just basics like hs_title, hs_expiration_date, hs_language, and avoid things like hubspot_owner_id, which is not meant to be set directly in many portals. The quotes object reference calls out which properties are writable vs read-only and what’s required to publish a quote (https://developers.hubspot.com/docs/api-reference/crm-quotes-v3/guide )

 

To make it a signed quote, you don’t “create it signed” in one shot. You create the quote, associate it with a deal and line items via the CRM associations API, then update the quote to enable e-sign and set the appropriate status (DRAFT → APPROVAL_NOT_NEEDED or APPROVED). You also need signer contacts associated with the quote using the correct association type, otherwise e-signature won’t activate (https://knowledge.hubspot.com/quotes/create-and-send-quotes )

 

Once those pieces are in place, HubSpot handles the actual signing flow from the UI link.

If your end goal is keeping quotes, deals, and invoice-like records in sync with another system, Stacksync keeps HubSpot and your finance or CPQ source mirrored in real time so you don’t have to juggle fragile batch updates or manual status alignment.

Did my answer help? Please mark it as a solution to help others find it too.

Ruben Burdin Ruben Burdin
HubSpot Advisor
Founder @ Stacksync
Real-Time Data Sync between any CRM and Database
Stacksync Banner

View solution in original post

0 Upvotes
2 Replies 2
RubenBurdin
Solution
Top Contributor

Hi @testaccount123 , good question, quotes via API are a bit stricter than they look from the UI and that generic error doesn’t help much.

 

First, what you have now will create at best a draft quote, not a “signed” one. The usual flow is: create a draft quote with only writable fields, then wire up all the required associations (deal, line items, template, signer contacts), then move it through status and e-signature.

 

For creation, I’d switch to the single create endpoint /crm/v3/objects/quotes while you’re testing, send just basics like hs_title, hs_expiration_date, hs_language, and avoid things like hubspot_owner_id, which is not meant to be set directly in many portals. The quotes object reference calls out which properties are writable vs read-only and what’s required to publish a quote (https://developers.hubspot.com/docs/api-reference/crm-quotes-v3/guide )

 

To make it a signed quote, you don’t “create it signed” in one shot. You create the quote, associate it with a deal and line items via the CRM associations API, then update the quote to enable e-sign and set the appropriate status (DRAFT → APPROVAL_NOT_NEEDED or APPROVED). You also need signer contacts associated with the quote using the correct association type, otherwise e-signature won’t activate (https://knowledge.hubspot.com/quotes/create-and-send-quotes )

 

Once those pieces are in place, HubSpot handles the actual signing flow from the UI link.

If your end goal is keeping quotes, deals, and invoice-like records in sync with another system, Stacksync keeps HubSpot and your finance or CPQ source mirrored in real time so you don’t have to juggle fragile batch updates or manual status alignment.

Did my answer help? Please mark it as a solution to help others find it too.

Ruben Burdin Ruben Burdin
HubSpot Advisor
Founder @ Stacksync
Real-Time Data Sync between any CRM and Database
Stacksync Banner
0 Upvotes
suprdense
Solution
Participant

Hey @testaccount123 

You are getting the generic “There was a problem with the request” error because HubSpot rejects invalid or incomplete quote data.

Main causes

  1. You included a read-only property such as hubspot_owner_id.

  2. The quote was published without required associations like quote template, line items, or deal.

  3. E-signatures were not set up correctly. hs_esign_enabled was not true or signer contacts were not linked through the correct quote to contact association.

  4. You used the wrong endpoint or sent property values in the wrong format.

  5. The token was expired or missing the needed scopes.

Fix sequence

  1. Create the quote in draft status with only writable fields.

  2. Create and associate line items, quote template, and deal using the v4 association endpoints.

  3. Update the quote to set hs_esign_enabled to true.

  4. Associate each signer contact using the correct association type ID for signers.

  5. Update hs_status to APPROVAL_NOT_NEEDED or APPROVED to publish.

Check that all associations exist, property formats are valid, and the token has proper scopes before retrying.

0 Upvotes