Quote templates

Quote templates pre-fill new quotes with reusable defaults: a pricing plan, subscription terms, quote content, and attached documents. Use them to cut manual entry and keep quotes consistent across your sales and billing teams.


Why this matters

If your team sends similar quotes repeatedly (same plan, same terms, same supporting documents), configuring each quote by hand is slow and error-prone. A template captures those defaults once. New quotes created from the template start pre-populated, and the sales rep only adjusts what’s specific to the deal.

What a template can define

Every field on a template is optional; a template can define as much or as little as you like. A field you don’t set is omitted from the template entirely (not stored as null), so it leaves the corresponding quote field untouched.

AreaFieldDescription
Pricing plan schedulepricing_plan_schedule.pricing_plan_version_idThe pricing plan version the quote’s schedule is created with.
Subscriptionpricing_plan_subscription.billing_currencyDefault billing currency (alphabetic currency code).
Subscriptionpricing_plan_subscription.initial_termDefault initial subscription term, as a period (type + value).
Subscriptionpricing_plan_subscription.renewal_termDefault renewal term after the initial term.
Subscriptionpricing_plan_subscription.auto_renewalWhether the resulting subscription renews automatically.
Quote versionquote_version.contentContent of the initial quote version.
Quote versionquote_version.document_idsDocuments attached to the initial quote version.

Templates follow the standard resource lifecycle: they are created in DRAFT status, must be activated before they can be used, and can be archived when no longer needed.

Creating a template

Via API

Create a template with POST /v1/quote-templates. Only name and reference are required:

POST
/v:version/quote-templates
1curl -X POST https://test.api.solvimon.com/v1/quote-templates \
2 -H "X-API-KEY: <apiKey>" \
3 -H "Content-Type: application/json" \
4 -d '{
5 "name": "Enterprise annual",
6 "reference": "enterprise-annual",
7 "description": "Default quote for enterprise deals: annual term, auto-renewal.",
8 "pricing_plan_subscription": {
9 "billing_currency": "EUR",
10 "initial_term": {
11 "type": "YEAR",
12 "value": 1
13 },
14 "renewal_term": {
15 "type": "YEAR",
16 "value": 1
17 },
18 "auto_renewal": true
19 },
20 "pricing_plan_schedule": {
21 "pricing_plan_version_id": "ppve_gwDeep0tDRcSvkAfeN1Z"
22 },
23 "quote_version": {
24 "document_ids": [
25 "doc_123e4567-e89b-12d3-a456-426614174000"
26 ]
27 }
28}'
Response
1{
2 "object_type": "QUOTE_TEMPLATE",
3 "id": "qute_123e4567-e89b-12d3-a456-426614174000",
4 "name": "Enterprise annual",
5 "reference": "enterprise-annual",
6 "description": "Default quote for enterprise deals: annual term, auto-renewal.",
7 "status": "DRAFT",
8 "pricing_plan_subscription": {
9 "billing_currency": "EUR",
10 "initial_term": {
11 "type": "YEAR",
12 "value": 1
13 },
14 "renewal_term": {
15 "type": "YEAR",
16 "value": 1
17 },
18 "auto_renewal": true
19 },
20 "pricing_plan_schedule": {
21 "pricing_plan_version_id": "ppve_gwDeep0tDRcSvkAfeN1Z"
22 },
23 "quote_version": {
24 "document_ids": [
25 "doc_123e4567-e89b-12d3-a456-426614174000"
26 ]
27 },
28 "created_at": "2026-07-02T09:15:00Z",
29 "updated_at": "2026-07-02T09:15:00Z"
30}

The template is created in DRAFT status. Activate it with POST /v1/quote-templates/{ref}/activate before using it:

POST
/v:version/quote-templates/:resourceIdOrReference/activate
1curl -X POST https://test.api.solvimon.com/v1/quote-templates//activate \
2 -H "X-API-KEY: <apiKey>"

To change a template later, use PATCH /v1/quote-templates/{ref}. To retire one, use POST /v1/quote-templates/{ref}/archive. Both accept the resource ID or your own reference.

Via Desk

Open the quote template settings in the quote configuration section of Desk and fill in any of the fields above: optionally select a pricing plan version, set the subscription defaults, write the quote version content in the content editor, and attach documents. When you save, only the fields you set are stored; re-opening the template loads the saved values back into the form.

Using a template when creating a quote

Pass the template’s ID as template_id when creating a quote with POST /v1/quotes. The quote starts pre-populated with the template’s pricing plan, subscription terms, content and attachments, all of which can be adjusted before the quote is sent:

POST
/v:version/quotes
1curl -X POST https://test.api.solvimon.com/v1/quotes \
2 -H "X-API-KEY: <apiKey>" \
3 -H "Content-Type: application/json" \
4 -d '{
5 "customer_id": "cust_123e4567-e89b-12d3-a456-426614174000",
6 "owner_user_id": "user_123e4567-e89b-12d3-a456-426614174000",
7 "template_id": "qute_123e4567-e89b-12d3-a456-426614174000"
8}'
Response
1{
2 "object_type": "QUOTE",
3 "id": "quot_123e4567-e89b-12d3-a456-426614174000",
4 "created_at": "2026-07-02T09:20:00Z",
5 "updated_at": "2026-07-02T09:20:00Z",
6 "status": "DRAFT",
7 "customer_id": "cust_123e4567-e89b-12d3-a456-426614174000",
8 "owner_user_id": "user_123e4567-e89b-12d3-a456-426614174000",
9 "quote_version_infos": [
10 {
11 "version": 1,
12 "id": "quve_123e4567-e89b-12d3-a456-426614174000",
13 "status": "DRAFT",
14 "pricing_plan_subscription_id": "ppsu_123e4567-e89b-12d3-a456-426614174000"
15 }
16 ],
17 "template_id": "qute_123e4567-e89b-12d3-a456-426614174000"
18}

In Desk, select the template in the quote creation form to pre-fill it the same way.

A template only sets the starting values of a quote. Editing a template later does not change quotes already created from it.

Attachments

Documents listed in quote_version.document_ids are carried onto the initial version of every quote created from the template. Use this for recurring supporting documents, such as standard terms or product sheets, so they don’t have to be attached by hand each time.

Edge cases

  • Only ACTIVE templates can be used to create quotes. A DRAFT template must be activated first; an ARCHIVED template can no longer be selected.
  • All defaulting fields are optional. A template that only sets, say, a billing currency leaves everything else for the rep to fill in.
  • If default subscription settings are also configured in the Settings menu, the template’s values take precedence for quotes created from it.

See also: Quotes, Approval policy and Subscriptions.