Blog
Codat vs Direct Accounting APIs: How to Choose
Unified accounting API (Codat, Rutter and similar) or direct Xero and QuickBooks integrations? The trade-offs in cost, control, data model and risk, and how to decide.
TL;DR
- A unified accounting API gets you to several platforms quickly with one data model; direct integrations give you control and no per-connection fee.
- The deciding factors are how many platforms your customers use, your timeline, your expected connection volume, and how much of the raw data you need.
- A common pattern: start unified to learn what customers actually use, then go direct on the one or two platforms that carry most of the volume.
- Either way, write down the point at which you would switch, so the decision gets revisited on evidence.
If your customers use one or two accounting platforms and you expect a lot of connections, integrate directly. If they use many platforms, or you need to ship in weeks rather than months, a unified accounting API such as Codat or Rutter is usually the faster and safer start. The real question isn’t which is better in general. It’s which costs you less over the next two or three years, given how your customers actually work.
The two options at a glance
| Unified accounting API | Direct integrations | |
|---|---|---|
| Time to first platform | Fast: one integration | Slower: one per platform |
| Adding another platform | Usually configuration | Another integration to build and maintain |
| Data model | One normalised model across platforms | Each platform’s own model, mapped by you |
| Cost | Per connection or usage fee, rising with volume | Engineering time, mostly up front, plus upkeep |
| Control | Limited to what the provider exposes | Full access to each platform’s API |
| When a platform changes its API | The provider updates the connector | You update your integration |
| New dependency | Yes: the provider’s uptime, roadmap and pricing | No extra party between you and the platform |
When a unified API is the better start
- Your customers spread across several accounting platforms, and you don’t yet know which matter most.
- You need to ship soon, and building and maintaining several integrations would take the whole team.
- Normalised data is enough: totals, invoices, contacts, balances, rather than every platform-specific field.
- Connection volume is modest, so per-connection pricing stays small next to engineering cost.
The hidden benefit is learning. A few months of real connections tells you which platforms your customers actually use, which is the information you need to make the direct-versus-unified decision properly.
When direct integrations win
- One or two platforms cover nearly all your customers.
- Volume is high enough that per-connection fees outgrow the cost of building and maintaining your own integration.
- You need platform-specific data or behaviour that a normalised model flattens away.
- Accounting data sits at the centre of your product, and you don’t want a third party between you and it.
- You want to list in a platform’s marketplace, where a direct integration is often expected.
What people underestimate on each side
Unified: the normalised model hides real differences. Two platforms can both have an invoice “due date” and mean slightly different things. You still need to test against real data from each platform, and you still need to handle the provider being down. Ask the provider the same questions you would ask any integration vendor (see questions to ask an integration vendor).
Direct: the first successful sync is quick, and that’s what makes it look cheap. The ongoing work is consent and token handling, rate limits, webhooks that stop arriving, API version changes, and the mapping between each platform’s data and yours. Multiply that by every platform you support.
A pattern that often works
- Start with a unified API for the first release, behind your own thin integration layer, so your product never talks to the provider directly.
- Measure: which platforms customers connect, connection volume, sync failures, and what the provider costs per month.
- Write down the switch point in advance. For example: “When one platform passes N active connections, or the provider costs more than a quarter of an engineer, build that platform directly.”
- Go direct on the platform that crosses it, and keep the unified API for the long tail.
Because of the thin layer in step 1, step 4 replaces one implementation rather than every call site. That layer is the cheapest decision in this whole list, and the one most often skipped.
Questions to settle before choosing
- Which accounting platforms do your customers use today, in what proportion? Check, don’t guess.
- How many connections do you expect in a year, and in three?
- Which fields do you actually need, and does the normalised model have them?
- How fresh does the data need to be for the decision it feeds?
- What happens to your product if the provider, or a platform, is unavailable for a day?
- Who maintains this in two years, and how much of their time can it take?
This is a build-vs-buy decision with an integration twist. The general framework is in build vs buy, and the integration design questions are in the API integration checklist. If you’d rather work through it with someone who has built both kinds, that’s what a technical decision workshop is for.
Where this leads
If this is the situation you're in
Technical Decision Workshop →Compare approaches, challenge assumptions, and make an important decision easier to defend.
How a problem like this was worked through
Case study: A reliable boundary between systems →Or skip ahead
Let's talk: tell me about the problem →
