Class Webhooks

java.lang.Object
com.sendly.webhooks.Webhooks

public class Webhooks extends Object
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");
     }
 }
 
  • Constructor Details

    • Webhooks

      public Webhooks()
  • Method Details

    • verifySignature

      public static boolean verifySignature(String payload, String signature, String secret)
      Verify webhook signature from Sendly.
      Parameters:
      payload - Raw request body as string
      signature - X-Sendly-Signature header value
      secret - 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 string
      signature - X-Sendly-Signature header value
      secret - Your webhook secret from dashboard
      Returns:
      Parsed and validated WebhookEvent
      Throws:
      Webhooks.WebhookSignatureException - if signature is invalid or payload is malformed
    • generateSignature

      public static String generateSignature(String payload, String secret)
      Generate a webhook signature for testing purposes.
      Parameters:
      payload - The payload to sign
      secret - The secret to use for signing
      Returns:
      The signature in the format "sha256=..."