Send test webhook
Bearer ds_live_ / ds_test_/api/v1/merchant/webhook/testSends a signed sample event to your registered URL so you can test your handler end to end. Test deliveries are not retried and do not appear in the delivery log.
curl -X POST "https://finaldatasub.com/api/v1/merchant/webhook/test" \
-H "Authorization: Bearer ds_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"event": "transaction.successful"
}'Authentication
Send your secret API key in the header. Authorization: Token … and X-API-Key: … are also accepted.
| Header | Value | Required |
|---|---|---|
| Authorization | Bearer ds_live_YOUR_KEY | Yes |
| Content-Type | application/json | Yes |
| Accept | application/json | Recommended |
Authentication failures (401 UNAUTHORIZED, 403 IP_NOT_ALLOWED / ACCOUNT_SUSPENDED / API_ACCESS_NOT_APPROVED, 429 RATE_LIMITED) are listed in Authentication.
Parameters
Responses
200 OK — Delivered · 400 Bad Request — Delivery failed
{
"status": "successful",
"event": "transaction.successful",
"http_status": 200,
"message": "Sample webhook delivered."
}Errors
Errors specific to this endpoint, in addition to the authentication and validation errors common to every request.
| Code | HTTP | When |
|---|---|---|
| INVALID_EVENT | 400 | event is not one of the three transaction events. |
| RATE_LIMITED | 429 | More than 10 tests in a minute. |
| WEBHOOK_NOT_CONFIGURED | 400 | No active webhook URL is registered. |
Sample data sent to your URL
Only the successful sample is marked with test: true.
{
"status": "successful",
"reference": "TEST-20261005-AB12CD",
"amount": "1000.00",
"fee": "0.00",
"total_deducted": "1000.00",
"balance_before": "25000.00",
"balance_after": "24000.00",
"provider_reference": "PRV-TEST-20261005-AB12CD",
"purchased_at": "2026-10-05T10:15:24+01:00",
"test": true
}Notes
- A delivery counts as successful when your endpoint answers with any 2xx status within 15 seconds.