> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hypersender.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhook Handling & Events

> Handle SMS webhooks and events using the Laravel SDK

## Overview

In this guide, we will cover how to handle incoming SMS webhooks and events using the Hypersender Laravel SDK. Webhooks are a powerful way to receive real-time updates from SMS, allowing your application to respond to messages, status changes, and other events as they happen.

### Setting Up Webhooks

1. The package auto-registers a POST route (default /sms/webhook).
2. Verifies the signature using the secret in config/env.
3. Dispatches a dedicated Laravel event for each webhook event type (e.g., MessagesUpserted, GroupsUpdated, etc.).
4. Listen for events in your app:

```php theme={null}
use Hypersender\Events\Sms\MessagePhoneSent;

Event::listen(MessagePhoneSent::class, function ($event) {
    $event->payload
});
```

<Tip>
  See the Webhook Usage in it's dedicated section for more details [webhook usage](/api-reference/sms-webhooks/introduction).
</Tip>

### Available Webhook Events

The following events are available for handling sms webhooks:

* `Hypersender\Events\Sms\MessagePhoneSent`
* `Hypersender\Events\Sms\MessageCallMissed`
* `Hypersender\Events\Sms\MessageNotificationScheduled`
* `Hypersender\Events\Sms\MessagePhoneDelivered`
* `Hypersender\Events\Sms\MessagePhoneReceived`
* `Hypersender\Events\Sms\MessageSendExpired`
* `Hypersender\Events\Sms\MessageSendFailed`
* `Hypersender\Events\Sms\PhoneHeartbeatDisabled`
* `Hypersender\Events\Sms\PhoneHeartbeatOnline`
* `Hypersender\Events\Sms\PhoneHeartbeatOffline`
* `Hypersender\Events\Sms\PhoneHeartbeatMissed`
* `Hypersender\Events\Sms\PhoneHeartbeatReceived`

### Customizing the Webhook Route

To customize the webhook route, you can publish the package's configuration file and modify the `webhook_route` setting:

```bash theme={null}
php artisan vendor:publish --tag="hypersender-config"
```

Then, update the `sms_webhook_route` in `config/hypersender-config.php`:

```php theme={null}
'sms_webhook_route' => 'your/custom/route',
```
