List Webhook Endpoints
curl --request GET \
--url https://api.hopnow.io/v1/customers/{customer_id}/webhook-endpoints \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.hopnow.io/v1/customers/{customer_id}/webhook-endpoints"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.hopnow.io/v1/customers/{customer_id}/webhook-endpoints', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hopnow.io/v1/customers/{customer_id}/webhook-endpoints",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.hopnow.io/v1/customers/{customer_id}/webhook-endpoints"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.hopnow.io/v1/customers/{customer_id}/webhook-endpoints")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hopnow.io/v1/customers/{customer_id}/webhook-endpoints")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"items": [
{
"id": "<string>",
"object": "<string>",
"url": "<string>",
"events": [
{}
],
"description": "<string>",
"created": "<string>",
"updated": "<string>",
"created_by": "<string>",
"updated_by": "<string>",
"last_used_at": "<string>",
"deleted_at": "<string>"
}
],
"page": 123,
"size": 123,
"total": 123,
"pages": 123
}Webhook Endpoints
List Webhook Endpoints
Retrieve a paginated list of webhook endpoints for a customer
GET
/
v1
/
customers
/
{customer_id}
/
webhook-endpoints
List Webhook Endpoints
curl --request GET \
--url https://api.hopnow.io/v1/customers/{customer_id}/webhook-endpoints \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.hopnow.io/v1/customers/{customer_id}/webhook-endpoints"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.hopnow.io/v1/customers/{customer_id}/webhook-endpoints', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hopnow.io/v1/customers/{customer_id}/webhook-endpoints",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.hopnow.io/v1/customers/{customer_id}/webhook-endpoints"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.hopnow.io/v1/customers/{customer_id}/webhook-endpoints")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hopnow.io/v1/customers/{customer_id}/webhook-endpoints")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"items": [
{
"id": "<string>",
"object": "<string>",
"url": "<string>",
"events": [
{}
],
"description": "<string>",
"created": "<string>",
"updated": "<string>",
"created_by": "<string>",
"updated_by": "<string>",
"last_used_at": "<string>",
"deleted_at": "<string>"
}
],
"page": 123,
"size": 123,
"total": 123,
"pages": 123
}Lists the customer’s webhook endpoints, newest first by
created. Requires read access on the webhooks scope.
Deleted endpoints are included in the list and counted in total. An endpoint is active when deleted_at is null; filter on that field if you only want live endpoints. Signing secrets are never returned here.
Path Parameters
string
required
The customer’s external ID (starts with
cus_)Query Parameters
integer
default:"1"
Page number (minimum 1)
integer
default:"10"
Items per page (1-100)
Response
array
Webhook endpoint objects, newest first
Show Webhook Endpoint Fields
Show Webhook Endpoint Fields
string
Webhook endpoint identifier (starts with
wh_)string
Always returns
"webhook_endpoint"string
Delivery URL, as stored after normalisation
array
Subscribed event types
string
Description, or
nullstring
ISO 8601 timestamp when created
string
ISO 8601 timestamp when last updated
string
Identifier of the actor that created the endpoint, or
nullstring
Identifier of the actor that last updated the endpoint, or
nullstring
Reserved. Always
null. Hop does not record delivery times on the endpoint today.string
Deletion timestamp, or
null when the endpoint is activeinteger
Current page number
integer
Items per page
integer
Total number of endpoints, deleted ones included
integer
Total number of pages.
0 when the customer has no endpoints at all.Response Example
{
"items": [
{
"id": "wh_g738im3ueie9s9zexmf9cl87",
"object": "webhook_endpoint",
"url": "https://api.mycompany.com/webhooks/hopnow",
"events": ["payin.received", "payout.completed"],
"description": "Production webhook",
"created": "2026-07-15T02:00:00Z",
"updated": "2026-07-15T02:00:00Z",
"created_by": null,
"updated_by": null,
"last_used_at": null,
"deleted_at": null
},
{
"id": "wh_xw9rlpdt0bcr5u4f9n095lf4",
"object": "webhook_endpoint",
"url": "https://archive.mycompany.com/webhooks",
"events": ["account.updated"],
"description": "Retired endpoint",
"created": "2026-06-01T00:00:00Z",
"updated": "2026-07-01T00:00:00Z",
"created_by": null,
"updated_by": null,
"last_used_at": null,
"deleted_at": "2026-07-01T00:00:00Z"
}
],
"page": 1,
"size": 10,
"total": 2,
"pages": 1
}