Skip to content
E Webhook Package Documentation

First Webhook

Your first webhook

This guide creates a basic webhook endpoint that receives a payment event and sends it to a handler class.

Create a provider

A provider tells RelayKit how to verify a request and identify the event name.

namespace App\Webhooks\Providers;

use RelayKit\Providers\Provider;
use RelayKit\Requests\IncomingWebhook;

class PaymentProvider extends Provider
{
    public function eventName(IncomingWebhook $webhook): string
    {
        return $webhook->payload('type');
    }
}

Register the provider

Add the provider to config/relaykit.php.

'providers' => [
    'payments' => App\Webhooks\Providers\PaymentProvider::class,
],

Create a handler

Handlers contain your application logic.

namespace App\Webhooks\Handlers;

use RelayKit\Contracts\WebhookHandler;
use RelayKit\Events\WebhookEvent;

class PaymentSucceededHandler implements WebhookHandler
{
    public function handle(WebhookEvent $event): void
    {
        $customerId = $event->data('customer_id');

        // Update the customer account here.
    }
}

Map the event

'events' => [
    'payments.payment_succeeded' => App\Webhooks\Handlers\PaymentSucceededHandler::class,
],

Test the endpoint

curl -X POST https://example.test/webhooks/payments \
    -H "Content-Type: application/json" \
    -H "X-RelayKit-Signature: test-signature" \
    -d '{"type":"payment_succeeded","customer_id":"cus_123"}'

RelayKit will verify the request, create a delivery record, and dispatch the handler.

© Webhook Package Documentation