Beam Help
Demander de l'aide

How-to · Zoho DESK

Comment supprimer une entrée de temps d'un ticket dans Zoho Desk

Supprimez les entrées de temps des tickets via l'API en utilisant les identifiants du ticket et de l'entrée.

La suppression d'une entrée de temps d'un ticket dans Zoho Desk s'effectue via une unique requête DELETE authentifiée vers le point de terminaison des entrées de temps, en transmettant l'identifiant du ticket et celui de l'entrée de temps en tant que paramètres de chemin.


Pourquoi c'est important


Les entrées de temps enregistrées sur les tickets de support alimentent la facturation, les rapports SLA et les indicateurs de productivité des agents. Si une entrée a été saisie par erreur — mauvais ticket, soumission en double ou durée incorrecte — vous avez besoin d'un moyen propre de la supprimer sans affecter les autres enregistrements. Cela est également pertinent lors de l'automatisation du nettoyage du suivi du temps via des scripts ou des intégrations.


> Remarque : Beam Help est un support expert indépendant pour Zoho — et non le support officiel de Zoho.


---


Étape par étape


Étape 1. Vérifiez vos portées OAuth.

Avant d'effectuer tout appel API, vérifiez que le jeton de votre application connectée inclut la portée Desk.tickets.ALL ou Desk.tickets.DELETE. Sans la portée correcte, la requête sera rejetée avec une erreur d'autorisation. [2]


Étape 2. Identifiez les deux identifiants requis.

Vous avez besoin de deux valeurs exactement :

  • ticketId — l'identifiant unique du ticket auquel appartient l'entrée de temps.
  • timeEntryId — l'identifiant unique de l'entrée de temps spécifique que vous souhaitez supprimer.

Ces deux valeurs sont des chaînes de caractères. Vous pouvez les récupérer via un appel GET préalable à la liste des entrées de temps du ticket, ou depuis l'URL de l'interface Zoho Desk. [1]


Étape 3. Construisez la requête DELETE.

Envoyez une requête HTTP DELETE vers le point de terminaison suivant, en remplaçant les identifiants par les vôtres :


DELETE /api/v1/tickets/{ticketId}/timeEntries/{timeEntryId}

Inclure l'en-tête Authorization: Bearer <access_token> ainsi que l'en-tête orgId requis par l'API de Zoho Desk. [1]


Étape 4. Exécutez l'appel en Python (facultatif).

Si vous travaillez avec une intégration Python, l'appel suit ce modèle :


def delete_ticket_time_entry(self, ticketId: str, timeEntryId: str, p: dict = None):
    return self.c.request(
        "DELETE",
        f"/api/v1/tickets/{ticketId}/timeEntries/{timeEntryId}",
        p,
        None
    )

Passez ticketId et timeEntryId en tant qu'arguments positionnels ; le paramètre optionnel p peut transporter tout paramètre de requête supplémentaire requis par votre environnement. [1]


Étape 5. Gérez la réponse.

Une suppression réussie renvoie un HTTP 204 No Content ou un statut de succès similaire avec un corps vide. Si vous recevez une réponse 4xx, vérifiez vos identifiants et vos portées OAuth avant de réessayer. [1]


---


Erreurs courantes


  • Mauvais type d'entité. Les entrées de temps peuvent également être associées à des contacts (/api/v1/contacts/{contactId}/timeEntries/{timeEntryId}) ou à des comptes (/api/v1/accounts/{accountId}/timeEntries/{timeEntryId}). Assurez-vous de cibler le point de terminaison des tickets et non l'un de ces points de terminaison similaires, sinon vous obtiendrez une erreur « introuvable » même si l'entrée existe. [4][8]
  • Portée OAuth insuffisante. La portée Desk.tickets.READ seule ne suffit pas — vous devez disposer d'une portée autorisant la suppression, telle que Desk.tickets.DELETE ou Desk.tickets.ALL. [2]
  • Identifiants inversés. Placer le timeEntryId à la position du ticketId (ou vice versa) entraînera une erreur de ressource introuvable. Vérifiez bien l'ordre : l'identifiant du ticket vient en premier dans le chemin, celui de l'entrée de temps en second. [1]

---


Points à vérifier


  • Couverture des portées : Confirmez que votre jeton OAuth a été émis avec Desk.tickets.DELETE ou Desk.tickets.ALL avant d'effectuer l'appel. [2]
  • Chemin du point de terminaison correct : Vérifiez que l'URL est bien /api/v1/tickets/{ticketId}/timeEntries/{timeEntryId} — et non la variante contacts ou comptes. [1][4][8]
  • Code de réponse de succès : Un 204 (ou statut de succès équivalent) confirme la suppression ; tout code dans la plage 4xx signifie que l'entrée n'a pas été supprimée et nécessite une investigation. [1]

Sources cited

  1. [1] DELETE /api/v1/tickets/{ticketId}/timeEntries/{timeEntryId}
  2. [2] config.py
  3. [3] server.py: build_zoho_links
  4. [4] DELETE /api/v1/contacts/{contactId}/timeEntries/{timeEntryId}
  5. [5] DELETE /api/v1/tickets/{ticketId}/tags/{tagId}
  6. [6] DELETE /api/v1/ticketTemplates/{templateId}
  7. [7] zoho_oauth.py
  8. [8] DELETE /api/v1/accounts/{accountId}/timeEntries/{timeEntryId}
Supprimer une entrée de temps | Beam Help — Beam Help