26
Ostendo – Xero Integration Revision 1.0 20 Dec/2019 Page 1 of 26 Summary of Changes 2019-12-12 – Version 5.13 This version now caters for both OAuth1.0a and OAuth2.0 authentication. 2016-11-08 – Version 4.78 This version now creates External Payments in Ostendo for any Overpayments generated in Xero regardless of allocations. If the OverPayment has no allocations, the Payment created in Ostendo will have status of ”Received”. Any allocations to invoices will create a CustomerPaymentTrans record to apply the amount to the invoice in Ostendo. Any refund of overpayments will reduce the PaymentAmount in CUSTOMERPAYMENTS record in Ostendo by a similar amount. Any PrePayments created in Xero will now create External Payments in Ostendo. 2015-10-20 – Version 4.74 This version now retrieves applied OverPayments from Xero. These are created as External Payments in Ostendo. OSTENDO- XERO INTEGRATION

OSTENDO- XERO INTEGRATION Summary of Changes 5€¦ · The owner of the Xero organization/file (your client) must invite you as a User with at least a STANDARD role or higher. To

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: OSTENDO- XERO INTEGRATION Summary of Changes 5€¦ · The owner of the Xero organization/file (your client) must invite you as a User with at least a STANDARD role or higher. To

Ostendo – Xero Integration Revision 1.0 20 Dec/2019 Page 1 of 26

Summary of Changes

2019-12-12 – Version 5.13

This version now caters for both OAuth1.0a and OAuth2.0 authentication.

2016-11-08 – Version 4.78

This version now creates External Payments in Ostendo for any Overpayments generated in Xero

regardless of allocations. If the OverPayment has no allocations, the Payment created in Ostendo

will have status of ”Received”.

Any allocations to invoices will create a CustomerPaymentTrans record to apply the amount to the

invoice in Ostendo.

Any refund of overpayments will reduce the PaymentAmount in CUSTOMERPAYMENTS record in

Ostendo by a similar amount.

Any PrePayments created in Xero will now create External Payments in Ostendo.

2015-10-20 – Version 4.74

This version now retrieves applied OverPayments from Xero.

These are created as External Payments in Ostendo.

OSTENDO- XERO INTEGRATION

Page 2: OSTENDO- XERO INTEGRATION Summary of Changes 5€¦ · The owner of the Xero organization/file (your client) must invite you as a User with at least a STANDARD role or higher. To

Ostendo – Xero Integration Revision 1.0 20 Dec/2019 Page 2 of 26

Xero Integration

Overview:

Ostendo integration to Xero offers an automated approach to the posting process of financial

entries. This means that depending upon your posting frequency setting, the financial transactions

created in Ostendo will automatically be passed through to Xero at a minimum of 5 minute

intervals.

Integration with Xero is active when you see “Xero” displayed at the bottom status bar of the

Ostendo main screen:

This document describes two methods of configuring Xero / Ostendo.

Why two methods?

The method you choose depends upon the areas of Ostendo you wish to use. It’s all about

whether you wish to manage your debtors in Ostendo or within Xero. Whatever method you

choose, the debtors invoice created in Ostendo will be passed through to the debtors ledger in

Xero, unlike the integration with other older products eg: MYOB where Ostendo only passes GL

journals across and the debtors ledger is maintained entirely within Ostendo.)

It is suggested that you setup an log in account with Xero.(This is Free of Charge). Then have

your clients invite you through Xero to allow access into their Xero database. This way you can

manage the API setup for each of your Ostendo / Xero integrations. Alternatively you will have to

manage each integration from each of your clients Xero log in’s.

Decision Process:

Method 1: (preferred method)

This method will allow you to manage debtors from within Xero. This means the invoice will

be raised in Ostendo, then passed through to Xero where you would record the customer

payment through the Bank Rec screen or via the Customer Payment option in Xero.

Ostendo then reads back the customer payment and updates the invoice in Ostendo and

creates a ‘posted’ customer payment (no financial posting is generated in Ostendo with this

type of payment)

This means that Ostendo debtors ledger is up to date when transactions are viewed

through the Operations Centre. It also allows Ostendo to determine available credit on

customers when Jobs or Sales Orders are created.

Customer Statements could be run from either Xero or Ostendo.

Ostendo version must be Update 187 or later before implementing the Ostendo-Xero link.

Page 3: OSTENDO- XERO INTEGRATION Summary of Changes 5€¦ · The owner of the Xero organization/file (your client) must invite you as a User with at least a STANDARD role or higher. To

Ostendo – Xero Integration Revision 1.0 20 Dec/2019 Page 3 of 26

Method 2:

This method MUST be used if ‘ANY’ of the following areas of Ostendo are in use

Point Of Sale

Customer Payments

Customer Deposits

Because Xero does not allow us to post directly to a Bank account, we must post the above

GL entries created to a Bank Clearing account in Xero. (This is an account type in Xero of

‘Current Asset’, rather than that of a Bank Account.). Then bank rules must be setup in

Xero in order to automatically create a transfer between this account and the actual bank

account to enable the bank reconciliation in Xero to be completed.

It is important to note that a good knowledge of Xero is required for this.

This method adopts the approach that the debtors ledger is maintained within Ostendo.

Customer Statements could be run from either Xero or Ostendo

Note: Make sure the Xero Ledger Codes are Payment Enabled and have the correct Tax code assigned.

Existing Invoices

If there are any outstanding invoices in Ostendo which are not fully paid before the planned cutover date, these must be manually created in Xero with the exact same invoice numbers otherwise subsequent payments (entered after cutover) will not be posted.

Page 4: OSTENDO- XERO INTEGRATION Summary of Changes 5€¦ · The owner of the Xero organization/file (your client) must invite you as a User with at least a STANDARD role or higher. To

Ostendo – Xero Integration Revision 1.0 20 Dec/2019 Page 4 of 26

Integration Setup: Preparation:

From the Sales Rules screen, ensure you have set the following:

Default Payment Method Default Payment Account

These defaults (or those set against the actual Customer) are used when Payments are

automatically read back into Ostendo from Xero in order for Ostendo to auto create a

Customer Payment to record the invoice as paid. (NB: No financial entries are created in

Ostendo for these payments)

From the System Settings screen,

Select Accounting Link Style = Xero

Set the Posting Frequency (Minimum setting 5 minutes)

Cutover Date = This controls whether financial entries will be posted to Xero

based on their transaction date.

Timeout = 120 mins

Retry Count = 1

Post all Foreign Currency transactions as Local Currency Ledger transactions: Tick

this if you wish to post everything in local currency. DO NOT TICK this if you wish to post

foreign currency transactions as FOREIGN CURRENCY with accompanying exchange rates.

External Accounts Receivable is automatically ticked for Xero (this cannot be

overridden)

Page 5: OSTENDO- XERO INTEGRATION Summary of Changes 5€¦ · The owner of the Xero organization/file (your client) must invite you as a User with at least a STANDARD role or higher. To

Ostendo – Xero Integration Revision 1.0 20 Dec/2019 Page 5 of 26

File->System Configuration->User Security and Settings->User Options tab

At least one Ostendo User must have their “No External GL Posting” box unticked.

Posting of transactions to Xero is initiated when one or more Ostendo users (having “No

External GL Posting” unticked) are logged in.

Note to Ostendo Consultants:

The owner of the Xero organization/file (your client) must invite you as a User with at least

a STANDARD role or higher. To do that, they need to log into their Xero file and go into

Settings General Settings Users.

Once you are invited, you will be sent an email and you need to accept the invitation and

you will be prompted to set up your Xero account password (if you do not already have a

Xero account).

Also note that if the owner of the Xero file were to downgrade your role to

anything lower than STANDARD, this will cause the Private application (Ostendo)

to be disconnected from the Xero file. So make sure the file owner does not ever

downgrade your Xero User Role.

Page 6: OSTENDO- XERO INTEGRATION Summary of Changes 5€¦ · The owner of the Xero organization/file (your client) must invite you as a User with at least a STANDARD role or higher. To

Ostendo – Xero Integration Revision 1.0 20 Dec/2019 Page 6 of 26

Setting up the GENERALLEDGERSETTINGS record:

In December 2019, Xero has started to implement OAuth2.0 authentication for applications linking

to Xero files. With OAuth2.0, there is no requirement for creating a pair of public/private keys.

Up until February 2020, it is still possible to set up a link of your Ostendo to your Xero file via the

OAuth1.0a method.

You will need to use this link https://developer.xero.com/myapps?privateAppCreation=true

to setup using the OAuth1.0a method.

After February 2020 however, all new links must be set up via the OAuth2.0 method.

After the end of 2020, it is expected that all connections to your Xero file will be using only

OAuth2.0 authentication.

The AccountingLink scripts in Ostendo are now updated to cater for both OAuth1.0a and OAuth2.0

authentication.

To use the OAuth1.0a method, you must tick the “Use OAuth 1.0a” checkbox and enter the

name of the PrivateKey file in the GENERALLEDGERSETTINGS record:

(Note: For OAuth1.0a method, you do not need to use the XeroSetup script.)

To use the OAuth2.0 method, the “Use OAuth 1.0a” checkbox must be unticked. This will

automatically expose the Setup button and hide the Private Key field in the

GENERALLEDGERSETTINGS screen. For OAuth2.0 method, you must use the XeroSetup button

to complete the GENERALLEDGERSETTINGS record.

Page 7: OSTENDO- XERO INTEGRATION Summary of Changes 5€¦ · The owner of the Xero organization/file (your client) must invite you as a User with at least a STANDARD role or higher. To

Ostendo – Xero Integration Revision 1.0 20 Dec/2019 Page 7 of 26

OAuth1.0a Method:

Generate a unique public/private key-pair Save these files into the Ostendo folder.

Follow the following steps to create your own keys for your Ostendo database

Download the OpenSSL version for Windows from:

http://slproweb.com/products/Win32OpenSSL.html

NB: Ensure you only download the 32 bit version even though a 64 bit version is

available on this site. The version number and Type (size) may be different from the

example shown below, just choose the latest 32 bit version for Windows. Don’t

choose the Light version.

o Run the install application and restart your computer.

(NB: It is optional to pay a donation for this software)

o Open Command Prompt (Run as Administrator)

o Go to the OpenSSl-Win32\bin directory by typing the following:

cd c:\openssl-win32\bin

o Enter the following commands in the Command Prompt window one at a time:

NB: the example below generates keys that are valid for 10 years and it is

suggested that you include the expiry date in the file name as once these are

generated, there is no way to determine when they will expire. Adjust the ‘3650’

parameter if you wish to extend or reduce the expiry dates. These keys will be

generated in the C:\OpenSSL-Win32\bin folder.

Openssl genrsa –out privatekey20240423.pem 1024

Openssl req –new –x509 –key privatekey20240423.pem –out publickey20240423.cer –days 3650

o Please make a note of the expiry date of your certificate as you will need to

regenerate new keys prior to their expiry, otherwise the integration will stop.

o Copy these newly generated keys from the C:\OpenSSL-Win32\bin folder into the Ostendo folder. The generation of the unique Publickey.cer and Privatekey.pem key files is now complete.

Page 8: OSTENDO- XERO INTEGRATION Summary of Changes 5€¦ · The owner of the Xero organization/file (your client) must invite you as a User with at least a STANDARD role or higher. To

Ostendo – Xero Integration Revision 1.0 20 Dec/2019 Page 8 of 26

o Please contact Development-X if you have any problems relating to the generation

of keys.

Ensure you have already accepted a Xero user invitation to this Xero database.

Go to https://developer.xero.com/myapps?privateAppCreation=true

Log in to Xero if required:

After logging in, click on “Add Private App” button. You should then get a screen like this:

Enter “Ostendo – companyname” as

the App name,

select the Xero Organisation,

Click the Pubic Key box to select your Public Key (.cer) file,

Read and tick the Terms &

Conditions checkbox,

Click on the Create app button.

Page 9: OSTENDO- XERO INTEGRATION Summary of Changes 5€¦ · The owner of the Xero organization/file (your client) must invite you as a User with at least a STANDARD role or higher. To

Ostendo – Xero Integration Revision 1.0 20 Dec/2019 Page 9 of 26

Creating the App will generate the OAuth1.0a credentials.

Hit the Save button to save the

App. You have now applied your PublicKey Certificate to your Xero organisation and generated the

Consumer Key. The Consumer Key (or API Key) and the PrivateKey.pem file is used by Ostendo

to gain access to the Xero organisation during posting of financial transactions.

Setting up General Ledger Setting within Ostendo.

Go to File->Financial Configuration->General Ledger Settings

From this screen press the Add button

o Accounting Link = Xero

o URL or Path = https://api.xero.com/api.xro/2.0/

o Username = leave blank

o Password = leave blank

The Consumer Key is your API

Token.

Copy this key to your

GeneralLedgerSettings screen – API Token field

Page 10: OSTENDO- XERO INTEGRATION Summary of Changes 5€¦ · The owner of the Xero organization/file (your client) must invite you as a User with at least a STANDARD role or higher. To

Ostendo – Xero Integration Revision 1.0 20 Dec/2019 Page 10 of 26

o “Use OAuth1.0a” checkbox = ticked

o API Token = Paste this from the ‘Consumer Key’ entry on the App Details screen

from previous step

o Private Key = type in the .pem file name

o Version = Ostendo will fill this field when the connect button is pressed

o Debug Mode = Tick this box now then and untick later when the installation is

running smoothly.

o Database Path = Ostendo will pre-fill this

Press the ‘Update’ button to automatically download the latest Xero Integration Scripts.

Now test the API connection to the Xero database by pressing the ‘Connect’ button

This completes the OAuth1.0a setup process.

Page 11: OSTENDO- XERO INTEGRATION Summary of Changes 5€¦ · The owner of the Xero organization/file (your client) must invite you as a User with at least a STANDARD role or higher. To

Ostendo – Xero Integration Revision 1.0 20 Dec/2019 Page 11 of 26

OAuth2.0 Method:

Go to File->Financial Configuration->General Ledger Settings

From this screen press the Add button

o Accounting Link = Xero

o Version = Ostendo will fill this field when the Update button is pressed

o Debug Mode = Tick this box now then and untick later when the installation is

running smoothly.

o URL or Path = https://api.xero.com/api.xro/2.0/

o Database Path = Ostendo will pre-fill this

o API Token = leave blank

o “Use OAuth1.0a” = unticked

Click on Setup button to run the XeroSetup script

You will be prompted to log in to your Xero file (if you are not already logged in).

Page 12: OSTENDO- XERO INTEGRATION Summary of Changes 5€¦ · The owner of the Xero organization/file (your client) must invite you as a User with at least a STANDARD role or higher. To

Ostendo – Xero Integration Revision 1.0 20 Dec/2019 Page 12 of 26

Next, you will be prompted to “Allow Access” to your Xero file.

If you have multiple Xero organisations defined, you will be prompted to select which

organization to connect to. Just click on “Continue” button:

Page 13: OSTENDO- XERO INTEGRATION Summary of Changes 5€¦ · The owner of the Xero organization/file (your client) must invite you as a User with at least a STANDARD role or higher. To

Ostendo – Xero Integration Revision 1.0 20 Dec/2019 Page 13 of 26

(If you have multiple Xero organizations) select the desired Xero organization to connect

to:

The XeroSetup script will then update the GENERALLEDGERSETTINGS record

and do a test connection to make sure the setup has completed successfully.

You may notice the following web page left on your browser:

You can close this down as there is no further use for it.

This completes the OAuth2.0 Setup process.

Page 14: OSTENDO- XERO INTEGRATION Summary of Changes 5€¦ · The owner of the Xero organization/file (your client) must invite you as a User with at least a STANDARD role or higher. To

Ostendo – Xero Integration Revision 1.0 20 Dec/2019 Page 14 of 26

Miscellaneous:

In Xero, setup the required GL accounts for the integration to Ostendo

In Ostendo setup the Tax Codes / Groups and Matrix rules

Xero relies on specific Tax Codes in order to determine Input and Output Tax. You must

specify these from the base country of your Xero database.

Eg:

New Zealand

TAX TYPE RATE NAME SYSTEM DEFINED

INPUT2 15.00 GST on Expenses

NONE 0.00 No GST Yes

ZERORATED 0.00 Zero Rated

OUTPUT2 15.00 GST on Income

GSTONIMPORTS 0.00 GST on Imports Yes

Australia

TAX TYPE RATE NAME SYSTEM DEFINED

OUTPUT 10.00 GST on Income

INPUT 10.00 GST on Expenses

CAPEXINPUT 10.00 GST on Capital Yes

EXEMPTEXPORT 0.00 GST Free Exports Yes

EXEMPTEXPENSES 0.00 GST Free Expenses Yes

EXEMPTCAPITAL 0.00 GST Free Capital Yes

EXEMPTOUTPUT 0.00 GST Free Income

INPUTTAXED 0.00 Input Taxed

BASEXCLUDED 0.00 BAS Excluded

GSTONCAPIMPORTS 0.00 GST on Capital Imports Yes

GSTONIMPORTS 0.00 GST on Imports Yes

New Zealand: INPUT2 (15% GST on Exps)

OUTPUT2 (15% GST on Income)

ZERORATED (Zero Rated on Income NB: Ensure the Ostendo External

Purchase Tax Code is set to NONE)

Australia OUTPUT (10% GST on Exps)

INPUT (10% GST on Income)

ZERORATED (Zero Rated on Income NB: Ensure the Ostendo External

Purchase Tax Code is set to NONE)

Page 15: OSTENDO- XERO INTEGRATION Summary of Changes 5€¦ · The owner of the Xero organization/file (your client) must invite you as a User with at least a STANDARD role or higher. To

Ostendo – Xero Integration Revision 1.0 20 Dec/2019 Page 15 of 26

You will find all relevant Xero Tax Codes from:

http://developer.xero.com/documentation/api/types/#TaxTypes

Setup an appropriate Ostendo Tax Code with the Tax Rate %. Enter the appropriate Xero

External Tax Code (Income) along with the External Purchase Tax Code (NB: These are

case sensitive)

This means that one Tax Code in Ostendo can be set for Sales and Purchases, and Ostendo

will post it to the Xero External Tax Codes specified here.

Now setup up Ostendo Tax Groups and Matrix.

Here is an example of Tax setup for an Australian company:

Page 16: OSTENDO- XERO INTEGRATION Summary of Changes 5€¦ · The owner of the Xero organization/file (your client) must invite you as a User with at least a STANDARD role or higher. To

Ostendo – Xero Integration Revision 1.0 20 Dec/2019 Page 16 of 26

In Ostendo Go to File->Financial Configuration-> General Ledger Settings and press the

Import button and select GL Codes. This process will import all Xero GL Codes (and

Tracking Categories and Options – if they exist) into Ostendo where they can be mapped

against the respective Cost Centre Codes. (NB: This process must be repeated if new GL

accounts and/or Tracking Categories/Options relating to Ostendo are created in Xero.)

Mapping Xero GL to Ostendo Cost Centres.

Go to General->Cost Centres

From the detail screen of each Cost Centre, select the Xero GL Account from the

Accounting System Ledger Code lookup field. (Do not attempt to map to any Xero Bank

Accounts remembering these must be mapped to a Bank Clearing Account if you are using

Method 2. Method 1 does not need any mapping to an Ostendo Bank Cost Centre)

- Purchase Invoice Freight & Additional Charges

o Ensure you have “Default Freight” and “Default Other” descriptors set in the

Purchase Rules to handle Freight and Additional Charges entered on the

Purchase Invoice screen. These descriptors can be mapped accordingly to post

such charges to the relevant GL Accounts.

Map the appropriate Tracking Category & Option (in Financial Category column) to the Cost

Centres (if they are used).

Optional:

If you wish to import Customers and Suppliers from Xero into Ostendo, go to the General

Ledger Settings and Import Customers / Suppliers by pressing the ‘Import’ button

If you wish to populate Xero Customers and Suppliers from those in Ostendo you can press

the ‘Export’ button from the General Ledger Settings screen.

Note: The same set of Customers and Suppliers must be set up on both sides.

Page 17: OSTENDO- XERO INTEGRATION Summary of Changes 5€¦ · The owner of the Xero organization/file (your client) must invite you as a User with at least a STANDARD role or higher. To

Ostendo – Xero Integration Revision 1.0 20 Dec/2019 Page 17 of 26

Points of Integration:

There are many Xero API resources available. However not all resources are part of the

Ostendo – Xero integration. The affected resources are as follows:

1. Contacts - this is the Xero resource which holds Supplier and Customer information. Any

addition or change in Supplier/Customer master records in Ostendo will be reflected in

Xero except ‘InActive’ records.

Xero API does not allow for posting of ContactStatus = DELETED. This means that InActive

Suppliers or Customers in Ostendo need to be manually set as DELETED in Xero.

The IsSupplier Boolean value cannot be set via Xero API – it is automatically set when an

accounts payable invoice is generated against the contact. This means Suppliers exported

from Ostendo into Xero will initially have the IsSupplier set to “false”.

The IsCustomer Boolean value cannot be set via Xero API – it is automatically set when an

accounts receivable invoice is generated against the contact. This means Customers

exported from Ostendo into Xero will initially have the IsCustomer set to “false”.

2. Manual Journals – all journals except Invoice Payment and Invoice Deposit, are

posted to this resource in Xero.

3. Invoices – this resource caters to both Sales Invoices (Type= ACCREC) and Purchase

Invoices (Type= ACCPAY). Sales Invoice transactions and Purchase Invoice transactions

are posted to Xero as AUTHORISED invoice transactions.

4. CreditNotes - this resource caters to both Sales CreditNotes (Type= ACCRECCREDIT)

and Purchase CreditNotes (Type= ACCPAYCREDIT). CreditNotes are posted to Xero as

AUTHORISED creditnote transactions.

5. Payments – Invoice Payment and Invoice Deposit journals are posted to Payments

resource in Xero. Only the Debit side of the journal is posted.

Note: Payment Discounts are posted to Xero as Credit Notes and applied to the associated

Invoices.

6. Customer Payments entered directly into Xero (if “No External Payments Returned” is

not ticked in System Settings) will be pulled back into Ostendo and Customer Payment

records will be created for the matching invoices. However no financial transactions will be

created in Ostendo for such records – to avoid reposting back into Xero again. Such

payment records in Ostendo will be marked as “External Payments”.

Any such Payments entered in Xero which are subsequently deleted in Xero will also trigger

the deletion of the matching “External Payment” from Ostendo’s CustomerPayments table.

There are a few accounts that you can’t use when entering manual journals in Xero.

These include system accounts (accounts receivable, accounts payable & retained

earnings) and bank accounts. You will receive a 400 validation error if you try and

use these reserved accounts. Consider setting up one or more clearing accounts if you need to journal to a bank account.

Page 18: OSTENDO- XERO INTEGRATION Summary of Changes 5€¦ · The owner of the Xero organization/file (your client) must invite you as a User with at least a STANDARD role or higher. To

Ostendo – Xero Integration Revision 1.0 20 Dec/2019 Page 18 of 26

7. OverPayments & PrePayments – When OverPayments or PrePayments are created in Xero, these will generate External Payments in Ostendo. Any allocations to sales invoices in Xero will be brought into Ostendo and applied to the corresponding invoices. Any Refunds of overpayment/prepayment in Xero will be brought into Ostendo to reduce the PAYMENTAMOUNT in CUSTOMERPAYMENTS record accordingly. Please note that OverPayments/Prepayments created in Xero can only be allocated to invoices from within Xero.

8. Please note that for Payment Style – “Match Credits to Invoices”, there are no additional

financial transactions generated. This means that any such matching in Ostendo will need

to be manually done in the linked Accounting System as well.

All financial transactions generated in Ostendo will be summarised into the following tables:

JOURNALHEADER–updates ManualJournals or Payments in xero

JOURNALLINES – updates ManualJournals or Payments in Xero

JOURNALINVHEADER – updates Invoices or CreditNotes in Xero

JOURNALINVLINES – updates Invoices or CreditNotes in Xero

Changes to Customer Master and Supplier Master record will create transactions in

FINANCIALCUSTOMERS and FINANCIALSUPPLIERS tables respectively.

You can see a more detailed mapping of fields between Ostendo tables and Xero resources in

Appendix A.

Note: If you select “No External Payments Returned” in System Settings – Accounting

Link, then payments (and deleted payments) entered in Xero will not be brought back into

Ostendo.

To facilitate the deletion of payments in Ostendo under such circumstances, you can

download a Command Script from here:

http://ostendo.info/downloads/ostendo/CmdScript-ForceDeletePmt-XERO.zip

This Command Script will remove all the CustomerPaymentTrans records from the payment.

Page 19: OSTENDO- XERO INTEGRATION Summary of Changes 5€¦ · The owner of the Xero organization/file (your client) must invite you as a User with at least a STANDARD role or higher. To

Ostendo – Xero Integration Revision 1.0 20 Dec/2019 Page 19 of 26

Xero Limits

Please note that Xero has certain transaction limits. This link explains the Xero Limits quite

clearly:

http://developer.xero.com/documentation/getting-started/xero-api-limits/

We have done the following to minimize the chances of exceeding these limits:

1. To reduce the number of calls we make to Xero when exporting customer and supplier

records, we bundle 100 records at a time. However each request cannot exceed 3.5MB

(size limit per call).

2. The 1000 API calls limit is a “rolling 24 hour period”. So if API calls are spread out evenly

then it would be less of an issue. We have provided in Systems Settings the function to set

the frequency of posting. If you have fairly high transaction volumes, you may need to set

a more regular posting frequency (perhaps hourly or every 30 mins).

You should also be familiar with Xero’s SYSTEM LIMITS as described in the link above:

a. Xero can only handle up to 1000 invoices per month

b. Xero can handle up to 1000 bank transactions per month

c. Using Xero to handle Inventory of more than 1000 items may cause performance issues.

(Having Ostendo handle inventory should help).

d. Storing more than 5000 Contacts (suppliers + customers + employees) in Xero could also

cause performance issues.

Also there is the Pricing Plan limits – which determines the number of Invoices that can be

processed by Xero in a month.

Page 20: OSTENDO- XERO INTEGRATION Summary of Changes 5€¦ · The owner of the Xero organization/file (your client) must invite you as a User with at least a STANDARD role or higher. To

Ostendo – Xero Integration Revision 1.0 20 Dec/2019 Page 20 of 26

The Automated Posting Process:

As transaction records are being added to the tables listed above, Ostendo will flag them as

“Ready to Send”. Ostendo will post transactions to Xero based on the frequency set in

System Settings. The frequency of posting can be set to in terms of minutes or hours. For

most customers, once every hour or two hours should be frequent enough.

All transactions which are “Ready to Send” will be assigned a batch number and posted as

one batch in the following order:

FINANCIALSUPPLIERS transactions to Xero Contacts,

FINANCIALCUSTOMERS transactions to Xero Contacts,

JOURNALHEADER and LINES transactions (except Invoice Payments and Invoice Deposits) to

Xero

Manual journals

JOURNALINVHEADER and LINES transactions to Xero Invoices and CreditNotes

JOURNALHEADER and LINES for Invoice Payments and Invoice Deposits to Xero Payments.

This process runs automatically in the background when there is at least one user logged in.

This process can be stopped if the “No External GL Posting” flag is ticked for ALL users of the

system. This flag is found in File->System Configuration->User Security & Options->User

Options tab.

User intervention is only required if there are failed batches occurring – which is indicated

in the top status bar of the Ostendo main screen:

If you click on the failed batches in the status bar, you will get the following:

Click on “Display All batches that Failed” button and you will see a list of

failed batches. Click on the Detail tab, and you will see the invalid

transactions:

Page 21: OSTENDO- XERO INTEGRATION Summary of Changes 5€¦ · The owner of the Xero organization/file (your client) must invite you as a User with at least a STANDARD role or higher. To

Ostendo – Xero Integration Revision 1.0 20 Dec/2019 Page 21 of 26

Reviewing and correcting Failed Batches:

The following GENERAL Inquiries are available to review the batches and transactions:

- Inquiry – Ledger Journals

- Inquiry – Ledger Sales Invoices

- Inquiry – Ledger Purchase Invoices

Example of Ledger Journal inquiry – detail screen:

You could also create your own inquiries/database queries to review the transactions

in these tables. Common causes of failed batches include:

- Incorrect tax codes used (Tax code mapping not done correctly).

- Ledger Account in Xero was not set to accept payments.

- Missing Account Codes (Cost Centre – Ledger Codes mapping incorrect or incomplete).

Once the errors are fixed, the batches can be re-posted by clicking on the Repost Batch and

Process Batches buttons.

Page 22: OSTENDO- XERO INTEGRATION Summary of Changes 5€¦ · The owner of the Xero organization/file (your client) must invite you as a User with at least a STANDARD role or higher. To

Ostendo – Xero Integration Revision 1.0 20 Dec/2019 Page 22 of 26

Appendix A: Ostendo-Xero Data Mapping

1. Suppliers

OSTENDO Xero

Table FieldName Fieldname Resource FINANCIALSUPPLIERS Supplier Name Contacts

IsSupplier (= true) Contacts ContactStatus (= Active) Contacts FINANCIALSUPPLIERS SupplierWeb Website Contacts FINANCIALSUPPLIERS SupplierEmail EmailAddress Contacts FINANCIALSUPPLIERS CurrencyCode DefaultCurrency Contacts

AddressType (POBOX) Contacts FINANCIALSUPPLIERS SupplierAddress1 AddressLine1 Contacts FINANCIALSUPPLIERS SupplierAddress2 AddressLine2 Contacts FINANCIALSUPPLIERS SupplierAddress3 AddressLine3 Contacts FINANCIALSUPPLIERS SupplierCity City Contacts FINANCIALSUPPLIERS SupplierState Region Contacts FINANCIALSUPPLIERS SupplierPostalCode PostalCode Contacts FINANCIALSUPPLIERS SupplierCountry Country Contacts FINANCIALSUPPLIERS PrimaryContact AttentionTo Contacts

AddressType (STREET) Contacts

FINANCIALSUPPLIERS PhysicalAddress1 AddressLine1 Contacts FINANCIALSUPPLIERS PhysicalAddress2 AddressLine2 Contacts FINANCIALSUPPLIERS PhysicalAddress3 AddressLine3 Contacts FINANCIALSUPPLIERS PhysicalCity City Contacts FINANCIALSUPPLIERS PhysicalState Region Contacts FINANCIALSUPPLIERS PhysicalPostalCode PostalCode Contacts FINANCIALSUPPLIERS PhysicalCountry Country Contacts FINANCIALSUPPLIERS PrimaryContact AttentionTo Contacts PhoneType (FAX) Contacts FINANCIALSUPPLIERS SupplierFax PhoneNumber Contacts PhoneType (MOBILE) Contacts FINANCIALSUPPLIERS SupplierMobile PhoneNumber Contacts PhoneType (DEFAULT) Contacts FINANCIALSUPPLIERS SupplierPhone PhoneNumber Contacts

Page 23: OSTENDO- XERO INTEGRATION Summary of Changes 5€¦ · The owner of the Xero organization/file (your client) must invite you as a User with at least a STANDARD role or higher. To

Ostendo – Xero Integration Revision 1.0 20 Dec/2019 Page 23 of 26

2. Customers

OSTENDO Xero

Table FieldName Fieldname Resource FINANCIALCUSTOMERS Customer Name Contacts

IsCustomer (= true) Contacts ContactStatus (= Active) Contacts FINANCIALCUSTOMERS CustomerWeb Website Contacts FINANCIALCUSTOMERS CustomerEmail EmailAddress Contacts FINANCIALCUSTOMERS CurrencyCode DefaultCurrency Contacts

AddressType (POBOX) Contacts FINANCIALCUSTOMERS CustomerAddress1 AddressLine1 Contacts FINANCIALCUSTOMERS CustomerAddress2 AddressLine2 Contacts FINANCIALCUSTOMERS CustomerAddress3 AddressLine3 Contacts FINANCIALCUSTOMERS CustomerCity City Contacts FINANCIALCUSTOMERS CustomerState Region Contacts FINANCIALCUSTOMERS CustomerPostalCode PostalCode Contacts FINANCIALCUSTOMERS CustomerCountry Country Contacts FINANCIALCUSTOMERS PrimaryContact AttentionTo Contacts

AddressType (STREET) Contacts

FINANCIALCUSTOMERS DeliveryAddress1 AddressLine1 Contacts FINANCIALCUSTOMERS DeliveryAddress2 AddressLine2 Contacts FINANCIALCUSTOMERS DeliveryAddress3 AddressLine3 Contacts FINANCIALCUSTOMERS DeliveryCity City Contacts FINANCIALCUSTOMERS DeliveryState Region Contacts FINANCIALCUSTOMERS DeliveryPostalCode PostalCode Contacts FINANCIALCUSTOMERS DeliveryCountry Country Contacts FINANCIALCUSTOMERS PrimaryContact AttentionTo Contacts PhoneType (FAX) Contacts FINANCIALCUSTOMERS CustomerFax PhoneNumber Contacts PhoneType (MOBILE) Contacts FINANCIALCUSTOMERS CustomerMobile PhoneNumber Contacts PhoneType (DEFAULT) Contacts FINANCIALCUSTOMERS CustomerPhone PhoneNumber Contacts

Page 24: OSTENDO- XERO INTEGRATION Summary of Changes 5€¦ · The owner of the Xero organization/file (your client) must invite you as a User with at least a STANDARD role or higher. To

Ostendo – Xero Integration Revision 1.0 20 Dec/2019 Page 24 of 26

3. JOURNALS (except Invoice Payments and Invoice Deposits)

OSTENDO Xero

Table FieldName Fieldname Resource JOURNALHEADER JournalDescription Narration ManualJournals

JOURNALHEADER JournalDate Date ManualJournals Status (= POSTED) ManualJournals

JournalLine: ManualJournals

JOURNALLINES LineDescription Description ManualJournals JOURNALLINES LedgerCode AccountCode ManualJournals JOURNALLINES ExternalTaxCode TaxType ManualJournals JOURNALLINES DebitValue / CreditValue LineAmount ManualJournals JOURNALLINES FINANCIALCATEGORY Tracking Category ManualJournals JOURNALLINES FINANCIALCATEGORY Tracking Option ManualJournals

4. Journals - Invoice Payment and Invoice Deposit

OSTENDO Xero

Table FieldName Fieldname Resource Invoice Payments

JOURNALHEADER ReferenceNumber InvoiceNumber Payments Account Payments

JOURNALLINES LedgerCode Code Payments JOURNALHEADER JournalDate Date Payments JOURNALLINES ExchangeRate CurrencyRate Payments JOURNALLINES DebitValue Amount Payments JOURNALHEADER JournalID [JournalNumber] Reference Payments

Page 25: OSTENDO- XERO INTEGRATION Summary of Changes 5€¦ · The owner of the Xero organization/file (your client) must invite you as a User with at least a STANDARD role or higher. To

Ostendo – Xero Integration Revision 1.0 20 Dec/2019 Page 25 of 26

5. Invoices

OSTENDO Xero

Table FieldName Fieldname Resource JOURNALINVHEADER InvoiceNettTotal > 0 Invoice Invoices

JOURNALINVHEADER InvoiceType (Purchase) Type (= ACCPAY) Invoices JOURNALINVHEADER InvoiceNumber (CompanyInvnumber) InvoiceNumber Invoices JOURNALINVHEADER InvoiceType (Sales) Type (= ACCREC) Invoices JOURNALINVHEADER InvoiceNumber InvoiceNumber Invoices JOURNALINVHEADER InvoiceReference Reference Invoices JOURNALINVHEADER InvoiceDueDate DueDate Invoices JOURNALINVHEADER InvoiceNettTotal SubTotal Invoices JOURNALINVHEADER InvoiceTaxTotal TotalTax Invoices JOURNALINVHEADER InvoiceTotal Total Invoices

Contact Invoices

JOURNALINVHEADER CompanyName Name Invoices JOURNALINVHEADER InvoiceDate Date Invoices Status (AUTHORISED) Invoices

LineAmountTypes (Exclusive) Invoices

JOURNALINVHEADER CurrencyCode CurrencyCode Invoices JOURNALINVHEADER Exchangerate CurrencyRate Invoices

LineItem Invoices

JOURNALINVLINES ExternalTaxCode TaxType Invoices JOURNALINVHEADER, JOURNALINVLINES

ExchangeRate,InvoiceQty, LineCode, LineDescription

Description Invoices

Quantity (= 1) Invoices

JOURNALINVLINES DebitLedgerCode / CreditLedgerCode AccountCode Invoices JOURNALINVLINES ExtendedNettPrice LineAmount Invoices JOURNALINVLINES ExtendedTax TaxAmount Invoices JOURNALINVLINES FINANCIALCATEGORY Tracking Category Invoices JOURNALINVLINES FINANCIALCATEGORY Tracking Option Invoices

Page 26: OSTENDO- XERO INTEGRATION Summary of Changes 5€¦ · The owner of the Xero organization/file (your client) must invite you as a User with at least a STANDARD role or higher. To

Ostendo – Xero Integration Revision 1.0 20 Dec/2019 Page 26 of 26

6. CreditNotes

OSTENDO Xero

Table FieldName Fieldname Resource JOURNALINVHEADER InvoiceNettTotal < 0 CreditNote CreditNotes

JOURNALINVHEADER InvoiceType (Purchase) Type (= ACCPAYCREDIT) CreditNotes JOURNALINVHEADER InvoiceNumber (CompanyInvnumber) CreditNoteNumber CreditNotes JOURNALINVHEADER InvoiceReference Reference CreditNotes JOURNALINVHEADER InvoiceType (Sales) Type (= ACCRECCREDIT) CreditNotes JOURNALINVHEADER InvoiceNumber CreditNoteNumber CreditNotes JOURNALINVHEADER InvoiceReference Reference CreditNotes JOURNALINVHEADER InvoiceDueDate FullyPaidOnDate CreditNotes JOURNALINVHEADER InvoiceNettTotal SubTotal CreditNotes JOURNALINVHEADER InvoiceTaxTotal TotalTax CreditNotes JOURNALINVHEADER InvoiceTotal Total CreditNotes

Contact CreditNotes

JOURNALINVHEADER CompanyName Name CreditNotes JOURNALINVHEADER InvoiceDate Date CreditNotes Status (AUTHORISED) CreditNotes

LineAmountTypes (Exclusive) CreditNotes

JOURNALINVHEADER CurrencyCode CurrencyCode CreditNotes JOURNALINVHEADER Exchangerate CurrencyRate CreditNotes

LineItem CreditNotes

JOURNALINVLINES ExternalTaxCode TaxType CreditNotes JOURNALINVHEADER, JOURNALINVLINES

ExchangeRate,InvoiceQty, LineCode, LineDescription

Description CreditNotes

Quantity (= 1) CreditNotes

JOURNALINVLINES DebitLedgerCode / CreditLedgerCode AccountCode CreditNotes JOURNALINVLINES ExtendedNettPrice (-) LineAmount CreditNotes JOURNALINVLINES ExtendedTax (-) TaxAmount CreditNotes