Guides · Polar
Get a Mac notification for every Polar sale
Polar sends a webhook for each order and subscription change. Point it at an EventBar URL and every sale pops up in your menu bar with a running count, verified with Polar's signing secret so nothing forged gets through.
Needs: the free EventBar app on your Mac, an EventBar account, and a Polar account with permission to add webhooks. About five minutes. Polar preset, signature verified.
Steps
- Create the webhook URL. In the EventBar dashboard, open the Webhooks tab, pick the group this belongs to (one group per site or app is the usual shape), choose the provider Polar, name it, and press Create. Copy the URL; it stays visible and can be rotated any time.
- Paste it into Polar. In Polar: Settings, then Webhooks, then Add endpoint. Paste the URL, choose format raw, and tick
order.paidplus thesubscription.*events you care about. Polar then shows the endpoint's secret: paste it into the hook card in EventBar and press Save secret. - Trigger one. Most services offer a test delivery; otherwise do the real thing once. It shows up in the dashboard's Events tab within a second and in the menu bar, as an undefined type named after the event. That first one is your proof the wiring works.
- Make it read well. Press Define on the new type and give it a title and a body template. Fields come from the payload, nested ones with dots. The table below is a starting point.
This preset is on Plus and Pro. Free can do the same with a Generic JSON hook and a type field of type, without the signature check.
What you'll see
| Type | Title | Body template |
|---|---|---|
order.paid | Sale | {data.product.name} · {data.total_amount} {data.currency} · {data.customer.email} |
subscription.active | New subscription | {data.product.name} · {data.customer.email} |
subscription.canceled | Cancellation | {data.product.name} · {data.customer.email} |
subscription.revoked | Subscription ended | {data.product.name} |
Every type has its own switch in the menu bar, so a noisy one can be quiet on this Mac and still counted. Counts cover the last hour, 24 hours, 7 days, 30 days and all time.
Worth knowing
- Amounts are in cents, as Polar sends them. A template can't divide, so
1900 usdis what you get; most people read it fine. - Duplicates are dropped by Polar's
webhook-idheader, so a redelivery never counts twice. - The Polar preset and signature verification are on Plus and Pro. On Free, create the hook as Generic JSON with type field
type; it works, just unverified.
The full contract, including how each preset reads a payload and what the answers mean, is in the API docs. Something about Polar's payload changed? Tell us and we'll fix the guide.