Hello,
Im trying to find a way to retrieve the signature status per user on a quote via the API.
This is not directly available and i cant find a way to get this info, even though its available on the UI.
Can someone help?
Hey, @DKevans You are not missing an option. There is no direct API endpoint to retrieve the individual signature status (PENDING or SIGNED) for each contact on a quote.
Using the tools we have available, we can create a “smart polling” service that monitors for a change in signature counts. This would solve for knowing when the quote is fully signed.
My thinking:
- fetch all quotes that are currently active and require a signature
- get both the completed signature count (
hs_esign_num_signers_completed) and the required signature count (hs_esign_num_signers_required) - compare the new
completedcount to the last known count to detect progress - compare the
completedcount to therequiredcount to detect completion
My test:
Use the Search API to get a list of all quotes that have e-signing enabled and are not yet accepted. This single request gives you all the data you need for the logic check.
POST /crm/v3/objects/quotes/search
{
"filterGroups": [
{
"filters": [
{
"propertyName": "hs_esign_enabled",
"operator": "EQ",
"value": true
},
{
"propertyName": "hs_status",
"operator": "NEQ",
"value": "ACCEPTED"
}
]
}
],
"properties": [
"hs_object_id",
"hs_esign_num_signers_completed",
"hs_esign_num_signers_required"
],
"limit": 100
}
This gives us a list of all active quotes. For each quote, you can now check:
- Detect Progress**:** If the
hs_esign_num_signers_completedvalue is greater than the value you have stored from your last check, you know a new signature has occurred. - Detect Completion**:** If
hs_esign_num_signers_completedis equal tohs_esign_num_signers_required(and is not zero), you know the signature process for that quote is now complete. You can then flag it as “Fully Signed” and remove it from your active polling list.
If you already have a list of quote IDs from another source, you can poll them more efficiently using the Batch Read API instead of the Search API.
POST /crm/v3/objects/quotes/batch/read
{
"properties": [
"hs_esign_num_signers_completed",
"hs_esign_num_signers_required"
],
"inputs": [
{ "id": "15833763948" },
{ "id": "20846285868" }
]
}
I know this workaround doesn’t tell you who signed, but this gives you a complete and scalable way to track the entire signature lifecycle from start to finish.
Hope this helps! — Jaycee