Webhooks#
Les webhooks vous permettent de recevoir des notifications, par exemple lorsqu'un Ask est signé ou lorsqu'une commande dispose de nouvelles données.
Les webhooks sont des requêtes HTTP POST envoyées à l'adresse que vous définissez dans votre dashboard. Si le code de retour HTTP de votre serveur n'est pas 2xx, le système réessaiera de délivrer le webhook, jusqu'à 3 tentatives.
{
"event": {
"_tag": "order.request_success",
"createdAt": "2024-09-17T10:21:32.262Z",
"projectId": "a0efdd19-de68-480d-a92f-458ffd98f5c2",
"orderId": "f720e25e-c662-402e-bd64-aa0771aa819f",
"requestId": "de36dc27-ca90-4c10-ba6c-9524b1f9bcdf",
"requestType": "R63"
}
}
Tous les événements partagent les propriétés communes _tag, createdAt et projectId, complétées par des propriétés propres à chaque type.
_tag | Description | Propriétés spécifiques |
|---|---|---|
ask.accepted | Signature d'un Ask | askId |
ask.revoked | Révocation d'un Ask | askId |
proof.accepted | Justificatif de contrat accepté | askId, proofId |
proof.rejected | Justificatif de contrat rejeté | askId, proofId |
order.request_success | Succès d'une requête au sein d'une commande | orderId, requestId, requestType |
order.request_failed | Échec d'une requête au sein d'une commande | orderId, requestId, requestType |
ask.accepted signale la signature du mandat, pas l'ouverture de l'accès. Sur un contrat gaz GRDF, le titulaire doit encore confirmer la demande par e-mail ou SMS : le contrat reste en PENDING_DSO_ACTION jusque-là, et cette transition ne fait pas encore l'objet d'un webhook. Voir la confirmation du titulaire.
Pour des raisons de sécurité, nous n'incluons dans les webhooks que les identifiants (askId, orderId, requestId) et le type de requête. Faites les appels d'API habituels pour obtenir le détail des Asks / Orders correspondants.
Les événements order.request_success / order.request_failed sont émis par requête, pas par commande : une commande contenant trois requêtes déclenche trois webhooks, dans l'ordre où les requêtes se terminent. C'est aussi le cas des requêtes synchrones (*_SYNC), dont le résultat est déjà connu à la fin de l'appel HTTP : le webhook est alors redondant pour vous, et vous pouvez l'ignorer en filtrant sur requestType.
Astuce dev — pour tester vos webhooks en local, exposez votre serveur avec ngrok ou localtunnel, puis déclenchez des webhooks à partir d'un Ask de test (header switchgrid-test-env: true sur le POST /ask). Vous recevrez un webhook à la signature du consentement, puis à chaque requête terminée au sein d'une commande.