> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.monite.com/v2024-01-31/accounting/integration/index/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.monite.com/_mcp/server. # Accounting integration ## Overview Many SMEs use various accounting solutions to store and prepare their financial data for submission to tax authorities. With Monite, you can connect your users' data to their preferred accounting software and pull necessary financial data for import into your interface, as well as push data in case they need to do any post-accounting work outside of your application. ### Supported accounting systems Each [entity](../../entities/index) can connect to one of the following accounting systems: * QuickBooks Online * Xero New supported accounting systems will be added in future releases of our platform. If you have any specific requests, please contact our [Support team](../../intro/support). ### Requirements and considerations \[#requirements] * All Monite partners that intend to support accounting integration must create developer accounts in the accounting platforms they intend to support. * Each entity that wants to connect to an external accounting system (like Xero or QuickBooks) must have an account with that system before attempting to create an accounting connection with the Monite API. ## Set up the integration \[#setup] See [Set up accounting integration](./setup). ## How the integration works \[#how-it-works] The first step required to enable accounting integration for an entity is to establish a connection to an entity's accounting software and ask an entity user to authorize the connection. Once the connection has been established, the entity's financial data will be synchronized automatically between Monite's and the entity's accounting software. After the initial synchronization, Monite will automatically trigger synchronizations between both systems every hour. > **Info** > > Monite does not push older invoices or bills to the entity's accounting software during the initial synchronization. Therefore, only invoices and bills eligible for pushing **after** the accounting synchronization will be pushed to the accounting software. ## What data is synchronized In our accounting integration, we support two key actions for handling synchronized data: #### Pull for matching This feature pulls external data into our system for comparison or matching with existing records. No new records are created within the Monite platform; the purpose is solely to match the pulled data with corresponding data that already exists in our system. #### Pull for creation This feature not only pulls external data but also creates new entries in the Monite system for any unmatched records. If the pulled data does not have a corresponding match, a new record is automatically created in our platform. Currently, Monite pulls and pushes the following data from and to accounting systems. Data is synchronized every hour.
| Data | Pull | Pushed | ||
|---|---|---|---|---|
| for access | for matching | for creation | ||
| [Ledger accounts](./ledger-accounts) | :heavy_check_mark: | References to ledger accounts in invoice line items, and products | ||
| [Counterparts](../../common/counterparts/index) | :heavy_check_mark: | :heavy_check_mark: | ||
| [Products](../../accounts-receivable/products) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
| Tax rates | :heavy_check_mark: | :heavy_check_mark: | ||
| Accounts receivable: [invoices](../../accounts-receivable/invoices/index) | :heavy_check_mark: | :heavy_check_mark: | ||
| Accounts receivable: [credit notes](../../accounts-receivable/credit-notes) | :heavy_check_mark: | |||
| Accounts receivable: invoice [payment records](../../common/payment-records) | :heavy_check_mark: | |||
| Accounts payable: [bills](/accounts-payable/payables/collect) | :heavy_check_mark: | :heavy_check_mark: | ||
accounting. ledger\_account\_ids. payments](../../api/entities/patch-entities-id-settings#request.body.accounting) to specify the target ledger account. For more information, see [Assign a ledger account to payment records](./ledger-accounts#payment-records).
#### Counterparts
Monite pushes counterparts into the accounting system when:
* A new counterpart is created in Monite.
* An invoice issued to that counterpart is pushed into the accounting system.
When pushing counterparts, Monite first tries to find a matching counterpart with the same name in the accounting system.
If no match is found, Monite creates new counterparts in the accounting system.
If a counterpart in Monite has both `is_customer` and `is_vendor` set to `true`, it's pushed twice: we create a *customer* in the accounting system and also create a *vendor* with the same details but with the `_VENDOR` suffix in the name.
Once counterparts are matched, there is no regular check for data changes in either system.
After every synchronization, you can track its status and any errors returned by calling [`GET /accounting_synched_records/{synced_record_id}`](../../api/accounting-synchronized-records/get-accounting-synced-records-id). For more information, see [Check synchronization logs](./manage#check-synchronization-logs).
> Enable your users to synchronize accounts payable and receivable data with popular accounting solutions.