# Sign the request first — see Authentication for x-timestamp, x-nonce and x-signature
curl -X POST "https://api.sbx.hopnow.io/va/v1/customers/cus_x7k2m9p4q1w8e5r3t6y0u2i4/webhook-endpoints" \
-H "x-api-key: $API_KEY" \
-H "x-timestamp: $TIMESTAMP" \
-H "x-nonce: $NONCE" \
-H "x-signature: $SIGNATURE" \
-H "Content-Type: application/json" \
-d '{
"url": "https://platform.example/hooks/inbound",
"events": ["account.created", "virtual_account.updated", "payment.completed"],
"description": "prod"
}'
{
"url": "https://platform.example/hooks/inbound",
"events": ["account.created", "virtual_account.updated", "payment.completed"],
"description": "prod"
}
{
"id": "wh_3f8a2b1c9d4ex0y1z2a3b4c5",
"secret": "9f2a7c1e6a2b4f3c9b8d2e5a1c7f9d04a1b2c3d4e5f60718293a4b5c6d7e8f90"
}
Webhook Endpoints
Create Webhook Endpoint
Register a webhook endpoint with a delivery URL and subscribed event types
POST
/
va
/
v1
/
customers
/
{customer_id}
/
webhook-endpoints
# Sign the request first — see Authentication for x-timestamp, x-nonce and x-signature
curl -X POST "https://api.sbx.hopnow.io/va/v1/customers/cus_x7k2m9p4q1w8e5r3t6y0u2i4/webhook-endpoints" \
-H "x-api-key: $API_KEY" \
-H "x-timestamp: $TIMESTAMP" \
-H "x-nonce: $NONCE" \
-H "x-signature: $SIGNATURE" \
-H "Content-Type: application/json" \
-d '{
"url": "https://platform.example/hooks/inbound",
"events": ["account.created", "virtual_account.updated", "payment.completed"],
"description": "prod"
}'
{
"url": "https://platform.example/hooks/inbound",
"events": ["account.created", "virtual_account.updated", "payment.completed"],
"description": "prod"
}
{
"id": "wh_3f8a2b1c9d4ex0y1z2a3b4c5",
"secret": "9f2a7c1e6a2b4f3c9b8d2e5a1c7f9d04a1b2c3d4e5f60718293a4b5c6d7e8f90"
}
Webhook endpoints let your platform receive event notifications from Hop over HTTPS. Webhook endpoints are customer-level resources, addressed under the owning customer (
/customers/{customer_id}/webhook-endpoints) — consistent with accounts and agreements. You register an endpoint with a delivery URL and a filter of event types; Hop signs every delivery with the endpoint’s signing secret.
Webhook endpoints are addressed by an id with the wh_ prefix.
Registers a webhook endpoint with a delivery URL and a list of subscribed event types.
Path Parameters
string
required
Id of the owning customer (
cus_…).Request Body
string (HttpUrl)
required
HTTPS URL that will receive event deliveries.
string[]
required
Event types to subscribe to. At least one entry; each value is validated against the subscribable event catalog.
string | null
Free-text label for the endpoint. Maximum 255 characters.
Response
Returns 200 with the new endpoint’sid and its signing secret.
string
Id of the endpoint (
wh_…).string
Signing secret used to verify webhook deliveries.
Store the secret now. The full secret is returned only on create — it cannot be retrieved again later.
# Sign the request first — see Authentication for x-timestamp, x-nonce and x-signature
curl -X POST "https://api.sbx.hopnow.io/va/v1/customers/cus_x7k2m9p4q1w8e5r3t6y0u2i4/webhook-endpoints" \
-H "x-api-key: $API_KEY" \
-H "x-timestamp: $TIMESTAMP" \
-H "x-nonce: $NONCE" \
-H "x-signature: $SIGNATURE" \
-H "Content-Type: application/json" \
-d '{
"url": "https://platform.example/hooks/inbound",
"events": ["account.created", "virtual_account.updated", "payment.completed"],
"description": "prod"
}'
{
"url": "https://platform.example/hooks/inbound",
"events": ["account.created", "virtual_account.updated", "payment.completed"],
"description": "prod"
}
{
"id": "wh_3f8a2b1c9d4ex0y1z2a3b4c5",
"secret": "9f2a7c1e6a2b4f3c9b8d2e5a1c7f9d04a1b2c3d4e5f60718293a4b5c6d7e8f90"
}