Get payment history
curl --request GET \
--url https://v2.prod.halliday.xyz/payments/history \
--header 'Authorization: Bearer <token>'import requests
url = "https://v2.prod.halliday.xyz/payments/history"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://v2.prod.halliday.xyz/payments/history', 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://v2.prod.halliday.xyz/payments/history",
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://v2.prod.halliday.xyz/payments/history"
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://v2.prod.halliday.xyz/payments/history")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://v2.prod.halliday.xyz/payments/history")
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{
"payment_statuses": [
{
"payment_id": "<string>",
"status": "COMPLETE",
"funded": true,
"created_at": "2025-11-12T20:15:30.000Z",
"updated_at": "2025-11-12T20:25:45.000Z",
"initiate_fund_by": "2025-11-12T21:15:30.000Z",
"completed_at": "2025-11-12T20:25:45.000Z",
"quoted": {
"output_amount": {
"asset": "ethereum:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"amount": "100.00"
},
"fees": {
"total_fees": "3.50",
"conversion_fees": "2.00",
"network_fees": "1.00",
"business_fees": "0.50",
"currency_symbol": "USD"
},
"onramp": "stripe",
"onramp_method": "credit_card",
"route": [
{
"type": "ONRAMP",
"net_effect": {
"consume": [
{
"account": "USER",
"resource": {
"asset": "usd",
"property": "BALANCE"
},
"amount": {
"amount": "103.50"
}
}
],
"produce": [
{
"account": "PROCESSING_ADDRESS",
"resource": {
"asset": "ethereum:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"property": "BALANCE"
},
"amount": {
"amount": "100.00"
}
}
]
},
"pieces_info": [
{
"type": "onramp"
}
],
"step_index": 0
}
]
},
"fulfilled": {
"output_amount": {
"asset": "ethereum:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"amount": "100.00"
},
"fees": {
"total_fees": "3.50",
"conversion_fees": "2.00",
"network_fees": "1.00",
"business_fees": "0.50",
"currency_symbol": "USD"
},
"onramp": "stripe",
"onramp_method": "credit_card",
"route": [
{
"status": "COMPLETE",
"type": "ONRAMP",
"net_effect": {
"consume": [
{
"account": "USER",
"resource": {
"asset": "usd",
"property": "BALANCE"
},
"amount": {
"amount": "103.50"
}
}
],
"produce": [
{
"account": "PROCESSING_ADDRESS",
"resource": {
"asset": "ethereum:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"property": "BALANCE"
},
"amount": {
"amount": "100.00"
}
}
]
},
"pieces_info": [
{
"type": "onramp"
}
],
"step_index": 0,
"transaction_hash": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"
}
]
},
"current_prices": {
"USD": "1.00",
"ethereum:0x": "4200.00",
"ethereum:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": "1.00"
},
"price_currency": "USD",
"processing_addresses": [
{
"chain": "ethereum",
"address": "0xaddress..."
}
],
"owner_address": "0xowner...",
"destination_address": "0xdest..."
}
],
"next_pagination_key": "42ff9b02-037f-4a90-87fb-a4d2ca128565_2025-11-12T22:08:52.517Z"
}{
"errors": [
{
"kind": "other",
"message": "Missing required parameter: owner_address"
}
]
}{
"errors": [
{
"kind": "other",
"message": "Invalid API key"
}
]
}{
"errors": [
{
"kind": "other",
"message": "You do not have permission to access payment history for this address"
}
]
}Payments
Get payment history
Retrieve a paginated list of payment statuses filtered by owner. Returns an array of payment status objects and a pagination key for fetching the next page.
GET
/
payments
/
history
Get payment history
curl --request GET \
--url https://v2.prod.halliday.xyz/payments/history \
--header 'Authorization: Bearer <token>'import requests
url = "https://v2.prod.halliday.xyz/payments/history"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://v2.prod.halliday.xyz/payments/history', 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://v2.prod.halliday.xyz/payments/history",
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://v2.prod.halliday.xyz/payments/history"
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://v2.prod.halliday.xyz/payments/history")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://v2.prod.halliday.xyz/payments/history")
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{
"payment_statuses": [
{
"payment_id": "<string>",
"status": "COMPLETE",
"funded": true,
"created_at": "2025-11-12T20:15:30.000Z",
"updated_at": "2025-11-12T20:25:45.000Z",
"initiate_fund_by": "2025-11-12T21:15:30.000Z",
"completed_at": "2025-11-12T20:25:45.000Z",
"quoted": {
"output_amount": {
"asset": "ethereum:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"amount": "100.00"
},
"fees": {
"total_fees": "3.50",
"conversion_fees": "2.00",
"network_fees": "1.00",
"business_fees": "0.50",
"currency_symbol": "USD"
},
"onramp": "stripe",
"onramp_method": "credit_card",
"route": [
{
"type": "ONRAMP",
"net_effect": {
"consume": [
{
"account": "USER",
"resource": {
"asset": "usd",
"property": "BALANCE"
},
"amount": {
"amount": "103.50"
}
}
],
"produce": [
{
"account": "PROCESSING_ADDRESS",
"resource": {
"asset": "ethereum:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"property": "BALANCE"
},
"amount": {
"amount": "100.00"
}
}
]
},
"pieces_info": [
{
"type": "onramp"
}
],
"step_index": 0
}
]
},
"fulfilled": {
"output_amount": {
"asset": "ethereum:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"amount": "100.00"
},
"fees": {
"total_fees": "3.50",
"conversion_fees": "2.00",
"network_fees": "1.00",
"business_fees": "0.50",
"currency_symbol": "USD"
},
"onramp": "stripe",
"onramp_method": "credit_card",
"route": [
{
"status": "COMPLETE",
"type": "ONRAMP",
"net_effect": {
"consume": [
{
"account": "USER",
"resource": {
"asset": "usd",
"property": "BALANCE"
},
"amount": {
"amount": "103.50"
}
}
],
"produce": [
{
"account": "PROCESSING_ADDRESS",
"resource": {
"asset": "ethereum:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"property": "BALANCE"
},
"amount": {
"amount": "100.00"
}
}
]
},
"pieces_info": [
{
"type": "onramp"
}
],
"step_index": 0,
"transaction_hash": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"
}
]
},
"current_prices": {
"USD": "1.00",
"ethereum:0x": "4200.00",
"ethereum:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": "1.00"
},
"price_currency": "USD",
"processing_addresses": [
{
"chain": "ethereum",
"address": "0xaddress..."
}
],
"owner_address": "0xowner...",
"destination_address": "0xdest..."
}
],
"next_pagination_key": "42ff9b02-037f-4a90-87fb-a4d2ca128565_2025-11-12T22:08:52.517Z"
}{
"errors": [
{
"kind": "other",
"message": "Missing required parameter: owner_address"
}
]
}{
"errors": [
{
"kind": "other",
"message": "Invalid API key"
}
]
}{
"errors": [
{
"kind": "other",
"message": "You do not have permission to access payment history for this address"
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Owner address to filter payments by
Pagination key from previous response to fetch next page
Maximum number of results to return
Filter payments by ID
Filter payments by destination address
Filter payments by category
Available options:
ALL, NEW_OR_FUNDED Filter payments by label
⌘I

