Update a message template. This is a partial update: a field you omit keeps its stored value. Only a template still in draft can be updated, with one exception: on an approved template where WhatsApp rejected a language, you can fix the text of the rejected variants, with the same variables, and the variable_examples. The fix applies to every channel at once and is sent back to WhatsApp for review.
In order to get access to this endpoint, contact our support team.
{ "id": "template_01k8ap1btqf5r9fq2c8ax5fhc9", "type": "transactional", "name": "Acme Receipts", "status": "draft", "channels": [ "sms" ], "variables": [ "name", "order_id" ], "variants": [ { "locale": "en", "text": "Hi {{name}}, your order {{order_id}} shipped.", "rich": { "cards": [ { "media": { "type": "image", "url": "{{image_url}}" }, "title": "Your order has shipped", "body": "Order {{order_id}} is on its way.", "footer": "Dunder Mifflin Paper Company", "buttons": [ { "type": "url", "label": "Track", "url": "https://acme.com/t/{{order_id}}" } ] } ] }, "whatsapp": { "status": "not_submitted", "category": "utility", "rejection_reason": "invalid_format", "rejection_detail": "Your template has parameters placed next to each other (like {{1}}{{2}}) without text or punctuation between them.", "rejection_recommendation": "Separate parameters with descriptive text and ensure each parameter is clearly contextualized.", "error": "<string>" } } ], "default_locale": "en", "countries": [ { "country": "ES", "monthly_volume": 5000 } ], "region_statuses": {}, "created_at": "2024-01-01T12:00:00Z"}
{
"code": "invalid_phone_number",
"message": "The provided phone number is invalid. Provide a valid E.164 phone number.",
"type": "bad_request",
"request_id": "3d19215e-2991-4a05-a41a-527314e6ff6a",
"param": "phone_number"
}
{
"code": "invalid_phone_number",
"message": "The provided phone number is invalid. Provide a valid E.164 phone number.",
"type": "bad_request",
"request_id": "3d19215e-2991-4a05-a41a-527314e6ff6a",
"param": "phone_number"
}
{
"code": "invalid_phone_number",
"message": "The provided phone number is invalid. Provide a valid E.164 phone number.",
"type": "bad_request",
"request_id": "3d19215e-2991-4a05-a41a-527314e6ff6a",
"param": "phone_number"
}
{
"code": "invalid_phone_number",
"message": "The provided phone number is invalid. Provide a valid E.164 phone number.",
"type": "bad_request",
"request_id": "3d19215e-2991-4a05-a41a-527314e6ff6a",
"param": "phone_number"
}
{
"code": "invalid_phone_number",
"message": "The provided phone number is invalid. Provide a valid E.164 phone number.",
"type": "bad_request",
"request_id": "3d19215e-2991-4a05-a41a-527314e6ff6a",
"param": "phone_number"
}
Update a message template. This is a partial update: a field you omit keeps its stored value. channels, variants and countries are replaced as a whole when you send them.Only a template still in draft can be updated. Once it is submitted, a change is refused with template_not_editable, because a template under review or already registered with providers cannot change underneath that process.
On an approved template whose channels include whatsapp, WhatsApp reviews every language on its own, and can reject one. The whatsapp object of that variant then shows rejected with a rejection_reason.You can fix it without creating a new template. Send all the variants, with a new text only for the rejected ones, and variable_examples if needed. The new text must use the same variables as before. The template stays approved:
The new text applies at once, on every channel, SMS included.
The rejected languages are sent back to WhatsApp for review. Their whatsapp.status moves to pending, then to approved or rejected.
Any other change to an approved template is refused with template_not_editable. To change the wording of an approved language, create a new template and delete the old one.
One sample value per {{variable}} of the variants. WhatsApp requires a sample for every variable to review the template, so set them on a template whose channels include whatsapp. Every key must be a variable used in the variants. Replaces the stored examples; when omitted, the examples of variables you removed are dropped.
{ "id": "template_01k8ap1btqf5r9fq2c8ax5fhc9", "type": "transactional", "name": "Acme Receipts", "status": "draft", "channels": [ "sms" ], "variables": [ "name", "order_id" ], "variants": [ { "locale": "en", "text": "Hi {{name}}, your order {{order_id}} shipped.", "rich": { "cards": [ { "media": { "type": "image", "url": "{{image_url}}" }, "title": "Your order has shipped", "body": "Order {{order_id}} is on its way.", "footer": "Dunder Mifflin Paper Company", "buttons": [ { "type": "url", "label": "Track", "url": "https://acme.com/t/{{order_id}}" } ] } ] }, "whatsapp": { "status": "not_submitted", "category": "utility", "rejection_reason": "invalid_format", "rejection_detail": "Your template has parameters placed next to each other (like {{1}}{{2}}) without text or punctuation between them.", "rejection_recommendation": "Separate parameters with descriptive text and ensure each parameter is clearly contextualized.", "error": "<string>" } } ], "default_locale": "en", "countries": [ { "country": "ES", "monthly_volume": 5000 } ], "region_statuses": {}, "created_at": "2024-01-01T12:00:00Z"}
{
"code": "invalid_phone_number",
"message": "The provided phone number is invalid. Provide a valid E.164 phone number.",
"type": "bad_request",
"request_id": "3d19215e-2991-4a05-a41a-527314e6ff6a",
"param": "phone_number"
}
{
"code": "invalid_phone_number",
"message": "The provided phone number is invalid. Provide a valid E.164 phone number.",
"type": "bad_request",
"request_id": "3d19215e-2991-4a05-a41a-527314e6ff6a",
"param": "phone_number"
}
{
"code": "invalid_phone_number",
"message": "The provided phone number is invalid. Provide a valid E.164 phone number.",
"type": "bad_request",
"request_id": "3d19215e-2991-4a05-a41a-527314e6ff6a",
"param": "phone_number"
}
{
"code": "invalid_phone_number",
"message": "The provided phone number is invalid. Provide a valid E.164 phone number.",
"type": "bad_request",
"request_id": "3d19215e-2991-4a05-a41a-527314e6ff6a",
"param": "phone_number"
}
{
"code": "invalid_phone_number",
"message": "The provided phone number is invalid. Provide a valid E.164 phone number.",
"type": "bad_request",
"request_id": "3d19215e-2991-4a05-a41a-527314e6ff6a",
"param": "phone_number"
}
{"docsConfig":{"theme":"maple","$schema":"https://mintlify.com/docs.json","name":"Prelude Docs","colors":{"primary":"#3D16FF","light":"#83dd05","dark":"#3a5ccc"},"logo":{"light":"https://mintcdn.com/ding/Oh9xTmLZLfeVDwbL/images/logo/light.svg?fit=max\u0026auto=format\u0026n=Oh9xTmLZLfeVDwbL\u0026q=85\u0026s=592853f53e252f58d8ca969053ecde2c","dark":"https://mintcdn.com/ding/Oh9xTmLZLfeVDwbL/images/logo/dark.svg?fit=max\u0026auto=format\u0026n=Oh9xTmLZLfeVDwbL\u0026q=85\u0026s=b353ee028ccba0ef11d98646ada1d585"},"favicon":"https://mintcdn.com/ding/mO4m5aLNuvukvWgO/favicon.png?fit=max\u0026auto=format\u0026n=mO4m5aLNuvukvWgO\u0026q=85\u0026s=31138ef6929c5da3b6fbe480c91d653f","appearance":{"default":"system","strict":false},"background":{"decoration":"gradient","color":{"light":"#fff","dark":"#060A06"}},"navbar":{"links":[{"href":"https://prelude.so/contact","label":"Book a demo"}],"primary":{"type":"button","label":"Get started","href":"https://app.prelude.so"}},"footer":{"socials":{"x":"https://x.com/@UsePrelude","github":"https://github.com/prelude-so","linkedin":"https://www.linkedin.com/company/prelude-so"},"links":[{"header":"Pricing","items":[{"label":"Check all prices","href":"https://prelude.so/countries"},{"label":"US Prices","href":"https://prelude.so/countries/us"},{"label":"France Prices","href":"https://prelude.so/countries/fr"},{"label":"UK Prices","href":"https://prelude.so/countries/gb"},{"label":"Germany Prices","href":"https://prelude.so/countries/de"}]},{"header":"About Us","items":[{"label":"Blog","href":"https://prelude.so/blog"},{"label":"Customer Story","href":"https://prelude.so/customer-stories"},{"label":"Careers","href":"https://jobs.ashbyhq.com/Prelude"}]},{"header":"Resources","items":[{"label":"Status Page","href":"https://status.prelude.so"},{"label":"Trust Center","href":"https://trust.prelude.so/"}]}]},"seo":{"indexing":"all"},"fonts":{"family":"Inter"},"integrations":{"ga4":{"measurementId":"G-CQ4YD24X1M"},"cookies":{"key":"mint_prldc","value":"true"}},"contextual":{"options":["copy","cursor","chatgpt","claude","mcp"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"ding","hasAudioNarration":false,"actualSubdomain":"ding","customDomains":["docs.prelude.so"],"gitSource":{"type":"github","owner":"ding-live","repo":"monorepo","deployBranch":"master","contentDirectory":"doc","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aecac8237327199c83cf845","collectionId":"232de4d0-b1ef-4fe2-9a06-38a3fd8112aa","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aecac8237327199c83cf845"},"feedback":{"thumbs":false,"edits":false,"issues":false},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6aecac8237327199c83cf845","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"Auth","count":185},{"language":"default","tag":"API Reference","count":152},{"language":"default","tag":"Management","count":105},{"language":"default","tag":"Documentation","count":101},{"language":"default","tag":"Frontend","count":38},{"language":"default","tag":"Verify","count":33},{"language":"default","tag":"Integration Guide","count":26},{"language":"default","tag":"Notify","count":24},{"language":"default","tag":"Watch","count":24},{"language":"default","tag":"Frontend SDKs","count":19}]},"assistantConfig":{"enableAskAiButton":true,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"support@prelude.so","showHelpButton":true}},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"privacy":{"consentBanner":{"enabled":true}},"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".update-container ul{list-style:none!important;padding-left:0!important}.update-container ul li::marker{content:none}"}],"page":{"pagePath":"notify/v2/api-reference/management/templates/update-template","slug":"/notify/v2/api-reference/management/templates/update-template","pageMetadata":{"openapi":"patch /v2/notify/management/templates/{template_id}","title":"Update a message template","description":"Update a message template. This is a partial update: a field you omit keeps its stored value. Only a template still in `draft` can be updated, with one exception: on an approved template where WhatsApp rejected a language, you can fix the `text` of the rejected variants, with the same variables, and the `variable_examples`. The fix applies to every channel at once and is sent back to WhatsApp for review.\n\nIn order to get access to this endpoint, contact our support team.\n","href":"/notify/v2/api-reference/management/templates/update-template"},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Update a message template. This is a partial update: a field you omit keeps its stored value. Only a template still in \", _jsx(_components.code, {\n children: \"draft\"\n }), \" can be updated, with one exception: on an approved template where WhatsApp rejected a language, you can fix the \", _jsx(_components.code, {\n children: \"text\"\n }), \" of the rejected variants, with the same variables, and the \", _jsx(_components.code, {\n children: \"variable_examples\"\n }), \". The fix applies to every channel at once and is sent back to WhatsApp for review.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"In order to get access to this endpoint, contact our support team.\"\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,li:`li`,p:`p`,ul:`ul`,..._provideComponents(),...props.components},{Heading}=_components;if(!Heading)_missingMdxReference(`Heading`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Update a message template. This is a partial update: a field you omit keeps its stored value. `,_jsx(_components.code,{children:`channels`}),`, `,_jsx(_components.code,{children:`variants`}),` and `,_jsx(_components.code,{children:`countries`}),` are replaced as a whole when you send them.`]}),`\n`,_jsxs(_components.p,{children:[`Only a template still in `,_jsx(_components.code,{children:`draft`}),` can be updated. Once it is submitted, a change is refused with `,_jsx(_components.code,{children:`template_not_editable`}),`, because a template under review or already registered with providers cannot change underneath that process.`]}),`\n`,_jsx(Heading,{level:`2`,id:`fixing-a-language-whatsapp-rejected`,children:`Fixing a language WhatsApp rejected`}),`\n`,_jsxs(_components.p,{children:[`On an approved template whose `,_jsx(_components.code,{children:`channels`}),` include `,_jsx(_components.code,{children:`whatsapp`}),`, WhatsApp reviews every language on its own, and can reject one. The `,_jsx(_components.code,{children:`whatsapp`}),` object of that variant then shows `,_jsx(_components.code,{children:`rejected`}),` with a `,_jsx(_components.code,{children:`rejection_reason`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`You can fix it without creating a new template. Send all the `,_jsx(_components.code,{children:`variants`}),`, with a new `,_jsx(_components.code,{children:`text`}),` only for the rejected ones, and `,_jsx(_components.code,{children:`variable_examples`}),` if needed. The new text must use the same variables as before. The template stays approved:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`The new text applies at once, on every channel, SMS included.`}),`\n`,_jsxs(_components.li,{children:[`The rejected languages are sent back to WhatsApp for review. Their `,_jsx(_components.code,{children:`whatsapp.status`}),` moves to `,_jsx(_components.code,{children:`pending`}),`, then to `,_jsx(_components.code,{children:`approved`}),` or `,_jsx(_components.code,{children:`rejected`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Any other change to an approved template is refused with `,_jsx(_components.code,{children:`template_not_editable`}),`. To change the wording of an approved language, create a new template and delete the old one.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"openapi":"patch /v2/notify/management/templates/{template_id}","title":"Update a message template","description":"Update a message template. This is a partial update: a field you omit keeps its stored value. Only a template still in `draft` can be updated, with one exception: on an approved template where WhatsApp rejected a language, you can fix the `text` of the rejected variants, with the same variables, and the `variable_examples`. The fix applies to every channel at once and is sent back to WhatsApp for review.\n\nIn order to get access to this endpoint, contact our support team.\n","href":"/notify/v2/api-reference/management/templates/update-template"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Fixing a language WhatsApp rejected","slug":"fixing-a-language-whatsapp-rejected","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Notify"],"summary":"Update a message template","description":"Update a message template. This is a partial update: a field you omit keeps its stored value. Only a template still in `draft` can be updated, with one exception: on an approved template where WhatsApp rejected a language, you can fix the `text` of the rejected variants, with the same variables, and the `variable_examples`. The fix applies to every channel at once and is sent back to WhatsApp for review.\n\nIn order to get access to this endpoint, contact our support team.\n","operationId":"updateNotifyTemplate","parameters":["cb99426e-b6ee-4468-a56e-0c140d350fbc"],"requestBody":"7746b09f-3840-47d4-9cb1-3e118da11c76","responses":{"200":"f4cfad9c-9c03-426c-b1dd-3348294acf92","400":"e4306fe6-f7ad-4044-8529-c55017f36ad5","403":"86500c51-6f83-4bee-bf39-8ab2329ed38f","404":"1cbbb55c-eed4-47ef-97a5-310bd3267197","409":"e156a57c-1ddb-496b-af1d-ba2093d54431","429":"6f67197e-bf09-442b-b314-e9c1169ac4dc"},"method":"patch","type":"path","servers":["33e6bed8-2f39-470a-8eed-ee741d0b2e8f"],"security":["63baf9fa-f05d-4783-8bac-a6bf6ec7c6ec"],"path":"/v2/notify/management/templates/{template_id}","baseUrlOptions":["https://api.prelude.dev"],"title":"Update a message template","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"cb99426e-b6ee-4468-a56e-0c140d350fbc":{"name":"template_id","in":"path","required":true,"schema":{"type":"string","isRequired":true,"description":"The identifier of the template.","uniqueKey":"","typeLabel":"string"},"description":"The identifier of the template.","example":"template_01k8ap1btqf5r9fq2c8ax5fhc9"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"A partial update. Every field is optional, and a field you omit keeps its stored value.","properties":{"name":{"type":"string","description":"The name of the template.","examples":["Acme Receipts"],"uniqueKey":"name","typeLabel":"string"},"type":{"type":"string","description":"What the template is used for.","enum":["transactional","marketing"],"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"channels":{"type":"array","description":"The channels the template should be delivered over. Replaces the stored channels.","items":{"type":"string","enum":["sms","rcs","whatsapp","viber","zalo","telegram"],"uniqueKey":"channels.items.[INDEX]","typeLabel":"enum\u003cstring>"},"uniqueKey":"channels","typeLabel":"enum\u003cstring>[]"},"variants":{"type":"array","description":"The wording of the message, one entry per locale. Replaces the stored variants.","items":{"type":"object","required":["locale","text"],"properties":{"locale":{"type":"string","description":"The BCP-47 locale this wording is written in.","examples":["en"],"isRequired":true,"uniqueKey":"variants.items.[INDEX].locale","typeLabel":"string"},"text":{"type":"string","description":"The message body, with `{{variable}}` placeholders for the values you pass when sending.","examples":["Hi {{name}}, your order {{order_id}} shipped."],"isRequired":true,"uniqueKey":"variants.items.[INDEX].text","typeLabel":"string"},"rich":{"oneOf":[{"type":"object","description":"A card that RCS and WhatsApp show in place of the `text`. Other channels send the `text`. The template needs the `rcs` or `whatsapp` channel.\n\nOmit `rich` to keep the stored block; send `null` to remove it.\n","required":["cards"],"properties":{"cards":{"type":"array","description":"The cards of the message. One card sends a card; 2 to 10 cards send a carousel the user swipes through. On WhatsApp, a carousel needs a `marketing` template, and the variant `text` shows above the cards. Every card has an image or a video, of the same type on all cards, and the same buttons in the same order, 2 at most. Every card has a title or a body, or none does, 160 characters at most together. A card in a WhatsApp carousel has no footer.","minItems":1,"maxItems":10,"items":{"type":"object","description":"An image or a video, a title, a body, a footer and buttons. Each field is optional, but a card needs at least one.","properties":{"media":{"type":"object","required":["type","url"],"properties":{"type":{"type":"string","enum":["image","video"],"isRequired":true,"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].media.type","typeLabel":"enum\u003cstring>"},"url":{"type":"string","description":"An https link to the image or video, or a link that starts with a `{{variable}}` you fill with an https link when sending.","examples":["{{image_url}}"],"isRequired":true,"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].media.url","typeLabel":"string"}},"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].media","typeLabel":"object"},"title":{"type":"string","description":"The bold line above the body. On WhatsApp, a card without media shows its title as the header, 60 characters at most and one `{{variable}}` at most; with an image or a video, the title is the first line of the body. 200 characters at most on RCS.","examples":["Your order has shipped"],"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].title","typeLabel":"string"},"body":{"type":"string","description":"The text of the card. A card without a body shows the variant `text`. On WhatsApp, 1,024 characters at most, with the title when the card has an image or a video, and each `{{variable}}` once. On RCS, 2,000 characters at most, with the footer.","examples":["Order {{order_id}} is on its way."],"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].body","typeLabel":"string"},"footer":{"type":"string","description":"A short line under the body, without `{{variables}}`. 60 characters at most on WhatsApp.","examples":["Dunder Mifflin Paper Company"],"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].footer","typeLabel":"string"},"buttons":{"type":"array","description":"Up to 4 buttons, with at most 2 `url` buttons and 1 `call` button. `reply` buttons stay together, before or after the others.","items":{"oneOf":[{"type":"object","title":"URL button","description":"A button of the card. Its `type` names the one target it holds; a field of another type is refused.","required":["type","label","url"],"properties":{"type":{"type":"string","enum":["url"],"isRequired":true,"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].buttons.items.[INDEX].oneOf.0.type","typeLabel":"enum\u003cstring>"},"label":{"type":"string","description":"The text on the button, 25 characters at most, without `{{variables}}`.","examples":["Track"],"isRequired":true,"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].buttons.items.[INDEX].oneOf.0.label","typeLabel":"string"},"url":{"type":"string","description":"An https link or a link that starts with a `{{variable}}`. On WhatsApp, an https link that may end with one `{{variable}}`.","examples":["https://acme.com/t/{{order_id}}"],"isRequired":true,"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].buttons.items.[INDEX].oneOf.0.url","typeLabel":"string"}},"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].buttons.items.[INDEX].oneOf.0","typeLabel":"URL button · object"},{"type":"object","title":"Call button","description":"A button of the card. Its `type` names the one target it holds; a field of another type is refused.","required":["type","label","phone"],"properties":{"type":{"type":"string","enum":["call"],"isRequired":true,"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].buttons.items.[INDEX].oneOf.1.type","typeLabel":"enum\u003cstring>"},"label":{"type":"string","description":"The text on the button, 25 characters at most, without `{{variables}}`.","examples":["Call us"],"isRequired":true,"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].buttons.items.[INDEX].oneOf.1.label","typeLabel":"string"},"phone":{"type":"string","description":"A phone number in E.164 format.","examples":["+33612345678"],"isRequired":true,"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].buttons.items.[INDEX].oneOf.1.phone","typeLabel":"string"}},"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].buttons.items.[INDEX].oneOf.1","typeLabel":"Call button · object"},{"type":"object","title":"Reply button","description":"A button of the card. Its `type` names the one target it holds; a field of another type is refused.","required":["type","label","payload"],"properties":{"type":{"type":"string","enum":["reply"],"isRequired":true,"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].buttons.items.[INDEX].oneOf.2.type","typeLabel":"enum\u003cstring>"},"label":{"type":"string","description":"The text on the button, 25 characters at most, without `{{variables}}`.","examples":["Yes, it arrived"],"isRequired":true,"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].buttons.items.[INDEX].oneOf.2.label","typeLabel":"string"},"payload":{"type":"string","description":"The value sent back to you when the user taps the button, 256 characters at most. It may hold `{{variables}}`. The user does not see it.","examples":["arrived:{{order_id}}"],"isRequired":true,"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].buttons.items.[INDEX].oneOf.2.payload","typeLabel":"string"}},"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].buttons.items.[INDEX].oneOf.2","typeLabel":"Reply button · object"}],"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].buttons.items.[INDEX]","typeLabel":"URL button · object | Call button · object | Reply button · object"},"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].buttons","typeLabel":"(URL button · object | Call button · object | Reply button · object)[]"}},"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards","typeLabel":"object[]"}},"uniqueKey":"variants.items.[INDEX].rich.oneOf.0","typeLabel":"object"},{"type":"null","description":"A card that RCS and WhatsApp show in place of the `text`. Other channels send the `text`. The template needs the `rcs` or `whatsapp` channel.\n\nOmit `rich` to keep the stored block; send `null` to remove it.\n","uniqueKey":"variants.items.[INDEX].rich.oneOf.1","typeLabel":"null"}],"uniqueKey":"variants.items.[INDEX].rich","typeLabel":"object | null"}},"uniqueKey":"variants.items.[INDEX]","typeLabel":"object"},"uniqueKey":"variants","typeLabel":"object[]"},"default_locale":{"type":"string","description":"The locale used when the recipient's own locale has no variant.","examples":["en"],"uniqueKey":"default_locale","typeLabel":"string"},"countries":{"type":"array","description":"The countries the template should work in. Replaces the stored countries.","items":{"type":"object","required":["country"],"properties":{"country":{"type":"string","description":"An ISO 3166-1 alpha-2 country code the template should work in.","examples":["ES"],"isRequired":true,"uniqueKey":"countries.items.[INDEX].country","typeLabel":"string"},"monthly_volume":{"type":"integer","description":"The number of messages you expect to send to this country each month. Required, and at least 1000, for a country that needs a sender registration.","examples":[5000],"uniqueKey":"countries.items.[INDEX].monthly_volume","typeLabel":"integer"}},"uniqueKey":"countries.items.[INDEX]","typeLabel":"object"},"uniqueKey":"countries","typeLabel":"object[]"},"variable_examples":{"type":"object","description":"One sample value per `{{variable}}` of the variants. WhatsApp requires a sample for every variable to review the template, so set them on a template whose `channels` include `whatsapp`. Every key must be a variable used in the variants. Replaces the stored examples; when omitted, the examples of variables you removed are dropped.\n","additionalProperties":{"type":"string","uniqueKey":"variable_examples.additionalProperties","typeLabel":"string"},"examples":[{"name":"Ana","order_id":"A-1042"}],"uniqueKey":"variable_examples","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"name":"Acme Receipts","channels":[],"variants":[{"locale":"en","text":"Hi {{name}}, your order {{order_id}} shipped.","rich":{"cards":[{"title":"Your order has shipped","body":"Order {{order_id}} is on its way.","footer":"Dunder Mifflin Paper Company","buttons":[{"type":"url","label":"Track","url":"https://acme.com/t/{{order_id}}"}]}]}}],"default_locale":"en","countries":[{"country":"ES","monthly_volume":5000}],"variable_examples":{"name":"Ana","order_id":"A-1042"}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"f4cfad9c-9c03-426c-b1dd-3348294acf92":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["id","type","name","status","channels","variables","variants","default_locale","countries","region_statuses","created_at"],"properties":{"id":{"type":"string","description":"The identifier of the template, to pass as `template_id` when sending a message.","examples":["template_01k8ap1btqf5r9fq2c8ax5fhc9"],"isRequired":true,"uniqueKey":"id","typeLabel":"string"},"type":{"type":"string","description":"What the template is used for. Possible values are:\n * `transactional` - A message triggered by an action of the recipient.\n * `marketing` - A promotional message, subject to marketing rules.\n","enum":["transactional","marketing"],"isRequired":true,"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"name":{"type":"string","description":"The name of the template.","examples":["Acme Receipts"],"isRequired":true,"uniqueKey":"name","typeLabel":"string"},"status":{"type":"string","description":"Where the template stands in the approval flow. Possible values are:\n * `draft` - Yours to edit. Nothing is sent with it yet.\n * `pending` - Submitted, and waiting on our review and on the per-country registrations.\n * `ready` - Approved and usable in every country you asked for.\n * `rejected` - Refused. Contact support for the reason.\n","enum":["draft","pending","ready","rejected"],"isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"channels":{"type":"array","description":"The channels the template can be delivered over.","items":{"type":"string","enum":["sms","rcs","whatsapp","viber","zalo","telegram"],"uniqueKey":"channels.items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":true,"uniqueKey":"channels","typeLabel":"enum\u003cstring>[]"},"variables":{"type":"array","description":"The placeholder names found in the variants, to fill in when sending.","items":{"type":"string","uniqueKey":"variables.items.[INDEX]","typeLabel":"string"},"examples":[["name","order_id"]],"isRequired":true,"uniqueKey":"variables","typeLabel":"string[]"},"variants":{"type":"array","description":"The wording of the message, one entry per locale.","items":{"type":"object","required":["locale","text"],"properties":{"locale":{"type":"string","description":"The BCP-47 locale this wording is written in.","examples":["en"],"isRequired":true,"uniqueKey":"variants.items.[INDEX].locale","typeLabel":"string"},"text":{"type":"string","description":"The message body, with `{{variable}}` placeholders for the values you pass when sending.","examples":["Hi {{name}}, your order {{order_id}} shipped."],"isRequired":true,"uniqueKey":"variants.items.[INDEX].text","typeLabel":"string"},"rich":{"oneOf":[{"type":"object","description":"A card that RCS and WhatsApp show in place of the `text`. Other channels send the `text`. The template needs the `rcs` or `whatsapp` channel.\n\nOmit `rich` to keep the stored block; send `null` to remove it.\n","required":["cards"],"properties":{"cards":{"type":"array","description":"The cards of the message. One card sends a card; 2 to 10 cards send a carousel the user swipes through. On WhatsApp, a carousel needs a `marketing` template, and the variant `text` shows above the cards. Every card has an image or a video, of the same type on all cards, and the same buttons in the same order, 2 at most. Every card has a title or a body, or none does, 160 characters at most together. A card in a WhatsApp carousel has no footer.","minItems":1,"maxItems":10,"items":{"type":"object","description":"An image or a video, a title, a body, a footer and buttons. Each field is optional, but a card needs at least one.","properties":{"media":{"type":"object","required":["type","url"],"properties":{"type":{"type":"string","enum":["image","video"],"isRequired":true,"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].media.type","typeLabel":"enum\u003cstring>"},"url":{"type":"string","description":"An https link to the image or video, or a link that starts with a `{{variable}}` you fill with an https link when sending.","examples":["{{image_url}}"],"isRequired":true,"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].media.url","typeLabel":"string"}},"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].media","typeLabel":"object"},"title":{"type":"string","description":"The bold line above the body. On WhatsApp, a card without media shows its title as the header, 60 characters at most and one `{{variable}}` at most; with an image or a video, the title is the first line of the body. 200 characters at most on RCS.","examples":["Your order has shipped"],"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].title","typeLabel":"string"},"body":{"type":"string","description":"The text of the card. A card without a body shows the variant `text`. On WhatsApp, 1,024 characters at most, with the title when the card has an image or a video, and each `{{variable}}` once. On RCS, 2,000 characters at most, with the footer.","examples":["Order {{order_id}} is on its way."],"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].body","typeLabel":"string"},"footer":{"type":"string","description":"A short line under the body, without `{{variables}}`. 60 characters at most on WhatsApp.","examples":["Dunder Mifflin Paper Company"],"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].footer","typeLabel":"string"},"buttons":{"type":"array","description":"Up to 4 buttons, with at most 2 `url` buttons and 1 `call` button. `reply` buttons stay together, before or after the others.","items":{"oneOf":[{"type":"object","title":"URL button","description":"A button of the card. Its `type` names the one target it holds; a field of another type is refused.","required":["type","label","url"],"properties":{"type":{"type":"string","enum":["url"],"isRequired":true,"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].buttons.items.[INDEX].oneOf.0.type","typeLabel":"enum\u003cstring>"},"label":{"type":"string","description":"The text on the button, 25 characters at most, without `{{variables}}`.","examples":["Track"],"isRequired":true,"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].buttons.items.[INDEX].oneOf.0.label","typeLabel":"string"},"url":{"type":"string","description":"An https link or a link that starts with a `{{variable}}`. On WhatsApp, an https link that may end with one `{{variable}}`.","examples":["https://acme.com/t/{{order_id}}"],"isRequired":true,"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].buttons.items.[INDEX].oneOf.0.url","typeLabel":"string"}},"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].buttons.items.[INDEX].oneOf.0","typeLabel":"URL button · object"},{"type":"object","title":"Call button","description":"A button of the card. Its `type` names the one target it holds; a field of another type is refused.","required":["type","label","phone"],"properties":{"type":{"type":"string","enum":["call"],"isRequired":true,"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].buttons.items.[INDEX].oneOf.1.type","typeLabel":"enum\u003cstring>"},"label":{"type":"string","description":"The text on the button, 25 characters at most, without `{{variables}}`.","examples":["Call us"],"isRequired":true,"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].buttons.items.[INDEX].oneOf.1.label","typeLabel":"string"},"phone":{"type":"string","description":"A phone number in E.164 format.","examples":["+33612345678"],"isRequired":true,"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].buttons.items.[INDEX].oneOf.1.phone","typeLabel":"string"}},"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].buttons.items.[INDEX].oneOf.1","typeLabel":"Call button · object"},{"type":"object","title":"Reply button","description":"A button of the card. Its `type` names the one target it holds; a field of another type is refused.","required":["type","label","payload"],"properties":{"type":{"type":"string","enum":["reply"],"isRequired":true,"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].buttons.items.[INDEX].oneOf.2.type","typeLabel":"enum\u003cstring>"},"label":{"type":"string","description":"The text on the button, 25 characters at most, without `{{variables}}`.","examples":["Yes, it arrived"],"isRequired":true,"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].buttons.items.[INDEX].oneOf.2.label","typeLabel":"string"},"payload":{"type":"string","description":"The value sent back to you when the user taps the button, 256 characters at most. It may hold `{{variables}}`. The user does not see it.","examples":["arrived:{{order_id}}"],"isRequired":true,"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].buttons.items.[INDEX].oneOf.2.payload","typeLabel":"string"}},"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].buttons.items.[INDEX].oneOf.2","typeLabel":"Reply button · object"}],"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].buttons.items.[INDEX]","typeLabel":"URL button · object | Call button · object | Reply button · object"},"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX].buttons","typeLabel":"(URL button · object | Call button · object | Reply button · object)[]"}},"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"variants.items.[INDEX].rich.oneOf.0.cards","typeLabel":"object[]"}},"uniqueKey":"variants.items.[INDEX].rich.oneOf.0","typeLabel":"object"},{"type":"null","description":"A card that RCS and WhatsApp show in place of the `text`. Other channels send the `text`. The template needs the `rcs` or `whatsapp` channel.\n\nOmit `rich` to keep the stored block; send `null` to remove it.\n","uniqueKey":"variants.items.[INDEX].rich.oneOf.1","typeLabel":"null"}],"uniqueKey":"variants.items.[INDEX].rich","typeLabel":"object | null"},"whatsapp":{"type":"object","description":"Where this language stands on WhatsApp. Present only on a template whose `channels` include `whatsapp`.\n\nOnce we approve the template, each language is sent to WhatsApp for review. WhatsApp reviews every language on its own, usually within minutes and sometimes up to a few days.\n","required":["status"],"properties":{"status":{"type":"string","description":"Possible values are:\n * `not_submitted` - Not sent to WhatsApp yet. A template is sent once we approve it.\n * `pending` - WhatsApp is reviewing this language.\n * `approved` - WhatsApp approved this language. Messages can be sent with it.\n * `rejected` - WhatsApp rejected this language. See `rejection_reason`. Fix the `text` or `rich` of this variant with an update, and it is sent back for review.\n * `paused` - WhatsApp paused this language after poor recipient feedback.\n * `disabled` - WhatsApp no longer sends this language.\n * `sync_failed` - The language could not be sent to WhatsApp. See `error`.\n","enum":["not_submitted","pending","approved","rejected","paused","disabled","sync_failed"],"isRequired":true,"uniqueKey":"variants.items.[INDEX].whatsapp.status","typeLabel":"enum\u003cstring>"},"category":{"type":"string","description":"The category WhatsApp holds for this language, which sets its price. A `transactional` template is submitted as `utility`, but WhatsApp approves it as `marketing` when it finds promotional content in it.\n","enum":["utility","marketing","authentication"],"uniqueKey":"variants.items.[INDEX].whatsapp.category","typeLabel":"enum\u003cstring>"},"rejection_reason":{"type":"string","description":"WhatsApp's reason for a rejection, such as `invalid_format`, `incorrect_category`, `promotional` or `abusive_content`. Set only with the `rejected` status.","examples":["invalid_format"],"uniqueKey":"variants.items.[INDEX].whatsapp.rejection_reason","typeLabel":"string"},"rejection_detail":{"type":"string","description":"WhatsApp's explanation of the rejection. WhatsApp sends one for `invalid_format` only.","examples":["Your template has parameters placed next to each other (like {{1}}{{2}}) without text or punctuation between them."],"uniqueKey":"variants.items.[INDEX].whatsapp.rejection_detail","typeLabel":"string"},"rejection_recommendation":{"type":"string","description":"WhatsApp's advice to fix the rejection. WhatsApp sends one for `invalid_format` only.","examples":["Separate parameters with descriptive text and ensure each parameter is clearly contextualized."],"uniqueKey":"variants.items.[INDEX].whatsapp.rejection_recommendation","typeLabel":"string"},"error":{"type":"string","description":"Why the language could not be sent to WhatsApp. Set only with the `sync_failed` status.","uniqueKey":"variants.items.[INDEX].whatsapp.error","typeLabel":"string"}},"uniqueKey":"variants.items.[INDEX].whatsapp","typeLabel":"object"}},"uniqueKey":"variants.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"variants","typeLabel":"object[]"},"default_locale":{"type":"string","description":"The locale used when the recipient's own locale has no variant.","examples":["en"],"isRequired":true,"uniqueKey":"default_locale","typeLabel":"string"},"countries":{"type":"array","description":"The countries the template works in, with the monthly volume recorded for each.","items":{"type":"object","required":["country"],"properties":{"country":{"type":"string","description":"An ISO 3166-1 alpha-2 country code the template should work in.","examples":["ES"],"isRequired":true,"uniqueKey":"countries.items.[INDEX].country","typeLabel":"string"},"monthly_volume":{"type":"integer","description":"The number of messages you expect to send to this country each month. Required, and at least 1000, for a country that needs a sender registration.","examples":[5000],"uniqueKey":"countries.items.[INDEX].monthly_volume","typeLabel":"integer"}},"uniqueKey":"countries.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"countries","typeLabel":"object[]"},"region_statuses":{"type":"object","description":"The readiness of the template per country, keyed by ISO 3166-1 alpha-2 country code.","additionalProperties":{"type":"object","required":["status","requires_registration"],"properties":{"status":{"type":"string","description":"How far this country is from being usable with the template. Possible values are:\n * `draft` - The template is still a draft, so nothing is sent with it in this country yet.\n * `pending` - Registration is needed in this country and is not ready yet.\n * `in_review` - The template was submitted and is being reviewed, along with the registration this country needs.\n * `ready` - The template can be used in this country.\n * `rejected` - The template was refused. Contact support for the reason.\n","enum":["draft","pending","in_review","ready","rejected"],"isRequired":true,"uniqueKey":"region_statuses.additionalProperties.status","typeLabel":"enum\u003cstring>"},"requires_registration":{"type":"boolean","description":"Whether this country needs a sender registration before the template can be used there.","examples":[true],"isRequired":true,"uniqueKey":"region_statuses.additionalProperties.requires_registration","typeLabel":"boolean"}},"uniqueKey":"region_statuses.additionalProperties","typeLabel":"object"},"isRequired":true,"uniqueKey":"region_statuses","typeLabel":"object"},"created_at":{"type":"string","format":"date-time","description":"The date and time when the template was created.","examples":["2024-01-01T12:00:00Z"],"isRequired":true,"uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"template_01k8ap1btqf5r9fq2c8ax5fhc9","type":"transactional","name":"Acme Receipts","status":"draft","channels":["sms"],"variables":["name","order_id"],"variants":[{"locale":"en","text":"Hi {{name}}, your order {{order_id}} shipped.","rich":{"cards":[{"media":{"type":"image","url":"{{image_url}}"},"title":"Your order has shipped","body":"Order {{order_id}} is on its way.","footer":"Dunder Mifflin Paper Company","buttons":[{"type":"url","label":"Track","url":"https://acme.com/t/{{order_id}}"}]}]},"whatsapp":{"status":"not_submitted","category":"utility","rejection_reason":"invalid_format","rejection_detail":"Your template has parameters placed next to each other (like {{1}}{{2}}) without text or punctuation between them.","rejection_recommendation":"Separate parameters with descriptive text and ensure each parameter is clearly contextualized.","error":"\u003cstring>"}}],"default_locale":"en","countries":[{"country":"ES","monthly_volume":5000}],"region_statuses":{},"created_at":"2024-01-01T12:00:00Z"}}},"exampleType":"generated"}},"exampleType":"generated"},"e4306fe6-f7ad-4044-8529-c55017f36ad5":{"description":"KO","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"The error code.","examples":["invalid_phone_number"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","examples":["The provided phone number is invalid. Provide a valid E.164 phone number."],"description":"A human-readable message describing the error.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"type":{"type":"string","examples":["bad_request"],"description":"The error type.","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"request_id":{"type":"string","examples":["3d19215e-2991-4a05-a41a-527314e6ff6a"],"description":"A string that identifies this specific request. Report it back to us to help us diagnose your issues.","uniqueKey":"request_id","typeLabel":"string"},"param":{"type":"string","examples":["phone_number"],"description":"The parameter the error refers to, when it applies to a single one.","uniqueKey":"param","typeLabel":"string"}},"required":["code","message","type"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"invalid_phone_number","message":"The provided phone number is invalid. Provide a valid E.164 phone number.","type":"bad_request","request_id":"3d19215e-2991-4a05-a41a-527314e6ff6a","param":"phone_number"}}},"exampleType":"generated"}},"exampleType":"generated"},"86500c51-6f83-4bee-bf39-8ab2329ed38f":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"The error code.","examples":["invalid_phone_number"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","examples":["The provided phone number is invalid. Provide a valid E.164 phone number."],"description":"A human-readable message describing the error.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"type":{"type":"string","examples":["bad_request"],"description":"The error type.","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"request_id":{"type":"string","examples":["3d19215e-2991-4a05-a41a-527314e6ff6a"],"description":"A string that identifies this specific request. Report it back to us to help us diagnose your issues.","uniqueKey":"request_id","typeLabel":"string"},"param":{"type":"string","examples":["phone_number"],"description":"The parameter the error refers to, when it applies to a single one.","uniqueKey":"param","typeLabel":"string"}},"required":["code","message","type"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"invalid_phone_number","message":"The provided phone number is invalid. Provide a valid E.164 phone number.","type":"bad_request","request_id":"3d19215e-2991-4a05-a41a-527314e6ff6a","param":"phone_number"}}},"exampleType":"generated"}},"exampleType":"generated"},"1cbbb55c-eed4-47ef-97a5-310bd3267197":{"description":"Not Found","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"The error code.","examples":["invalid_phone_number"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","examples":["The provided phone number is invalid. Provide a valid E.164 phone number."],"description":"A human-readable message describing the error.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"type":{"type":"string","examples":["bad_request"],"description":"The error type.","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"request_id":{"type":"string","examples":["3d19215e-2991-4a05-a41a-527314e6ff6a"],"description":"A string that identifies this specific request. Report it back to us to help us diagnose your issues.","uniqueKey":"request_id","typeLabel":"string"},"param":{"type":"string","examples":["phone_number"],"description":"The parameter the error refers to, when it applies to a single one.","uniqueKey":"param","typeLabel":"string"}},"required":["code","message","type"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"invalid_phone_number","message":"The provided phone number is invalid. Provide a valid E.164 phone number.","type":"bad_request","request_id":"3d19215e-2991-4a05-a41a-527314e6ff6a","param":"phone_number"}}},"exampleType":"generated"}},"exampleType":"generated"},"e156a57c-1ddb-496b-af1d-ba2093d54431":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"The error code.","examples":["invalid_phone_number"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","examples":["The provided phone number is invalid. Provide a valid E.164 phone number."],"description":"A human-readable message describing the error.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"type":{"type":"string","examples":["bad_request"],"description":"The error type.","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"request_id":{"type":"string","examples":["3d19215e-2991-4a05-a41a-527314e6ff6a"],"description":"A string that identifies this specific request. Report it back to us to help us diagnose your issues.","uniqueKey":"request_id","typeLabel":"string"},"param":{"type":"string","examples":["phone_number"],"description":"The parameter the error refers to, when it applies to a single one.","uniqueKey":"param","typeLabel":"string"}},"required":["code","message","type"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"invalid_phone_number","message":"The provided phone number is invalid. Provide a valid E.164 phone number.","type":"bad_request","request_id":"3d19215e-2991-4a05-a41a-527314e6ff6a","param":"phone_number"}}},"exampleType":"generated"}},"exampleType":"generated"},"6f67197e-bf09-442b-b314-e9c1169ac4dc":{"description":"Rate limited","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"The error code.","examples":["invalid_phone_number"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","examples":["The provided phone number is invalid. Provide a valid E.164 phone number."],"description":"A human-readable message describing the error.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"type":{"type":"string","examples":["bad_request"],"description":"The error type.","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"request_id":{"type":"string","examples":["3d19215e-2991-4a05-a41a-527314e6ff6a"],"description":"A string that identifies this specific request. Report it back to us to help us diagnose your issues.","uniqueKey":"request_id","typeLabel":"string"},"param":{"type":"string","examples":["phone_number"],"description":"The parameter the error refers to, when it applies to a single one.","uniqueKey":"param","typeLabel":"string"}},"required":["code","message","type"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"invalid_phone_number","message":"The provided phone number is invalid. Provide a valid E.164 phone number.","type":"bad_request","request_id":"3d19215e-2991-4a05-a41a-527314e6ff6a","param":"phone_number"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"63baf9fa-f05d-4783-8bac-a6bf6ec7c6ec":{"apiToken":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"apiToken"}}},"servers":{"33e6bed8-2f39-470a-8eed-ee741d0b2e8f":{"url":"https://api.prelude.dev","description":"Production server"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"apiToken"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"apiToken","name":"Authorization"}],"title":"apiToken"}]},"originalFileLocation":"api-reference/v2.yml"},"subdomain":"ding","siteName":"Prelude Docs","title":"Update a message template - Prelude Docs","navMaps":{"firstHrefInVersion":{"v2":{"href":"/notify/v2/api-reference/management/templates/update-template","matchLevel":0},"v1 (Legacy)":{"href":"/intel/v1/documentation/errors","matchLevel":4}},"firstHrefInLanguage":{}},"lastModified":"2026-10-09T15:35:45.146Z","originalFileLocation":"notify/v2/api-reference/management/templates/update-template.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Update a message template. This is a partial update: a field you omit keeps its stored value. Only a template still in draft can be updated, with one exception: on an approved template where WhatsApp rejected a language, you can fix the text of the rejected variants, with the same variables, and the variable_examples. The fix applies to every channel at once and is sent back to WhatsApp for review. In order to get access to this endpoint, contact our support team.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Prelude Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/ding/XcVFWlvRbYgvqL60/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/ding/XcVFWlvRbYgvqL60/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/ding/XcVFWlvRbYgvqL60/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/ding/XcVFWlvRbYgvqL60/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/ding/XcVFWlvRbYgvqL60/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/ding/XcVFWlvRbYgvqL60/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/ding/XcVFWlvRbYgvqL60/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/ding/XcVFWlvRbYgvqL60/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/ding/XcVFWlvRbYgvqL60/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Update a message template - Prelude Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Update a message template. This is a partial update: a field you omit keeps its stored value. Only a template still in draft can be updated, with one exception: on an approved template where WhatsApp rejected a language, you can fix the text of the rejected variants, with the same variables, and the variable_examples. The fix applies to every channel at once and is sent back to WhatsApp for review. In order to get access to this endpoint, contact our support team.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Prelude Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.prelude.so/notify/v2/api-reference/management/templates/update-template\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://ding.mintlify.site/_mintlify/api/og/v2?division=Templates\u0026amp;title=Update+a+message+template\u0026amp;description=Update+a+message+template.+This+is+a+partial+update%3A+a+field+you+omit+keeps+its+stored+value.+Only+a+template+still+in+%60draft%60+can+be+updated%2C+with+one+exceptio\u0026amp;theme=6928357f80dea69981b41e48\u0026amp;signature=81c3af2f74807f057d4fb64301ff9529e020ed49de0be3ae428b430604482cf3\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Update a message template - Prelude Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Update a message template. This is a partial update: a field you omit keeps its stored value. Only a template still in draft can be updated, with one exception: on an approved template where WhatsApp rejected a language, you can fix the text of the rejected variants, with the same variables, and the variable_examples. The fix applies to every channel at once and is sent back to WhatsApp for review. In order to get access to this endpoint, contact our support team.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://ding.mintlify.site/_mintlify/api/og/v2?division=Templates\u0026amp;title=Update+a+message+template\u0026amp;description=Update+a+message+template.+This+is+a+partial+update%3A+a+field+you+omit+keeps+its+stored+value.+Only+a+template+still+in+%60draft%60+can+be+updated%2C+with+one+exceptio\u0026amp;theme=6928357f80dea69981b41e48\u0026amp;signature=81c3af2f74807f057d4fb64301ff9529e020ed49de0be3ae428b430604482cf3\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/ding/XcVFWlvRbYgvqL60/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Prelude Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3D16FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.prelude.so/notify/v2/api-reference/management/templates/update-template\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/notify/v2/api-reference/management/templates/update-template.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.prelude.so/#organization\",\"name\":\"Prelude Docs\",\"url\":\"https://docs.prelude.so\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/ding/Oh9xTmLZLfeVDwbL/images/logo/light.svg?fit=max\u0026auto=format\u0026n=Oh9xTmLZLfeVDwbL\u0026q=85\u0026s=592853f53e252f58d8ca969053ecde2c\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.prelude.so#website\",\"name\":\"Prelude Docs\",\"url\":\"https://docs.prelude.so\",\"publisher\":{\"@id\":\"https://docs.prelude.so/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.prelude.so/notify/v2/api-reference/management/templates/update-template#webpage\",\"url\":\"https://docs.prelude.so/notify/v2/api-reference/management/templates/update-template\",\"name\":\"Update a message template\",\"description\":\"Update a message template. This is a partial update: a field you omit keeps its stored value. Only a template still in draft can be updated, with one exception: on an approved template where WhatsApp rejected a language, you can fix the text of the rejected variants, with the same variables, and the variable_examples. The fix applies to every channel at once and is sent back to WhatsApp for review. In order to get access to this endpoint, contact our support team.\",\"dateModified\":\"2026-10-09T15:35:45.146Z\",\"isPartOf\":{\"@id\":\"https://docs.prelude.so#website\"},\"breadcrumb\":{\"@id\":\"https://docs.prelude.so/notify/v2/api-reference/management/templates/update-template#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.prelude.so/notify/v2/api-reference/management/templates/update-template#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://docs.prelude.so/notify/v2/api-reference/send-a-message\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Management\",\"item\":\"https://docs.prelude.so/notify/v2/api-reference/management/templates/list-templates\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Templates\",\"item\":\"https://docs.prelude.so/notify/v2/api-reference/management/templates/list-templates\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Update a message template\",\"item\":\"https://docs.prelude.so/notify/v2/api-reference/management/templates/update-template\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.prelude.so/notify/v2/api-reference/management/templates/update-template#apireference\",\"headline\":\"Update a message template\",\"name\":\"Update a message template\",\"description\":\"Update a message template. This is a partial update: a field you omit keeps its stored value. Only a template still in draft can be updated, with one exception: on an approved template where WhatsApp rejected a language, you can fix the text of the rejected variants, with the same variables, and the variable_examples. The fix applies to every channel at once and is sent back to WhatsApp for review. In order to get access to this endpoint, contact our support team.\",\"url\":\"https://docs.prelude.so/notify/v2/api-reference/management/templates/update-template\",\"mainEntityOfPage\":{\"@id\":\"https://docs.prelude.so/notify/v2/api-reference/management/templates/update-template#webpage\"},\"dateModified\":\"2026-10-09T15:35:45.146Z\",\"publisher\":{\"@id\":\"https://docs.prelude.so/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.prelude.so#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Prelude Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Prelude Docs","nav":{"global":null,"anchors":[{"anchor":"Overview","pages":[{"title":"Overview","href":"/introduction/welcome-to-prelude"}]},{"anchor":"Verify","icon":"fingerprint","versions":[{"version":"v2","pages":[{"group":"Documentation","pages":[{"title":"Introduction to Verify","sidebarTitle":"Introduction","icon":"fingerprint","href":"/verify/v2/documentation/introduction"},{"title":"Quickstart","icon":"circle-bolt","href":"/verify/v2/documentation/quickstart"},{"title":"Verification Lifecycle","icon":"arrow-progress","sidebarTitle":"Verification Lifecycle","href":"/verify/v2/documentation/lifecycle"},{"title":"Prevent Fraud","icon":"binoculars","href":"/verify/v2/documentation/prevent-fraud"},{"title":"Fraud Protection Settings","icon":"sliders","href":"/verify/v2/documentation/fraud-protection-settings"},{"title":"Message Content","sidebarTitle":"Message Content","icon":"message-pen","href":"/verify/v2/documentation/content"},{"title":"Custom Sender IDs","sidebarTitle":"Custom Sender IDs","icon":"message-smile","href":"/verify/v2/documentation/sender-id"},{"title":"Connect your WhatsApp Business Account to Prelude","sidebarTitle":"WhatsApp BSP","icon":"whatsapp","href":"/verify/v2/documentation/whatsapp"},{"title":"Webhook for the Verify API","sidebarTitle":"Webhook","icon":"webhook","href":"/verify/v2/documentation/webhook"},{"title":"Test Numbers","sidebarTitle":"Test Numbers","icon":"vial-circle-check","href":"/verify/v2/documentation/testing"},{"title":"Silent Verification","sidebarTitle":"Silent Verification","icon":"message-slash","href":"/verify/v2/documentation/silent-verification"},{"title":"Email Verification","sidebarTitle":"Email Verification","icon":"envelope","href":"/verify/v2/documentation/email-verification"},{"group":"Integrations","icon":"pipe-circle-check","pages":[{"title":"Prelude API v2 and Firebase Auth integration","sidebarTitle":"Firebase","icon":"dot","href":"/verify/v2/documentation/integrations/firebase"},{"title":"Integrate Prelude with Supabase phone authentication","sidebarTitle":"Supabase","icon":"dot","href":"/verify/v2/documentation/integrations/supabase"},{"title":"Integrate Prelude with Auth0 for phone verification","sidebarTitle":"Auth0","icon":"dot","href":"/verify/v2/documentation/integrations/auth0"}]}]},{"group":"API Reference","pages":[{"openapi":"post /v2/verification","title":"Create or retry a verification","href":"/verify/v2/api-reference/create-or-retry-a-verification"},{"openapi":"post /v2/verification/check","title":"Check a code","href":"/verify/v2/api-reference/check-a-code"},{"group":"History","icon":"table-list","pages":[{"openapi":"get /v2/verification/phone/history","title":"List phone verifications","href":"/verify/v2/api-reference/history/list-phone-verifications"},{"openapi":"get /v2/verification/phone/history/{id}","title":"Get a phone verification","href":"/verify/v2/api-reference/history/get-a-phone-verification"}]},{"group":"Management","icon":"wrench","pages":[{"title":"Overview","sidebarTitle":"Overview","icon":"wrench","href":"/verify/v2/api-reference/management/overview"},{"group":"Sender ID","pages":[{"openapi":"get /v2/verification/management/sender-id","title":"List available Sender IDs","href":"/verify/v2/api-reference/management/sender-id/list-sender-ids"},{"openapi":"post /v2/verification/management/sender-id","title":"Submit a sender ID","href":"/verify/v2/api-reference/management/sender-id/submit-sender-id"}]},{"group":"Phone Number","pages":[{"openapi":"get /v2/verification/management/phone-numbers/{action}","title":"Get phone numbers allow or block list","href":"/verify/v2/api-reference/management/phone-numbers/get-phone-numbers"},{"openapi":"post /v2/verification/management/phone-numbers/{action}","title":"Add phone number to allow or block list","href":"/verify/v2/api-reference/management/phone-numbers/add-phone-number"},{"openapi":"delete /v2/verification/management/phone-numbers/{action}","title":"Delete phone number from allow or block list","href":"/verify/v2/api-reference/management/phone-numbers/delete-phone-number"}]},{"group":"Templates","pages":[{"openapi":"get /v2/verification/management/templates","title":"List OTP templates","href":"/verify/v2/api-reference/management/templates/list-templates"},{"openapi":"post /v2/verification/management/templates","title":"Create an OTP template","href":"/verify/v2/api-reference/management/templates/create-template"},{"openapi":"get /v2/verification/management/templates/{template_id}","title":"Retrieve an OTP template","href":"/verify/v2/api-reference/management/templates/get-template"},{"openapi":"patch /v2/verification/management/templates/{template_id}","title":"Update an OTP template","href":"/verify/v2/api-reference/management/templates/update-template"},{"openapi":"delete /v2/verification/management/templates/{template_id}","title":"Delete an OTP template","href":"/verify/v2/api-reference/management/templates/delete-template"}]},{"group":"Sandboxed Numbers","pages":[{"openapi":"get /v2/verification/management/phone-numbers/sandbox","title":"Get sandbox phone numbers","href":"/verify/v2/api-reference/management/phone-numbers/sandbox/get-sandbox-phone-numbers"},{"openapi":"put /v2/verification/management/phone-numbers/sandbox","title":"Add a sandbox phone number","href":"/verify/v2/api-reference/management/phone-numbers/sandbox/add-sandbox-phone-number"},{"openapi":"delete /v2/verification/management/phone-numbers/sandbox/{phone_number}","title":"Delete a sandbox phone number","href":"/verify/v2/api-reference/management/phone-numbers/sandbox/delete-sandbox-phone-number"}]}]}]}]}]},{"anchor":"Auth","icon":"tickets","pages":[{"title":"Auth","href":"/auth/documentation/introduction"}]},{"anchor":"Watch","icon":"radar","versions":[{"version":"v2","pages":[{"group":"Documentation","pages":[{"title":"Introduction to Watch","sidebarTitle":"Introduction","icon":"radar","href":"/watch/v2/documentation/introduction"},{"title":"Rules, recipes, and flows","sidebarTitle":"Rules, recipes \u0026 flows","icon":"sliders","tag":"BETA","href":"/watch/v2/documentation/rules-recipes-flows"}]},{"group":"API Reference","pages":[{"openapi":"post /v2/watch/predict","title":"Predict the outcome of a verification","sidebarTitle":"Predict outcome","href":"/watch/v2/api-reference/predict-outcome"},{"openapi":"post /v2/watch/eval","title":"Evaluate a flow against your rules","sidebarTitle":"Evaluate a flow","tag":"BETA","href":"/watch/v2/api-reference/evaluate-flow"},{"openapi":"post /v2/watch/feedback","title":"Send feedbacks about verifications","sidebarTitle":"Send feedbacks","href":"/watch/v2/api-reference/send-feedbacks"},{"openapi":"post /v2/watch/event","title":"Dispatch real-time events","sidebarTitle":"Dispatch events","href":"/watch/v2/api-reference/dispatch-events"}]},{"group":"Management API","pages":[{"group":"Rules","pages":[{"openapi":"get /v2/watch/management/rules","title":"List the rules you authored","sidebarTitle":"List rules","tag":"BETA","href":"/watch/v2/api-reference/management/rules/list-rules"},{"openapi":"post /v2/watch/management/rules","title":"Author a rule","sidebarTitle":"Create rule","tag":"BETA","href":"/watch/v2/api-reference/management/rules/create-rule"},{"openapi":"get /v2/watch/management/rules/{rule_id}","title":"Get one of your rules","sidebarTitle":"Get rule","tag":"BETA","href":"/watch/v2/api-reference/management/rules/get-rule"},{"openapi":"put /v2/watch/management/rules/{rule_id}","title":"Update a rule","sidebarTitle":"Update rule","tag":"BETA","href":"/watch/v2/api-reference/management/rules/update-rule"},{"openapi":"delete /v2/watch/management/rules/{rule_id}","title":"Delete a rule","sidebarTitle":"Delete rule","tag":"BETA","href":"/watch/v2/api-reference/management/rules/delete-rule"},{"openapi":"get /v2/watch/management/rules/managed","title":"List the rules Prelude maintains","sidebarTitle":"List managed rules","tag":"BETA","href":"/watch/v2/api-reference/management/rules/list-managed-rules"},{"openapi":"get /v2/watch/management/rules/catalog","title":"List the signals a rule can read","sidebarTitle":"List signals","tag":"BETA","href":"/watch/v2/api-reference/management/rules/list-signals"}]},{"group":"Recipes","pages":[{"openapi":"get /v2/watch/management/recipes","title":"List your recipes","sidebarTitle":"List recipes","tag":"BETA","href":"/watch/v2/api-reference/management/recipes/list-recipes"},{"openapi":"get /v2/watch/management/recipes/managed","title":"List the recipes Prelude maintains","sidebarTitle":"List managed recipes","tag":"BETA","href":"/watch/v2/api-reference/management/recipes/list-managed-recipes"},{"openapi":"post /v2/watch/management/recipes","title":"Assemble rules into a scored decision","sidebarTitle":"Create recipe","tag":"BETA","href":"/watch/v2/api-reference/management/recipes/create-recipe"},{"openapi":"get /v2/watch/management/recipes/{recipe_id}","title":"Get a recipe","sidebarTitle":"Get recipe","tag":"BETA","href":"/watch/v2/api-reference/management/recipes/get-recipe"},{"openapi":"put /v2/watch/management/recipes/{recipe_id}","title":"Update a recipe","sidebarTitle":"Update recipe","tag":"BETA","href":"/watch/v2/api-reference/management/recipes/update-recipe"},{"openapi":"delete /v2/watch/management/recipes/{recipe_id}","title":"Delete a recipe","sidebarTitle":"Delete recipe","tag":"BETA","href":"/watch/v2/api-reference/management/recipes/delete-recipe"}]},{"group":"Flows","pages":[{"openapi":"get /v2/watch/management/flows","title":"List your flows","sidebarTitle":"List flows","tag":"BETA","href":"/watch/v2/api-reference/management/flows/list-flows"},{"openapi":"post /v2/watch/management/flows","title":"Define a moment to guard","sidebarTitle":"Create flow","tag":"BETA","href":"/watch/v2/api-reference/management/flows/create-flow"},{"openapi":"get /v2/watch/management/flows/{flow_id}","title":"Get a flow","sidebarTitle":"Get flow","tag":"BETA","href":"/watch/v2/api-reference/management/flows/get-flow"},{"openapi":"put /v2/watch/management/flows/{flow_id}","title":"Update a flow","sidebarTitle":"Update flow","tag":"BETA","href":"/watch/v2/api-reference/management/flows/update-flow"},{"openapi":"delete /v2/watch/management/flows/{flow_id}","title":"Delete a flow","sidebarTitle":"Delete flow","tag":"BETA","href":"/watch/v2/api-reference/management/flows/delete-flow"}]}]}]}]},{"anchor":"Intel","icon":"telescope","versions":[{"version":"v2","pages":[{"group":"Documentation","pages":[{"title":"Introduction to Intel","sidebarTitle":"Introduction","icon":"telescope","href":"/intel/v2/documentation/introduction"}]},{"group":"API Reference","pages":[{"openapi":"get /v2/lookup/{phone_number}","title":"Lookup a phone number","sidebarTitle":"Lookup a number","href":"/intel/v2/api-reference/lookup-a-number"},{"openapi":"post /v2/intel/kyc/match/{phone}","title":"KYC Match","sidebarTitle":"KYC Match","href":"/intel/v2/api-reference/kyc-match"}]}]},{"version":"v1 (Legacy)","pages":[{"title":"v1 (Legacy)","href":"/intel/v1/documentation/errors"}]}]},{"anchor":"Notify","icon":"comment-dots","versions":[{"version":"v2","pages":[{"group":"Documentation","pages":[{"title":"Introduction to Notify","sidebarTitle":"Introduction","icon":"comment-dots","href":"/notify/v2/documentation/introduction"},{"title":"2-Way Messaging with WhatsApp","sidebarTitle":"WhatsApp 2-Way","icon":"whatsapp","href":"/notify/v2/documentation/whatsapp"},{"title":"Send images, videos, and documents on WhatsApp","sidebarTitle":"WhatsApp Media","icon":"whatsapp","href":"/notify/v2/documentation/whatsapp-media"},{"title":"2-Way Messaging with RCS","sidebarTitle":"RCS 2-Way","icon":"comments","href":"/notify/v2/documentation/rcs"},{"title":"Webhook for the Notify API","sidebarTitle":"Webhook","icon":"webhook","href":"/notify/v2/documentation/webhook"},{"title":"Marketing Compliance Rules","sidebarTitle":"Marketing Compliance","icon":"shield-check","href":"/notify/v2/documentation/marketing-compliance"},{"title":"SMS Opt-in for the US and Canada","sidebarTitle":"US \u0026 Canada Opt-in","icon":"square-check","href":"/notify/v2/documentation/us-canada-opt-in"},{"title":"Subscription Management","sidebarTitle":"Subscription Management","icon":"user-group","href":"/notify/v2/documentation/subscription-management"},{"title":"Message Scheduling","sidebarTitle":"Scheduling","icon":"clock","href":"/notify/v2/documentation/scheduling"},{"title":"Supported Locales","sidebarTitle":"Supported Locales","icon":"language","href":"/notify/v2/documentation/supported-locales"}]},{"group":"API Reference","pages":[{"openapi":"post /v2/notify","title":"Send a message","href":"/notify/v2/api-reference/send-a-message"},{"openapi":"post /v2/notify/batch","title":"Send bulk messages","href":"/notify/v2/api-reference/send-bulk-messages"},{"openapi":"post /v2/notify/reply","title":"Reply to an inbound message","href":"/notify/v2/api-reference/send-a-reply"},{"openapi":"get /v2/notify/inbound/{message_id}/media","title":"Download an inbound file","href":"/notify/v2/api-reference/download-inbound-media"},{"group":"Management","icon":"wrench","pages":[{"group":"Templates","pages":[{"openapi":"get /v2/notify/management/templates","title":"List message templates","href":"/notify/v2/api-reference/management/templates/list-templates"},{"openapi":"post /v2/notify/management/templates","title":"Create a message template","href":"/notify/v2/api-reference/management/templates/create-template"},{"openapi":"get /v2/notify/management/templates/{template_id}","title":"Retrieve a message template","description":"Retrieve a single message template, with its approval status and its per-country readiness.\n\nIn order to get access to this endpoint, contact our support team.\n","href":"/notify/v2/api-reference/management/templates/get-template"},{"openapi":"patch /v2/notify/management/templates/{template_id}","title":"Update a message template","href":"/notify/v2/api-reference/management/templates/update-template"},{"openapi":"delete /v2/notify/management/templates/{template_id}","title":"Delete a message template","description":"Delete a message template, whatever its status. Messages already queued with it are not sent. On a template whose `channels` include `whatsapp`, the copy on your WhatsApp Business Account is kept, and WhatsApp archives it after 12 months without use.\n\nIn order to get access to this endpoint, contact our support team.\n","href":"/notify/v2/api-reference/management/templates/delete-template"},{"openapi":"post /v2/notify/management/templates/{template_id}/submit","title":"Submit a message template for review","href":"/notify/v2/api-reference/management/templates/submit-template"}]},{"group":"Subscriptions","pages":[{"openapi":"get /v2/notify/management/subscriptions","title":"List subscription configurations","href":"/notify/v2/api-reference/management/subscriptions/list-subscription-configs"},{"openapi":"get /v2/notify/management/subscriptions/{config_id}/phone_numbers","title":"List subscription phone numbers","href":"/notify/v2/api-reference/management/subscriptions/list-subscription-phone-numbers"},{"openapi":"get /v2/notify/management/subscriptions/{config_id}/phone_numbers/{phone_number}","title":"Get subscription phone number status","href":"/notify/v2/api-reference/management/subscriptions/get-subscription-phone-number"},{"openapi":"get /v2/notify/management/subscriptions/{config_id}/phone_numbers/{phone_number}/events","title":"List subscription phone number events","href":"/notify/v2/api-reference/management/subscriptions/list-subscription-phone-number-events"}]}]}]}]}]}]},"basePath":"","title":"Update a message template - Prelude Docs","buildId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","deploymentId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-i2a3QZ8E.js","utils-ChLwp8m0.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DRktVTDc.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CA2pEs4T.js","snippetPresets-ClQ6XrKD.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","Page-BUDYNlhG.js","ApiExamples-Ct_Lv36y.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-Cn2PYw9e.js","shallow-rkyymjXQ.js","getApiPlaygroundDisplay-BB9vkXtE.js","CodeSnippet-Bm5RU7m1.js","CodeSnippets-BgU9Deuz.js","getPastedJson-BD-6NNum.js","icon-8Z6tud2e.js","MethodPill-Tuzr4g3V.js","DuplicateIcon-0ceWFYhN.js","createIcon-FBXow_ST.js","DynamicMarkdown-CD8713Yy.js","SectionHeading-7zgzQbH-.js","axios-vUo_bRtp.js","Markdown-D7Ofw1oz.js","clsx-eKJ4rcii.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CwjSCXIK.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-9EK5IAXV.js"]}