May 6, 2019

Thoughts on my idea for an API to abstract across Xero, Freshbooks, etc?

dbousamra

There are tonnes of SaaS products that generate invoices, reports, payments etc. They often get requests for integrating with other apps like Xero, Freshbooks, Quickbooks etc. These SaaS companies don't want to write integrations for all these products. It's a lot of work.

What do you guys think about an API that tried to abstract the commonalities, so people don't have to do this integration manually. They just code against this API, which handles the syncing, different formats, different concepts etc. Do you think there is value in this idea?

The most immediate issue I see are whether these API's could be abstracted across nicely, without:
A. losing functionality
B. becoming more confusing than just integrating with each vendor.

https://www.cronofy.com/pricing/ Is a product that does a similar thing, but for Calendars.

Thoughts?

  1. 1

    I think it's a great idea. If you can make another developers life easier by abstracting a bunch of API's into one, you've done a great thing. It's what Stripe did for payments and Plaid did for banks.

    Determine what the primary/necessary functionalities of each platform are and then figure out how to abstract these behind common endpoints within your API. Start with the top tier platforms and then over time integrate with the longtail platforms. We've been doing this exact thing but for ecommerce platforms over the last couple of years with our project, Violet.io. The top tier platforms are generally the best to build your API patterns around as they've already put the time/resources into perfecting it. From there each longtail platform simply becomes a process of fitting/manipulating their processes into your processes.

    1. 1

      Hey. Thanks for the feedback. Violet looks great.

      What do you think should be involved in an MVP if I was to do this? Basically pick 3 platforms and figure out the core, cross cutting concepts common to all of them, then try and write up some docs around it? Stick it on a landing page, and see if anyone bites?

      I've previously spent lots of time building thing, and in the end it wasn't necessarily what the customer wanted. I want to try and avoid this again.