We chose Xero for our UK startup as:

1) It syncs with HSBC bank (we chose HSBC as it syncs with Xero)

2) It syncs with PayPal (we chose PayPal as it syncs with Xero)

3) Our accountants ( http://ihorizon.co.uk/ ) use it heavily

4) It has an API

My goal in choosing an accounting tool is to have visibility and centralisation to ensure that the key people in the company have information instantly about cash flow, assets, the books, etc. And it does all of this really well.

The areas in which Xero is a PITA for anyone considering using it:

A) Expenses.

B) API limits.

C) Payroll

On expenses, the cycle is a long one and unfortunately expenses in Xero are such a mess that our accountants urge us to use an Excel based spreadsheet that we print and complete by hand, and then post to the accountant for processing. Then the accountant summarises the expenses and enters it into Xero. This sucks big time. One of our goals in choosing Xero is to ensure that we can see all of our costs clearly. We want to be able to answer questions like "How much are we spending on air travel?" and if expenses are summarised we lose that insight. Expenses in Xero are non-editable, which makes them very hard to fix when an employee enters in something wrong. We're not talking about fixing the payment amounts as payments would have been made already, but fixing categorisation, VAT (sales tax), etc.

On API limits one of the driving reasons to select Xero was to have the capability for a company dashboard in which revenue, recurring revenue, runway, etc is displayable on the single dashboard along with customer metrics, operations information, etc. We even want to eventually have monetary events in the company books charted "there was this spike of customers due to this Slashdotting, that led to this operations load which in turn did this to the revenue" (or not as is likely the case). The API limits are way too low to be useful, to the point that right now we've not actually built it into the dashboard. The limits are such that developing against the API isn't as trivial as calling it and fetching the numbers, now we'd have to build our own storage and design that schema, etc. It's gone from a quick extension to the dashboard to a more significant piece of work.

On payroll, Xero does not implement any real capability other than recording that payroll has happened. That our accountant still uses Sage ( http://www.sage.co.uk/sage-50-payroll ) to calculate payroll and generate payslips and payment instructions shows how useless Xero payroll is. It's not even fit for purpose, they built the first 80% (recording it and issuing payslips, etc) but not the ability to calculate it.

I don't know how the main UK competitor stacks up against Xero, but I've looked at Kashflow ( http://www.kashflow.com/ ) a few times and would probably try it out in parallel to Xero for a while if they'd complete the picture above and weren't using SOAP for the API.

Xero is a love/hate relationship, it's good but the limitations are awkward and inelegant. It feels half-baked in many ways, parts of Xero are nearly perfect, but other parts look like a first-stab that after 3 years of using it it has become clear that no-one is going to finish.