June 21, 2017 | Nimisha Shrivastava

Reimburse charge support with QuickBooks Online API

We have had requests from multiple developers to expose details of ReimburseCharge (also known as Expense Charge or Billable Expense) linked transactions for Invoice objects. Our teams worked diligently on understanding the underlying data requirements and have provided read support for all details related to ReimburseCharge for Invoice objects starting with minorversion=9 or greater.

Before we understand changes made and associated data requirements, let’s understand reimbursable charges.

Reimbursable charge use case

Consider that you have some Expenses for the services or items that you want to pay right away. You might want to get these reimbursed later on from the actual Customer by Invoicing them. So, you mark your Expense/Bill lines as Billable to some customer to be invoiced later.Such expenses are called a Reimburse Charge.

Prerequisites

  1. Go to the company file->Settings->Expense tab-> Bills and Expenses->Make expenses and items billable and Enable Markup and Track Billable Expenses as Income.
  2. Go to any one of your expense accounts in Chart of Accounts and then make this change: Use for Billable   Expenses and assign a Revenue account

Create a billable expense

All steps take place in the UI. Here I showcase two different uses cases in one Expense.

  1. Create an Expense/Bill for a Vendor in QuickBooks Online.
  2. Create these two types of lines within the Expense.
    • Add an account based line without line item. Make it Billable and assign a Customer to it.
      (You can use the Expense Account which has a Revenue/Income account attached just like we did for Repair and Maintenance Expense account above.)
    • Add an item based line. Make it Billable and assign a Customer to this line.
      For consistency, keep the Customer the same in both the lines.
    • Save the Expense.

There are two types of Invoice lines that can be built around these expenses.

  • AccountBased line
  • ItemBased line

So, this is how the Expense screens appears. Each individual line represents a billable expense (reimbursable charge) to the customer Nemo.

Click on View to see how the  Billable Expense screen appears.

3. Create an Invoice and select Nemo customer. Both billable expenses are available to link to this Invoice..

4. Add all the billable expenses to the Invoice and click Save.

This completes the use case for linking Billable Expenses to invoice.

This completes the use case for linking Billable Expenses to invoice.

Details of the change:

Before minorversion=9 release, if any invoice had a linked txn of type ReimburseCharge without any item, it got added to the Invoice from QuickBooks Online UI as a line without any item attached.

  • The QuickBooks API did not return the amounts associated with that line because it became a Description Only line due to lack of associated ItemRef.
  • Additionally, there was no way of knowing the actual ReimburseCharge linked to the Invoice and the Markup Info was not attached to the Reimburse Charge line if the lines are moved around after initial linking.

See the response for Invoice before minorversion=9 support. Notice how each line is separate and how lines having no item come up as Description lines in the response code.

Before minorversion=9 release, if any invoice had a linked txn of type ReimburseCharge without any item, it got added to the Invoice from QuickBooks Online UI as a line without any item attached.

  • The QuickBooks API did not return the amounts associated with that line because it became a Description Only line due to lack of associated ItemRef.
  • Additionally, there was no way of knowing the actual ReimburseCharge linked to the Invoice and the Markup Info was not attached to the Reimburse Charge line if the lines are moved around after initial linking.

See the response for Invoice before minorversion=9 support. Notice how each line is separate and how lines having no item come up as Description lines in the response code.

<Invoice domain=”QBO” sparse=”false”>
<Id>407</Id>
<SyncToken>1</SyncToken>
<MetaData>
<CreateTime>2017-06-13T17:43:21-07:00</CreateTime>
<LastUpdatedTime>2017-06-13T17:53:43-07:00</LastUpdatedTime>
</MetaData>
<CustomField>
<DefinitionId>1</DefinitionId>
<Name>RO</Name>
<Type>StringType</Type>
</CustomField>
<DocNumber>934</DocNumber>
<TxnDate>2017-06-13</TxnDate>
<CurrencyRef name=”United States Dollar”>USD</CurrencyRef>
<ExchangeRate>1</ExchangeRate>
<LinkedTxn>
<TxnId>404</TxnId>
<TxnType>ReimburseCharge</TxnType>
</LinkedTxn>
<LinkedTxn>
<TxnId>406</TxnId>
<TxnType>ReimburseCharge</TxnType>
</LinkedTxn>
<Line>
<Id>1</Id>
<LineNum>1</LineNum>
<Description>Account line without item</Description>
<DetailType>DescriptionOnly</DetailType>
<DescriptionLineDetail />
</Line>
<Line>
<Id>2</Id>
<LineNum>2</LineNum>
<Description>2% markup for Account line without item</Description>
<DetailType>DescriptionOnly</DetailType>
<DescriptionLineDetail />
</Line>
<Line>
<Id>5</Id>
<LineNum>3</LineNum>
<Description>Item line with item</Description>
<Amount>66.00</Amount>
<DetailType>SalesItemLineDetail</DetailType>
<SalesItemLineDetail>
<ItemRef name=”MilkyBar”>53</ItemRef>
<UnitPrice>66</UnitPrice>
<Qty>1</Qty>
<TaxCodeRef>NON</TaxCodeRef>
</SalesItemLineDetail>
</Line>
<Line>
<Id>6</Id>
<LineNum>4</LineNum>
<Description>4% markup for Item line with item</Description>
<DetailType>DescriptionOnly</DetailType>
<DescriptionLineDetail />
</Line>
<Line>
<Amount>91.08</Amount>
<DetailType>SubTotalLineDetail</DetailType>
<SubTotalLineDetail />
</Line>
<TxnTaxDetail>
<TotalTax>0</TotalTax>
</TxnTaxDetail>
<CustomerRef name=”Nemo”>61</CustomerRef>
<CustomerMemo>mio</CustomerMemo>
<SalesTermRef>3</SalesTermRef>
<DueDate>2017-07-13</DueDate>
<TotalAmt>91.08</TotalAmt>
<HomeTotalAmt>91.08</HomeTotalAmt>
<ApplyTaxAfterDiscount>false</ApplyTaxAfterDiscount>
<PrintStatus>NotSet</PrintStatus>
<EmailStatus>NotSet</EmailStatus>
<Balance>91.08</Balance>
<HomeBalance>91.08</HomeBalance>
<Deposit>0</Deposit>
<AllowIPNPayment>false</AllowIPNPayment>
<AllowOnlinePayment>false</AllowOnlinePayment>
<AllowOnlineCreditCardPayment>false</AllowOnlineCreditCardPayment>
<AllowOnlineACHPayment>false</AllowOnlineACHPayment>
</Invoice>

Reimburse Charge release with minorversion=9

To resolve for the above issues, we now support the following format for Invoice having a ReimburseCharge linked txn with minorversion =9, or a supported  higher minorversion

  • A default ItemRef (Item.Id=1).
  • An ItemAccountRef element to associate the expense to the Billable Expense Account.
  • The MarkupInfo line is now located with the Reimburse Charge line so that developers can associate the details with the Reimburse Charge line. A new field MarkupInfo.MarkupIncomeAccountRef is now available to hold associated account for the Markup amount.
  • The Reimburse Charge is now represented as SalesItemLineDetail line, along with the associated amount, due to assignment of a default Item.
  • For any line with an attached item, the ItemAccountRef references the account of the Item.
  • See how the LinkedTxn element still provides the same info.
  • You can only do a read on Reimburse Charge Linked Txn.

What has not changed:

So, minorversion=9 or a higher supported minorversion provides you any information your app needs related to ReimburseCharge Linked Txn.

  • It does not affect any other behavior of the updates to the Invoice object or any other transaction objects.
  • You cannot create Reimburse Charge linked Txn via API. This behavior has not changed.

GET https://quickbooks.api.intuit.com/v3/company/1269959970/invoice/407?minorversion=9&requestid=2c64b90811074cbc90c6bc4fadaa95c6 HTTP/1.1

<?xml version=”1.0″ encoding=”UTF-8″ standalone=”yes”?>
<IntuitResponse
xmlns=”http://schema.intuit.com/finance/v3″ time=”2017-06-13T17:48:55.654-07:00″>
<Invoice domain=”QBO” sparse=”false”>
<Id>407</Id>
<SyncToken>0</SyncToken>
<MetaData>
<CreateTime>2017-06-13T17:43:21-07:00</CreateTime>
<LastUpdatedTime>2017-06-13T17:43:21-07:00</LastUpdatedTime>
</MetaData>
<CustomField>
<DefinitionId>1</DefinitionId>
<Name>RO</Name>
<Type>StringType</Type>
</CustomField>
<DocNumber>934</DocNumber>
<TxnDate>2017-06-13</TxnDate>
<CurrencyRef name=”United States Dollar”>USD</CurrencyRef>
<ExchangeRate>1</ExchangeRate>
<LinkedTxn>
<TxnId>406</TxnId>
<TxnType>ReimburseCharge</TxnType>
</LinkedTxn>
<LinkedTxn>
<TxnId>404</TxnId>
<TxnType>ReimburseCharge</TxnType>
</LinkedTxn>
<Line>
<Id>1</Id>
<LineNum>1</LineNum>
<Description>Account line without item</Description>
<Amount>22.00</Amount>
<DetailType>SalesItemLineDetail</DetailType>
<SalesItemLineDetail>
<ItemRef name=”Services”>1</ItemRef>
<MarkupInfo>
<PercentBased>true</PercentBased>
<Value>0.44</Value>
<Percent>2</Percent>
<MarkUpIncomeAccountRef name=”Rental Income”>5</MarkUpIncomeAccountRef>
</MarkupInfo>
<ItemAccountRef name=”Sales of Product Revenue”>17</ItemAccountRef>
<TaxCodeRef>NON</TaxCodeRef>
</SalesItemLineDetail>
</Line>

<Line>
<Id>5</Id>
<LineNum>5</LineNum>
<Description>Item line with item</Description>
<Amount>66.00</Amount>
<DetailType>SalesItemLineDetail</DetailType>
<SalesItemLineDetail>
<ItemRef name=”MilkyBar”>53</ItemRef>
<UnitPrice>66</UnitPrice>
<MarkupInfo>
<PercentBased>true</PercentBased>
<Value>2.64</Value>
<Percent>4</Percent>
<MarkUpIncomeAccountRef name=”Rental Income”>5</MarkUpIncomeAccountRef>
</MarkupInfo>
<Qty>1</Qty>
<ItemAccountRef name=”Services”>1</ItemAccountRef>
<TaxCodeRef>NON</TaxCodeRef>
</SalesItemLineDetail>
</Line>
<Line>
<Amount>91.08</Amount>
<DetailType>SubTotalLineDetail</DetailType>
<SubTotalLineDetail/>
</Line>
<TxnTaxDetail>
<TotalTax>0</TotalTax>
</TxnTaxDetail>
<CustomerRef name=”Nemo”>61</CustomerRef>
<CustomerMemo>mio</CustomerMemo>
<SalesTermRef>3</SalesTermRef>
<DueDate>2017-07-13</DueDate>
<TotalAmt>91.08</TotalAmt>
<HomeTotalAmt>91.08</HomeTotalAmt>
<ApplyTaxAfterDiscount>false</ApplyTaxAfterDiscount>
<PrintStatus>NotSet</PrintStatus>
<EmailStatus>NotSet</EmailStatus>
<BillEmailCc>
<Address>him.kec@gmail.com</Address>
</BillEmailCc>
<BillEmailBcc>
<Address>hao_lu@intuit.com</Address>
</BillEmailBcc>
<Balance>91.08</Balance>
<HomeBalance>91.08</HomeBalance>
<Deposit>0</Deposit>
<AllowIPNPayment>false</AllowIPNPayment>
<AllowOnlinePayment>false</AllowOnlinePayment>
<AllowOnlineCreditCardPayment>false</AllowOnlineCreditCardPayment>
<AllowOnlineACHPayment>false</AllowOnlineACHPayment>
</Invoice>
</IntuitResponse>

Action needed: 

Any apps using minorversion = 9 or a higher supported QBO minorversion will need to validate the Invoice response changes for the Invoices linked with Reimburse Charges/Billable Expenses.

Links to the changes in the docs:

Comments

View all
Load more comments