Events & Webhooks
At Freemius, we offer a robust webhooks mechanism that allows Makers to stay in sync with important platform activities. Webhooks enable real-time communication between Freemius and your backend systems whenever key actions occur—such as a new sale, a license deactivation, or a refund.
This system empowers you to automate workflows, sync data, trigger notifications, and more.
What is an Event?
An event is a specific, predefined action or change that takes place within the Freemius platform.
Events reflect meaningful occurrences in your product’s lifecycle—like a user completing a purchase, a subscription being canceled, or a license being activated. Each event is uniquely named (e.g., subscription.canceled
, license.activated
) and carries structured metadata relevant to that action.
Events are the triggers that initiate webhook callouts. Whenever a monitored event occurs, Freemius generates a corresponding callout to your configured endpoint.
What is a Webhook?
A webhook is a URL endpoint that you configure to receive HTTP POST
requests from Freemius when certain events occur. webhoo When an event is triggered, Freemius performs a webhook callout—sending a signed payload with all relevant event data to your webhook endpoint. This enables your system to programmatically react to the event, such as updating a database, triggering an internal workflow, or notifying your team.
In short:
- The webhook is the URL endpoint you provide.
- The webhook callout is the actual HTTP request Freemius makes to that endpoint.
How to create a Webhook?
- Go to the Integrations section then choose Custom Webhooks
- Click the Add Webhook button.
- A popup with a form will appear. Add your custom URL that will receive the event callback.
- Select whether to receive all event types or specific ones on the Callback URL.
- Choose to immediately make the webhook active or deactivate for a future time.
The Webhook can be edited later to change the url and other options. See all the available webhooks
How to Test Event's Payload?
If you'd like to understand the payload of a specified event.type
follow these steps: 1. Head to the Events Log section in the dashboard. 2. Filter the events based on that event.type
. 3. Copy the ID of the 1st event shown in the filtered view. 4. Leverage the API to fetch the event's data. 5. The result's schema from the API is identical to the payload's schema you'll get by the webhook once event.type
will be processed.
Types of Events
This is a list of all the types of events we currently send. We may add more at any time, so you shouldn't rely on only these types existing in your code.
You'll notice that these events follow a pattern: resource.event
. Our goal is to design a consistent system that makes things easier to anticipate and code against.
NOTE: Events that occur on "sub" resources like payment.dispute.created
do not trigger the parent's update
event.
Affiliate Program
Occurs once per month when our system calculates affiliate payouts. Triggered only for affiliates eligible for a payout after crossing the $100 threshold.
Card
Cart
Occurs whenever a ‘sale’ has been completed, but the payment hasn’t necessarily been completed yet.
Occurs whenever an abandoned cart session has been recovered and converted into a ‘sale’.
Occurs when the cart recovery feature has been deactivated in the Developer Dashboard.
Occurs when the cart recovery feature has been reactivated in the Developer Dashboard.
Occurs when the prospect re-subscribes to the cart abandonment recovery campaign.
Occurs when the prospect unsubscribes from the cart abandonment recovery campaign.
Coupons & Discounts
Buyer Email Tracking
Occurs when a link is clicked by a user. Email link click tracking is only included in cart abandonment recovery and trial-related emails.
Occurs when an email has been opened by a user. Email open tracking is only included in cart abandonment recovery, trial-related, and subscription renewal reminder emails.
Installation (Downloadable Software)
In the context of downloadable software (like plugins or desktop apps), an installation represents a specific copy of your product that has been installed and is running on a particular device or site. The following webhook events let you track changes to each installation—covering its state, version, plan, platform details, and more.
Occurs whenever a user opts in for sharing basic device/website info after previously opting out from it.
Occurs whenever a user opts out from sharing basic device/website info after previously sharing it.
Occurs whenever an installation platform version is updated (e.g., WP version; iOS version).
Occurs whenever a product installation is updated with a new Freemius SDK version.
Occurs when an email has been sent to the user notifying them the trial period is about to end.
Occurs whenever an installation data is updated (in addition to specific install update events).
Occurs whenever the product is downgraded to a lower version (not related to the plan).
Occurs whenever the product is upgrade to a newer version (not related to the plan).
Licensing
Occurs whenever a license is activated (also triggered automatically after a successful plan upgrade).
Occurs whenever a license ownership is changed by the developer from the dashboard.
Occurs whenever a license quota is changed by the developer from the dashboard.
Occurs when a license renewal reminder email has been sent to the user.
Occurs when a courtesy trial expiration reminder email has been sent to the user.
Occurs whenever a license is updated (in addition to specific license update events).
Payment
Occurs whenever a payment dispute is closed by refunding the disputed payment.
Product Team
Plans, Pricing and Features
Occurs whenever a user purchases a lifetime package (doesn’t matter which plan).
Reviews
Subscription
Occurs whenever an annual renewal reminder email is sent (30 days before the automatic renewal).
Occurs whenever a failure renewal processing email is sent to the buyer.
Occurs whenever a special subscription cancellation promo is applied.
Store
Occurs when a new store has been created (e.g. when a new Freemius account has been created).
User
Occurs whenever a customer billing information is updated (e.g. address, VAT ID, company name).
Occurs whenever the tax ID associated with the user’s billing is changed.
Occurs when a transactional email sent to a user bounces, which also changes the user’s email_status property to 'bounced'.
Occurs when a transactional email sent to a user is successfully delivered and only if the user’s previous deliverability state (aka the email_status property) was not empty before.
Occurs when a transactional email sent to a user is dropped, which also changes the user’s email_status property to 'dropped'.
Occurs when a user has opted out of a receiving marketing material (emails).
Occurs when a user submits a support ticket via the contact form in the Customer Portal.
Webhook
WordPress
Occurs whenever a user opts in for sharing a website’s plugins & themes list after previously opting out from it.
Occurs whenever a user opt-out from sharing a website’s plugins & themes list after previously sharing it.
Occurs whenever an account ownership transfer candidate confirms the transfer.
Occurs whenever an account ownership transfer is confirmed by the current installation account owner.
Occurs whenever a user opts in for sharing basic website after previously opting out from it.
Occurs whenever a user opts out from sharing basic website after previously sharing it.
Occurs whenever a user opts in for sharing their basic profile info after previously opting out from it.
Occurs whenever a user opts out from sharing their basic profile info after previously sharing it.
Occurs when a blacklisted site has been removed in the Customer Portal.
Occurs when a whitelisted site has been removed in the Customer Portal.