Xero API Overview and Set-up

Modified on Tue, 14 Mar 2023 at 05:54 PM

TABLE OF CONTENTS

Overview

The Xero API allows for four major categories of syncing between Xero and Salesforce:

  • Cash balance syncing, which is found on the Fund page, within the Investor Relations application.
  • Capital call syncing, which is found on the Capital Call Parent page, within the Investor Relations application.
    • Note that the initial sync of a Capital Call sends the underlying child capital call records to Xero, and any subsequent syncs of that same record, reflect which capital calls have been reconciled through the bank feed.
  • Distribution syncing, which is found on the Distribution Parent page, within the Investor Relations application.
  • Transaction syncing, which is found on the Transaction page, within the Portfolio application.

Xero Chart of Account Assumptions

The API between Xero and Salesforce makes certain important assumptions about your Xero Chart of Accounts:

  • Each limited partner has only one equity account (i.e. a limited partner does not have separate accounts for contributions, distributions, and allocations). This equity account is reflected in the 'Xero GL Code' field on the Investment Vehicle object.
    • Per this assumption, Salesforce is meant to be seen as the subledger for investor equity accounts, wherein, while distributions and contributions are combined at that equity account in Xero, distributions and contributions are seen within an investor's capital commitment.
  • Each portfolio company has one asset account (i.e. there are not asset accounts for each round of a portfolio company).
    • Internally, we lump all cost of investments into a single account (typically account 130). As such, Salesforce also acts as the cost subledger for investments.
    • Portfolio company cost can be separated into multiple accounts. If portfolio companies do have separate cost accounts in Xero, ensure the GL codes for these portfolio companies are reflected at the Company Summary page within Salesforce.
  • Valuation updates are not synced, and as such, it is best practice to maintain a separate asset account for each portfolio company's Unrealized Gain/Loss asset.
  • If you have an LP that participates in multiple funds, that LP's equity account code needs to be the same in each Xero org. This is because you only have one Investment Vehicle (LP) for this LP in Salesforce and therefor only one Xero GL Code.
    • Example: Jane Smith invests in Demo Fund I, LP and Demo Fund II, LP. In Salesforce, Jane's Xero GL code is 405. In both Demo Fund I, LP's and Demo Fund II, LP's Xero orgs, Jane Smith should have equity account 405.
  • Portfolio company transactions come from a single bank account.

Requesting the Xero API Set-up

  1. Navigate to your Bank account in Xero, click on your Organization name. Afterwards, click on Settings then on Users
  2. Invite the Xero user shown below with 'Standard' permissions. Note: If this user is ever removed, the Xero API will break!
  3. Email support@fundpanel.io citing your Xero org name, your Fund name in Salesforce, and request that they complete the API setup.
  4. FundPanel support will confirm that the API has been successfully set-up. Now you can finish set up on your end.
  5. Navigate to back your bank account in Xero and click the title of your bank account
  6. In the URL on the resulting page, copy the bank account ID (all characters after the = sign)
  7. Navigate to Salesforce, then to the corresponding fund page, edit the fund page. Navigate down to the Xero Details section and copy & paste the id into the Xero bank account ID field and press Save.



Bank Account Sync

The bank statement balance and last reconciled dates are synced to Xero whenever the Sync Xero button on the home page of the Fund page in Salesforce is pressed:


Capital Call Sync

Capital calls are synced when the Sync Xero button is clicked on the Capital Call parent page:

The first time this is selected, capital calls are sent to Xero. In sending the calls to Xero, one invoice (debit to the Xero system Accounts Receivable account) is created for each LP's capital call. The corresponding credit is to each LP's equity account. Once a user has reconciled the receivables against received lines in the bank feed, that user can return to Salesforce, click Sync Xero again, and the capital calls that were reconciled will appear as paid, updating the Paid, Date Paid, and Amount Paid fields in Xero. 


Distribution Sync

Distributions are synced when the Sync Xero button is clicked on the Distribution parent page

When distributions are sent to Xero, Bills (credit to the Xero system Accounts Payable account) are created in Xero with the corresponding debit to each LP's equity account. These bills can then be reconciled against 'Spent' lines in the Xero bank feed. Unlike capital calls, distributions are only synced once (i.e. there is no return of information if Sync Xero is clicked again).


Transaction Sync

Portfolio Company Transactions are synced when the Sync Xero button is clicked on the Transaction page

Only Investment and Disposal transaction types can be sent to Xero. When an Investment transaction type is sent to Xero, a Cash Account Transaction (Spent Cash) is created, which can then be reconciled against a 'Spent' bank feed line. Note that the amount sent to Xero is the 'Amount Invested'. When a Disposal transaction type is sent to Xero a Cash Account Transaction (Received Cash) is created, which can then be reconciled against a 'Received' bank feed line.