Connecting to Xero Accounting

The SisenseXero connector is a certified connector that allows you to import data from the Xero API into Sisense via the Sisense generic JDBC connector. The Xero connector offers the most natural way to connect to Xero data to search (Customers, Transactions, Invoices, Sales Receipts, etc.), update items, edit customers, and more, and provides additional powerful features.

The Sisense Xero is a certified connector. The support for the connector is provided by Sisense and will be assisted by the certification partner's support, if needed. For any support issues or additional functionality requests, please contact your Sisense representative or open a request through our Help Center. For advanced inquiries specific to driver functionality, you can also contact our certification partner’s support directly via [email protected].

After you have downloaded and installed the connector, you can connect through a connection string you provide Sisense in Sisense. The connection string is used to authenticate users who connect to the Xero APIs. Once you have connected to Xero, you can import a variety of tables from the Xero API.

This page describes how to download the Xero driver and deploy it, how to connect to Xero with a connection string, provides information about the Xero data model, and more.

Downloading the Xero JDBC Driver

You can download the Xero JDBC driver here.

Note:

Deploying the Xero JDBC Driver

Pre-requisit: The install file (setup.jar) is a Java Application that requires Java 6 (J2SE) or above to run.

To install the driver, double-click the setup.jar file and proceed with the instructions in the installation wizard.

Depending on the machine on which you are accessing the Sisense application, install the driver in one of the following locations:

Note: The default location of the JAR file: C:\Program Files\CData\CData JDBC Driver for <Driver Name> 2019\lib

JAVA Troubleshooting

If you do not have Java 6 installed, you may download it from here.

If your system is not set up to run Java applications, execute the following command: java -jar setup.jar.

Connecting to Xero

To access Xero’s REST API from Sisense, you must provide valid Oauth Xero credentials through a connection string. After you receive your credentials from Xero, you can create the connection string and provide Sisense with it to connect to your data.

To create the connection string:

  1. Open the lib directory for the connector. This is the default path: C:\Program Files\CData\CData JDBC Driver for <Driver Name> 2019\lib.
  2. Double-click the jar file in the lib directory.

    Alternatively, to open the jar file from the command line, enter the following command in the command prompt (change the driver name to your driver): cd C:\Program Files\CData\CData JDBC Driver for <Driver Name> 2019\lib. Press Enter and then enter the following command (change the driver name to your driver): “C:\Program Files\Sisense\infra\jre\bin\java.exe" -jar cdata.jdbc.<Driver Name>.jar. Press Enter again.
    For example:

    The Connection String Builder opens.
  3. Click in the Value column of the Initiate OAuth property and select GETANDREFRESH.
  4. Click Test Connection.
  5. A browser window opens where you need to log in to your application in order to grant access. (Each application will display a different window and messages.)
    Close the Authorization Successful! message that opens.
  6. Go back to the Connection String Builder dialog and click OK in the Test Connection Successful message to close it.
  7. Click Copy to Clipboard to obtain the connection string.

The driver uses embedded credentials which originate from a OAuth App embedded into the driver. The embedded credentials provide full functionality, so you do not have to create an OAuth App.

Note: If you want to configure the authentication or limit the scope of the data provided to Sisense, you will need to create your own OAuth App. For details, see here.

You need to follow the above instructions only once, to retrieve the Access and Refresh tokens. Once the tokens have been retrieved, the driver will be refreshing them in the background when they expire, with no further involvement from you.

To help you create a connection string and test the connection, see Connection String Builder for Certified Connectors.

If you have any issues connecting to your data source, see Troubleshooting JDBC Data Connectors.

Adding Xero Tables to your ElastiCube

  1. Open Sisense.
    For a non-local installation, open Sisense on the hosted cloud environment.
  2. In the Data page, open an ElastiCubeor create a new ElastiCube.
  3. In the Model Editor, click . The Add Data dialog box is displayed.
  4. Click Generic JDBC to open the JDBC settings.

  5. In Connection String, paste the string you obtained above. When you do so, the string is appended with some _persist properties. The following is an example of the connection string as it looks in Sisense:
    jdbc:box:Initiate OAuth="GETANDREFRESH";_persist_oauthexpiresin=3199;_persist_token_timestamp=1561893244662;_persist_oauthaccesstoken=mswNfVDVpnBZc3pkQQja7WRHNebbaGZL;_persist_oauthrefreshtoken=ybofHX3Vrd7C8cPhE5ZysVxFiUmkJSiw2htjPL0nKDBgpqjcyGP6Am7KNaDzqhZz;
  6. In JDBC JARs Folder, enter the name of the directory where the Xero JAR file is located (see Deploying the Xero JDBC Driver).
  7. In Driver's Class Name, enter the following class name: https://www.cdata.com/drivers/xero/jdbc/.
  8. Leave the User Name and Password blank.
  9. Click Next. A list of tables in the database are displayed. All tables and views associated with the database will appear in a new window.
  10. From the Tables list, select the relevant table or view you want to work with. You can click next to the relevant table or click Preview to see a preview of the data inside it. 
  11. (Optional) Click + to customize the data you want to import with SQL. See Importing Data with Custom Queries for more information.
  12. After you have selected all the relevant tables, click Done. The tables are added to your data model.

Xero Connector: Additional Resources

For the full documentation set for the Xero connector, click here.

For connection string options, click here.

For information on the Xero data model, click here.

Limitations

To access the AgedPayablesByContact and AgedRecievablesByContact tables, you need to specify a particular ContactID, the unique ID of the Contacts table, in the select query using a WHERE clause. This allows you to retrieve data for a specific contact. These are limitations of the Xero API, as these reports are specific to each contact. Here’s an example:

SELECT due, paid, total FROM AgedPayablesByContact WHERE ContactID='xyz'

SELECT duedate, reference FROM AgedRecievablesByContact WHERE ContactID='1234'

Due this limitation, you cannot build an ElastiCube with these tables without custom SQL.

Daily Limit

There is a daily limit of 1000 API calls against a single Xero organisation in a rolling 24-hour period.

In addition to the daily limit, a single access token can only be used up to 60 times in a rolling 60-second period.

Encountering a Rate Limit

If you encounter a rate limit, the Xero API will return an HTTP 503 (Service Unavailable) error, with the following message: “oauth_problem=rate limit exceeded”.

Note: If you encounter a rate limit, do not continue to make requests, as this may continue to add to your limitation. If necessary, you may need to queue requests.

Token Limitations

Each access token will only last for 30 minutes. If you want longer access to the organization, you need the user to re-authorize your application.