Skip to main content
A webhook is an HTTP POST that BillStack sends to your server the moment something happens - most importantly, when a customer pays into one of your virtual accounts. Instead of polling the API, you register a URL once and BillStack pushes events to it as they occur.

Set your webhook URL

Add your endpoint URL in the dashboard under Developer β†’ Webhooks. It must be a public https URL that accepts POST requests with a JSON body.

The payment event

When funds arrive in a virtual account, BillStack sends a PAYMENT_NOTIFICATION event:

Fields

Responding to a webhook

Reply with an HTTP 200 as soon as you have received the event, and return this JSON body to acknowledge it:
Any non-200 response is treated as a failed delivery, and BillStack retries it.
Acknowledge with 200 first, then do your processing (fulfilling the order, updating your records) afterwards. Keeping the handler fast avoids timeouts that look like failed deliveries.
Each event you accept with a 200 is recorded as delivered. Verifying that an event genuinely came from BillStack is covered on the next page, Webhook Security.