Webhook delivery is asynchronous. When an event fires, the extension schedules the delivery job and returns immediately — the original API request is not delayed.
Delivery engine:
Action Scheduler is used for delivery scheduling when it is installed (Action Scheduler ships with WooCommerce). If Action Scheduler is not available, the extension falls back to WP-Cron.
Retry schedule:
Failed deliveries are retried up to 5 total attempts. The delay between attempts follows exponential backoff:
| Attempt | Delay after previous failure |
|---|---|
| 1 (initial) | Immediate |
| 2 | 1 minute |
| 3 | 5 minutes |
| 4 | 30 minutes |
| 5 | 2 hours |
| — (final) | 12 hours after attempt 5 (no further retries) |
After all 5 attempts fail, the delivery is marked as permanently failed. No further retries occur. You can manually re-trigger a delivery using the test endpoint.
Delivery logs:
All delivery attempts are recorded in the dmsi_aapi_webhook_logs database table with a 7-day retention period. Each log entry includes:
- Endpoint ID and URL
- Event name
- HTTP status code returned
- Response body (truncated to 1,000 characters)
- Timestamp and attempt number
View delivery history per endpoint in the DDLS > Developer area or via the REST API:
GET /wp-json/dmsi-api/v1/webhooks/{id}/deliveries
