@@ -78,7 +78,9 @@ def create(
7878
7979 The
8080 template can be submitted for review immediately or saved as draft for later
81- submission.
81+ submission. There is no `name` field on create — the display name is derived
82+ from the template's content and can be changed afterwards with
83+ `PUT /v3/templates/{id}`.
8284
8385 Args:
8486 category: Template category: MARKETING, UTILITY, AUTHENTICATION (optional, auto-detected
@@ -190,7 +192,31 @@ def update(
190192 ) -> APIResponseTemplate :
191193 """
192194 Updates an existing template's name, category, language, definition, or submits
193- it for review.
195+ it for review. While the template is in review (status PENDING, or any channel
196+ awaiting a verdict) its definition, category and language are frozen and a
197+ resubmission is refused — those requests answer 409 CONFLICT_006. The display
198+ name stays editable throughout.
199+
200+ `definition`, `category` and `language` are editable only from status DRAFT,
201+ REJECTED or APPROVED. An edit to any of them on a template in another state
202+ (PAUSED, DISABLED or REVOKED) is refused with 400 VALIDATION_001 and the detail
203+ "Template (except display name) cannot be updated unless it is in draft or
204+ rejected status"; `name` stays editable in every state. `submit_for_review` on a
205+ PAUSED, DISABLED or REVOKED template is accepted and answers 200, but opens no
206+ review and does not move the status — only the reviewer can reinstate it.
207+
208+ Editing an APPROVED template is a live edit: the new content is stored
209+ immediately, and sending `submit_for_review: true` re-opens review, which
210+ returns the affected channels to PENDING so they stop sending until they are
211+ approved again. The previously approved content is never sent during re-review.
212+ Watch the per-channel `templates` webhook events rather than assuming the
213+ template-level status.
214+
215+ Templates provisioned by Sent (light-onboarding templates, whose names carry the
216+ reserved `sent_` prefix) are read-only: every field is refused with 400
217+ VALIDATION*001 and the detail "This template is read-only. Only 'submit for
218+ review' is allowed.", and only `submit_for_review` is accepted. A `name`
219+ starting with `sent*` is refused for the same reason — the prefix is reserved.
194220
195221 Args:
196222 category: Template category: MARKETING, UTILITY, AUTHENTICATION
@@ -416,7 +442,9 @@ async def create(
416442
417443 The
418444 template can be submitted for review immediately or saved as draft for later
419- submission.
445+ submission. There is no `name` field on create — the display name is derived
446+ from the template's content and can be changed afterwards with
447+ `PUT /v3/templates/{id}`.
420448
421449 Args:
422450 category: Template category: MARKETING, UTILITY, AUTHENTICATION (optional, auto-detected
@@ -528,7 +556,31 @@ async def update(
528556 ) -> APIResponseTemplate :
529557 """
530558 Updates an existing template's name, category, language, definition, or submits
531- it for review.
559+ it for review. While the template is in review (status PENDING, or any channel
560+ awaiting a verdict) its definition, category and language are frozen and a
561+ resubmission is refused — those requests answer 409 CONFLICT_006. The display
562+ name stays editable throughout.
563+
564+ `definition`, `category` and `language` are editable only from status DRAFT,
565+ REJECTED or APPROVED. An edit to any of them on a template in another state
566+ (PAUSED, DISABLED or REVOKED) is refused with 400 VALIDATION_001 and the detail
567+ "Template (except display name) cannot be updated unless it is in draft or
568+ rejected status"; `name` stays editable in every state. `submit_for_review` on a
569+ PAUSED, DISABLED or REVOKED template is accepted and answers 200, but opens no
570+ review and does not move the status — only the reviewer can reinstate it.
571+
572+ Editing an APPROVED template is a live edit: the new content is stored
573+ immediately, and sending `submit_for_review: true` re-opens review, which
574+ returns the affected channels to PENDING so they stop sending until they are
575+ approved again. The previously approved content is never sent during re-review.
576+ Watch the per-channel `templates` webhook events rather than assuming the
577+ template-level status.
578+
579+ Templates provisioned by Sent (light-onboarding templates, whose names carry the
580+ reserved `sent_` prefix) are read-only: every field is refused with 400
581+ VALIDATION*001 and the detail "This template is read-only. Only 'submit for
582+ review' is allowed.", and only `submit_for_review` is accepted. A `name`
583+ starting with `sent*` is refused for the same reason — the prefix is reserved.
532584
533585 Args:
534586 category: Template category: MARKETING, UTILITY, AUTHENTICATION
0 commit comments