Create Quote from Template
POST/api/quotes/from-template/:template
Starts a new draft quote from a quote template, for the chosen customer.
orders:writeGrant this scope to your token under Settings → Developer → Personal Access Tokens.
Body
customer_id(optional, integer, nullable) — an existing customer.valid_until(optional, date, nullable).
Pricing: a line priced by hand on the template (and every line without a product, such as a setup fee) keeps the template's price. A product line whose price came from the pricing rules is re-priced for the new customer and quantity, so their contract price, customer price or volume break applies. A tax-exempt customer's quote starts without tax. The template's documents are copied onto the new quote.
Returns the new quote (same fields as Get Quote, without attachments). Returns 422 when the source is not a template.
Authentication: Requires Bearer token. Permission: quotes.create.
Request
Responses
- 200
- 401
- 403
- 404
- 422
- 429
OK
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Not found — no record with the given identifier (or the route does not exist). Verify the ID before retrying.
Unprocessable Entity
Response Headers
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.