curl --request GET \
--url https://public-api.sessionboard.com/v1/event/{eventId}/payments \
--header 'x-access-token: <api-key>'import requests
url = "https://public-api.sessionboard.com/v1/event/{eventId}/payments"
headers = {"x-access-token": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-access-token': '<api-key>'}};
fetch('https://public-api.sessionboard.com/v1/event/{eventId}/payments', 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://public-api.sessionboard.com/v1/event/{eventId}/payments",
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-access-token: <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://public-api.sessionboard.com/v1/event/{eventId}/payments"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-access-token", "<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://public-api.sessionboard.com/v1/event/{eventId}/payments")
.header("x-access-token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-api.sessionboard.com/v1/event/{eventId}/payments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-access-token"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "2c3d4e5f-6a7b-4c8d-9e0f-1a2b3c4d5e6f",
"order_id": "9e8d7c6b-5a4f-4e3d-2c1b-0a9f8e7d6c5b",
"order_number": "R-1042",
"type": "charge",
"status": "succeeded",
"amount_cents": 89500,
"currency": "USD",
"method": "card",
"method_type": "card",
"processor": "spreedly",
"gateway_type": "stripe",
"test_mode": false,
"card_brand": "visa",
"last_four": "4242",
"installment": null,
"parent_payment_id": null,
"reference": null,
"failure": null,
"created_at": "2026-10-02T16:21:41.000Z",
"updated_at": "2026-10-02T16:21:43.000Z"
}
],
"pagination": {
"current_page": 1,
"page_size": 50,
"total_pages": 1,
"total_results": 1
}
}List payments
The payment records of the event’s registration orders, oldest first: card and bank-account charges and refunds made through your organization’s own payment gateway (Sessionboard connects to it through Spreedly), and money recorded offline (check, cash, paid elsewhere, comp).
A record never carries a card number, a payment or gateway token, or a gateway
credential. card_brand and last_four are filled only when the gateway reported
them and Sessionboard stored them; otherwise they are null.
A failed card attempt is its own record with status: failed and a failure code,
so this list is also the failed-transaction log. A refund names the charge it
refunds in parent_payment_id.
Paginated (page, page_size up to 200). Requires read:registrations (legacy
tokens with no scopes pass).
curl --request GET \
--url https://public-api.sessionboard.com/v1/event/{eventId}/payments \
--header 'x-access-token: <api-key>'import requests
url = "https://public-api.sessionboard.com/v1/event/{eventId}/payments"
headers = {"x-access-token": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-access-token': '<api-key>'}};
fetch('https://public-api.sessionboard.com/v1/event/{eventId}/payments', 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://public-api.sessionboard.com/v1/event/{eventId}/payments",
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-access-token: <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://public-api.sessionboard.com/v1/event/{eventId}/payments"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-access-token", "<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://public-api.sessionboard.com/v1/event/{eventId}/payments")
.header("x-access-token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-api.sessionboard.com/v1/event/{eventId}/payments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-access-token"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "2c3d4e5f-6a7b-4c8d-9e0f-1a2b3c4d5e6f",
"order_id": "9e8d7c6b-5a4f-4e3d-2c1b-0a9f8e7d6c5b",
"order_number": "R-1042",
"type": "charge",
"status": "succeeded",
"amount_cents": 89500,
"currency": "USD",
"method": "card",
"method_type": "card",
"processor": "spreedly",
"gateway_type": "stripe",
"test_mode": false,
"card_brand": "visa",
"last_four": "4242",
"installment": null,
"parent_payment_id": null,
"reference": null,
"failure": null,
"created_at": "2026-10-02T16:21:41.000Z",
"updated_at": "2026-10-02T16:21:43.000Z"
}
],
"pagination": {
"current_page": 1,
"page_size": 50,
"total_pages": 1,
"total_results": 1
}
}Authorizations
Organization API token. Generate from Organization Settings → API Tokens.
Path Parameters
Event ID
Query Parameters
Page number, from 1. A value that is not a positive integer is read as 1.
x >= 1Results per page. Values above 200 are read as 200; a value that is not a positive integer is read as 50.
1 <= x <= 200Only these statuses, comma-separated: pending, processing, succeeded,
failed, refunded, canceled. An unknown value is a 400.
Only these record types, comma-separated: charge, refund, authorize,
capture, void. An unknown value is a 400.
Only this order's payments.
Only these methods, comma-separated (e.g. card, check, cash, external).
Only records created or changed at or after this time.
Response
OK
Show child attributes
Show child attributes
Pagination metadata returned by the event-settings GET lists (tags, tracks, levels, formats, rooms, languages, statuses). Same numbers as Pagination, snake_case keys — these endpoints are served by a different layer, and the casing is longstanding.
Show child attributes
Show child attributes

