Customer Analytics
curl --request GET \
--url https://payments.shakesco.com/analytics/customer/{email} \
--header 'Authorization: Bearer <token>'import requests
url = "https://payments.shakesco.com/analytics/customer/{email}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://payments.shakesco.com/analytics/customer/{email}', 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://payments.shakesco.com/analytics/customer/{email}",
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://payments.shakesco.com/analytics/customer/{email}"
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://payments.shakesco.com/analytics/customer/{email}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://payments.shakesco.com/analytics/customer/{email}")
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{
"payer_email": "customer@example.com",
"overview": {
"total_transactions": 8,
"by_status": {
"paid": 5,
"pending": 1,
"scanned": 0,
"expired": 1,
"void": 1
}
},
"revenue": {
"total_spent_gross": "7840.00",
"total_spent_net": "7000.00"
},
"recent_transactions": [
{
"invoice_number": "INV-2026-9c8d7e6f",
"payer_name": "Jane Doe",
"payer_email": "customer@example.com",
"asset": "ETH",
"amount": "0.00045",
"status": "paid",
"paid_at": "2026-05-01T14:22:00.000000Z",
"created_at": "2026-05-01T10:00:00.000000Z",
"payer_display": "Jane Doe"
}
],
"last_transaction_at": "2026-05-01T14:22:00.000000Z"
}
{ "error": "Invalid email address" }
{ "error": "No data for this customer" }
Analytics
Customer Analytics
Query a per-customer payment breakdown scoped to your business
GET
/
analytics
/
customer
/
{email}
Customer Analytics
curl --request GET \
--url https://payments.shakesco.com/analytics/customer/{email} \
--header 'Authorization: Bearer <token>'import requests
url = "https://payments.shakesco.com/analytics/customer/{email}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://payments.shakesco.com/analytics/customer/{email}', 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://payments.shakesco.com/analytics/customer/{email}",
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://payments.shakesco.com/analytics/customer/{email}"
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://payments.shakesco.com/analytics/customer/{email}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://payments.shakesco.com/analytics/customer/{email}")
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{
"payer_email": "customer@example.com",
"overview": {
"total_transactions": 8,
"by_status": {
"paid": 5,
"pending": 1,
"scanned": 0,
"expired": 1,
"void": 1
}
},
"revenue": {
"total_spent_gross": "7840.00",
"total_spent_net": "7000.00"
},
"recent_transactions": [
{
"invoice_number": "INV-2026-9c8d7e6f",
"payer_name": "Jane Doe",
"payer_email": "customer@example.com",
"asset": "ETH",
"amount": "0.00045",
"status": "paid",
"paid_at": "2026-05-01T14:22:00.000000Z",
"created_at": "2026-05-01T10:00:00.000000Z",
"payer_display": "Jane Doe"
}
],
"last_transaction_at": "2026-05-01T14:22:00.000000Z"
}
{ "error": "Invalid email address" }
{ "error": "No data for this customer" }
For the complete documentation index, see llms.txt.
Returns a per-customer breakdown of payment activity scoped to your business. Use it to power customer dashboards or to surface a customer’s history in support tools.
Path Parameters
The customer’s email address (URL-encoded)
Response
The customer’s email
Gross and net revenue from this customer (both as decimal strings)
Up to 10 most recent invoices for this customer
ISO 8601 timestamp of the customer’s last paid invoice
const email = encodeURIComponent("customer@example.com");
const res = await fetch(
`https://payments.shakesco.com/analytics/customer/${email}`,
{ headers: { Authorization: `Bearer ${API_KEY}` } }
);
const analytics = await res.json();
{
"payer_email": "customer@example.com",
"overview": {
"total_transactions": 8,
"by_status": {
"paid": 5,
"pending": 1,
"scanned": 0,
"expired": 1,
"void": 1
}
},
"revenue": {
"total_spent_gross": "7840.00",
"total_spent_net": "7000.00"
},
"recent_transactions": [
{
"invoice_number": "INV-2026-9c8d7e6f",
"payer_name": "Jane Doe",
"payer_email": "customer@example.com",
"asset": "ETH",
"amount": "0.00045",
"status": "paid",
"paid_at": "2026-05-01T14:22:00.000000Z",
"created_at": "2026-05-01T10:00:00.000000Z",
"payer_display": "Jane Doe"
}
],
"last_transaction_at": "2026-05-01T14:22:00.000000Z"
}
{ "error": "Invalid email address" }
{ "error": "No data for this customer" }
⌘I