I suggest you ...

Notify URL When Stuff Changes in Xero - Webhooks

I'm requesting "web hooks" for the Xero API.

Here's how they work: Customer provides a URL (http://myserver.com/xero/changed) to Xero, and when something is changed, Xero notifies that URL, perhaps indicating which records have changed.

The Xero API provides methods that you can query and compare with previous results to see what has changed. However, this is not performant for large data sets, and detecting changes involves a lot of code.

The competition has it - web hooks are supported by QuickBooks. Let's get them in Xero - it's a superior product in every other way.

170 votes
Vote
Sign in
Check!
(thinking…)
Reset
or sign in with
  • facebook
  • google
    Password icon
    I agree to the terms of service
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    pdelaurentispdelaurentis shared this idea  ·   ·  Flag idea as inappropriate…  ·  Admin →
    anonymousanonymous shared a merged idea: Push changes from Xero to other systems  ·   · 
    anonymousanonymous shared a merged idea: Be able to have a callback url when an invoice is paid  ·   · 
    planned  ·  xeroAdminxero (Admin, Xero) responded  · 

    I have merged the “callback URL on Invoices” idea with this webhooks idea as we are leaning more towards web hooks, but still very much open to ideas.

    We agree it would make working with the API much more efficient.

    Please keep sharing your use cases and ideas if you haven’t already: they are a real help.

    20 comments

    Sign in
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      I agree to the terms of service
      Signed in as (Sign out)
      Submitting...
      • Charle DemersCharle Demers commented  ·   ·  Flag as inappropriate

        Contributing my usecase: I need to keep clients, users and tags (create/update/delete) in sync between multiple applications. More to the point, when I update a client in Xero, Xero warns sync app that take care of propagating the change to the other applications.
        In my case it doesn't need to be a rock solid notification system, I could live with a pooling based sync to normalize things a couple of times a day or so.

      • Jev BjorsellJev Bjorsell commented  ·   ·  Flag as inappropriate

        Usecase;
        I'm now integrating invoicing between our order management system. When a Payable invoice has been paid, I want a webhook to fire back to my order management system so that systems status is updated.

        Same/similar use case applies for Sales Invoices.

      • Tim CullTim Cull commented  ·   ·  Flag as inappropriate

        Hey guys,

        This thread is 2 years old now but I don't see any webhooks in the documentation yet. Are they already here and I'm just missing them?

      • Jev BjorsellJev Bjorsell commented  ·   ·  Flag as inappropriate

        This feature will have good pay-off for any clients or partners integrating via your APIs. What's the status on this feature? Will we see it in 2012?

      • David VandenbergDavid Vandenberg commented  ·   ·  Flag as inappropriate

        Webhooks are the only way to do truly realtime integrations.
        Personally, I won't use a cloud solution that doesn't provide webhooks alongside their API these days. Without them, integrations are always poll-based, relying on cron jobs that run even when nothing has changed, which is extremely inefficient. Polling results in either too many API calls (to achieve a somewhat timely update cycle), or a poor integration with only semi-regular syncronisations.

        This is a must-have feature in my books. And it's so simple to implement that I can't understand why any cloud solution provider would not have this on the top of their priority list.

      • Warren StrongWarren Strong commented  ·   ·  Flag as inappropriate

        This is a much needed feature for credit control. The side effect is it makes better use of your own server resources; and stops them getting hammered by API polling

      • Sam SehnertSam Sehnert commented  ·   ·  Flag as inappropriate

        Definitely, an application I've been working on polls >100 invoices every day to see if they've been paid. If Xero sent data to a URL I controlled instead, there wouldn't be nearly as much pressure on BOTH ends, and the systems users would have a much more up to date representation of their invoices in the system.

      • Wayne RobinsonWayne Robinson commented  ·   ·  Flag as inappropriate

        Actually, being able to connect to a RabbitMQ (or other AMQ-compatible), ActiveMQ (or other JMS/Stomp-compatible) messaging server for consistent, durable delivery of messages would be my preferred way to receive these notifications.

        Even if the notifications were just pushed to an Amazon SQS account (either mine or Xero's, there are features to setup shared or anonymous access now) about changes happening (e.g. Invoice ID=xxx updated) so we could then retrieve the changes using the existing API.

      • Wayne RobinsonWayne Robinson commented  ·   ·  Flag as inappropriate

        Actually, being able to connect to a RabbitMQ (or other AMQ-compatible), ActiveMQ (or other JMS/Stomp-compatible) messaging server for consistent, durable delivery of messages would be my preferred way to receive these notifications.

        Even if the notifications were just pushed to an Amazon SQS account (either mine or Xero's, there are features to setup shared or anonymous access now) about changes happening (e.g. Invoice ID=xxx updated) so we could then retrieve the changes using the existing API.

      • HamishHamish commented  ·   ·  Flag as inappropriate

        yeah like Paypal does with its IPN notify. its great!

      • Brad McNayBrad McNay commented  ·   ·  Flag as inappropriate

        I think this would work for our situation as well. We are a hosting company and would love to be able to have when an invoice is paid, it automatically goes out to the hosting server and creates the account. In this case we would just have a page that Xero would post data to and it would take it from there, but I think this would work in that scenario.

      • DuyDuy commented  ·   ·  Flag as inappropriate

        it would be nice to have this kind of callback url

      • pdelaurentispdelaurentis commented  ·   ·  Flag as inappropriate

        Here's an idea for how to implement this:

        As you make changes to payments, invoices, etc, you can push a note about which object / account changed to a message queue (i.e. RabbitMQ). Then you have 1 or more servers that pull items from this message queue + send them to the URL associated with the customer's account.

        This way, there's almost zero speed impact on your core system.

      • Dan RucciDan Rucci commented  ·   ·  Flag as inappropriate

        Agree this would be useful so that my ordering system automatically marked orders to 'processing' once the payment came in an was confirmed once reconciled in xero.

      • bumperboxbumperbox commented  ·   ·  Flag as inappropriate

        i have run out of votes, but if i did have votes i would vote for this.

      Feedback and Knowledge Base