Author : Arun Avanathan, Platform Lead, IPP Data Services. Enjoys developing core platform services for IPP. In the past, built highly scalable applications & services for eBay & Nextag.
At Intuit Partner Platform we are currently considering introducing a new feature to provide support for Webhooks. We’d like your feedback on this topic to help evaluate the importance of this type of feature.
For context we provide a brief explanation below discussing the benefits of such a feature.
Webhook is an HTTP POST callback request sent to a URL of the your choice in response to some event occurring. This eliminates the need for you to build polling functionalities in your application to the server to check whether a particular event has occurred or not.
How is it going to help you the Application Developer?
Today, the Application Developer writes scripts to periodically poll Intuit Partner Platform(IPP) API for QuickBooks to know whether Data changed or not. Even though the data hasn’t changed, the polling script will still call & the API will return “no data changed” response. This is where Webhooks can remove the need for developers to add a polling mechanism.
Once a Webhook endpoint is registered by an application, IPP will notify the app of data changes in the Cloud. The Webhook payload will contain the company ID, entity name and the time the entity changed. The application can then call IPP API for QuickBooks to get the details of the changes.
Security – How does the REST endpoint know that caller is IPP?
When the Webhook endpoint is registered for the application, IPP will generate an auth token – specifically a Webhook auth token – in the App Center. With every call back, IPP will use this token to make a POST request over https with Basic Auth. The Webhook endpoint can validate this token to ensure the requests are coming from IPP.
Sample Webhook call
Webhooks are not limited to solving just polling problem. Under the hood they are designed to notify any event, qualified for notification. More events will be identified & added as part of the iterative improvement process.
Here are some of the potential use cases webhooks can help:
- Data Change events
- Connection initiation
What do you think? Any other events you want to be notified for? We’d love to hear from you & let us know of any other use cases you would like to cover in this feature. So, if it’s important to you, make sure you are heard by commenting on this blog post.