Manage accounting integrations
Check for an active accounting connection
Before configuring a new accounting connection for an entity, make sure this entity has no other existing accounting connections that are active at the moment. For this purpose, call GET /accounting_connections
with the X-Monite-Entity-Id
header containing the entity ID:
If there are no other active connections set up for this entity, you will receive a 200 OK
response with an empty data
array:
Trigger accounting synchronization
By default, Monite automatically synchronizes the entity’s data in our database with the data in the entity’s accounting system every hour. However, entities can also trigger an instant synchronization when needed. To do this, call POST /accounting_connections/{connection_id}/sync
:
The 202 Accepted
response is returned if the request is successful.
Disconnect an accounting system
To disconnect an already established accounting connection, call POST /accounting_connections/{id}/disconnect
:
The successful 200 OK
response contains "status": "disconnected"
:
Check synchronization logs
You can obtain an overview of all the synchronization events between Monite and the accounting system in a list. When the synchronization is successful, the status and IDs of records from both systems will be returned. If not, an error status with details will be returned instead.
To get a list with all the sync records, call GET /accounting_synced_records
. Filtering the results by the object_type
is mandatory. For example, GET /accounting_synced_records?object_type=bill
will get all the sync records for bills (payables).
You can refine the request to get information about a specific object by adding the object_id
query parameter to the request, for example:
For the full list of available sort and filter parameters, see the GET /accounting_synced_records
endpoint.
This successful response returns a synchronization object that includes the sync_status
and errors
fields, representing the synchronization status and information about any errors, respectively.
You can get the details about a specific record by sending a GET
request to the /accounting_synced_records/{synced_record_id}
endpoint.
List documents in the accounting system
You can list all invoices and payables (bills) that exist in the entity’s connected accounting system without the need to pull those documents into Monite, so you can implement custom document comparison and synchronization logic:
GET /accounting/receivables
- to list all invoicesGET /accounting/receivables/{invoice_id}
- to retrieve a specific invoiceGET /accounting/payables
- to list all payables (bills)GET /accounting/payables/{payable_id}
- to retrieve a specific payable (bill)
Accounting tax rates
Retrieve accounting tax rates
When pushing an invoice to an accounting system, Monite tries to map the applicable tax rates used in the invoice to the tax rates available in the entity’s accounting system. Entities can retrieve the available tax rates from the accounting system to ensure that they match either the tax_rate_value
or vat_rate_id
fields in the invoice line items. To do this, call GET /accounting_tax_rates
:
The response returns the list of tax rates available in the entity’s accounting system. Any VAT rates that are used in the invoice line items and are missing from the entity’s accounting system must be created manually by the entity in their accounting system.
Internal accounting tax rates
In addition to tax rates retrieved from your connected accounting system, Monite allows you to create and manage custom tax rates internally. Custom tax rates created in Monite have the is_external
field set as false
.
Create an internal tax rate
If your entity needs a tax rate that does not exist in the connected accounting system, you can create a custom tax rate calling POST /accounting_tax_rates
:
The successful 201
response returns the newly created tax rate:
Custom tax rates created in Monite (is_external = false
) can be used in invoices but may need to be manually created in your accounting system if they do not already exist there.
Retrieve internal tax rates
To get all available internal tax rates for an entity, call GET /accounting_tax_rates?is_external=false
. To get details about a specific tax rate, call GET /accounting_tax_rates/{tax_rate_id}
.
Edit an internal tax rate
You can update the details of an existing tax rate using PATCH /accounting_tax_rates/{tax_rate_id}
:
Updating tax rates may affect existing invoices and documents that reference these rates. Consider the impact on historical data before making changes.
Delete an internal tax rate
To delete a tax rate, call DELETE /accounting_tax_rates/{tax_rate_id}
.
Before deleting a tax rate, ensure it is not being used by any existing invoices or documents. Deleting a tax rate that is in use may cause synchronization issues with your accounting system.
Retry pushing data
You can manually retry a failed sync to the accounting system in cases where errors occur during the attempt by calling POST /accounting_synced_records/{synced_record_id}/push
. The synced_record_id
of the failed sync can be obtained in the synchronization log:
The successful response returns the information of the retried sync: