Recevoir les demandes
Chaque demande qu'une de vos entreprises peut prendre arrive dans votre outil, par webhook.
Quand le webhook part
Dès que l'entreprise peut se positionner : à la publication, ou à la fin de son délai d'accès s'il y en a un. Une demande qui se rouvre part de la même façon, si l'entreprise ne l'a pas déjà reçue : republiée par le client après une annulation, libérée par un artisan, ou adressée d'abord à un seul artisan puis ouverte à tous.
Juste avant l'envoi, nous revérifions la demande : fermée, complète ou déjà prise par l'entreprise, elle ne part pas. Chaque demande ne vous est envoyée qu'une fois par entreprise.
La requête
Un POST en JSON sur l'adresse que vous nous avez donnée :
{
"event": "construction.available",
"delivery_id": "0d7e03cf-de44-42ed-a707-552365ed232e",
"sent_at": "2026-10-19T08:31:42.451Z",
"organization": { "id": "<id Kelkun de l'entreprise>", "name": "AFD47" },
"construction": {
"id": "b0b00000-0000-4000-8000-000000000091",
"reference": "K7Q2M",
"title": "Recherche de fuite sous dalle",
"description": "Compteur qui tourne, tache au plafond de la cuisine.",
"status": "PUBLISHED",
"skills": [{ "id": "<id du métier>", "name": "Recherche de fuite" }],
"city": { "name": "Agen", "zip": "47000", "department": "Lot-et-Garonne" },
"location": { "latitude": 44.2, "longitude": 0.62 },
"is_location_exact": false,
"desired_delay_months": 0,
"quotes_requested": 3,
"positioned_count": 0,
"seats_left": 3,
"price_credits": 5,
"published_at": "2026-10-19T08:31:40.883Z",
"photos": [],
"is_positioned": false,
"customer": { "first_name": "Marie", "last_name": "D.", "phone": null, "email": null },
"address": null,
"access_information": null
}
}construction a la même forme que la réponse de Lire une demande, où chaque champ est décrit.
| En-tête | Valeur |
|---|---|
X-Kelkun-Signature | t=<horodatage>,v1=<signature>, voir Vérifier la signature |
X-Kelkun-Event | construction.available, ou webhook.test |
X-Kelkun-Delivery | Identifiant de l'envoi, identique à delivery_id |
Content-Type | application/json |
User-Agent | Kelkun-Webhooks/1.0 |
Votre réponse
Un statut 2xx en moins de 10 secondes ; le corps est ignoré. Toute autre réponse, ou un délai dépassé, déclenche une nouvelle tentative : 7 au total, espacées de 30 secondes, puis 1, 2, 4, 8 et 16 minutes.
Une nouvelle tentative garde le même delivery_id : dédoublonnez dessus.
Une adresse publique en https
Votre adresse doit être en https et joignable depuis Internet. Nous refusons les adresses de réseau privé, et ne suivons pas les redirections.
Tester
Nous pouvons vous envoyer à la demande un événement webhook.test : mêmes en-têtes, même signature, organization et construction à null. Demandez-le à votre contact Kelkun une fois votre adresse prête.