List Events V2
curl --request GET \
--url https://api.spherepay.co/v2/events \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.spherepay.co/v2/events"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.spherepay.co/v2/events', 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.spherepay.co/v2/events",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.spherepay.co/v2/events"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.spherepay.co/v2/events")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.spherepay.co/v2/events")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"createdAt": "2026-01-01T00:00:00.000Z",
"delivery": {
"attemptsUsed": 1,
"deliveredAt": "2026-01-01T00:05:00.000Z",
"id": "eventDelivery_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
"latestAttempt": {
"responseCode": 200,
"success": true,
"type": "original"
},
"status": "delivered",
"webhookEndpointId": "webhook_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6"
},
"id": "event_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
"sequence": 3,
"type": "transfer.succeeded"
}
],
"hasNext": false,
"hasPrevious": false,
"limit": 10,
"page": 1,
"total": 1,
"totalPages": 1
}{
"code": "address/invalid",
"correlationId": "28c61e885c6e5eaa78c1a2183a9b883c",
"detail": "Invalid request parameters",
"status": 400
}{
"code": "resource/not-found",
"correlationId": "28c61e885c6e5eaa78c1a2183a9b883c",
"detail": "Resource not found",
"status": 404
}{
"code": "validation/failed",
"correlationId": "28c61e885c6e5eaa78c1a2183a9b883c",
"detail": "Validation failed",
"errors": [
{
"detail": "Invalid email format",
"pointer": "/email"
},
{
"detail": "Name is required",
"pointer": "/name"
}
],
"status": 422
}Events
List Events and Their Delivery Status
List events for the authenticated application, with optional filtering by webhook endpoint, event type, delivery status, and creation date range.
List Events V2
curl --request GET \
--url https://api.spherepay.co/v2/events \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.spherepay.co/v2/events"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.spherepay.co/v2/events', 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.spherepay.co/v2/events",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.spherepay.co/v2/events"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.spherepay.co/v2/events")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.spherepay.co/v2/events")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"createdAt": "2026-01-01T00:00:00.000Z",
"delivery": {
"attemptsUsed": 1,
"deliveredAt": "2026-01-01T00:05:00.000Z",
"id": "eventDelivery_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
"latestAttempt": {
"responseCode": 200,
"success": true,
"type": "original"
},
"status": "delivered",
"webhookEndpointId": "webhook_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6"
},
"id": "event_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
"sequence": 3,
"type": "transfer.succeeded"
}
],
"hasNext": false,
"hasPrevious": false,
"limit": 10,
"page": 1,
"total": 1,
"totalPages": 1
}{
"code": "address/invalid",
"correlationId": "28c61e885c6e5eaa78c1a2183a9b883c",
"detail": "Invalid request parameters",
"status": 400
}{
"code": "resource/not-found",
"correlationId": "28c61e885c6e5eaa78c1a2183a9b883c",
"detail": "Resource not found",
"status": 404
}{
"code": "validation/failed",
"correlationId": "28c61e885c6e5eaa78c1a2183a9b883c",
"detail": "Validation failed",
"errors": [
{
"detail": "Invalid email format",
"pointer": "/email"
},
{
"detail": "Name is required",
"pointer": "/name"
}
],
"status": 422
}Use this endpoint to retrieve a paginated list of the events SpherePay has recorded for your application. Every event is queryable whether or not its delivery succeeded, so this is the audit trail behind your webhook traffic. Filter by
type (an exact name, a resource wildcard such as transfer.*, or *), by delivery status, by webhookEndpointId, and by the createdStart and createdEnd bounds on creation time.
Each item summarizes the event alongside its most recent delivery, including the attempt count and the response your endpoint returned.
Filter by
status=failed to find everything that needs attention. A responseCode of null means your endpoint did not respond at all — a timeout or network error rather than an HTTP error.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
object
required
Show child attributes
Show child attributes
Response
A paginated list of events.
Array of event presentations
Show child attributes
Show child attributes
Whether there is a next page
Example:
false
Whether there is a previous page
Example:
false
Number of items per page
Required range:
1 < x < 100Example:
10
Current page number
Example:
1
Total number of items
Example:
1
Total number of pages
Example:
1
Last modified on August 27, 2026