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 an 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, then the Invoice Template needs to be updated to use the ContactFirstName and ContactLastName field
 
 
Please note: 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:
 

Overpayments

Bp Allied allows for a payment to be allocated to multiple invoices. This is very useful in the situation where a third party has paid a lump sum payment that relates to a number of invoices. This cannot be done with a standard Xero payment. To be able to carry out this within Xero, an Overpayment has to be created. Because the allocation of a payment to an invoice in Xero occurs after the payment has been transferred, and any payments in BpAllied could be related to multiple invoices, all payments need to be transferred to Xero as Overpayments.
 
 
There are a couple of things that happen when an over payment goes into Xero
  • An overpayment has an icon with an “OP” as shown above.
  • Overpayments go into the Overpayments holding account, code 610. After they are allocated to an Invoice the payment amount is transferred to the Bank Account.
  • When an overpayment is allocated to an Invoice the amount allocated is not displayed in the Sales > Invoices > Paid dashboard, however the Overpayment is allocated against the invoice when it is viewed within the Invoice.
 
 

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