In Quickbooks desktop version, when I run a transaction detail report for transaction type of Invoice, I have 5 accounts displayed: Accounts Receivable, Inventory Asset, Sales Tax Payable, Sales and Cost of Goods Sold.
However, when I run this via .NET IPP DevKit v2, I only see 3 of these accounts: Accounts Receivable, Sales Tax Payable and Sales. So, the Inventory and Cost of Goods Sold are missing.
Code:
CustomTxnDetail detail = new CustomTxnDetail();
detail.OfferingId = offeringId.ipp;
detail.OfferingIdSpecified = true;
detail.ReportBasis = ReportBasisEnum.Accrual;
detail.ReportBasisSpecified = true;
detail.ItemsElementName = new ItemsChoiceType6[] {
ItemsChoiceType6.StartTransactionDate,
ItemsChoiceType6.EndTransactionDate,
};
detail.Items = new object[] {
new DateTime(2013, 1, 1),
new DateTime(2013, 12, 31),
};
detail.Columns = new[] {
DetailColumnsEnum.AccountId,
DetailColumnsEnum.AccountName,
DetailColumnsEnum.Amount,
DetailColumnsEnum.DocNum,
DetailColumnsEnum.ItemId,
DetailColumnsEnum.ItemName,
DetailColumnsEnum.ItemType,
DetailColumnsEnum.TxnDate,
DetailColumnsEnum.TxnId,
DetailColumnsEnum.TxnLineId,
DetailColumnsEnum.TxnType,
DetailColumnsEnum.UnitPrice,
};
detail.TxnType = new[] {
TxnTypeEnum.Invoice,
};
ReportingServices rptSvc = new ReportingServices(context);
Report rpt = rptSvc.CustomTxnDetailsReport(detail);
Request:
<?xml version="1.0" encoding="utf-8"?>
<AdvancedReportQuery xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.intuit.com/sb/cdm/v2">
<CustomTxnDetail>
<OfferingId>ipp</OfferingId>
<StartTransactionDate>2013-01-01T00:00:00</StartTransactionDate>
<EndTransactionDate>2013-12-31T00:00:00</EndTransactionDate>
<TxnType>Invoice</TxnType>
<ReportBasis>Accrual</ReportBasis>
<Columns>AccountId</Columns>
<Columns>AccountName</Columns>
<Columns>Amount</Columns>
<Columns>DocNum</Columns>
<Columns>ItemId</Columns>
<Columns>ItemName</Columns>
<Columns>ItemType</Columns>
<Columns>TxnDate</Columns>
<Columns>TxnId</Columns>
<Columns>TxnLineId</Columns>
<Columns>TxnType</Columns>
<Columns>UnitPrice</Columns>
</CustomTxnDetail>
</AdvancedReportQuery>
Response:
<?xml version="1.0" encoding="UTF-8"?>
<!--XML GENERATED by IntuitDataSyncEngine (IDS) using \\SBDomainServices\CDM\branches\3.9.0-rel-1-->
<RestResponse xmlns="http://www.intuit.com/sb/cdm/v2"
xmlns:xdb ="http://xmlns.oracle.com/xdb"
xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation ="http://www.intuit.com/sb/cdm/v2 RestDataFilter.xsd">
<Report name="CustomerTxnDetail">
<ColDesc>
<ColTitle>AccountId</ColTitle>
<ColType>ids_IdType</ColType>
</ColDesc>
<ColDesc>
<ColTitle>AccountName</ColTitle>
<ColType>ids_String</ColType>
</ColDesc>
<ColDesc>
<ColTitle>Amount</ColTitle>
<ColType>ids_Amount</ColType>
</ColDesc>
<ColDesc>
<ColTitle>DocNum</ColTitle>
<ColType>ids_String</ColType>
</ColDesc>
<ColDesc>
<ColTitle>ItemId</ColTitle>
<ColType>ids_IdType</ColType>
</ColDesc>
<ColDesc>
<ColTitle>ItemName</ColTitle>
<ColType>ids_String</ColType>
</ColDesc>
<ColDesc>
<ColTitle>ItemType</ColTitle>
<ColType>ids_String</ColType>
</ColDesc>
<ColDesc>
<ColTitle>TxnDate</ColTitle>
<ColType>ids_Date</ColType>
</ColDesc>
<ColDesc>
<ColTitle>TxnId</ColTitle>
<ColType>ids_IdType</ColType>
</ColDesc>
<ColDesc>
<ColTitle>TxnLineId</ColTitle>
<ColType>ids_IdType</ColType>
</ColDesc>
<ColDesc>
<ColTitle>TxnType</ColTitle>
<ColType>ids_String</ColType>
</ColDesc>
<ColDesc>
<ColTitle>UnitPriceQnty</ColTitle>
<ColType>ids_Amount</ColType>
</ColDesc>
<Data>
<DataRow>
<ColData>6</ColData>
<ColData>Sales</ColData>
<ColData>-524.85</ColData>
<ColData/>
<ColData>39</ColData>
<ColData>201</ColData>
<ColData>Inventory</ColData>
<ColData>2013-09-18</ColData>
<ColData/>
<ColData/>
<ColData>Invoice</ColData>
<ColData>34.99</ColData>
</DataRow>
<DataRow>
<ColData>6</ColData>
<ColData>Sales</ColData>
<ColData>-174.95</ColData>
<ColData/>
<ColData>40</ColData>
<ColData>200</ColData>
<ColData>Inventory</ColData>
<ColData>2013-09-18</ColData>
<ColData/>
<ColData/>
<ColData>Invoice</ColData>
<ColData>34.99</ColData>
</DataRow>
<DataRow>
<ColData>6</ColData>
<ColData>Sales</ColData>
<ColData>-209.94</ColData>
<ColData/>
<ColData>37</ColData>
<ColData>203</ColData>
<ColData>Inventory</ColData>
<ColData>2013-09-18</ColData>
<ColData/>
<ColData/>
<ColData>Invoice</ColData>
<ColData>34.99</ColData>
</DataRow>
<DataRow>
<ColData>32</ColData>
<ColData>Sales Tax Payable</ColData>
<ColData>0</ColData>
<ColData/>
<ColData>1</ColData>
<ColData>Out of State</ColData>
<ColData>Sales Tax Item</ColData>
<ColData>2013-09-18</ColData>
<ColData/>
<ColData/>
<ColData>Invoice</ColData>
<ColData/>
</DataRow>
<DataRow>
<ColData>32</ColData>
<ColData>Sales Tax Payable</ColData>
<ColData>0</ColData>
<ColData/>
<ColData>1</ColData>
<ColData>Out of State</ColData>
<ColData>Sales Tax Item</ColData>
<ColData>2013-09-18</ColData>
<ColData/>
<ColData/>
<ColData>Invoice</ColData>
<ColData/>
</DataRow>
<DataRow>
<ColData>35</ColData>
<ColData>Accounts Receivable</ColData>
<ColData>734.79</ColData>
<ColData/>
<ColData/>
<ColData/>
<ColData/>
<ColData>2013-09-18</ColData>
<ColData/>
<ColData/>
<ColData>Invoice</ColData>
<ColData/>
</DataRow>
<DataRow>
<ColData>35</ColData>
<ColData>Accounts Receivable</ColData>
<ColData>174.95</ColData>
<ColData/>
<ColData/>
<ColData/>
<ColData/>
<ColData>2013-09-18</ColData>
<ColData/>
<ColData/>
<ColData>Invoice</ColData>
<ColData/>
</DataRow>
</Data>
</Report>
</RestResponse>
Any thoughts? I'm totally stuck :(
It turns out that this is a known bug in the Quickbooks API. I opened a ticket with Intuit. They were extremely helpful and one of their developers was able to reproduce this problem.
However, there is no workaround for this right now. And, I was left with the impression that it won't be fixed anytime soon.
QBD V2: Intuit acknowledges this is a bug. (CustomTxnDetail does not return COGS transactions)
QBD V3: As of this posting, there are no ReportingServices available in V3
If anyone else finds a workaround for retrieving actual cost transactions that can be tracked back to an invoice/sales receipt, I would greatly appreciate hearing about how you did it.