Sur cette page

Référence de l’API : Webhooks

Les Webhooks sortants notifient vos propres systèmes lorsque des événements se produisent dans ProcessMind. Chaque livraison est une requête POST JSON signée avec le secret de votre Webhook : l’en-tête X-ProcessMind-Signature contient sha256=<hex>, un HMAC-SHA256 du corps brut de la requête. Vérifiez la signature par rapport aux octets exacts reçus, avant d’analyser le JSON, et rejetez les livraisons dont la signature ne correspond pas. Chaque corps contient également un deliveryId, que vous pouvez utiliser pour dédupliquer les livraisons « au moins une fois ».

Lister les Webhooks sortants

Endpoint : GET /v1/tenant/{tenantId}/webhooks

Authentification : Clé API limitée au tenant · read portée

Paramètres :

Nom Type Emplacement Obligatoire Description
tenantId string chemin Oui Format : uuid
limit integer requête Non Nombre maximal d’éléments à renvoyer
offset integer requête Non Nombre d’éléments à ignorer

Réponse (200) :

Liste des Webhooks

[
	{
		"id": "00000000-0000-0000-0000-000000000000",
		"url": "string",
		"events": [
			"process.created"
		],
		"description": "string",
		"isActive": true,
		"createdAt": "2024-03-15T16:30:00Z"
	}
]

Erreurs :

  • 401 Clé API manquante, non valide, désactivée ou expirée

Créer un Webhook sortant (renvoie le secret de signature une seule fois)

Endpoint : POST /v1/tenant/{tenantId}/webhooks

Authentification : Clé API limitée au tenant · write portée

Paramètres :

Nom Type Emplacement Obligatoire Description
tenantId string chemin Oui Format : uuid

Corps de la requête :

{
	"url": "string",
	"events": [
		"process.created"
	],
	"description": "string"
}
Champ Type Obligatoire Description
url string Oui Endpoint public https qui reçoit les livraisons POST signées, sans adresse privée ou de bouclage
events process.created | process.updated | process.deleted | mapping.created | data.ready | simulation.completed | webhook.test[] Oui Événements qui déclenchent une livraison vers ce Webhook
description string Non Description facultative
Longueur maximale : 500

Réponse (201) :

Webhook créé, avec le secret de signature

{
	"id": "00000000-0000-0000-0000-000000000000",
	"url": "string",
	"events": [
		"process.created"
	],
	"description": "string",
	"isActive": true,
	"createdAt": "2024-03-15T16:30:00Z",
	"secret": "string"
}
Champ Type Obligatoire Description
id string Oui Format : uuid
url string Oui Format : uri
events process.created | process.updated | process.deleted | mapping.created | data.ready | simulation.completed | webhook.test[] Oui
description string Oui Longueur maximale : 500
isActive boolean Oui Valeur par défaut : true
createdAt string Oui Format : date-time
secret string Oui Secret de signature ; renvoyé uniquement ici, lors de la création

Erreurs :

  • 400 Requête incorrecte : par exemple, une expression de filtre non valide, un processus sans modèle, un type d’importation non pris en charge ou un champ obligatoire manquant
  • 401 Clé API manquante, non valide, désactivée ou expirée

Obtenir un Webhook sortant

Endpoint : GET /v1/tenant/{tenantId}/webhooks/{webhookId}

Authentification : Clé API limitée au tenant · read portée

Paramètres :

Nom Type Emplacement Obligatoire Description
tenantId string chemin Oui Format : uuid
webhookId string chemin Oui Format : uuid

Réponse (200) :

Webhook

{
	"id": "00000000-0000-0000-0000-000000000000",
	"url": "string",
	"events": [
		"process.created"
	],
	"description": "string",
	"isActive": true,
	"createdAt": "2024-03-15T16:30:00Z"
}
Champ Type Obligatoire Description
id string Oui Format : uuid
url string Oui Format : uri
events process.created | process.updated | process.deleted | mapping.created | data.ready | simulation.completed | webhook.test[] Oui
description string Oui Longueur maximale : 500
isActive boolean Oui Valeur par défaut : true
createdAt string Oui Format : date-time

Erreurs :

  • 401 Clé API manquante, non valide, désactivée ou expirée
  • 404 Ressource introuvable

Mettre à jour un Webhook sortant

Point de terminaison : PUT /v1/tenant/{tenantId}/webhooks/{webhookId}

Authentification : Clé API limitée au tenant · portée write

Paramètres :

Nom Type Emplacement Obligatoire Description
tenantId string chemin Oui Format : uuid
webhookId string chemin Oui Format : uuid

Corps de la requête :

{
	"url": "string",
	"events": [
		"process.created"
	],
	"description": "string",
	"isActive": true
}
Champ Type Obligatoire Description
url string Non Point de terminaison public https qui reçoit les livraisons POST signées
events process.created | process.updated | process.deleted | mapping.created | data.ready | simulation.completed | webhook.test[] Non Événements qui déclenchent une livraison vers ce webhook
description string Non Description facultative
Longueur maximale : 500
isActive boolean Non Indique si le webhook est activé

Réponse (200) :

Webhook mis à jour

{
	"id": "00000000-0000-0000-0000-000000000000",
	"url": "string",
	"events": [
		"process.created"
	],
	"description": "string",
	"isActive": true,
	"createdAt": "2024-03-15T16:30:00Z"
}
Champ Type Obligatoire Description
id string Oui Format : uuid
url string Oui Format : uri
events process.created | process.updated | process.deleted | mapping.created | data.ready | simulation.completed | webhook.test[] Oui
description string Oui Longueur maximale : 500
isActive boolean Oui Valeur par défaut : true
createdAt string Oui Format : date-time

Erreurs :

  • 401 Clé API absente, invalide, désactivée ou expirée
  • 404 Ressource introuvable

Supprimer un webhook sortant

Point de terminaison : DELETE /v1/tenant/{tenantId}/webhooks/{webhookId}

Authentification : Clé API limitée au tenant · portée write

Paramètres :

Nom Type Emplacement Obligatoire Description
tenantId string chemin Oui Format : uuid
webhookId string chemin Oui Format : uuid

Réponse (200) :

Webhook supprimé

{
	"deleted": true
}
Champ Type Obligatoire Description
deleted boolean Oui

Erreurs :

  • 401 Clé API absente, invalide, désactivée ou expirée
  • 404 Ressource introuvable

Déclencher une livraison de test vers le webhook

Point de terminaison : POST /v1/tenant/{tenantId}/webhooks/{webhookId}/test

Authentification : Clé API limitée au tenant · portée write

Paramètres :

Nom Type Emplacement Obligatoire Description
tenantId string chemin Oui Format : uuid
webhookId string chemin Oui Format : uuid

Réponse (200) :

Livraison de test déclenchée

{
	"message": "string"
}
Champ Type Obligatoire Description
message string Oui

Erreurs :

  • 401 Clé API absente, invalide, désactivée ou expirée
  • 404 Ressource introuvable