QuickBooks Online


Link ExpenseBot to your QuickBooks Online account and eliminate the need to import and export data between systems.  

With ExpenseBot you can export your  Expense Reports to QuickBooks Online in one of two ways:

  • Expense Reports exported as a Check entity and assigned to an Employee
  • Expense Reports exported as a Bill entity and assigned to a Vendor

Read on to learn exactly what this means!

What Data does ExpenseBot Send to/Receive from QuickBooks Online?

ExpenseBot Users:  Depending on your selected configuration, ExpenseBot will sync any Employee or Vendor entities from your QuickBooks Online account and sync them with existing Users that match in ExpenseBot. 

In order of priority, ExpenseBot attempts to match QuickBooks Online entities ( Employees or Vendors) to ExpenseBot Users by:

  1. ExpenseBot user's e-mail to QuickBooks Online entity's primary e-mail address
  2. ExpenseBot user's employee id to QuickBooks Online entity's employee or account id
  3. ExpenseBot user's first and last name to QuickBooks Online entity's first and last name

Every time a sync is run, ExpenseBot will monitor QuickBooks Online for any changes in your synchronized  Users and keep them up to date.

Important!  ExpenseBot will only synchronize QuickBooks Online entities with  Users that already exist on the ExpenseBot side.  We require that each User be set up in advance before the synchronization can occur - we don't yet import and create Users directly from QuickBooks Online.

For example, if you add a new  Vendor into your QuickBooks Online account, you'd also have to create the User in ExpenseBot.  After completing both of these steps, the entities would be synced.

ExpenseBot Categories: ExpenseBot will import all Chart of Account:Expense items from your QuickBooks Online instance to ExpenseBot.  Once imported, an administrator will be responsible for creating or mapping existing ExpenseBot Categories to these imported Chart of Account entries.

During initial integration setup, you'll be prompted to choose a default  Chart of Account expense category.  This is important!  ExpenseBot needs this in order to ensure that when Checks or Bills are exported from ExpenseBot, we'll have a default Chart of Account to apply expenses to if we're unable to find a matching Category.

ExpenseBot Entities:  ExpenseBot will import all Customers from QuickBooks Online and create Entities for each of them.  Note that Entity is our generic term, and that Entity label can be changed to whatever you'd like by scrolling to the bottom of the 'Administrate' menu.

ExpenseBot Projects:  ExpenseBot will import all Classes from QuickBooks Online and create Projects for each of them.  Note that Project is our generic term, and that Project can be changed to whatever you'd like by scrolling to the bottom of the 'Administrate' menu.

Expense Reports:  Expense reports will be synced to your QuickBooks Online account as split items within a Check or Bill entry, due to the Employee or Vendor who submitted the expense report.  The Check or Bill entry will be applied against a default Banking Account that you will choose during the integration set up.  Each line-item transaction will be applied against the corresponding Chart of Accounts: Expense account as mapped by an administrator OR the default that was selected during integration setup.

When the  Check or Bill is paid in QuickBooks Online, the corresponding Expense Report in ExpenseBot will be updated as paid.

Set up the Integration

To set up the Integration, you must be an Admin on your QuickBooks Online account and on ExpenseBot.

On the top navigation bar, click on 'Administrate' and then click 'Integrations' in the left nav menu.

Click the 'Add Integration' text next to QuickBooks Online.

You should see the following modal: 

Use the dropdown menu to select your QuickBooks Online configuration, and then click the 'Connect to QuickBooks' button.

This button will launch a smaller pop-up window.  If you do not see the pop-up window, make sure you enable pop-ups for the ExpenseBot domain. 

The window will present you with an opportunity to enter credentials to your QuickBooks Online account:

Enter your credentials, and click 'Sign In'.  The window should update to look something like:

Click 'Authorize' to authorize data exchange between QuickBooks Online and ExpenseBot.  When the security negotiation is complete between them, the pop-up's text will change to 'You can safely close this window.'  You may close the smaller pop-up window now if you wish.

It may take a second, but you will then be prompted to select your Company's default Bank Account for reimbursement of any Expense Reports that are synchronized between the two system.  Don't worry - you can always change the payment account in QuickBooks Online - we just need a default to be able to sync against.

The prompt will look like this:Select your Company's banking account to use for reimbursement and click 'Set Default Reimbursement Account'.  This will kick off the first synchronization activity between QuickBooks Online and ExpenseBot!

Once the initial synchronization is complete, you'll be presented with a dropdown menu that contains all of your QuickBooks Online  Chart of Account: Expense entries:

As indicated above - this default setting is what ExpenseBot will apply expenses towards during export if another mapped category cannot be found.  To learn about mapping categories, read on!

Mapping Categories to Chart of Account: Expenses

Let's go look at  Categories now.  You can click on the link provided within the Integration modal, or if you've already closed it click on 'Expense Categories' on the left menu.

You'll see a list of the IRS defined expense categories by default, and some drop-down menus in the 'Integration Category' column.  Here is where you can select which  Chart of Account Expenses should be matched to which ExpenseBot Category.  Likewise, you can create and map any new Category if what you're looking for isn't there by default.

Note that if any new  Chart of Account entries are added to QuickBooks Online in subsequent syncs, you'd have to attend to mapping it if you would like it to be used with an ExpenseBot Category.

Important!  If you ever need to change your company's default  Chart of Accounts you can do so by going to the 'Integrations' menu and clicking the 'Edit' button.

Customers and Classes

Click on 'Lists' on the top navigation bar.  This list should contain all  Customer entries that were imported from QuickBooks Online. 

Click on 'Projects' on the left navigation bar.  This list should contain all  Class entries that were imported from QuickBooks Online.

Note that Entities or Projects that are created on the  ExpenseBot side will not be exported to QuickBooks Online.

How Expense Reports are Synced

The following example is run with a  Check and Employee configuration.

Create an  Expense Report with a few Expenses in it.  Have your Expenses refer to your mapped Categories!  If you'd like, select a Project or Entity to apply the expense to.  Add some receipt images to the Expenses if you'd like. When satisfied, submit the report. 

Since you are an admin, you can approve your own report!  Click on the 'Processing' entry in the top navigation bar.  Approve your report - then click on 'Awaiting Processing'.

Click on the 'Awaiting Reimbursement' tab and click 'Reimburse'. You should see a dialog with a 'Payment Method' drop down:

Select 'Accounting System' and click 'Reimburse Report'.

Click the 'Payment Pending' item on the left navigation menu and see that your Expense Report is pending payment.

If we assume that your QuickBooks Online Employee and ExpenseBot User are in sync (similar e-mail address and/or same first and last name and/or same employee id) we can manually run a synchronization and see the Expense Report migrated to QuickBooks Online.

Click 'Administrate' and then select the 'Integrations' entry in the left menu.  Click the 'Sync' button:

As it says, the integration will automatically sync overnight; however, if you need to run it manually, click the 'Synchronize!' button.  When the sync is complete, you should see something like this:

Each sync will inform you what it found.  In this case, as it says:

  • No new or updated Chart of Accounts: Expense items were found. 
  • One Employee was found - the admin!
  • One Expense Report in the payment pending state was sent to QuickBooks Online.
  • No previously synced Expense Reports have been marked as paid in QuickBooks Online.

It shouldn't be surprising that the one report you just created, submitted, approved, and reimbursed is the one report that was moved to QuickBooks Online.  Let's go see it:

You can see that the  Expense Report has been created as the highlighted Check entry under Transactions->Expenses in QuickBooks Online.  Open the Check to see what information was synced:

Line items should map to this  Check.  For now, you'll still have to denote expenses as Billable and select an applicable Customer if necessary - but we anticipate those features will also be automated soon.

Click on 'Print check' to reimburse this test report and go through the reimbursement process.

Go back to ExpenseBot and run the QuickBooks Online sync again:

Congratulations!  You have reimbursed your own report using your company's QuickBooks Online accounting system!

Questions?  Feedback?

As always, if you have any questions, ideas, or concerns about this or any other feature of ExpenseBot, please don't hesitate to contact us at support@expensebot.com!

Still need help? Contact Us Contact Us