Get an Event V2
curl --request GET \
--url https://api.spherepay.co/v2/events/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.spherepay.co/v2/events/{id}"
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/{id}', 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/{id}",
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/{id}"
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/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.spherepay.co/v2/events/{id}")
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{
"attempts": [
{
"attemptedAt": "2026-01-01T00:05:00.000Z",
"id": "atmpt_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
"latencyMs": 128,
"responseBody": "OK",
"responseCode": 200,
"success": true,
"type": "original"
}
],
"createdAt": "2026-01-01T00:00:00.000Z",
"deliveries": [
{
"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"
}{
"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
Retrieve an Event with Full Delivery History
Retrieve an event by its ID.
Get an Event V2
curl --request GET \
--url https://api.spherepay.co/v2/events/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.spherepay.co/v2/events/{id}"
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/{id}', 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/{id}",
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/{id}"
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/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.spherepay.co/v2/events/{id}")
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{
"attempts": [
{
"attemptedAt": "2026-01-01T00:05:00.000Z",
"id": "atmpt_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6",
"latencyMs": 128,
"responseBody": "OK",
"responseCode": 200,
"success": true,
"type": "original"
}
],
"createdAt": "2026-01-01T00:00:00.000Z",
"deliveries": [
{
"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"
}{
"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 one event together with every delivery and every attempt made for it. Each attempt records whether it was an
To re-send a delivery listed in the history, see replay a failed event delivery.
original or a replay, when it ran, whether it succeeded, the response code, the response body (truncated to 200 characters and captured on failures), and the latency.
The
Sphere-Delivery-Id header on a delivery you received is that delivery’s ID, so you can use it to line a request that hit your servers up against the delivery and attempt records here.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Response
The requested event, with its deliveries and delivery attempts.
Delivery attempts across the deliveries of this event
Show child attributes
Show child attributes
ISO 8601 timestamp when the event was created.
Example:
"2026-01-01T00:00:00.000Z"
Deliveries of this event, one per subscribed endpoint
Show child attributes
Show child attributes
The unique identifier of the event.
Example:
"event_a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6"
Monotonically increasing sequence number for ordering events, or null if not assigned.
Example:
3
The type of the event.
Available options:
*, customer.*, transfer.*, document.*, service.*, customer.created, customer.pending, customer.approved, customer.rejected, transfer.created, transfer.pendingFunding, transfer.pendingReview, transfer.fundsReceived, transfer.processing, transfer.succeeded, transfer.returned, transfer.pendingRefundInformation, transfer.failed, transfer.canceled, transfer.refunded, transfer.unexpectedError, transfer.failedPrecondition, transfer.expired, transfer.unfunded, document.pending, document.processing, document.verified, document.rejected, service.pending, service.processing, service.succeeded, service.failed, service.cancelled Example:
"transfer.succeeded"
Last modified on August 27, 2026