Centralized Webhook Router for Multi-Site WooCommerce Integrations
PawaPay Webhook Proxy is a lightweight, standalone PHP application designed to centralize PawaPay webhooks and route them dynamically to multiple WordPress / WooCommerce websites.
Since PawaPay allows configuring only one webhook URL for deposits and refunds, this proxy acts as an intelligent router, forwarding each webhook to the correct site based on a unique platform signature (platform_signature) sent in the payment metadata.
This solution is ideal for agencies, SaaS platforms, plugin vendors, and developers managing multiple WooCommerce stores.
- PawaPay sends all webhooks to a single endpoint
- The proxy:
- reads the raw JSON payload
- extracts
platform_signature - identifies the target website
- The webhook is forwarded unchanged to the correct WordPress REST endpoint
- The proxy responds with
200 OKto PawaPay
No additional configuration is required on the PawaPay side once set.
- PHP 7.4+
- WordPress + WooCommerce
- WooCommerce PawaPay Gateway Plugin
- Works on:
- VPS
- Shared hosting
- Docker
- Dedicated subdomain
pawapay-webhook-proxy/ ├── pawapay.php # Main webhook endpoint ├── config.php # platform_signature → site URL mapping ├── logs/ │ └── webhook.log # Event logs └── README.md
Upload the files to a publicly accessible server, for example: https://webhooks.example.com/pawapay.php
Edit config.php:
<?php
return [
'store-signature-1' => 'https://site1.com',
'store-signature-2' => 'https://site2.com',
];Each key must match the Unique Signature configured in the WooCommerce PawaPay plugin.
In WooCommerce → Payments → PawaPay:
Set Unique Webhook Identifier
Use a unique value per site
Example: store-signature-1
This value is automatically sent to PawaPay in the payment metadata.
In the PawaPay dashboard, configure:
- Deposit Webhook URL:
https://webhooks.example.com/pawapay.php - Refund Webhook URL:
https://webhooks.example.com/pawapay.php
One endpoint handles all sites.
-
✅ Deposit (payments)
-
✅ Refunds
All webhook events are logged in: /logs/webhook.log