Accounting integration
Enable your users to synchronize accounts payable and receivable data with popular accounting solutions.
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 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.
Requirements and considerations
- 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
See Set up accounting integration.
How the integration 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 24 hours.
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 24 hours:
** Invoices are pulled only for access purposes, they are neither matched nor created.
Entities can also pull records from the accounting system on demand by calling POST /accounting_connections/{connection_id}/sync
.
How data is synchronized
Pulling
This section describes how data is pulled from an accounting system.
Ledger accounts
Ledger accounts are pulled only for mapping to products. Monite does not create any new items during this process.
Counterparts
When retrieving counterpart data from your accounting system for use in Monite, counterpart information is matched based on their names, countries, cities, and addresses—in that exact order—till there is an exact match. If there is more than one counterpart with the same name, we additionally attempt to match them based on the other information provided.
Monite does not create any new items during this process; therefore, no action is taken if no match is found. If a mismatch occurs, entities can create counterparts on Monite to match the counterpart details on their accounting system.
Monite also creates a new counterpart in the entity’s accounting system whenever a new counterpart is created using our API.
Products
All products are pulled from the accounting system on the first connection. Data is pulled, and IDs are matched based on their names alone. If a product does not exist on Monite, Monite will create a new product in our database and link it to the corresponding product from your accounting system.
Every time a new product is created in the accounting system, Monite checks if there is a match for this product in the Monite system. If the product is not found, Monite pulls the product’s data and automatically creates the product internally.
Tax rates
Tax rates are pulled only for mapping purposes. Monite does not create any new items during this process; therefore, no action is taken if no match is found.
Handling multiple matches
If a product’s name matches with multiple products on either system, Monite does not attempt to match any of the results. The resulting error will be returned in your sync_object
.
Pushing
This section describes how data is pushed to an accounting system.
Ledger accounts
Ledger accounts are not pushed into the accounting system.
Accounts Payable: invoices (bills)
Only payables in the ‘issued’ and ‘canceled’ statuses are pushed. Before pushing, bills are validated to confirm the presence of references for tax_rate_ref_id
, ledger_account_id
, and line_items
. Issuance of bills without this validation is prohibited.
Accounts Receivable: invoices
Monite does not push any of the entity’s older invoices during the initial synchronization. After synchronization, invoices in Monite are only pushed to the entity’s accounting system when they are moved to the issued
status.
Accounts Receivable: credit notes
Credit notes are pushed without a document number. Users can backfill credit note numbers in the accounting system manually.
The pushed credit notes do not get associated with the corresponding invoices in the accounting system. As a result, invoices in the accounting system will not be automatically canceled when a corresponding credit note is pushed.
Payment records
Only payment records associated with accounts receivable invoices are pushed into the accounting system. Payment records for payables (bills) are not pushed.
Before payment record can be pushed, the entity must specify the ledger account to attach them to.
Use the entity setting accounting.
to specify the target ledger account. For more information, see Assign a ledger account to payment records.
Counterparts
Counterparts from your accounting system are matched using their names. Once matched, there is no regular check for data changes in either system. If no match is found, new objects are created in the accounting system.
Monite also creates a new counterpart in the entity’s accounting system whenever a new counterpart is created using our API.
Products
Products are not pushed into the accounting system.
After every synchronization, you can track its status and any errors returned by calling GET /accounting_synched_records/{synced_record_id}
. For more information, see Check synchronization logs.