Logo
Home

Discussing Webhooks

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.

Webhooks

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.

Webhooks1

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

Screen Shot 2013-03-11 at 9.23.30 AM

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:

  1. Data Change events
  2. 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.


Posted

in

by

Tags:

Comments

14 responses to “Discussing Webhooks”

  1. Rbright Avatar

    To avoid excessive polling, my application relies on user interaction to trigger an IPP API call that checks for new data. This manual procedure is tedious for the user, but it allows me to avoid polling for data when the likelihood of a change is low. Introducing web hooks would allow me to circumvent this manual process by updating local entities whenever IPP sends an event.

  2. Lon Orenstein Avatar

    This sounds great! We’d like to be notified when data changes, and WHICH data changed (or data type, like an invoice or customer). Just knowing that “something” changed isn’t as useful…
    What would really be nice is to define a set of conditions, like a rules engine. An example might be “when an invoice is paid AND the invoice is more than 90 days past due”. Or, “new invoice added AND total amount is greater than $10,000″…
    Hope that helps,
    Lon

  3. Danny Do Couto Avatar

    Grace – if we can get webhooks on IPP, we’d have some very happy users. From a user experience standpoint, this would allow them to have a richer experience using an App Center app. We’re all for it.

  4. PaulAlexJackson Avatar

    We’d use this for Method CRM in a heartbeat. Users appreciate that we can currently do a sync instantly from Method to QBO, but there is confusion as to why changes in QBO don’t instantly go to Method. Webhooks would allow us to deliver a truly seamless environment, reduce the chance of sync conflicts, and make our users run more efficiently.
    Paul

  5. Ninad div Avatar
    Ninad div

    Hey this is great!

  6. Greg Frazier Avatar
    Greg Frazier

    This will be a great feature. Like SQL event triggers, this will enable 3rd party apps like mine to respond to journal entries and other accounting related transactions instantly. This makes for a more efficient continuous auditing tool.

  7. Cody Caughlan Avatar

    Yes this would be a huge feature and would greatly be more efficient than the polling infrastructure we have in place. Please implement this!!!!!!

  8. Adam Smith Avatar

    This would be a great feature! We hope that you implement this soon as it would help us immensely.

  9. Mukesh Bhagat Avatar

    Hello,
    I am new at QuickBooks application. How to establish setup of QuickBooks desktop level application?. I am using QucikBooks pro 2012(desktop app).
    I am developing a web application using asp.net,C#. I have to integrate QB to my web app to send data from my web app into qucikbooks and get QB data into my web app.
    How to establish connection between QucikBooks application and my web app? which qucikbooks api used in this implementation.
    Any help will be appreciated.

    Thanks
    Mukesh Bhagat.

    1. Pearce Avatar

      Mukesh,
      You will need to use the QuickBooks Desktop SDK: https://developer.intuit.com/us#QuickBooksDesktopSDK

      Also, you will get better support for technical questions on our live community: https://intuitpartnerplatform.lc.intuit.com/

      Best,
      ~Pearce

  10. R. V.d.M Avatar

    Any news on this topic in 2015? Would still love to see this implemented after nearly 2 years!

  11. Jon Jessup Avatar
    Jon Jessup

    Any updates on this?

  12. lrathjens Avatar
    lrathjens

    Hi Jon, I hope you plan to come to QuickBooks Connect 2015. We’ll share more there and afterwards.

  13. add Avatar
    add

    I could not find an api call for webhooks. Any idea on its availability?

Leave a Reply

Your email address will not be published. Required fields are marked *