Package com.sendly.webhooks
Class Webhooks
java.lang.Object
com.sendly.webhooks.Webhooks
Webhook utilities for verifying and parsing Sendly webhook events.
// In your webhook handler (e.g., Spring Boot)
@PostMapping("/webhooks/sendly")
public ResponseEntity<String> handleWebhook(
@RequestBody String payload,
@RequestHeader("X-Sendly-Signature") String signature
) {
try {
WebhookEvent event = Webhooks.parseEvent(payload, signature, webhookSecret);
System.out.println("Received event: " + event.getType());
switch (event.getType()) {
case "message.delivered":
System.out.println("Message delivered: " + event.getData().getMessageId());
break;
case "message.failed":
System.out.println("Message failed: " + event.getData().getError());
break;
}
return ResponseEntity.ok("OK");
} catch (WebhookSignatureException e) {
return ResponseEntity.status(401).body("Invalid signature");
}
}
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classWebhook event from Sendly.static classWebhook event data containing message details.static classException thrown when webhook signature verification fails. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic StringgenerateSignature(String payload, String secret) Generate a webhook signature for testing purposes.static Webhooks.WebhookEventparseEvent(String payload, String signature, String secret) Parse and validate a webhook event.static booleanverifySignature(String payload, String signature, String secret) Verify webhook signature from Sendly.
-
Constructor Details
-
Webhooks
public Webhooks()
-
-
Method Details
-
verifySignature
Verify webhook signature from Sendly.- Parameters:
payload- Raw request body as stringsignature- X-Sendly-Signature header valuesecret- Your webhook secret from dashboard- Returns:
- true if signature is valid, false otherwise
-
parseEvent
public static Webhooks.WebhookEvent parseEvent(String payload, String signature, String secret) throws Webhooks.WebhookSignatureException Parse and validate a webhook event.- Parameters:
payload- Raw request body as stringsignature- X-Sendly-Signature header valuesecret- Your webhook secret from dashboard- Returns:
- Parsed and validated WebhookEvent
- Throws:
Webhooks.WebhookSignatureException- if signature is invalid or payload is malformed
-
generateSignature
Generate a webhook signature for testing purposes.- Parameters:
payload- The payload to signsecret- The secret to use for signing- Returns:
- The signature in the format "sha256=..."
-