Optional analytics on public pages. No session recording. Support works either way. Privacy details
Webhooks
Validate the raw bytes, persist the event, then acknowledge. Fulfill from invoice.paid.
const response = await fetch(`${process.env.BOSPAY_API_BASE}/webhooks`, {
method: "POST",
headers: {
"Content-Type": "application/json",
"BOSPay-Version": "2026-09-23",
"X-API-Key": process.env.BOSPAY_API_KEY,
"Idempotency-Key": "order-1048-attempt-1",
},
body: JSON.stringify({
"url": "https://merchant.example/webhooks/bospay",
"events": [
"invoice.paid",
"invoice.payment_detected",
"invoice.partial"
],
"description": "Order fulfillment"
})
});
if (!response.ok) {
throw new Error(`BOSPay request failed: ${response.status}`);
}
const data = await response.json();