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 syncSync The process of fetching the latest data from a connected data source. Syncs can be triggered manually or run automatically on a schedule. process for writing expenses from your application to your SMBSMB The primary customer segment that Codat helps businesses serve, typically companies with annual revenues under $500 million. 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 linkLink The authorization flow that allows end users to connect their accounting, banking, or commerce platforms to your application via Codat.? | SyncSync The process of fetching the latest data from a connected data source. Syncs can be triggered manually or run automatically on a schedule. 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 |
| CompanyCompany In Codat, a company represents your customer's business entity. Companies can have multiple connections to different data sources. | company | The companyCompany In Codat, a company represents your customer's business entity. Companies can have multiple connections to different data sources. info contains helpful information, such as the name of the linked companyCompany In Codat, a company represents your customer's business entity. Companies can have multiple connections to different data sources. 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 companyCompany In Codat, a company represents your customer's business entity. Companies can have multiple connections to different data sources.'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 linkLink The authorization flow that allows end users to connect their accounting, banking, or commerce platforms to your application via Codat. fetch based on your requirements. We recommend setting it to a daily or a monthly syncSync The process of fetching the latest data from a connected data source. Syncs can be triggered manually or run automatically on a schedule..
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 sourcesData source An external platform (such as QuickBooks, Xero, or a bank) that Codat integrates with to pull or push financial data.
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 sourceData source An external platform (such as QuickBooks, Xero, or a bank) that Codat integrates with to pull or push financial data. 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:
WebhooksWebhook An automated notification sent from Codat to your application when specific events occur, such as when data syncs complete or connections change status.
Codat supports a range of event types to help you manage your data pipelines. In the Codat Portal, navigate to Settings > WebhooksWebhook An automated notification sent from Codat to your application when specific events occur, such as when data syncs complete or connections change status. > Configure consumer and click Add endpoint to set up the following webhookWebhook An automated notification sent from Codat to your application when specific events occur, such as when data syncs complete or connections change status. consumers and get the most out of Expenses:
-
Use this event to track the completion of all enabled data type syncsSync The process of fetching the latest data from a connected data source. Syncs can be triggered manually or run automatically on a schedule. for a newly connected companyCompany In Codat, a company represents your customer's business entity. Companies can have multiple connections to different data sources.. When you receive a notification from the webhookWebhook An automated notification sent from Codat to your application when specific events occur, such as when data syncs complete or connections change status. 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 syncSync The process of fetching the latest data from a connected data source. Syncs can be triggered manually or run automatically on a schedule. process. When you receive a notification from the webhookWebhook An automated notification sent from Codat to your application when specific events occur, such as when data syncs complete or connections change status. 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 webhookWebhook An automated notification sent from Codat to your application when specific events occur, such as when data syncs complete or connections change status. consumer, you can proceed to the next steps of the expense management process - for example, checking the transactions or informing your SMBSMB The primary customer segment that Codat helps businesses serve, typically companies with annual revenues under $500 million. 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 APIAPI A set of rules and protocols that allows different software applications to communicate with each other. Codat provides APIs for accessing financial data from accounting, banking, and commerce platforms. 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 companyCompany In Codat, a company represents your customer's business entity. Companies can have multiple connections to different data sources. and its connectionsConnection A link between a Codat company and a data source (like an accounting platform). Each connection represents authorized access to pull or push data from that platform. 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.






