Skip to main content
The Accounting API is built on a small set of objects. When you sync expenses to QuickBooks, Xero or another accounting system, you work with companies and connections. (The eTIMS API has its own model of businesses and branches: see eTIMS core concepts.)

The object model

A single company can hold multiple connections — e.g. QuickBooks and Odoo — at the same time.

Create a company

A company represents your SMB customer. Create one with the POST /companies endpoint; the response includes the company id you use in every subsequent call.
Save company.id. For accounting integrations the response also returns an authUrl to start the OAuth connection.

Connect an accounting system (Expenses)

To sync expenses, connect the company to an accounting platform. The simplest path is the Link component; you can also drive the OAuth flow directly with the authUrl.
The authUrl only carries a working client_id and redirect_uri once your Application has QuickBooks credentials configured — see Set up the QuickBooks Online integration. Without that step, authUrl still comes back but silently fails to redirect anywhere.
Once the OAuth flow completes, the connection is created and status becomes connected. List a company’s connections to get the connectionId you need for syncing:

Kenyan tax compliance (eTIMS)

eTIMS is a separate product with its own dashboard, API keys and objects. You register a business there once, in the compliance dashboard, and its API acts on businesses and branches rather than companies. See the eTIMS API docs.

Next steps

The sync model

How data is pushed and how you confirm the result.

Get started with Expenses

Connect a company and sync your first expense.