Test in sandbox
Use the sandbox to send test deliveries to your webhook endpoint. This page shows how to trigger a test event, confirm 2xx acknowledgment, and debug failures.
Prerequisites
- A publicly reachable HTTPS callback URL that returns 2xx on success
- A sandbox subscription for
SELLER_PERFORMANCE_NOTIFICATIONS. - Include the required
resourcevalue when subscribing. Use Get event types to confirm the exact value. - Access token with sandbox scope
- Logging enabled to capture webhook deliveries and processing results
API reference: Test notification
Note: Availability of the Test notification endpoint may vary by account. If it is not enabled for your account, contact support to request a test delivery or subscribe in sandbox and validate with available event deliveries.
Step 1. Confirm your sandbox subscription
Use Get all subscriptions and verify that your sandbox subscription includes the callback URL you plan to test.
# Refer to the reference page above for the exact URL and parameters
curl -X GET "<GET_ALL_SUBSCRIPTIONS_ENDPOINT>" -H "WM_SEC.ACCESS_TOKEN: <sandbox_token>"If you do not have a sandbox subscription yet, create one first:
- Create subscription
- Optional: Update subscription
Step 2. Send a test delivery
Use Test notification to send a sample webhook. Your receiver must branch on payload.notificationType.
# Refer to the reference page above for the exact URL and body schema
curl -X POST "<TEST_NOTIFICATION_ENDPOINT>" -H "Content-Type: application/json" -H "WM_SEC.ACCESS_TOKEN: <sandbox_token>" -d '{ "eventType": "SELLER_PERFORMANCE_NOTIFICATIONS", "endpointUrl": "https://example.com/webhooks/walmart/performance", "mode": "sandbox" }'Expected result
Your endpoint receives an HTTP POST delivery with a payload.notificationType field.
Refer to examples in the Event catalog: Seller performance alarms, Seller performance report.
Timing
ALARMSnotifications are triggered based on seller activity and may arrive at different timesREPORTnotifications are delivered weekly on Mondays at 5:00 AM PT
Step 3. Validate success path
After a durable write:
- Return 200 or 202.
- Confirm your logs show an idempotent write using the documented delivery identifier, such as a top-level
eventIdor delivery header. - Confirm that your workflow or alert was created.
Step 4. Validate retry and error handling
Intentionally return a non-2xx once to confirm retry behavior:
- Observe that Walmart retries the delivery with backoff.
- Ensure your receiver remains idempotent on every retry.
- Fix the issue, resend a test, and confirm healthy 2xx responses.
Troubleshooting common issues
| Symptom | Likely cause | What to check | Fix |
|---|---|---|---|
| 500 with timeouts | Heavy synchronous processing | Downstream calls during request, large payload processing | Acknowledge quickly, move work to an async queue |
| Duplicate processing | Missing idempotency | Use of a delivery identifier during writes | Add a uniqueness constraint or conflict-safe upsert |
Refer to Troubleshooting and delivery health for deeper diagnostics and recovery steps.
Sample log to verify
POST /webhooks/walmart/performance 200
eventType=SELLER_PERFORMANCE_NOTIFICATIONS
eventId=03d34580-61d4-11ea-9e23-cd38810ff7cd
write=ok dedupe=ok elapsedMs=124Clean up
If you created throwaway subscriptions for this test, remove them with Delete subscription.
# Refer to the reference page above for the exact URL and path parameter
curl -X DELETE "<DELETE_SUBSCRIPTION_ENDPOINT>/<subscriptionId>" -H "WM_SEC.ACCESS_TOKEN: <sandbox_token>"Next steps
- Use Troubleshooting and delivery health to monitor production behavior
- Return to the Event catalog for payload details and examples
Reference guide
- This guide shows how to send sample deliveries to your callback URL and validate acknowledgment behavior.
- Test notification: Triggers a sample delivery to your callback URL to validate your integration.
Related
Updated 4 days ago

