Create confirmation send test
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/send_test';const options = { method: 'POST', headers: {'X-Auth-Token': '<X-Auth-Token>', 'Content-Type': 'application/json'}, body: '{"locale":"fr","email":"shopper@example.com","offer_id":"string","shopify_variant_id":"45000000001"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://app.stoqapp.com/api/v2/external/preorders/templates/confirmation/send_test \ --header 'Content-Type: application/json' \ --header 'X-Auth-Token: <X-Auth-Token>' \ --data '{ "locale": "fr", "email": "shopper@example.com", "offer_id": "string", "shopify_variant_id": "45000000001" }'Send the preorder confirmation email to one email address as a test, rendered in the body locale (omit it for the shop default language) against one of the shop’s own preorder offer products. Matches the preorder template page’s Send test email button.
Note: email defaults to the shop’s reply-to address; one address only. offer_id (from GET /preorders/offers) and shopify_variant_id (a ProductVariant gid) pick the offer and product shown; omit both for the first product of the first enabled offer. Fails (422) when email sending is turned off, when the shop has no product in a preorder offer, or when the variant is not in the offer; 404 when the offer is not found or the shop has no single preorder confirmation template.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”object
Example
{ "locale": "fr", "email": "shopper@example.com", "offer_id": "string", "shopify_variant_id": "45000000001"}Responses
Section titled “Responses”Success — the updated resource.
object
Example generated
{}Accepted — async/bulk work was queued. Poll the returned job.
Returned for async/bulk work — poll the job until it reaches a terminal state.
object
Example
{ "job_id": "job_a1b2c3", "status_url": "/api/v2/external/jobs/job_a1b2c3"}Missing or invalid X-Auth-Token.
Error envelope returned by every failed request.
object
Example
{ "errors": [ "Unauthorized" ]}The request failed validation.
Error envelope returned by every failed request.
object
Example
{ "errors": [ "name is required" ]}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