When This Event Fires
TheVERIFY event fires once when you:
- Create a new webhook in the Smartcar Dashboard
- Update the callback URL of an existing webhook
- Click “Verify this webhook” in the Dashboard
Payload Structure
Payload Fields
Unique identifier for this verification event.
Always
"VERIFY" for this event type.Container for the challenge.
Webhook delivery metadata. See Event Reference Overview for the complete
meta object schema.Required Response
Your endpoint must respond with:- Status code:
200 OK - Content-Type header:
application/json - Response body: JSON object with the HMAC-SHA256 hash
Response Body
Generate the HMAC
Create an HMAC-SHA256 hash of thechallenge string using your Application Management Token as the secret key, then hex-encode the result:
Complete Handler Example
Here’s a complete webhook handler that responds to theVERIFY event:
Troubleshooting
Verification fails in Dashboard
Verification fails in Dashboard
Common causes:
- Wrong Application Management Token used
- HMAC not hex-encoded
- Response body doesn’t match
{ "challenge": "..." }format - Endpoint returns non-200 status code
- Response takes longer than 15 seconds
How do I test VERIFY locally?
How do I test VERIFY locally?
Use ngrok or similar to expose your local server:Then use the ngrok URL as your callback URI in the Dashboard. The Dashboard will send a real
VERIFY event to your local endpoint.Can I re-verify my webhook?
Can I re-verify my webhook?
Yes! You can click “Verify this webhook” in the Dashboard at any time to send a new
VERIFY event to your endpoint.Do I need to handle VERIFY in production?
Do I need to handle VERIFY in production?
Yes, your production webhook endpoint should always handle the
VERIFY event type, even after initial verification. This allows you to re-verify from the Dashboard if needed.Next Steps
After successfully responding to theVERIFY event, your webhook is activated and will begin receiving vehicle data.

