{"status":"success","data":{"total":19,"format":{"description":"Signature HMAC-SHA256 avec timestamp anti-replay (Stripe-style).","headers":{"X-Corely-Signature":"t=<unix_seconds>,v1=<hmac_sha256_hex>","X-Corely-Timestamp":"<unix_seconds> (identique au \"t=\" ci-dessus)","X-Corely-Event":"<event_name>","X-Corely-Delivery":"<uuid>"},"verification":"HMAC = sha256(secret, `${timestamp}.${body}`). Rejeter si |now - timestamp| > 300s.","payloadWrapper":"{ event: \"string\", deliveryId: \"uuid\", data: {...} }"},"subscribe":"POST /api/v1/webhooks — { url, events: [\"invoice.paid\", ...] }","events":{"invoice":[{"event":"invoice.created","description":"Nouvelle facture créée","payload":{"invoiceId":"string","invoiceNumber":"string","clientId":"string","totalTTC":"number","status":"draft"}},{"event":"invoice.sent","description":"Facture envoyée au client","payload":{"invoiceId":"string","sentAt":"ISO8601","email":"string"}},{"event":"invoice.paid","description":"Facture marquée comme payée","payload":{"invoiceId":"string","paidAt":"ISO8601","amount":"number"}},{"event":"invoice.overdue","description":"Facture en retard de paiement","payload":{"invoiceId":"string","dueDate":"ISO8601","totalTTC":"number"}},{"event":"invoice.cancelled","description":"Facture annulée","payload":{"invoiceId":"string","cancelledAt":"ISO8601"}}],"quote":[{"event":"quote.signed","description":"Devis signé électroniquement","payload":{"invoiceId":"string","signedAt":"ISO8601","signedByIp":"string"}},{"event":"quote.created","description":"Devis créé","payload":{"invoiceId":"string","clientId":"string"}}],"client":[{"event":"client.created","description":"Nouveau client ajouté","payload":{"clientId":"string","name":"string","email":"string"}},{"event":"client.updated","description":"Données client modifiées","payload":{"clientId":"string"}}],"prospect":[{"event":"prospect.created","description":"Nouveau prospect ajouté","payload":{"prospectId":"string","name":"string"}},{"event":"prospect.converted","description":"Prospect converti en client","payload":{"prospectId":"string","clientId":"string"}}],"payment":[{"event":"payment.received","description":"Paiement enregistré sur une facture","payload":{"invoiceId":"string","amount":"number","method":"string"}}],"employee":[{"event":"employee.created","description":"Nouvel employé créé","payload":{"employeeId":"string","name":"string"}}],"leave":[{"event":"leave.approved","description":"Congé approuvé","payload":{"leaveId":"string","employeeId":"string","startDate":"ISO8601","endDate":"ISO8601"}},{"event":"leave.rejected","description":"Congé refusé","payload":{"leaveId":"string","employeeId":"string","reason":"string"}}],"expense":[{"event":"expense.submitted","description":"Note de frais soumise pour approbation","payload":{"expenseId":"string","employeeId":"string","amount":"number"}},{"event":"expense.approved","description":"Note de frais approuvée","payload":{"expenseId":"string","approvedBy":"string","approvedAt":"ISO8601"}}],"project":[{"event":"project.created","description":"Nouveau projet créé","payload":{"projectId":"string","name":"string","clientId":"string"}}],"transaction":[{"event":"transaction.reconciled","description":"Transaction bancaire rapprochée à une facture","payload":{"transactionId":"string","invoiceId":"string","amount":"number"}}]}}}