Webhooks

Configure outbound webhook endpoints so your backend is notified when a payment's status changes, an alternative to polling the POS Get payment endpoint.

  • Scope, an endpoint can cover the whole account (merchant) or be narrowed to a single store or pos terminal.
  • Delivery, the payment.status.updated event is POSTed as a thin envelope { eventId, type, createdAt, data }, where data matches the POS Get payment response. Delivery is at-least-once, de-duplicate on eventId.
  • Signing, each endpoint has its own signingSecret (returned once on create / rotate-secret). Verify the X-GoBTCPay-Signature: t=<unix>,v1=<hmac> header, where v1 = HMAC-SHA256(signingSecret, "{t}.{rawBody}"), and reject deliveries outside a small time window.

Use Send test event to verify your receiver and signature validation.