Ask the Community
Groups
Data mapping : Xero and PSA - Connect IT Community | Kaseya
<main> <article class="userContent"> <p>Introduction</p> <p>This guide details the fields of data mapping between PSA and Xero Integration. PSA term applies to both BMS and Vorex users. </p> <p>Pre-requisites </p> <p>Active setup with Xero. Refer to this <a href="/home/leaving?allowTrusted=1&target=https%3A%2F%2Fkaseya.vanillacommunities.com%2Fkb%2Farticles%2Faliases%2Fkaseya%2Fhc%2Fen-gb%2Farticles%2F360018218878-Integrating-with-PSA-and-Xero" rel="noopener nofollow">guide</a> for the integration details. </p> <p>Data Mapping</p> <p>This integration allows two-way sync for items, contacts, and accounts. Invoices can be exported to Xero and Payments can be imported to PSA. <img src="https://us.v-cdn.net/6032361/uploads/migrated/IRYY7KU9FQRQ/xero-page-1.png" alt="Xero_-_Page_1.png" class="embedImage-img importedEmbed-img"></img></p> <h4 data-id="account-code">Account Code</h4> <table border="1"><tbody><tr><td> <p><strong>PSA Fields</strong></p> </td> <td> <p><strong>Xero Field</strong></p> </td> </tr><tr><td> <p>Account Code</p> </td> <td> <p>Code</p> </td> </tr><tr><td> <p>Account Name</p> </td> <td> <p>Name </p> </td> </tr><tr><td> <p>Description</p> </td> <td> <p>Description</p> </td> </tr><tr><td> <p>Account Type</p> </td> <td> <p>Type </p> </td> </tr></tbody></table><ul><li> <ul><li> <ul><li><strong>Account codes:</strong> If it exists in Xero we link to the existing entry, we do not update it. If the code doesn't exist we create a new one. </li> <li><strong>Account types:</strong> We link to the type based on the name if it exists in Xero, If it doesn't we take one by default. The name of default is called Other income. </li> </ul></li> </ul></li> </ul><h4 data-id="tax-rate">Tax Rate</h4> <table border="1"><tbody><tr><td> <p><strong>PSA Fields</strong></p> </td> <td> <p><strong>Xero Field</strong></p> </td> </tr><tr><td> <p>Name</p> </td> <td> <p>Name</p> </td> </tr><tr><td> <p>Tax Rate</p> </td> <td> <p>Rate</p> </td> </tr></tbody></table><ul><li> <ul><li> <ul><li>For Tax groups, multiple tax components will be added. </li> <li>When importing Tax Rate, we take the name and rate and create it in PSA. <ul><li>If it has multiple tax components we disregard it and add it as a normal tax rate. We don’t create separate tax groups for tax components when importing.</li> </ul></li> </ul></li> </ul></li> </ul><h3 data-id="accounts">Accounts</h3> <h4 data-id="exporting-from-psa-to-xero">Exporting from PSA to Xero </h4> <table border="1"><tbody><tr><td> <p><strong>PSA Fields</strong></p> </td> <td> <p><strong>Xero Field</strong></p> </td> </tr><tr><td> <p>Account name</p> </td> <td> <p>Contact name </p> </td> </tr><tr><td> <p>Account code</p> </td> <td> <p>Account number</p> </td> </tr><tr><td> <p>Email address in Billing address</p> </td> <td> <p>Email address</p> </td> </tr><tr><td> <p>Phone number in Billing address</p> </td> <td> <p>Phone number </p> </td> </tr><tr><td> <p>Fax mentioned in Billing address</p> </td> <td> <p>Fax</p> </td> </tr><tr><td> <p>Tax </p> </td> <td> <p>VAT</p> </td> </tr><tr><td> <p>Shipping address</p> </td> <td> <p>Street Address</p> </td> </tr><tr><td> <p>Billing address</p> </td> <td> <p>Postal Address</p> </td> </tr></tbody></table><ul><li> <ul><li> <ul><li>If the account is active in PSA we set it as active in Xero. If the account is inactive it will be set as archived in Xero. </li> </ul></li> </ul></li> </ul><h4 data-id="importing-to-psa-from-xero">Importing to PSA from Xero </h4> <table border="1"><tbody><tr><td> <p><strong>PSA Fields</strong></p> </td> <td> <p><strong>Xero Field</strong></p> </td> </tr><tr><td> <p>Account name</p> </td> <td> <p>Contact name </p> </td> </tr><tr><td> <p>Account code</p> </td> <td> <p>Account number</p> </td> </tr><tr><td> <p>Default currency </p> </td> <td> <p>Currency </p> </td> </tr><tr><td> <p>Taxable</p> </td> <td> <p>VAT - Default sales VAT is set </p> </td> </tr><tr><td> <p>Sales Tax</p> </td> <td> <p>Value from Default sales VAT</p> </td> </tr></tbody></table><ul><li> <ul><li> <ul><li>If a mapping already exists only the name is updated else a new account is created in PSA. </li> <li>The main site is created and addresses are imported from Xero. </li> <li>Address fields are imported with the same data mapping as when exporting. </li> </ul></li> </ul></li> </ul><h3 data-id="items">Items</h3> <p>Products, Services, Work type, Expense type, Discount type are <strong>items</strong> in Xero. </p> <table border="1"><tbody><tr><td> <p><strong>PSA Fields</strong></p> </td> <td> <p><strong>Xero Field</strong></p> </td> </tr><tr><td> <p>Product Name</p> </td> <td> <p>Item Name</p> </td> </tr><tr><td> <p>Product Description</p> </td> <td> <p>Sales Description</p> </td> </tr><tr><td> <p>Expense Account</p> </td> <td> <p>Purchase Account</p> </td> </tr><tr><td> <p>Income Account</p> </td> <td> <p>Sales Account</p> </td> </tr><tr><td> <p>Requires Procurement (Yes/No)</p> </td> <td> <p>I track this item - Yes</p> </td> </tr><tr><td> <p>Product number</p> </td> <td> <p>Item code</p> </td> </tr></tbody></table><ul><li> <ul><li> <ul><li>For Inventory items (I track this item), the expense account will be the Cost of Goods Sold Account. </li> <li>Unit price in PSA will be the Unit price of the Sales item in Xero</li> </ul></li> </ul></li> </ul><h4 data-id="work-type">Work Type</h4> <table border="1"><tbody><tr><td> <p><strong>PSA Fields</strong></p> </td> <td> <p><strong>Xero Field</strong></p> </td> </tr><tr><td> <p>Work Type Name</p> </td> <td> <p>Item Name</p> </td> </tr><tr><td> <p>Description </p> </td> <td> <p>Sales Description</p> </td> </tr><tr><td> <p>Income Account</p> </td> <td> <p>Sales Account</p> </td> </tr><tr><td> <p>Expense Account</p> </td> <td> <p>Purchase Account</p> </td> </tr></tbody></table><h4 data-id="n-a"> </h4> <h4 data-id="services">Services </h4> <table border="1"><tbody><tr><td> <p><strong>PSA Fields</strong></p> </td> <td> <p><strong>Xero Field</strong></p> </td> </tr><tr><td> <p>Service Name</p> </td> <td> <p>Name</p> </td> </tr><tr><td> <p>Unit Price</p> </td> <td> <p>Sales Unit price</p> </td> </tr><tr><td> <p>Unit Cost</p> </td> <td> <p>Purchase unit price</p> </td> </tr><tr><td> <p>Description</p> </td> <td> <p>Sales Description</p> </td> </tr></tbody></table><h4 data-id="n-a-1"> </h4> <h4 data-id="expense-type">Expense Type</h4> <table border="1"><tbody><tr><td> <p><strong>PSA Fields</strong></p> </td> <td> <p><strong>Xero Field</strong></p> </td> </tr><tr><td> <p>Name</p> </td> <td> <p>Name</p> </td> </tr><tr><td> <p>Description </p> </td> <td> <p>Sales Description</p> </td> </tr></tbody></table><h4 data-id="n-a-2"> </h4> <h4 data-id="discount-type">Discount Type</h4> <table border="1"><tbody><tr><td> <p><strong>PSA Fields</strong></p> </td> <td> <p><strong>Xero Field</strong></p> </td> </tr><tr><td> <p>Name</p> </td> <td> <p>Name</p> </td> </tr><tr><td> <p>Description </p> </td> <td> <p>Sales Description</p> </td> </tr><tr><td> <p>Discount type</p> </td> <td> <p>Will be set to Amount</p> </td> </tr><tr><td> <p>Value</p> </td> <td> <p>Sales unit price</p> </td> </tr></tbody></table><ul><li> <ul><li> <ul><li>For all the above items, if the item name is empty in Xero, the value in code will be taken. </li> <li>For the Taxable field, the mapping is from <em>I sell this item</em>. If a value is set in Xero it will be pushed to PSA. If it's empty or none then the item will be marked non-taxable. </li> <li>Income and Expense account mapping is the same for all the items.</li> </ul></li> </ul></li> </ul><h4 data-id="exporting-items">Exporting items </h4> <p>The data is derived from the Setup options selected in PSA. </p> <table border="1"><tbody><tr><td> <p><strong>PSA Fields</strong></p> </td> <td> <p><strong>Xero Field</strong></p> </td> </tr><tr><td> <p>Name</p> </td> <td> <p>Name</p> </td> </tr><tr><td> <p>Description </p> </td> <td> <p>Sales Description</p> </td> </tr><tr><td> <p>Discount type</p> </td> <td> <p>Will be set to Amount</p> </td> </tr><tr><td> <p>Value</p> </td> <td> <p>Sales unit price</p> </td> </tr></tbody></table><ul><li> <ul><li> <ul><li>When exporting an item the account is taken on the Item level. <ul><li>Item level option (Finance > Item type > Income account)</li> <li>If the item level is empty it will take the default option in the setup ( Finance > Xero > Setup)</li> </ul></li> <li>Default Xero Inventory account, PSA doesn't have default inventory accounts so we rely on the setup option. Its always recommended to use the<strong> Inventory -630</strong> </li> </ul></li> </ul></li> </ul><p><img src="https://us.v-cdn.net/6032361/uploads/migrated/BNHJPQKMRLPT/mceclip0.png" alt="mceclip0.png" class="embedImage-img importedEmbed-img"></img></p> <hr></hr><h3 data-id="exporting-invoices">Exporting Invoices </h3> <p>The data is derived from the Setup options selected in PSA. Below are the fields when exporting an Invoice.</p> <table border="1"><tbody><tr><td> <p><strong>PSA Fields</strong></p> </td> <td> <p><strong>Xero Field</strong></p> </td> </tr><tr><td> <p>Account</p> </td> <td> <p>Contact</p> </td> </tr><tr><td> <p>P.O.Number</p> </td> <td> <p>Reference number </p> </td> </tr><tr><td> <p>Invoice Date</p> </td> <td> <p>Invoice date ( Setting in Setup options )</p> </td> </tr><tr><td> <p>Due Date</p> </td> <td> <p>Due date</p> </td> </tr><tr><td> <p>Tax Item</p> </td> <td> <p>Sales Tax</p> </td> </tr><tr><td> <p>Total Price</p> </td> <td> <p>Total ( auto-calculated based on items and tax)</p> </td> </tr><tr><td> <p>Grand Total</p> </td> <td> <p>Balance due</p> </td> </tr><tr><td>Address</td> <td> <p>Billing address</p> </td> </tr></tbody></table><h4 data-id="n-a-3"> </h4> <h4 data-id="invoice-items">Invoice Items </h4> <table border="1"><tbody><tr><td> <p><strong>PSA Fields</strong></p> </td> <td> <p><strong>Xero Field </strong></p> </td> </tr><tr><td> <p>Item Name</p> </td> <td> <p>Item Code</p> </td> </tr><tr><td> <p>Description </p> </td> <td> <p> Description </p> </td> </tr><tr><td> <p>Quantity</p> </td> <td> <p>QTY</p> </td> </tr><tr><td> <p>Unit Price </p> </td> <td> <p>Unit Price</p> </td> </tr><tr><td> <p>Total Price</p> </td> <td> <p>Amount</p> </td> </tr><tr><td> <p>Taxable</p> </td> <td> <p>Taxable (Yes/No)</p> </td> </tr></tbody></table><ul><li> <ul><li> <ul><li>If the item is taxable in an invoice, the value will be sent to the Tax Rate field in Xero. </li> <li>If it's not taxable then it will be No VAT or Tax-exempt, depending on your company.</li> </ul></li> </ul></li> </ul><p><img src="https://us.v-cdn.net/6032361/uploads/migrated/BCPPB79J5472/mceclip4.png" alt="mceclip4.png" width="500" height="500" class="embedImage-img importedEmbed-img"></img></p> <hr></hr><h3 data-id="payments">Payments </h3> <table border="1"><tbody><tr><th> <p><strong>PSA Fields</strong></p> </th> <th> <p><strong>Xero Field </strong></p> </th> </tr><tr><td> <p>Account</p> </td> <td> <p>Contact</p> </td> </tr><tr><td> <p>Payment Date </p> </td> <td> <p>Payment Date</p> </td> </tr><tr><td> <p>Reference #</p> </td> <td> <p>Reference no</p> </td> </tr><tr><td> <p>Invoice Number</p> </td> <td> <p>Invoice number</p> </td> </tr><tr><td> <p>Amount</p> </td> <td> <p>Amount Received</p> </td> </tr></tbody></table><p>Related articles </p> <p>Refer to this guide for<strong> <a href="/home/leaving?allowTrusted=1&target=https%3A%2F%2Fkaseya.vanillacommunities.com%2Fkb%2Farticles%2Faliases%2Fkaseya%2Fhc%2Fen-gb%2Farticles%2F360018906037" rel="noopener nofollow"> FAQs | BMS with Xero</a></strong></p> <p>Refer to this guide for Data mapping details - <a href="/home/leaving?allowTrusted=1&target=https%3A%2F%2Fkaseya.vanillacommunities.com%2Fkb%2Farticles%2Faliases%2Fkaseya%2Fhc%2Fen-gb%2Farticles%2F360018732458-Mapping-Xero-" rel="noopener nofollow"><strong>Data mapping : Xero and BMS</strong></a></p> </article> </main>