Import connectors

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.

Login and credentials

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 within the user's own browser, and remains active until the user closes the connection, switches to another tenant, or logs out of XLReporting. After any of those events, the connection is closed and the user will be asked to login again when running an import.

Below is the example process for our connector to Xero:

screenshot connect flow oauth2 api

  • For security and user privacy reasons, XLReporting does not store any user credentials or access tokens to other systems.
  • Not all connectors use the above authorization flow. Some external systems require the use of a static API key, instead of a user login. That design is dependent on the external system, not on XLReporting.
  • Not all connectors are available in all XLReporting regions. Any limitations are mentioned below.

Endpoints

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 system, you are not limited to those.

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 5 alias endpoints which will convert into the correct endpoint for each external system:

  • @current
  • @companies
  • @accounts
  • @balances (current period)
  • @balances/period (period = YYYY-MM)

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.

Most external systems divide their results into "pages", and impose a limit on the number of requests per time unit ("throttling"). XLReporting will automatically request next pages and merge the results of all pages. XLReporting applies a maximum of 50 pages within an import to stay within the most common limits. Contact us for support if you need to exceed that maximum.

Please note that endpoints are case-sensitive.

Source data

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 pre-defined 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:

  • -SEND: Send the given HTTP header (e.g. custom authentication tokens).
  • -READ: If you are logged in to multiple companies in the external system, you need to tell XLReporting which company it should read data from. You can specify the company ID (as provided by the external system) by setting this flag. The value can be static or dynamic (e.g. using functions such as SELECTED).
  • -FIND: Find the specified JSON node in the data. By default, XLReporting will automatically guess the relevant node in the data. You can specify nested nodes by a period, e.g. mydata.product.description. You can also specify array positions, e.g. mydata.products.[0].id
  • -LIST: Expand the data with the properties of the given child node. You can specify nested nodes by a period. You can also specify specific array rows using the literal row number without brackets (e.g. Parent.Child.0). You can include multiple nodes, separated by a comma. An extra column is created for each property.
  • -SHOW: Show the unparsed data returned by the API in your browser console. This is useful for understanding the source data when you are defining imports. You can type xlapp.show.Processes in your browser console to see the raw JSON data (please note you need Access console permission).

You can specify multiple -SEND and -LIST parameters, but only one -FIND, -READ and -SHOW parameter. All parameters are case-sensitive.

Example endpoints:

https://api.exchangerate-api.com/v4/latest -FIND:rates
https://api.exchangerate-api.com/v4/latest -SEND:token:12345 -SEND:client:ABC
https://api.exchangerate-api.com/v4/latest -SEND:Authorization:12345 -FIND:rates
https://api.exchangerate-api.com/v4/latest -READ:12345
https://api.exchangerate-api.com/v4/latest -LIST:list.rates.symbol
https://api.exchangerate-api.com/v4/latest -SHOW:1

Example response:

{
   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.

Select company

Are you managing multiple companies? When importing data, there are 2 different methods of selecting the desired company in the external system:

  • If you are logged in to only 1 company in the external system, the import will access that company. To change company, you can disconnect and reconnect which will ask you to log in again, and choose a different company.
  • If you are logged in to multiple companies in the external system, you need to tell XLReporting which company ID it should read data from. You can specify the company ID (as provided by the external system) by setting the -READ flag (see above). The value can be static or dynamic (e.g. via functions such as SELECTED).

If you want to get the list of companies that XLReporting has access to in your external system, you can use an alias endpoint @companies. If you want to retrieve the ID and name of the currently connected company, you can use @current. If you want to view information about the current connection with your external system, you can use a alias endpoint @info which will show information in the browser console similar to using the -SHOW flag (see above).

Convert data

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.


AFAS logo afas

Website: https://www.afas.nl
Only available in the XLReporting EU region.

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 define the import in XLReporting.
Please contact us for details and support.

Common endpoints:

data/clientID/apiKey
report/data/clientID/apiKey

(data = GetConnector or ReportGUID, clientID = your client ID, apiKey = your API token)

Endpoint documentation:
There are no public endpoints, you need to define your own GetConnectors and ReportConnectors within AFAS Online.


Big Red Cloud logo big red cloud

Website: https://www.bigredcloud.com
Available in all XLReporting regions.

You need to retrieve your client ID and your API key within the Big Red Cloud application before you can define the import in XLReporting.

Common endpoints:

@accounts

accounts/apiKey
sales/apiKey
products/apiKey
customers/apiKey

(apiID = your API key)

Common filters:

If you use filters, you must include these in the endpoint as URL parameters before /apiKey.

?$filter=field eq value - apply the given filter.

Example: accounts?$filter=group eq ACTIVE/apiKey

Endpoint documentation:
https://www.bigredcloud.com/support/api
https://www.odata.org


Dear Systems logo dear

Website: https://dearsystems.com
Available in all XLReporting regions.

You need to retrieve your client ID and your API key within the Dear application before you can define the import in XLReporting.

Common endpoints:

@accounts

ref/account/clientID/apiKey
saleList/clientID/apiKey
product/clientID/apiKey
customer/clientID/apiKey

(clientID = your client ID, apiID = your API key)

Common filters:

If you use filters, you must include these in the endpoint as URL parameters before /clientID/apiKey.

?Code=xxx - select the given code.

Example: ref/account?Code=1000/clientID/apiKey

Endpoint documentation:
https://dearinventory.docs.apiary.io


Dynamics 365 logo dynamics365

Website: https://dynamics.microsoft.com
Available in all XLReporting regions.

Requires client-specific settings in Azure Portal and Dynamics 365.

Please contact us for details.

Endpoint documentation:
https://docs.microsoft.com/en-us/dynamics365


Exact Online logo exact

Website: https://www.exact.com
Only available in the XLReporting EU region.

Common endpoints:

@accounts
@balances/period

financial/GLAccounts
financial/ReportingBalance?$filter=ReportingYear eq YYYY and ReportingPeriod eq MM

Common filters:

?$filter=ReportingYear eq YYYY and ReportingPeriod eq MM - select a reporting period.

Example: financial/ReportingBalance?$filter=ReportingYear eq 2019 and ReportingPeriod eq 11
?$filter=BalanceType eq XX - select the balance sheet type: B (=balance sheet) or W (=profit & loss).

Example: financial/ReportingBalance?$filter=BalanceType eq 11

Endpoint documentation:
https://start.exactonline.nl
https://www.odata.org


ECB FX rates logo rates

Website: https://exchangeratesapi.io
Available in all XLReporting regions.

Current and historical currency exchange rates published by the European Central Bank.

Common endpoints:

latest
latest?symbols=USD,GBP
latest?base=USD&symbols=EUR,GBP
2019-02-15
2019-02-15?symbols=USD,GBP

Common filters:

You can get the latest exchange reference rates by using "latest" or the rates for a specific date, for example: 2019-02-15

Rates are quoted against the Euro by default. You can quote the results against a different currency by setting the base parameter, for example: base=USD

You can request specific exchange rates by setting the symbols parameter, for example symbols=USD,GBP

Endpoint documentation:
https://exchangeratesapi.io


Freshbooks logo freshbooks

Website: https://www.freshbooks.com
Available in all XLReporting regions.

Common endpoints:

@accounts
@balances/period

journal_entry_accounts/journal_entry_accounts
reports/accounting/trial_balance?start_date=YYYY-MM-DD&end_date=YYYY-MM-DD

Common filters:

?start_date=YYYY-MM-DD&end_date=YYYY-MM-DD - select a start and end date.

Example: reports/accounting/trial_balance?start_date=2019-05-01&end_date=2019-05-30

Endpoint documentation:
https://www.freshbooks.com/api/start
https://documenter.getpostman.com


KVK logo kvk

Website: https://www.kvk.nl
Only available in the XLReporting EU region upon request.

We provide integration between XLReporting and the Dutch Chamber of Commerce (Kamer van Koophandel), enabling you to retrieve business registration and address data.

Please contact us for details.


Loket logo loket

Website: https://www.loket.nl
Only available in the XLReporting EU region.

Common endpoints:

employers/employerId/employees
employers/payrolladministrations/journalruns

(employerId = your employer ID)

Endpoint documentation:
https://developer.loket.nl


Moneybird logo moneybird

Website: https://www.moneybird.com
Only available in the XLReporting EU region.

Common endpoints:

@accounts
@balances/period

ledger_accounts
financial_accounts

Endpoint documentation:
https://developer.moneybird.com


MYOB Essentials logo myob

Website: https://www.myob.com
Only available in the XLReporting AP region.

Common endpoints:

@accounts/region
@balances/period/region

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).

Common filters:

If you use filters, you must include these in the endpoint as URL parameters before /region.

?fromDate=YYYY-MM-DD&toDate=YYYY-MM-DD - select a start and end date.

Example: generalledger/accounts/balances?fromDate=2019-05-01&toDate=2019-05-30/nz

Endpoint documentation:
https://developer.myob.com/api/essentials-accounting/endpoints/


Quickbooks logo quickbooks

Website: https://quickbooks.intuit.com
Available in all XLReporting regions.

You can access reports and queries as endpoints.

Common endpoints for reports:

@accounts
@balances/period
@balances/period/track

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

Tracking classes

Quickbooks optionally allows the use of class and location tracking to record activity within each account, but this information is not included in the standard Trial Balance in Quickbooks. XLReporting provides an alias endpoint to retrieve balances per each combination of account, class, location, customer, and vendor. This is ideal for multi-dimensional reporting and analysis.

@balances/period/track

period = YYYY-MM
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.

Period vs Year-to-date amounts

Please note that the Trial Balance in Quickbooks always shows year-to-date balances, even if you select a start date and end date. The alias @balances/period actually uses the Trial Balance. If you want to retrieve amounts for the period, you should use the alias @balances/period/track.

Common filters for reports:

?start_date=YYYY-MM-DD&end_date=YYYY-MM-DD - select a start and end date.

Example: reports/TrialBalance?start_date=2019-05-01&end_date=2019-05-30
?accounting_method=XXX - select the accounting method ("Cash" or "Accrual") for the report.

Example: reports/TrialBalance?accounting_method=Cash

Endpoint documentation:
https://developer.intuit.com/app/developer/qbo/docs/reports

Common endpoints for queries:

select * from Account
select * from Customer

Common filters for queries:

You can add filters on all available fields to retrieve specific data using the WHERE syntax.

Example:
select * from Customer where Active = true

Endpoint documentation:
https://developer.intuit.com/app/developer/qbo/docs/entities
https://developer.intuit.com/app/developer/qbo/docs/queries


Reeleezee logo reeleezee

Website: https://www.reeleezee.nl
Available in all XLReporting regions.

You need to use your Reeleezee user name and password to define the import in XLReporting.

Common endpoints:

@accounts/user/password
@balances/period/user/password

Financials/LedgerBalances/user/password

(user = your Reeleezee user name, password = your Reeleezee password)

Common filters:

If you use filters, you must include these in the endpoint as URL parameters before /user/password.

?startPeriod=xxx&endPeriod=yyy - select the start period and end period.

Example: Financials/LedgerBalances?startPeriod=2019-01&endPeriod=2019-12/myuser/mypassword

Endpoint documentation:
https://apps.reeleezee.nl/api/v1/Help


Sage One logo sage

Website: https://uk.sageone.com
Available in all XLReporting regions.

Common endpoints:

@accounts
@balances/period

ledger_accounts
ledger_entries?from_date=YYYY-MM-DD&to_date=YYYY-MM-DD

Common filters:

?from_date=YYYY-MM-DD&to_date=YYYY-MM-DD - select a start and end date.

Example: ledger_accounts?from_date=2019-05-01&to_date=2019-05-30

Endpoint documentation:
https://developer.sage.com/api


SAP Business One logo sap

Website: https://www.sap.com/products/business-one.html
Available in all XLReporting regions.

Common endpoints:

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.

Endpoint documentation:
https://sap.walkme.com/export-data-sap-excel


SnelStart logo snelstart

Website: https://www.snelstart.nl
Only available in the XLReporting EU region.

Common endpoints:

@accounts/sleutel
@balances/period/sleutel

grootboeken/sleutel
rapportages/periodebalans/sleutel
(sleutel = your SnelStart koppelingsleutel)

Common filters:

If you use filters, you must include these in the endpoint as URL parameters before /sleutel.

start=YYYY-MM-DD&end=YYYY-MM-DD - select a start and end date.

Example: rapportages/periodebalans?start=2019-05-01&end=2019-05-30/sleutel

Endpoint documentation:
https://www.snelstart.nl/api


Unit 4 logo unit4

Website: https://www.unit4.com
Only available in the XLReporting EU region upon request.

Common endpoints:

@accounts
@balances/period

AccountInfoList
AccountPeriodTotalInfoList/ByPeriod/fiscalYear/startPeriod/endPeriod

Common filters:

fiscalYear = YYYY, startPeriod and endPeriod = MM.

Endpoint documentation:
https://api.online.unit4.nl/V18/Help


Visma eAccounting logo visma

Website: https://www.visma.com
Only available in the XLReporting EU region.

Common endpoints:

@accounts
@balances/period

accounts
accountbalances/date

Common filters:

date = YYYY-MM-DD.

Example: accountbalances/2019-06-30

Endpoint documentation:
https://eaccountingapi-sandbox.test.vismaonline.com


Wave logo wave

Website: https://www.waveapps.com
Available in all XLReporting regions.

Common endpoints:

@accounts
@balances/period

accounts
invoices

Endpoint documentation:
https://developer.waveapps.com


Xero logo xero

Website: https://www.xero.com
Available in all XLReporting regions.

Common endpoints:

@accounts
@balances/period
@balances/period/track

Accounts
Reports/TrialBalance?date=YYYY-MM-DD

Tracking categories

Xero optionally allows the use of (max 2) tracking categories to record activity within each account, but this information is not included in the standard Trial Balance in Xero. XLReporting provides an alias endpoint to retrieve balances per each combination of account and tracking categories. This is ideal for multi-dimensional reporting and analysis.

@balances/period/track

period = YYYY-MM
track = "track" for both tracking categories, or "track1" for the 1st tracking category, or "track2" for the 2nd tracking category.

Common filters:

?fromDate=YYYY-MM-DD&toDate=YYYY-MM-DD - select a start and end date.
?date=YYYY-MM-DD - select an as-per date

Example: Reports/TrialBalance?date=2019-05-01
Reports/ProfitAndLoss?fromDate=2019-05-01&toDate=2019-05-30

Endpoint documentation:
https://developer.xero.com/documentation


Zoho Books logo zoho

Website: https://www.zoho.com/books/
Only available in the XLReporting EU region.

Common endpoints:

@accounts
@balances/period

chartofaccounts
journals?date_start=YYYY-MM-DD&date_end=YYYY-MM-DD

Common filters:

?date_start=YYYY-MM-DD&date_end=YYYY-MM-DD - select a start and end date.

Example: journals?date_start=2019-05-01&date_end=2019-05-30

Endpoint documentation:
https://www.zoho.com/books/api


Generic API logo api

You can access any public endpoint that either doesn't require authentication, or accepts a static authentication token. This is available in all XLReporting regions.

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.

Example endpoints:

https://restcountries.eu/rest/v2/all
https://api.exchangerate-api.com/v4/latest/USD -SEND:token:12345 -SEND:client:ABC https://api.exchangerate-api.com/v4/latest/USD -SEND:Authorization:12345 -FIND:rates

Example endpoint documentation:
https://restcountries.eu
https://www.exchangerate-api.com


Zapier logo zapier

Website: https://zapier.com
Available in all XLReporting regions.

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.


SQL databases logo sql

We provide integration between XLReporting and SQL databases. This is available in all XLReporting regions.

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.


PDF reports logo pdf

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. This is available in all XLReporting regions.

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.


Custom integration logo database integration

Is your system not mentioned on this page? Let us know. If your system has a REST API, we can add it as 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 within your office network, we can set up an integration.

Recommended reading:
Back to top | Define imports