I wish I could +1 this a million times. I develop a Ruby gem for the QB API (Online & Desktop)[1] and I've come to realize their whole API is a mess. I've also worked with the Xero API and its much simpler but still lacks some key features like adding a discount to a line item on an invoice.
[1] https://github.com/ruckus/quickeebooks