Skip to main content
Every Sync2Books product is built on the same small set of objects. Whether you are syncing expenses to QuickBooks or pushing sales to KRA eTIMS, you work with the same companies and connections.

The object model

A single company can hold multiple connections — e.g. QuickBooks for expenses and an eTIMS connection for Kenyan tax compliance — 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:

Connect eTIMS (Kenya compliance)

For Kenyan tax compliance, the company is connected to eTIMS instead of (or in addition to) an accounting platform. This is normally done once, in the dashboard — you enter the KRA PIN, OSCU device serial, and branch details, and Sync2Books runs the device onboarding for you. See eTIMS provisioning.

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.