The following 3 methods in QBXMLHelper.cs pertain to Shipping, Tax, and Discounts on a given invoice:
private static XmlElement CreateDiscountLineAddNode(XmlDocument xml, decimal amount)
{
XmlElement el = xml.CreateElement("DiscountLineAdd");
el.AppendChild(CreateAmtTypeNode(xml, "Amount", amount));
el.AppendChild(CreateRefNode(xml, "AccountRef", QBManager.QBDiscountAccountRef));
return el;
}
private static XmlElement CreateShippingLineAddNode(XmlDocument xml, decimal amount)
{
XmlElement el = xml.CreateElement("ShippingLineAdd");
el.AppendChild(CreateAmtTypeNode(xml, "Amount", amount));
el.AppendChild(CreateRefNode(xml, "AccountRef", QBManager.QBShippingAccountRef));
return el;
}
private static XmlElement CreateSalesTaxLineAddNode(XmlDocument xml, decimal amount)
{
XmlElement el = xml.CreateElement("SalesTaxLineAdd");
el.AppendChild(CreateAmtTypeNode(xml, "Amount", amount));
el.AppendChild(CreateRefNode(xml, "AccountRef", QBManager.QBSalesTaxAccountRef));
return el;
}
If you note the Intuit SDK Documentation at https://member.developer.intuit.com/qbSDK-current/Common/newOSR/index.html, under the 'InvoiceAdd' message Request overview there are no methods which resemble DiscountLineAdd', 'ShippingLineAdd', or 'SalesTaxLineAdd'. Googling these element names brought me to a few very old posts suggesting the elements were added to the spec, but as far as I can tell, they are no longer valid.
Does anyone happen to know how these are supposed to work?
Edit
-------
After some further digging I found out that 'SalesTaxLineAdd', 'DiscountLineAdd' and 'ShippingLineAdd' methods only apply to Quickbooks Online Edition. http://consolibyte.com/forum/viewtopic.php?id=47
Was QBOE the intended subscriber for these declarations?