Optional analytics on public pages. No session recording. Support works either way. Privacy details
API reference
Every list returns the same object. Follow nextCursor until hasMore is false.
{
"object": "list",
"data": [ ... ],
"hasMore": true,
"nextCursor": "MjAyNi0wOS0yM1QxMDo0MjowMC4wMDBafGludl8xMDQ4"
}const response = await fetch(`${process.env.BOSPAY_API_BASE}/invoices?status=paid&metadata[orderId]=1048&limit=20`, {
method: "GET",
headers: {
"Content-Type": "application/json",
"BOSPay-Version": "2026-09-23",
"X-API-Key": process.env.BOSPAY_API_KEY,
}
});
if (!response.ok) {
throw new Error(`BOSPay request failed: ${response.status}`);
}
const data = await response.json();