Get started with Expenses
View the core steps required to perform the initial setup for the Expenses solution
Journey overview
The diagram below represents the end-to-end sync process for writing expenses from your application to your SMB customer's accounting software. Once you decide to build with Expenses, you need to configure Codat accordingly. Let's go through these requirements in detail.
Enable Expenses
- Open the Codat Portal and sign in.
- Click on Settings > Organizational settings > Products.
- In the list of products, find Expenses and click Enable. Then, follow the on-screen prompt.
Configure Expenses
Data types
By default, the data types required for Expenses will be activated automatically when 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 Expenses with the following settings:
Data type name | dataType | Use case | Fetch on first link? | Sync frequency |
---|---|---|---|---|
Accounts | chartOfAccounts | Accounts used within the general ledger to record and categorize expenses. | ✅ | Daily |
Bank accounts | bankAccounts | A bank account is a primary account from which expenses will be paid. | ✅ | Daily |
Company | company | The company info contains helpful information, such as the name of the linked company and its base currency and registered addresses. | ✅ | Daily |
Customers | customers | Customers can be used to record and associate income transactions, such as reclaiming a cashback reward. | ✅ | Daily |
Suppliers | suppliers | All expenses go against a single supplier representing the expense provider, preventing a company's accounting software from becoming overrun with duplicate merchants. | ✅ | Daily |
Tax rates | taxRates | Tax 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 categories | trackingCategories | Tracking 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 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 name | dataType | Solution enhancement |
---|---|---|
Direct costs | directCosts | Expenses uses direct cost to represent the expense transaction within the accounting software. |
Direct incomes | directIncomes | Direct incomes are used to represent any income-generating transaction type, such as cashback rewards. |
Journal entries | journalEntries | Journal entries are used when an accounting software 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. |
Transfers | transfers | A 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 solution.
You can also view detailed configuration instructions by clicking on the relevant tile:
Authorization flow
As part of using 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:
Webhooks
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 Expenses:
-
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.
-
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.
-
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 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 Expenses, set up the relevant integrations, configured auth flow parameters, and noted the recommended event types. This completes the initial setup of the solution.
Next, you will create a company and its connections to build out the core infrastructure required to manage expenses with Codat.
Read next
- Check out our client libraries to kick start your Expenses build.
- Configure customer to continue building your expense management process.