Skip to main content

Get started with Sync for Expenses

View the core steps required to perform the initial setup for Sync for Expenses

Journey overview

The diagram below represents the end-to-end sync process for pushing expenses from your application to your SMB customer's accounting software. Once you decide to build with Sync for Expenses, you need to configure Codat accordingly. Let's go through these requirements in detail.

Enable Sync for Expenses

  1. Open the Codat Portal and sign in.
  2. Click on Settings > Organizational settings > Products.
  3. In the list of products, find Sync for Expenses and click Enable. Then, follow the on-screen prompt.

Configure Sync for Expenses

Data types

By default, the data types required for Sync for Expenses will be activated automatically when Sync for Expenses is enabled for your Codat instance. If you need to manage the data types, navigate to Settings > Integrations > Data types in the Codat Portal.

Enable the data types required for Sync for Expenses with the following settings:

Data type namedataTypeUse caseFetch on first link?Sync frequency
AccountschartOfAccountsAccounts used within the general ledger to record and categorize expenses.Daily
Bank accountsbankAccountsA bank account is a primary account from which expenses will be paid.Daily
CompanycompanyThe company info contains helpful information, such as the name of the linked company and its base currency and registered addresses.Daily
CustomerscustomersCustomers can be used to record and associate income transactions, such as reclaiming a cashback reward.Daily
SupplierssuppliersAll expenses go against a single supplier representing the expense provider, preventing a company's accounting software from becoming overrun with duplicate merchants.Daily
Tax ratestaxRatesTax rates enable companies to track expenses against the relevant tax code, helping them to make the expense billable or track taxes that can be reclaimed.Daily
Tracking categoriestrackingCategoriesTracking categories provide an additional means of categorizing and tagging an expense (e.g. locations, departments).Daily

Additional data types

You can also choose to enable additional data types that may enhance your Sync for Expenses experience. With these, you can choose the synchronization frequency and first link fetch based on your requirements. We recommend setting it to a daily or a monthly sync.

Additional data types
Data type namedataTypeSolution enhancement
Direct costsdirectCostsSync for Expenses uses direct cost to represent the expense transaction within the accounting platform.
Direct incomesdirectIncomesDirect incomes are used to represent any income-generating transaction type, such as cashback rewards.
Journal entriesjournalEntriesJournal entries are used when an accounting platform does not support a representation of direct costs. They are also used to represent transfers, such as topping up or paying down an expense card.
TransferstransfersA record of an expense transaction between two bank accounts, such as topping up or paying down the expense card.

Manage data sources

In the Codat Portal, navigate to Settings > Integrations and click Manage integrations. Next, click Manage next to the specific integration you want to enable and set it up to serve as a data source for the product.

You can also view detailed configuration instructions by clicking on the relevant tile:

Authorization flow

As part of using Sync for Expenses, you will need your customers to authorize your access to their data. To do so, use Link - our pre-built, embeddable, conversion-optimized, and white-labeled authorization flow.

The solution lets you tailor the authorization journey to your business needs. You can:


Codat supports a range of event types to help you manage your data pipelines. In the Codat Portal, navigate to Settings > Webhooks > Configure consumer and click Add endpoint to set up the following webhook consumers and get the most out of Sync for Expenses:

  • NewCompanySynchronized

    Use this event to track the completion of all enabled data type syncs for a newly connected company. When you receive a notification from the webhook consumer, you can proceed to the next steps of the expense management process.

  • SyncFailed

    Use this event to track any failures that might occur during the sync process. When you receive a notification from the webhook consumer, you need to review the error details and reprocess the failed transactions.

  • SyncCompleted

    Use this event to track that the expense transactions have been synced successfully. When you receive a notification from the webhook consumer, you can proceed to the next steps of the expense management process - for example, checking the transactions or informing your SMB customer of the completion.

Client libraries

Use our comprehensive Sync for Expenses library to kick-start and simplify your build. Simply install the library in one of the supported languages and pass your base64-encoded API key to the constructor.


You have enabled Sync for Expenses, set up the relevant integrations, configured auth flow parameters, and noted the recommended event types. This completes the initial setup of the product.

Next, you will create a company and its connections to build out the core infrastructure required to manage expenses with Codat.

Was this page useful?