Xero Limitations

There are several limitations placed on the transfer of data from Bp Allied into Xero due to the Xero API. This section discusses the implication of these limitations as well as the differences between the way Bp Allied and Xero handle various situations. 

Append Client ID to Contact Name

Appending the Client ID to the client name when entering it into the Contact Name field in Xero was done because duplicate contact names are not permitted within Xero. This is the most reliable way of making a Contact Name unique. This needs to be done at the outset otherwise clients could potentially end up with duplicate records in Xero if Client ID was added to Contact Name at a later time.

Implication of this change

The default Xero invoice templates use the Contact Name field to address the invoice. Having the Client ID appended to the client name if sending an invoice directly from Xero may not be suitable. To mitigate this, we have done the following:

  • Uploaded client name to Primary Person first and last name fields (as shown below).
  • To invoice out of Xero using the Primary Person details, the Invoice Template needs to be updated to use the ContactFirstName and ContactLastName field.

TIP  Archiving a Client (Contact) in Xero is still considered a valid Contact for the Xero API and the Client name will not be able to be exported into Xero.

Unique Item Codes

Due to the API requiring that the Item Code field be unique, we require a unique number to be added into the Account Item Code field, as discussed above. However, this is not helpful when viewing items in the Xero interface, hence the Item Code and Description are concatenated and displayed in Item Name.

Prepend Client ID to Invoice and Payment Numbers

Xero requires that the Invoice and Payment Numbers are unique. There are two situations in BpAllied that may cause this to not be the case. These are:

  • If there are syncing computers, duplicate numbers can be created with Invoices or Payments if they are created on multiple computers within the syncing environment. It can be difficult to ensure that all databases have the most recent Next Invoice or Payment Number when this is dependent on all databases being exactly in sync.
  • If Numbering per Location is turned on in Options > Invoices and each location is not given a separate number sequence, then duplicate numbers could occur.

Due to these possibilities (and potential implications if this is not done at the outset of an export and changed partway through), the Client ID will be prepended to both the Invoice and Payment number from the beginning. The numbers may look similar to those below when they are exported to Xero.

Invoice Number:

Payment Number:

Refunds

The refund method such as Cash or Eftpos can not be transferred through to Xero. It is unable to be recorded in Xero at all.

API Calls

Xero limit the number of API calls to your Xero database to 5000 per day with a maximum of 1 call per second. This is the number of times Bp Allied can contact the Xero database to transfer information into it. It sounds like a lot, but depending on the size of your practice it can impact on how regularly you send data to Xero.

  • Clients, Products and Services, Invoices and Payments: Batches of 50 amount sent per API call. If 500 clients, then 10 batches sent. These are created and managed by the system.
  • Payment allocation used one API call per allocation
  • The audit log is used to track how many API calls have been made in a day.

For example: Small Practice

  • 3 practitioners who see an average of 30 clients a week each.
  • They have a database of 1000 clients and 15 different products and services.
  • Update Xero on a monthly basis.
  • The initial data transfer will use the following number of API calls:

 

# items

# API calls

Client transfer

1000

20

Items

15

1

Invoices x 4½ weeks

400

8

Payments x 4½ weeks

400

8

Allocations

400

400

Total

 

437

For example: Medium Practice

  • 10 practitioners who see an average of 30 clients a week each.
  • They have a database of 2500 clients and 40 different products and services.
  • Update Xero on a monthly basis.
  • The initial data transfer will use the following number of API calls:

 

# items

# API calls

Client transfer

2500

50

Items

40

1

Invoices x 4½ weeks

1350

27

Payments x 4½ weeks

1350

27

Allocations

1350

1350

Total

 

1453

Tracking categories

A Tracking Category is a way Xero allows customers to create custom information for manipulating Invoices and Payments. This will be the User or Practitioner’s name that is marked as the creator of the invoice.

NOTE  Xero only allows a maximum of two tracking categories.

The Bp Allied Xero export requires one tracking category so that the Practitioner information can be transferred with the Invoice.

To ensure a Tracking Category is automatically set, the User or Practitioner must have a First Name and a Surname entered in their Contact Details. If they are a Practitioner, they must also be marked as such.

IMPORTANT  ALL Practitioners MUST have a first and last name, otherwise an error will occur with the export. Read more here.

When the initial Client export is created, the Practitioner Tracking Category is created along with Category Values for each User in Bp Allied. This is updated automatically as required each time the Client export is run. There is no user intervention required.

As with the current functionality, any Invoices that include appointments related to multiple practitioners will be attributed to the practitioner related to the first appointment invoiced.

If the following message is received, then one of the used tracking categories will need to be deleted for the export to be used.

Xero also limits the number of options under a category to 100, therefore practices with more than 100 practitioners will not be able to use the Xero export.