This page describes outbound API connections (XLReporting calling an external
system).
For inbound API connections (an external system calling
XLReporting), please refer to API integration.
XLReporting provides connectors to external systems and generic web API's. You can use these connectors to retrieve source data and define your own imports. You have full control over source data, field mapping, data conversion, and calculations between your external system and your data sets in XLReporting.
When running an import, the user will be redirected to the external system to login, select the desired company, and give consent to XLReporting to read the data. Access is only granted to each individual user within the user's own browser.
As an example, below is the connection process for our Xero connector:
Endpoints are specific to each external system that you're connecting to. Endpoints typically consist of a base web address, a URL for each type of information that you can access in that system, and optional parameters. We are providing the full API reference for each system, as well as example endpoints: Charts of Accounts and Trial Balance. These are just examples for each source system, you are not in any way limited to these.
A common requirement is to import the List of companies, Chart of Accounts and Trial balance as per a given period, for one or multiple companies. XLReporting provides alias endpoints which will convert into the correct endpoint for each external system:
Endpoints often accept parameters to filter the requested information. You can embed functions into the endpoint description to insert dynamic values, such as selected values (e.g. SELECTED) or session values (e.g. TENANT or USER). Optionally, by starting the endpoint with the = character, you can even create a full expression to calculate values and construct dynamic endpoints.
Each endpoint and source system returns its own data structure, with its own convention of field names. XLReporting translates all data into the relevant (named) columns and rows, without altering or filtering the source data. This provides maximum flexibility in terms of converting and mapping the original source data to data sets in XLReporting. However, you should keep in mind that each endpoint may return different field names.
The special alias endpoint @balances/YYYY-MM/track is an exception to this rule: this endpoint returns data that XLReporting combines from multiple underlying endpoints on the supported source system, and XLReporting returns common field names (which exist in all source systems), supplemented with any additional specific field names. These common field names are:
Most external systems divide their results into "pages", with each page containing a certain
number of rows. XLReporting will automatically request next pages and merge the results of all
pages into 1 single set of data. External systems may also impose a limit on the number of
requests that can be made within a certain time unit (for example, within a minute or on a
day). XLReporting applies a maximum of 50 page requests within each import to stay within the
most common limits. The limits are decided by the supplier and not within our control.
If you import a lot of data, you may get error messages when you exceed the limit. Just wait a
short while and run the import again. Always try to filter your data as much as possible.
Like everything else in XLReporting, connectors to other systems are fully configurable. Whether you want to import financial data or non-financial data, in summary or in detail, XLReporting does not impose any limitations or predefined structure. You can access all data in your external system. That does require some configuration in your import, in terms of selecting the source data and defining the mapping into your data sets in XLReporting.
This page shows a link with endpoint documentation as well as a few example endpoints for each system, but you are not limited to those. Please consult your system for all available API endpoints.
You can add optional flags to all endpoints:
You can specify multiple -SEND and -LIST parameters, but only one -FIND, -READ and -SHOW parameter. All parameters are case-sensitive.
https://api.example.com -FIND:rates
https://api.example.com -SEND:token:12345 -SEND:client:ABC
https://api.example.com -SEND:Authorization:12345 -FIND:rates
https://api.example.com -READ:12345
https://api.example.com -LIST:list.rates.symbol
https://api.example.com -SHOW:1
{
base: "USD",
list: {
rates: [
{symbol: GBP, rate: 1.1}
{symbol: EUR, rate: 1.2}
]
}
}
You can extract the list of rates from this response by:
-FIND:list.rates
If you need any help understanding your data or defining your import, please contact us and we'll be happy to help you.
Are you connecting to multiple companies? When importing data, there are 2 different methods of selecting the desired company in the external system:
If you want to get a list of all companies in your external system that XLReporting is connected to, you can use alias endpoint @companies.
Once you have selected the source data, you can optionally convert or recalculate that data, as part of the column mapping into your data set. You can use a single function or an expression with multiple functions and operators.
If an API returns nested data within the main object, XLReporting will show that in its entirety in one single source column. You can use the JSON function to extract the required information from that source column.
You can access any public endpoint that either doesn't require authentication, or accepts a static authentication token.
As explained above, you can append each endpoint with the optional parameters -SEND, -READ, -FIND, -LIST, and -SHOW. You can also use functions to insert dynamic parameters in endpoints.
https://restcountries.com/v3.1/all
https://api.exchangeratesapi.io/v1/latest/USD -SEND:token:12345 -SEND:client:ABC
https://api.exchangeratesapi.io/v1/latest/USD -SEND:Authorization:12345 -FIND:rates
https://restcountries.com
https://www.exchangeratesapi.io
Website: https://www.afas.nl
You can access GetConnectors and ReportConnectors as
endpoints.
You need to retrieve your client ID, your API token, and the connector name or
ReportGUID within AFAS Online before you can use the import in XLReporting.
Please
contact us for details and support.
data/clientID/apiKey
report/data/clientID/apiKey
(data = GetConnector or ReportGUID, clientID = your client ID, apiKey = your API token)
There are no public endpoints, you need to define your own GetConnectors and ReportConnectors within AFAS Online.
Website: https://www.airtable.com
You can access any of your bases as endpoints.
You need to specify the base ID, the name of
the base, and your API key. These are all provided within Airtable.
We always recommend you create a read-only API key for this purpose.
Bases in Airtable are essentially tables with rows and columns, but individual fields can also
contain multiple rows and values. XLReporting will retrieve the main level of rows and fields,
and you can use the -LIST parameter (see endpoints) to retrieve
specific data from fields with multiple rows, and place them into separate columns.
Example: products.0.name will retrieve the name of the 1st row within the product field.
baseID/name/apiKey
(baseID = the base ID, name = the name of the base, apiKey = your API key)
If you use filters, you must include these in the endpoint as URL parameters before
/apiKey. More information can be found here:
https://support.airtable.com
https://support.airtable.com
https://airtable.com/api
https://airtable.com/account
Website: https://www.bigredcloud.com
You need to retrieve your client ID and your API key within the Big Red Cloud application before you can use the import in XLReporting.
accounts/apiKey
sales/apiKey
products/apiKey
customers/apiKey
(apiKey = your API key)
If you use filters, you must include these in the endpoint as URL parameters before /apiKey.
https://www.bigredcloud.com/support/api
https://www.odata.org
Website: https://dataddo.com
We partner with Dataddo, enabling you to create automated data feeds from your source system into XLReporting. You will find XLReporting as a predefined destination within Dataddo.
We can help you to configure your Dataddo account and the integration to XLReporting. Please contact us for details.
Website: https://dearsystems.com
You need to retrieve your client ID and your API key within the Dear application before you can use the import in XLReporting.
ref/account/clientID/apiKey
saleList/clientID/apiKey
product/clientID/apiKey
customer/clientID/apiKey
(clientID = your client ID, apiID = your API key)
If you use filters, you must include these in the endpoint as URL parameters before /clientID/apiKey.
https://dearinventory.docs.apiary.io
Website: https://onderwijsdata.duo.nl/datasets
This is a public API that exposes public datasets from the public education sector in the Netherlands.
You may have to use the -FIND and -LIST parameters (see endpoints) to retrieve specific data from a given dataset.
resourceID/filter
(resourceID = the ID of the requested data, filter = optional filter)
The DUO API will not return more than 50.000 rows per request, so you may need to filter the data. If you define a filter value, this will be applied to all columns in the results. See below screenshot, in which the data is filtered on 00AR.
Website: https://dynamics.microsoft.com
Requires client-specific
settings in Azure Portal and
Dynamics 365.
Please contact us for details.
https://docs.microsoft.com/en-us/dynamics365
Website: https://www.exact.com
@companies
@accounts
@balances/YYYY-MM
financial/GLAccounts
financial/ReportingBalance?$filter=ReportingYear eq YYYY and ReportingPeriod eq MM
Exact Online optionally allows the use of cost center and cost unit tracking to record activity within each account, but this information is not included in the standard Trial Balance in Exact Online. Furthermore, Exact Online uses an internal account type (reporting codes) that designates the account category in Balance Sheet and Profit & Loss reports. XLReporting provides a special alias endpoint @balances/YYYY-MM/track to retrieve balances per each combination of account, cost center, and cost unit, including the reporting code. This is ideal for multi-dimensional reporting and analysis. Using reporting codes (instead of GL account codes) is also an alternative method of importing and mapping data into XLReporting.
The "ReportingBalance" endpoint in Exact Online does not include the opening balances. Opening balances need to be retrieved from a separate endpoint "OpeningBalance". To simplify working with Exact Online, XLReporting will automatically include the opening balances if you request period 01 (e.g. 2022-01) with the special alias endpoint @balances/YYYY-MM/track.
@balances/YYYY-MM/track
Please note that Exact Online enforces very strict and low API rate limits, so please make sure you moderate the number of imports you run per minute and per day.
https://start.exactonline.nl
https://www.odata.org
Website: https://exchangeratesapi.io
Current and historical currency exchange rates.
latest?access_key=apiKey
latest?access_key=apiKey&symbols=USD,GBP
latest?access_key=apiKey&base=USD&symbols=EUR,GBP
2019-02-15?access_key=apiKey
2019-02-15?access_key=apiKey&symbols=USD,GBP
(apiKey = your API key)
Website: https://www.freshbooks.com
@companies
@accounts
@balances/YYYY-MM
@balances/YYYY-MM-DD:YYYY-MM-DD (from-to dates)
journal_entry_accounts/journal_entry_accounts
reports/accounting/trial_balance?start_date=YYYY-MM-DD&end_date=YYYY-MM-DD
https://www.freshbooks.com/api/start
https://documenter.getpostman.com
Website: https://www.lightspeedhq.com
You need to retrieve your API key, API secret, and cluster within the Lightspeed application before you can use the import in XLReporting.
You can access any endpoint. We always recommend you create a read-only API key for this purpose.
customers/apiKey/apiSecret/cluster
invoices/apiKey/apiSecret/cluster
(apiKey = your API key, apiSecret = your API secret, cluster = your cluster)
If you use filters, you must include these in the endpoint as URL parameters before /apiKey.
https://developers.lightspeedhq.com/ecom
Website: https://www.loket.nl
This connector may include personal details, and will only be activated for your tenant subject to review and a signed data processing agreement. Please contact us for details.
employers/employerID/employees
employers/employerID/payrolladministrations/journalruns
(employerID = your employer ID)
Website: https://www.moneybird.com
@companies
@accounts
@balances/YYYY-MM
ledger_accounts
financial_accounts
https://developer.moneybird.com
Website: https://www.myob.com
@companies/region
@accounts/region
@balances/YYYY-MM/region
@balances/YYYY-MM-DD:YYYY-MM-DD (from-to dates)
generalledger/accounts/region
generalledger/accounts/balances?fromDate=YYYY-MM-DD&toDate=YYYY-MM-DD/region
(region = your Myob region: "au" or "nz")
Myob uses 2 regional servers for its clients: au (Australia) and nz (New Zealand).
If you use filters, you must include these in the endpoint as URL parameters before /region.
https://developer.myob.com/api/essentials-accounting/endpoints/
This connector is only available in client tenants of XLReporting partners. It enables you to import data from the partner tenant. The endpoint is the data set ID in the partner tenant. This data set must be active, and must have permission "Access API". When using this connector in a client tenant, it is "trusted" by the associated partner tenant so an API token is not required.
t1
t2
Website: https://quickbooks.intuit.com
You can access reports and queries as endpoints.
@companies
@accounts
@balances/YYYY-MM
@balances/YYYY-MM/track
@balances/YYYY-MM-DD:YYYY-MM-DD (from-to dates)
@balances/YYYY-MM-DD:YYYY-MM-DD/track (from-to dates)
reports/AccountList
reports/TrialBalance?start_date=YYYY-MM-DD&end_date=YYYY-MM-DD
reports/GeneralLedger?start_date=YYYY-MM-DD&end_date=YYYY-MM-DD
Quickbooks optionally allows the use of class and location tracking to record activity within each ledger account, but this information is not included in the standard Trial Balance in Quickbooks. Furthermore, Quickbooks uses an internal account type (reporting codes) that designates the account category in Balance Sheet and Profit & Loss reports. XLReporting provides a special alias endpoint @balances/YYYY-MM/track to retrieve period-end balances per each combination of ledger account, class, location, customer, and vendor, including the reporting code. This is ideal for multi-dimensional reporting and analysis. Using reporting codes (instead of GL account codes) is also an alternative method of importing and mapping data into XLReporting.
@balances/YYYY-MM/track
track = "track" for balances
per account/class/location/customer/vendor, or "track1" for balances per account/class/location,
or "track2" for balances per account/customer/vendor.
Please note that the Trial Balance report in Quickbooks always shows year-to-date balances, even if you select a start date and end date. The alias @balances/YYYY-MM retrieves the Trial Balance report. If you want to retrieve amounts for the selected period only, you should use the alias @balances/YYYY-MM/track which retrieves data from the Profit & Loss and Balance sheet reports within Quickbooks.
https://developer.intuit.com/app/developer/qbo/docs/reports
select * from Account
select * from Customer
https://developer.intuit.com/app/developer/qbo/docs/entities
https://developer.intuit.com/app/developer/qbo/docs/queries
Website: https://www.reeleezee.nl
You need to use your Reeleezee user name and password to define the import in XLReporting.
@accounts/user/password
@balances/YYYY-MM/user/password
Financials/LedgerBalances/user/password
(user = your Reeleezee user name, password = your Reeleezee password)
If you use filters, you must include these in the endpoint as URL parameters before /user/password.
https://apps.reeleezee.nl/api/v1/Help
Website: https://www.sage.com
@companies
@accounts
@balances/YYYY-MM
@balances/YYYY-MM-DD:YYYY-MM-DD (from-to dates)
ledger_accounts
ledger_entries?from_date=YYYY-MM-DD&to_date=YYYY-MM-DD
https://developer.sage.com/api
Website: https://www.sap.com/products/business-one.html
We don't support a direct integration with SAP Business One, but we do via Excel. SAP provides
multiple options to export reports and data lists into Excel files. These Excel files can be
imported into XLReporting.
In SAP, you can click on the List menu, and
then select the Export option and the Spreadsheet option.
https://sap.walkme.com/export-data-sap-excel
Website: https://www.snelstart.nl
@companies/sleutel
@accounts/sleutel
@balances/YYYY-MM/sleutel
grootboeken/sleutel
rapportages/periodebalans/sleutel
(sleutel = your SnelStart koppelingsleutel)
If you use filters, you must include these in the endpoint as URL parameters before /sleutel.
We provide custom integration between XLReporting and SQL databases.
For security reasons, XLReporting will never directly call your database. We follow the opposite approach: your database calls the XLReporting API and sends the desired information. This is more secure, and it also works if your database server is located within your private office network. We call this an inbound connection, and it is documented in our API integration.
We can provide you with connection scripts and support for most popular database systems. Please contact us for details.
Website: https://www.wolterskluwer.com
You can access finder, browse, and list as endpoints.
The endpoint finder/type/option (type = the finder type) retrieves master data from Twinfield. Option is optional. If you specify option, it must be in the format option=value (or multiple values separated by a comma, without spaces). See Twinfield finder codes.
The endpoint list/code (code = the browse code) retrieves all available field names of a given browse code.
The endpoint browse/code/filters/fields (code = the browse code) retrieves transaction data from Twinfield. Filters and fields are optional parameters. If you specify filters or field names, you need to list them separated by a comma, without spaces. Filters can either be a single value for equal comparison, or 2 values for between comparison, separated by a comma (e.g. from,to). See Twinfield browse codes.
The alias @balances for the Twinfield connector does not import account balances but account transactions (browse code 030_3). You can either import one single period (@balances/YYYY-MM), or from one period up to another period (@balances/YYYY-MM:YYYY-MM). This additional syntax differs from all other connectors.
@companies
@accounts
@balances/YYYY-MM
@balances/YYYY-MM:YYYY-MM (from-to period)
finder/DIM
finder/DIM/dimtype=BAS,PNL
list/000
browse/000/fin.trs.head.yearperiod=YYYY-MM
browse/000/fin.trs.head.yearperiod=YYYY-MM:YYYY-MM
browse/000/fin.trs.head.yearperiod=YYYY-MM/fin.trs.head.number,fin.trs.head.curcode,fin.trs.line.repvaluesigned
https://accounting.twinfield.com/webservices/documentation
Website: https://www.unit4.com
@companies
@accounts
@balances/YYYY-MM
AccountInfoList
AccountPeriodTotalInfoList/ByPeriod/fiscalYear/startPeriod/endPeriod
https://api.online.unit4.nl/V18/Help
Website: https://nl.visma.com
@accounts
@balances/YYYY-MM
accounts
accountbalances/date
https://eaccountingapi-sandbox.test.vismaonline.com
Website: https://www.visma.com
This connector may include personal details, and will only be activated for your tenant subject to review and a signed data processing agreement. Please contact us for details.
You need to retrieve your tenant ID and give access to XLReporting within your Visma application before you can use the import in XLReporting.
contracts/YYYY-MM/tenantID
roster/YYYY-MM/tenantID
wages/YYYY-MM/tenantID
leaves/YYYY-MM/tenantID
sickness/YYYY-MM/tenantID
budgets/YYYY-MM/tenantID
functions/YYYY-MM/tenantID
paycodes/YYYY-MM/tenantID
accounting/YYYY-MM/tenantID
(tenantID = your VismaHR tenant ID)
https://api.analytics1.hrm.visma.net/docs/openapi.html
Website: https://www.nmbrs.com
This connector may include personal details, and will only be activated for your tenant subject to review and a signed data processing agreement. Please contact us for details.
You need to retrieve your domain, user, token, and company ID to XLReporting within your Nmbrs application before you can use the import in XLReporting.
journals/YYYY-MM/domain/user/token/companyID
(domain, user, token, and companyID = your specific Nmbrs details)
Website: https://www.waveapps.com
@accounts
@balances/YYYY-MM
accounts
invoices
https://developer.waveapps.com
Website: https://www.xero.com
@companies
@accounts
@balances/YYYY-MM
@balances/YYYY-MM/track
@balances/YYYY-MM-DD:YYYY-MM-DD (from-to dates)
@balances/YYYY-MM-DD:YYYY-MM-DD/track (from-to dates)
Accounts
Reports/TrialBalance?date=YYYY-MM-DD
Xero optionally allows the use of (up to 2) tracking categories to record activity within each account, but this information is not included in the standard Trial Balance in Xero. Furthermore, Xero uses an internal account type (reporting codes) that designates the account category in Balance Sheet and Profit & Loss reports. XLReporting provides a special alias endpoint @balances/YYYY-MM/track to retrieve balances per each combination of account and tracking categories, including the reporting code. This is ideal for multi-dimensional reporting and analysis. Using reporting codes (instead of GL account codes) is also an alternative method of importing and mapping data into XLReporting.
@balances/YYYY-MM/track
track = "track" for both
tracking categories, or "track1" for the 1st tracking category, or "track2" for the 2nd tracking
category.
https://developer.xero.com/documentation
Website: https://zapier.com
We provide integration between XLReporting and Zapier, enabling you to create workflow tasks. For example, to automatically send data into XLReporting upon a defined event in your other systems.
We can help you to define a connection between XLReporting and your Zapier account. Please contact us for details.
Website: https://www.zoho.com/books/
@companies
@accounts
@balances/YYYY-MM
@balances/YYYY-MM-DD:YYYY-MM-DD (from-to dates)
chartofaccounts
journals?date_start=YYYY-MM-DD&date_end=YYYY-MM-DD
https://www.zoho.com/books/api
Not all systems have an API or the ability to export to Excel, CSV, XML, or JSON files. XLReporting can also import data from PDF reports with a small intermediate step.
Using tools such as Free PDF Convert, you can convert your PDF file to an Excel file, and then import that Excel file into XLReporting.
We can provide you with support where needed. Please contact us for details.
Is your system not mentioned on this page? Let us know. If your system has a REST API and is accesible on the internet, we may add a standard connector in XLReporting. Otherwise, we can create a custom integration for you. It does not matter whether your system is hosted in the cloud or behind a firewall in your private office network, we can set up an integration, using 2 different methods: