Overview
Whenever you create or update a stream, Moralis sends a test webhook to your configured webhook URL. This test verifies that:- Your endpoint is reachable
- Your server responds correctly
- Webhook delivery can safely begin
When Test Webhooks Are Sent
A test webhook is sent when you:- Create a new stream
- Update an existing stream (e.g. webhook URL, filters, addresses, chains)
- Reactivate a paused stream
Required Response
To pass the test webhook:- Your server must return a 2xx HTTP status code
- Common examples:
200,201,202
No response body is required - only the status code matters.
Test Webhook Payload
The test webhook uses the same payload structure as real webhooks, but contains empty data. Example:- No on-chain data is included
- No transactions or logs are present
- This payload should not be persisted
How to Handle Test Webhooks
Your webhook handler should:- Accept the request
- Optionally log it
- Return a 2xx response
- Skip any application-specific processing
- Detect empty payloads
- Short-circuit processing
Security Considerations
Test webhooks:- Include an
x-signatureheader - Should be verified the same way as real webhooks
Common Pitfalls
Stream does not start
Usually caused by:- Webhook endpoint returning non-2xx
- Endpoint timing out
- Server not reachable from the internet
Test webhook processed as real data
Avoid:- Writing empty events to your database
- Triggering business logic on test payloads
Relationship to Retries & Replays
Test webhooks:- Are not retried
- Are not stored in history
- Cannot be replayed
Next Steps
- Understand delivery guarantees → Explore Webhook Delivery
- Inspect real payloads → Explore Webhook Payload
- Secure your endpoint → Explore Webhook Security
- Handle failures and recovery → Explore Error Handling

