Webhooks
Receive real-time notifications when events happen on the WHV Platform. Build powerful integrations that respond instantly to jobs, applications, and more.
How It Works
Three simple steps to start receiving real-time event data.
Register Your URL
Provide a publicly accessible HTTPS endpoint where you want to receive webhook events.
Select Events
Choose which event types you want to subscribe to. Only receive the data you actually need.
Receive Events
Get real-time POST requests with structured JSON payloads whenever subscribed events occur.
Event Types
Subscribe to the events that matter to your integration.
When a new job listing is created on the platform.
When a job listing is modified or its status changes.
When a candidate applies for a job listing.
When an application status changes (reviewed, shortlisted, hired, rejected).
When a new social pod is formed on the platform.
When someone joins an existing pod as a new member.
When a candidate completes identity or visa verification.
When a compliance issue is detected that requires attention.
Payload Format
Every webhook delivers a structured JSON payload with event details and relevant data.
{
"event": "job.posted",
"timestamp": "2026-03-19T10:30:00Z",
"data": {
"id": "job_abc123",
"title": "Farm Hand - Fruit Picking",
"employer": "Sunshine Farms",
"location": "Bundaberg, QLD",
"salary": "$28/hr"
}
}Webhook Security
Every webhook request is signed so you can verify it came from the WHV Platform.
HMAC-SHA256 Signatures
Each webhook request includes a signature header that you should validate to ensure the payload was sent by the WHV Platform and has not been tampered with.
- Signature sent in
X-WHV-Signatureheader - Computed using your webhook secret key
- Timestamp included to prevent replay attacks
- Always verify before processing payloads
// Verify the webhook signature
import crypto from "crypto";
function verifyWebhook(
payload: string,
signature: string,
secret: string
): boolean {
const expected = crypto
.createHmac("sha256", secret)
.update(payload)
.digest("hex");
return crypto
.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expected)
);
}Retry Policy
We ensure reliable delivery with automatic retries and failure notifications.
1st Retry
After 1 minute
2nd Retry
After 10 minutes
3rd Retry
After 1 hour
Webhooks are retried up to 3 times with exponential backoff. If all attempts fail, you will receive an email notification and the webhook will be marked as failed in your developer dashboard. Respond with a 2xx status code to acknowledge receipt.
Start Building
Set up your first webhook in minutes and start receiving real-time platform events.