Gérer les gabarits

Vous pouvez utiliser Notification GC pour créer, lire, mettre à jour et archiver des gabarits à l'aide de l'API.

Cela est utile si votre équipe souhaite configurer et maintenir des gabarits automatiquement dans plusieurs environnements.

Ce dont vous aurez besoin

Les points de terminaison d'API pour gérer les gabarits exigent une clé API avec la permission manage_templates.

Pour créer une clé avec cette permission :

  1. Connectez-vous à Notification GC (opens new window).
  2. Allez à la page Intégration API.
  3. Sélectionnez Clés API.
  4. Sélectionnez Créer une clé API.
  5. Entrez un nom de clé.
  6. Sous les permissions, choisissez Manage templates.
  7. Sélectionnez Créer une clé API.
  8. Copiez la clé et stockez-la de façon sécuritaire.

Pour les types de clés et leur gestion, consultez Clés API.

Les catégories de gabarit sont obligatoires

Chaque gabarit que vous créez doit inclure template_category_id.

Vous pouvez :

Créer un gabarit

POST /v2/manage-template

Corps de la requête

{
  "name": "Réinitialisation du mot de passe",
  "template_type": "email",
  "subject": "Réinitialisez votre mot de passe",
  "content": "Bonjour ((name)), utilisez ce lien : ((reset_link))",
  "template_category_id": "b6c42a7e-2a26-4a07-802b-123a5c3198a9"
}

Paramètres

name (obligatoire)

Le nom du gabarit.

template_type (obligatoire)

Le type de notification. Valeurs permises :

  • email (courriel)
  • sms (message texte)

content (obligatoire)

Le contenu du corps du gabarit.

subject (obligatoire pour les gabarits courriel)

L'objet du gabarit courriel.

template_category_id (obligatoire)

L'ID de catégorie de ce gabarit. Consultez Catégories de gabarit.

parent_folder_id (facultatif)

L'ID du dossier où le gabarit doit être stocké.

Réponse

Si la requête réussit, le corps de la réponse est en json avec un code de statut 201 :

{
  "id": "740e5834-3a29-46b4-9a6f-16142fde533a",
  "service_id": "afa2be3b-1250-430f-a70f-28a1a9d49dfa",
  "service_name": "Nom du service",
  "name": "Réinitialisation du mot de passe",
  "type": "email",
  "created_at": "2026-06-15 12:30:00.000000",
  "updated_at": null,
  "created_by": "utilisateur-service@exemple.com",
  "version": 1,
  "body": "Bonjour ((name)), utilisez ce lien : ((reset_link))",
  "subject": "Réinitialisez votre mot de passe",
  "postage": "second",
  "template_category_id": "b6c42a7e-2a26-4a07-802b-123a5c3198a9",
  "template_category_name": "Authentication",
  "folder_id": null,
  "archived": false
}

Codes d'erreur

status_code message Comment corriger
400 [{
"error": "ValidationError",
"message": "'template_category_id' is a required property"
}]
Ajoutez template_category_id au corps de la requête
400 [{
"error": "TemplateCategoryValidationError",
"message": "template_category_id must be a valid UUID"
}]
Utilisez une valeur UUID valide pour template_category_id
400 [{
"error": "TemplateCategoryNotFoundError",
"message": "template_category_id not found"
}]
Utilisez une catégorie de Catégories de gabarit
400 [{
"error": "BadRequestError",
"message": "parent_folder_id not found"
}]
Utilisez un ID de dossier valide dans votre service
400 [{
"error": "BadRequestError",
"message": "Content has a character count greater than the limit of (LIMIT)"
}]
Réduisez la longueur du contenu du gabarit
400 [{
"error": "BadRequestError",
"message": "Template name must be less than (LIMIT) characters"
}]
Utilisez un nom de gabarit plus court
403 [{
"error": "ForbiddenError",
"message": "This API key does not have permission to manage templates."
}]
Créez ou utilisez une clé API avec la permission manage_templates
404 [{
"error": "NoResultFound",
"message": "No result found"
}]
Utilisez un ID de ressource valide du service
500 [{
"error": "Exception",
"message": "Internal server error"
}]
Notification GC n'a pas pu traiter la requête, renvoyez votre requête

Obtenir un gabarit par ID

GET /v2/manage-template/{template_id}

Paramètres

template_id (obligatoire)

L'ID du gabarit à récupérer.

Réponse

Si la requête réussit, le corps de la réponse est en json avec un code de statut 200 :

{
  "id": "740e5834-3a29-46b4-9a6f-16142fde533a",
  "service_id": "afa2be3b-1250-430f-a70f-28a1a9d49dfa",
  "service_name": "Nom du service",
  "name": "Réinitialisation du mot de passe",
  "type": "email",
  "created_at": "2026-06-15 12:30:00.000000",
  "updated_at": "2026-06-15 12:31:00.000000",
  "created_by": "utilisateur-service@exemple.com",
  "version": 2,
  "body": "Bonjour ((name)), utilisez ce lien : ((reset_link))",
  "subject": "Réinitialisez votre mot de passe",
  "postage": "second",
  "template_category_id": "b6c42a7e-2a26-4a07-802b-123a5c3198a9",
  "template_category_name": "Authentication",
  "folder_id": null,
  "archived": false
}

Codes d'erreur

status_code message Comment corriger
403 [{
"error": "ForbiddenError",
"message": "This API key does not have permission to manage templates."
}]
Créez ou utilisez une clé API avec la permission manage_templates
404 [{
"error": "NoResultFound",
"message": "No result found"
}]
Confirmez que l'ID du gabarit existe dans votre service
500 [{
"error": "Exception",
"message": "Internal server error"
}]
Notification GC n'a pas pu traiter la requête, renvoyez votre requête

Mettre à jour un gabarit

PATCH /v2/manage-template/{template_id}

Corps de la requête

Fournissez un ou plusieurs champs à mettre à jour.

{
  "name": "Réinitialisation du mot de passe v2",
  "content": "Bonjour ((name)), utilisez ce lien sécurisé : ((reset_link))",
  "subject": "Réinitialisez votre mot de passe",
  "template_category_id": "b6c42a7e-2a26-4a07-802b-123a5c3198a9",
  "parent_folder_id": "f025b1a9-63af-43e8-b969-627bfe544bba"
}

Paramètres

template_id (obligatoire)

L'ID du gabarit à mettre à jour.

name (facultatif)

Le nouveau nom du gabarit.

content (facultatif)

Le nouveau contenu du corps.

subject (facultatif)

Le nouvel objet du courriel.

template_category_id (facultatif)

Le nouvel ID de catégorie de gabarit.

parent_folder_id (facultatif)

L'ID du dossier vers lequel déplacer ce gabarit. Pour retirer l'association à un dossier, définissez parent_folder_id à null.

Réponse

Si la requête réussit, le corps de la réponse est en json avec un code de statut 200 :

{
  "id": "740e5834-3a29-46b4-9a6f-16142fde533a",
  "service_id": "afa2be3b-1250-430f-a70f-28a1a9d49dfa",
  "service_name": "Nom du service",
  "name": "Réinitialisation du mot de passe v2",
  "type": "email",
  "created_at": "2026-06-15 12:30:00.000000",
  "updated_at": "2026-06-15 12:35:00.000000",
  "created_by": "utilisateur-service@exemple.com",
  "version": 3,
  "body": "Bonjour ((name)), utilisez ce lien sécurisé : ((reset_link))",
  "subject": "Réinitialisez votre mot de passe",
  "postage": "second",
  "template_category_id": "b6c42a7e-2a26-4a07-802b-123a5c3198a9",
  "template_category_name": "Authentication",
  "folder_id": "f025b1a9-63af-43e8-b969-627bfe544bba",
  "archived": false
}

Codes d'erreur

status_code message Comment corriger
400 [{
"error": "ValidationError",
"message": "Additional properties are not allowed"
}]
Utilisez seulement les champs pris en charge : name, content, subject, template_category_id, parent_folder_id
400 [{
"error": "TemplateCategoryValidationError",
"message": "template_category_id must be a valid UUID"
}]
Utilisez une valeur UUID valide pour template_category_id
400 [{
"error": "TemplateCategoryNotFoundError",
"message": "template_category_id not found"
}]
Utilisez une catégorie de Catégories de gabarit
400 [{
"error": "BadRequestError",
"message": "parent_folder_id not found"
}]
Utilisez un ID de dossier valide dans votre service
400 [{
"error": "BadRequestError",
"message": "Content has a character count greater than the limit of (LIMIT)"
}]
Réduisez la longueur du contenu du gabarit
400 [{
"error": "BadRequestError",
"message": "Template name must be less than (LIMIT) characters"
}]
Utilisez un nom de gabarit plus court
403 [{
"error": "ForbiddenError",
"message": "This API key does not have permission to manage templates."
}]
Créez ou utilisez une clé API avec la permission manage_templates
404 [{
"error": "NoResultFound",
"message": "No result found"
}]
Confirmez que l'ID du gabarit existe dans votre service
500 [{
"error": "Exception",
"message": "Internal server error"
}]
Notification GC n'a pas pu traiter la requête, renvoyez votre requête

Archiver un gabarit

DELETE /v2/manage-template/{template_id}

Ce point de terminaison archive un gabarit. Les gabarits archivés ne sont pas supprimés de façon permanente.

Paramètres

template_id (obligatoire)

L'ID du gabarit à archiver.

Réponse

Si la requête réussit, le corps de la réponse est en json avec un code de statut 200 :

{
  "id": "740e5834-3a29-46b4-9a6f-16142fde533a",
  "service_id": "afa2be3b-1250-430f-a70f-28a1a9d49dfa",
  "service_name": "Nom du service",
  "name": "Réinitialisation du mot de passe v2",
  "type": "email",
  "created_at": "2026-06-15 12:30:00.000000",
  "updated_at": "2026-06-15 12:40:00.000000",
  "created_by": "utilisateur-service@exemple.com",
  "version": 3,
  "body": "Bonjour ((name)), utilisez ce lien sécurisé : ((reset_link))",
  "subject": "Réinitialisez votre mot de passe",
  "postage": "second",
  "template_category_id": "b6c42a7e-2a26-4a07-802b-123a5c3198a9",
  "template_category_name": "Authentication",
  "folder_id": null,
  "archived": true
}

Codes d'erreur

status_code message Comment corriger
400 [{
"error": "BadRequestError",
"message": "Template is already archived."
}]
Utilisez un gabarit qui n'est pas archivé
403 [{
"error": "ForbiddenError",
"message": "This API key does not have permission to manage templates."
}]
Créez ou utilisez une clé API avec la permission manage_templates
404 [{
"error": "NoResultFound",
"message": "No result found"
}]
Confirmez que l'ID du gabarit existe dans votre service
500 [{
"error": "Exception",
"message": "Internal server error"
}]
Notification GC n'a pas pu traiter la requête, renvoyez votre requête

Exemples CURL

Exemple pour créer un gabarit

curl --request POST \
  --url https://api.notification.canada.ca/v2/manage-template \
  --header 'Authorization: ApiKey-v1 VOTRE_CLÉ_API' \
  --header 'Content-Type: application/json' \
  --data '{
    "name": "Réinitialisation du mot de passe",
    "template_type": "email",
    "subject": "Réinitialisez votre mot de passe",
    "content": "Bonjour ((name)), utilisez ce lien : ((reset_link))",
    "template_category_id": "b6c42a7e-2a26-4a07-802b-123a5c3198a9"
  }'

Exemple pour obtenir un gabarit

curl --request GET \
  --url https://api.notification.canada.ca/v2/manage-template/TEMPLATE_ID \
  --header 'Authorization: ApiKey-v1 VOTRE_CLÉ_API' \
  --header 'Content-Type: application/json'

Exemple pour mettre à jour un gabarit

curl --request PATCH \
  --url https://api.notification.canada.ca/v2/manage-template/TEMPLATE_ID \
  --header 'Authorization: ApiKey-v1 VOTRE_CLÉ_API' \
  --header 'Content-Type: application/json' \
  --data '{
    "name": "Réinitialisation du mot de passe v2",
    "template_category_id": "b6c42a7e-2a26-4a07-802b-123a5c3198a9"
  }'

Exemple pour archiver un gabarit

curl --request DELETE \
  --url https://api.notification.canada.ca/v2/manage-template/TEMPLATE_ID \
  --header 'Authorization: ApiKey-v1 VOTRE_CLÉ_API' \
  --header 'Content-Type: application/json'