Update confirmation
BetaAPI v2 is in public beta: endpoints, fields and behaviour can change before general availability. See the changelog
const url = 'https://app.stoqapp.com/api/v2/external/preorders/templates/confirmation';const options = { method: 'PATCH', headers: {'X-Auth-Token': '<X-Auth-Token>', 'Content-Type': 'application/json'}, body: '{"email":{"subject":"string","preheader":"string","heading":"string","body":"string","footer":"string","button":{"text":"Preorder now","background_color":"#1A1A1A","text_color":"#1A1A1A","radius":0},"colors":{"background":"string","section":"string","text":"Preorder now"},"radius":0,"css":"string","reviews":{"enabled":true,"count":5,"min_rating":5,"title":"string"},"social":{"facebook":"string","instagram":"string","pinterest":"string","twitter":"string","tiktok":"string","whatsapp":"string","youtube":"string","icon_color":"#FFFFFF"},"klaviyo_flow_name":"Summer Sneaker Drop"},"sms":{"body":"string","klaviyo_flow_name":"Summer Sneaker Drop"},"locale":"fr"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PATCH \ --url https://app.stoqapp.com/api/v2/external/preorders/templates/confirmation \ --header 'Content-Type: application/json' \ --header 'X-Auth-Token: <X-Auth-Token>' \ --data '{ "email": { "subject": "string", "preheader": "string", "heading": "string", "body": "string", "footer": "string", "button": { "text": "Preorder now", "background_color": "#1A1A1A", "text_color": "#1A1A1A", "radius": 0 }, "colors": { "background": "string", "section": "string", "text": "Preorder now" }, "radius": 0, "css": "string", "reviews": { "enabled": true, "count": 5, "min_rating": 5, "title": "string" }, "social": { "facebook": "string", "instagram": "string", "pinterest": "string", "twitter": "string", "tiktok": "string", "whatsapp": "string", "youtube": "string", "icon_color": "#FFFFFF" }, "klaviyo_flow_name": "Summer Sneaker Drop" }, "sms": { "body": "string", "klaviyo_flow_name": "Summer Sneaker Drop" }, "locale": "fr" }'Update the preorder confirmation notification’s email and SMS copy. The body is the GET shape: email{subject, preheader, heading, body, footer, button{text, background_color, text_color, radius}, colors{background, section, text}, radius, css, reviews{enabled, count, min_rating, title}, social{…}, klaviyo_flow_name} and sms{body, klaviyo_flow_name}. An optional body locale writes the copy in that language only; omit it for the shop default. Turning the email or SMS on or off is PATCH /preorders/notification_settings/confirmation.
Note: Deep partial: absent fields are unchanged, unknown or read-only keys are rejected; errors are 422 keyed “template.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”object
object
Subject of the preorder confirmation email.
Pre-header – the preview line after the subject in the inbox.
Heading at the top of the email body.
Description – the main body copy of the email.
Cancel order link – the text of the link that lets customers cancel their preorder. Only shown while “Allow customers to cancel preorders” is on.
object
Button text on the email call to action.
Button – Background colour of the email button. Hex.
Button – Text colour of the email button. Hex.
Corner radius of the email button, in pixels.
object
Colors – Background of the email, around the content. Hex, e.g. “#F9F9F9”.
Colors – Background of the content section of the email. Hex.
Colors – Text colour of the email. Hex.
Corner radius of the content section, in pixels.
Custom CSS added to the email. Applies to the standard email design. An empty string removes it.
object
Show product reviews: adds the product’s Judge.me star rating and top reviews to the preorder confirmation and shipping update emails. Paid plans only; shows only while Judge.me is connected (Settings > Integrations).
Number of reviews to show in the Judge.me reviews block, 1 to 3.
Only show reviews rated at least this many stars: 5, 4 or 3.
Section title for the Judge.me reviews block on the email, e.g. “What customers are saying”.
object
Facebook profile URL, without the https:// prefix. Shows as an icon in the email. Saving a social link sets it on every notification template of the shop. An empty string removes it.
Instagram profile URL, without the https:// prefix. Saving a social link sets it on every notification template of the shop.
Pinterest profile URL, without the https:// prefix. Saving a social link sets it on every notification template of the shop.
X (Twitter) profile URL, without the https:// prefix. Saving a social link sets it on every notification template of the shop.
TikTok profile URL, without the https:// prefix. Saving a social link sets it on every notification template of the shop.
WhatsApp link, without the https:// prefix. Saving a social link sets it on every notification template of the shop.
YouTube channel URL, without the https:// prefix. Saving a social link sets it on every notification template of the shop.
Icon Color of the social icons: white (#FFFFFF) or black (#000000). Shared by every template.
Flow name to trigger in Klaviyo instead of sending the email here. Only used while the email platform is Klaviyo.
object
SMS Body – the text message sent instead of the email. Must keep its Liquid variables.
Flow name to trigger in Klaviyo instead of sending the SMS here. Only used while the SMS platform is Klaviyo.
Language the translated fields are written in, such as ‘fr’ or ‘pt-BR’. Omitted: the shop’s default language. Untranslated fields ignore it.
Example
{ "email": { "subject": "string", "preheader": "string", "heading": "string", "body": "string", "footer": "string", "button": { "text": "Preorder now", "background_color": "#1A1A1A", "text_color": "#1A1A1A", "radius": 0 }, "colors": { "background": "string", "section": "string", "text": "Preorder now" }, "radius": 0, "css": "string", "reviews": { "enabled": true, "count": 5, "min_rating": 5, "title": "string" }, "social": { "facebook": "string", "instagram": "string", "pinterest": "string", "twitter": "string", "tiktok": "string", "whatsapp": "string", "youtube": "string", "icon_color": "#FFFFFF" }, "klaviyo_flow_name": "Summer Sneaker Drop" }, "sms": { "body": "string", "klaviyo_flow_name": "Summer Sneaker Drop" }, "locale": "fr"}Responses
Section titled “Responses”Success — the updated resource.
object
Example generated
{}Saved. Returns the updated section, with also_changed for cascades.
object
Example generated
{}Missing or invalid X-Auth-Token.
Error envelope returned by every failed request.
object
Example
{ "errors": [ "Unauthorized" ]}Invalid fields, keyed by canonical section paths. Nothing was saved.
object
object
Example generated
{ "errors": { "additionalProperty": [ "example" ] }}Rate limited — cost-weighted per token (read 1, write 2; 360 points / 60s). Check Retry-After.
Error envelope returned by every failed request.
object
Example
{ "errors": [ "Rate limit exceeded" ]}Thanks for letting us know.
Still stuck? Ask Quinn or chat with support