HighLevel: Update Estimate Template
HighLevel invoices.updateEstimateTemplate: arguments, response, policy and SDK examples.
← Invoices operations · Get started
Operation gohighlevel.update_estimate_template
Provider route: PUT /invoices/estimate/template/{templateId}. Alter supplies the connection’s credentials and routing.
Call through Alter
Section titled “Call through Alter”Install @alter-ai/sdk @alter-ai/gohighlevel with npm, or alter-sdk-gohighlevel with pip. Supply your connected customer’s grant ID and the arguments described below.
import { App } from "@alter-ai/sdk";import { HighLevelIntegration } from "@alter-ai/gohighlevel";
async function execute(input: Parameters<HighLevelIntegration["invoices"]["updateEstimateTemplate"]>[0]) { const app = new App({ apiKey: process.env.ALTER_API_KEY! }); try { const provider = new HighLevelIntegration(app, { grantId: process.env.PROVIDER_GRANT_ID! }); const call = await provider.invoices.updateEstimateTemplate(input); const result = await call.wait(); return result.bodyJson(); } finally { await app.close(); }}import osfrom alter_sdk import Appfrom alter_sdk_gohighlevel import HighLevelIntegration
async def execute(arguments): async with App(api_key=os.environ["ALTER_API_KEY"]) as app: provider = HighLevelIntegration(app, {"grant_id": os.environ["PROVIDER_GRANT_ID"]}) call = await provider.invoices.update_estimate_template(arguments) result = await call.wait() return result.body_json()| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Additional keys: not allowed |
path | object | Required within parent | Additional keys: not allowed |
path.templateId | string | Required within parent | |
body | Model | Required within parent | Expand Create Estimate Template — request body — body |
Referenced models: Create Estimate Template — request body — body
Response
Section titled “Response”Response media type: application/json. The table describes the pinned successful response. Referenced models link to their complete fields.
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | Model | Root | Expand Create Estimate Template — response body |
Referenced models: Create Estimate Template — response body
Schemas
Section titled “Schemas”5 more schemas are linked from the tables above, on the schema pages.
Create Estimate Template — request body — body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
altId | string | Required within parent | Location Id or Agency Id |
altType | string | Required within parent | One of: location |
attachments | array | Optional | attachments for the invoice |
attachments[] | Model | Each item | Expand Create & Send — request body — body attachments item |
automaticTaxesEnabled | boolean | Optional | Automatic taxes enabled for the Estimate Default: false |
businessDetails | Model | Required within parent | Expand Create & Send — request body — body business Details |
currency | string | Required within parent | Currency code |
discount | Model | Required within parent | Expand Create & Send — request body — body discount |
estimateNumberPrefix | string | Optional | Prefix for the estimate number Default: EST- |
items | array | Required within parent | An array of items for the estimate. |
items[] | array | Each item | |
liveMode | boolean | Optional | livemode for estimate Default: true |
meta | object | Optional | Meta data for the estimate |
miscellaneousCharges | JSON | Optional | miscellaneous charges for the estimate |
miscellaneousCharges (allOf 1) | Model | All variants apply | Expand Create & Send — request body — body miscellaneous Charges charges, collected Miscellaneous Charges, paid Charges |
name | string | Required within parent | Estimate Name |
sendEstimateDetails | JSON | Optional | When sending estimate directly while saving |
sendEstimateDetails (allOf 1) | Model | All variants apply | Expand Send Estimate — request body — body |
termsNotes | string | Optional | Terms notes, Also supports HTML markups |
title | string | Optional | Title for the estimate |
Referenced models: Create & Send — request body — body attachments item, Create & Send — request body — body business Details, Create & Send — request body — body discount, Create & Send — request body — body miscellaneous Charges charges, collected Miscellaneous Charges, paid Charges, Send Estimate — request body — body
Create Estimate Template — response body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
__v | JSON | Required within parent | |
__v (anyOf 1) | number | Alternative | Version number |
__v (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
_id | string | Required within parent | Unique identifier |
altId | string | Required within parent | Location Id or Agency Id |
altType | string | Required within parent | Known values: location |
attachments | array | Optional | Attachments |
attachments[] | Model | Each item | Expand Send Estimate — response body — attachments item |
automaticTaxesEnabled | boolean | Required within parent | Indicates if automatic taxes are enabled for this estimate |
businessDetails | JSON | Required within parent | Business details associated with the estimate |
businessDetails (allOf 1) | Model | All variants apply | Expand Delete Event — request body — body |
createdAt | string | Required within parent | Timestamp when created Format: date-time |
currency | string | Required within parent | Currency code |
deleted | boolean | Required within parent | Indicates if deleted |
discount | JSON | Required within parent | Discount details for the estimate template |
discount (allOf 1) | Model | All variants apply | Expand Send Estimate — response body — discount / type: percentage, fixed |
estimateNumberPrefix | string | Optional | Estimate number prefix |
items | array | Required within parent | An array of items |
items[] | array | Each item | |
liveMode | boolean | Required within parent | Indicates if it is in live mode |
name | string | Required within parent | Name |
termsNotes | string | Optional | Terms and conditions for the estimate, supports HTML markup |
title | string | Optional | Title |
total | JSON | Required within parent | |
total (anyOf 1) | number | Alternative | Total amount |
total (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
updatedAt | string | Required within parent | Timestamp when last updated Format: date-time |
updatedBy | string | Optional | User Id of who last updated |
Referenced models: Delete Event — request body — body, Send Estimate — response body — attachments item, Send Estimate — response body — discount / type: percentage, fixed
Create & Send — request body — body attachments item
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
id | string | Required within parent | Id of the file selected |
name | string | Required within parent | Name of the file |
size | number | Required within parent | Size of the file |
type | string | Required within parent | Type of the file |
url | string | Required within parent | URL of the file |
Create & Send — request body — body business Details
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
address | JSON | Optional | Business Address |
address (allOf 1) | Model | All variants apply | Expand Update invoice — request body — body contact Details address |
customValues | array | Optional | Custom Values |
customValues[] | string | Each item | |
logoUrl | string | Optional | Business Logo URL |
name | string | Optional | Business Name |
phoneNo | string | Optional | Business Phone Number |
website | string | Optional | Business Website Link |
Referenced models: Update invoice — request body — body contact Details address
Create & Send — request body — body discount
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
type | string | Required within parent | Discount type Default: percentage One of: percentage, fixed |
validOnProductIds | array | Optional | Product Ids on which discount is applicable |
validOnProductIds[] | string | Each item | |
value | number | Optional | Discount Value Default: 0 |
Create & Send — request body — body miscellaneous Charges charges, collected Miscellaneous Charges, paid Charges
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
charges | array | Required within parent | charges for the processing fee |
charges[] | array | Each item | |
collectedMiscellaneousCharges | number | Optional | collected miscellaneous charges |
paidCharges | array | Optional | paid miscellaneous charges |
paidCharges[] | Model | Each item | Expand Create & Send — request body — body miscellaneous Charges charges, collected Miscellaneous Charges, paid Charges paid Charges item |
Referenced models: Create & Send — request body — body miscellaneous Charges charges, collected Miscellaneous Charges, paid Charges paid Charges item
Send Estimate — request body — body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
action | string | Required within parent | One of: sms_and_email, send_manually, email, sms |
altId | string | Required within parent | Location Id or Agency Id |
altType | string | Required within parent | One of: location |
estimateName | string | Optional | estimate name |
liveMode | boolean | Required within parent | livemode for estimate |
sentFrom | JSON | Optional | sender details for invoice, valid only if invoice is not sent manually |
sentFrom (allOf 1) | Model | All variants apply | Expand Get Invoice Settings — response body — sender Configuration from Email, from Name |
userId | string | Required within parent | Please ensure that the UserId corresponds to an authorized personnel, either by an employee ID or agency ID, to access this location. This account will serve as the primary channel for all future communications and updates. |
Referenced models: Get Invoice Settings — response body — sender Configuration from Email, from Name
Delete Event — request body — body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root |
Policy, approvals and errors
Section titled “Policy, approvals and errors”SDK function policy ID: gohighlevel.update_estimate_template. Catalog operation: update-estimate-template. Rules can name either ID; function rules distinguish managed calls and conservatively cover raw calls sharing the route. Existing grant permissions and policy rules apply. wait() returns an immediate result or waits for a required approval; it never approves the request itself. Persist the approval ID to resume after a restart.
Provider errors retain their response; JSON decoding raises ProviderAPIError for provider failures. ManagedOperationError identifies contract/input/retention errors. See error handling and provider-specific behavior. Sensitive input may be refused before approval storage. A decoding error never resubmits a write.
Required provider scopes: ["invoices/estimate.write"]
Pinned headers: {"Version": "v3"}