Event Overview
Event Type:VERIFICATION_NEEDEDCategory: Payment Verification
Description: Payment verification status has been updated This webhook is triggered when the payment verification status is updated for collect-from-India payments (after receiving a verification update from the payment gateway).
When the webhook is sent
The webhook is sent in the following scenarios:- Action Required (
ACTION_REQUIRED): Additional or corrected information is needed - Payment Verified (
VERIFIED): Payment has been successfully verified
- Your merchant account (or parent, for sub-merchants) has an active API credential with a non-empty webhook URL
Delivery Details
| Attribute | Value |
|---|---|
| HTTP method | POST |
| URL | The webhook URL configured on your merchant account’s API credentials |
| Content-Type | application/json |
| Timeout | 10 seconds |
| Retries | Up to 5 delivery attempts (backoff: 1 min, 5 min, 15 min, 60 min) |
Headers
| Header | Description |
|---|---|
Content-Type | application/json |
User-Agent | Eximpe-Webhook/1.0 |
X-Webhook-Event | VERIFICATION_NEEDED |
X-Webhook-Timestamp | Unix timestamp (string) at the time of the request |
X-Webhook-Signature | HMAC-SHA256 signature of the request body (JSON string with keys sorted, no extra whitespace), using your API key as the secret. Hex-encoded. |
Compute
HMAC-SHA256(api_key, raw_body) where raw_body is the exact UTF-8 request body as received. Compare the hex result with the X-Webhook-Signature header to ensure the webhook is from the platform and unchanged.
Payload Schema
Field Specifications
- Root Level Fields
- Data Object Fields
Always
"VERIFICATION_NEEDED" for this webhook eventISO 8601 datetime when the webhook event was createdExample:
"2025-02-13T10:30:00.123456Z"Envelope version (e.g. “2.0.0”)
Unique identifier for this webhook event (UUID), useful for idempotencyExample:
"550e8400-e29b-41d4-a716-446655440000"Verification status details (payment_id, order_id, verification_status, message, action_required_fields)
What to Do When You Receive This Webhook
- Respond with HTTP 2xx (e.g.
200 OK) as soon as you have accepted the payload, so the platform marks the delivery as successful and does not retry. - Verify the signature using your API key and the raw request body (HMAC-SHA256, hex) to ensure authenticity.
- Use
data.payment_idanddata.order_idto reconcile with your system or fetch more details from the Partner API. - Handle based on verification status:
VERIFIED: Update your system to reflect successful verification. Payment can proceed to settlement.ACTION_REQUIRED:- Check
data.action_required_fieldsto see what needs updating - Notify merchant/admin about required actions
- Update the specified fields using the Upload Verification Details API
- Check
Action Required Fields Reference
Whenverification_status is ACTION_REQUIRED, the action_required_fields array contains field names that need attention:
| Field Name | Description |
|---|---|
buyer_name | Full name of the buyer/importer |
buyer_address | Complete address of the buyer |
buyer_postal_code | Postal/ZIP code of the buyer |
product_description | Description of goods/services |
invoice_number | Invoice or order number |
hs_code | Harmonized System code for goods |