Showing results for 
Search instead for 
Did you mean: 
Level 2

Assign Class to the entire bill


I am using Quickbooks Pro 2016. I want to assign the class to the entire bill instead of each GL line. How can I achieve it? 

6 Comments 6

Assign Class to the entire bill

Good day, xcchaitime.


Assigning a class to an entire bill is currently unavailable in QuickBooks Pro. You will need to select a class to each line items when creating the bill. 


Let's send a feature request to our engineers about being able to assign a class to the entire bill. Simply click the Help menu and select Send Feedback Online


Our engineers will collect all customer suggestions and will review if they can use them for future updates. I'll be around if you have other questions. 

Level 2

Assign Class to the entire bill

Is it that this feature is not available on QB Desktop at all or is it available in latest versions of QB Desktop? I heard that this is available in higher version? Can you confirm if an upgrade will help me get this feature?

Not applicable

Assign Class to the entire bill

Hello, xcchaitime. 


Assigning class to the entire bill is available in QuickBooks Desktop Enterprise. You might want to upgrade your subscription if you’d like to take advantage of this feature.

Please refer to this article about upgrading your subscription:


Please don’t feel hesitant to reach us again if you have other questions.

Level 15

Assign Class to the entire bill




Please Learn from this input.




Pro is the Entry Level program. Your file will open just fine in Premier. Premier offers Balance Sheet by Class. Your Pro program doesn't care about AP Class. You don't even have that in your reporting.


Get Premier. Install it as one of the Premier Editions that has the other tools you want, such as Backorder tracking is only in Retail or Wholesale/Manufacturing.


Do Not Get Enterprise; only get Enterprise if you need those Powerful and Expensive functions. What you want is available in Premier.


Please see my attachment.

Level 2

Assign Class to the entire bill


I am testing the class assignment at the bill level with QB Enterprise version using the APIs. When I try to pass the class object with the bill it doesn't reflect the change in QB. See the code snippet below. Am I doing something wrong? I want to assign the class at the transaction level using the APIs such the class shows at the bill level when synced through the web connector. Any help is appreciated.


XmlDocument inputXMLDoc = new XmlDocument();
inputXMLDoc.AppendChild(inputXMLDoc.CreateXmlDeclaration("1.0", "ISO-8859-1", null));
inputXMLDoc.AppendChild(inputXMLDoc.CreateDocumentType("QBXML", "-//INTUIT//DTD QBXML QBD 13.0//EN", null, null));

XmlElement qbXML = inputXMLDoc.CreateElement("QBXML");
XmlElement qbXMLMsgsRq = inputXMLDoc.CreateElement("QBXMLMsgsRq");
qbXMLMsgsRq.SetAttribute("onError", "continueOnError");

if (IsFirst)
XmlElement ClassQueryRq = inputXMLDoc.CreateElement("PreferencesQueryRq");

if (DT.Rows[rowcount][0].ToString() == "TRNS")

if ((DT.Rows[rowcount]["TRNSTYPE"].ToString() == "BILL") && (Convert.ToDecimal(DT.Rows[rowcount]["AMOUNT"]) > 0))
if (string.IsNullOrEmpty(RMS_Invoice_RefID))
XmlElement BillAddRq = inputXMLDoc.CreateElement("BillAddRq");
XmlElement BillAdd = inputXMLDoc.CreateElement("BillAdd");
XmlElement VendorRef = inputXMLDoc.CreateElement("VendorRef");
VendorRef.AppendChild(MakeSimpleElem(inputXMLDoc, "FullName", DT.Rows[rowcount]["NAME"].ToString()));
XmlElement APAccountRef = inputXMLDoc.CreateElement("APAccountRef");
APAccountRef.AppendChild(MakeSimpleElem(inputXMLDoc, "FullName", DT.Rows[rowcount]["ACCNT"].ToString()));
BillAdd.AppendChild(MakeSimpleElem(inputXMLDoc, "TxnDate", DT.Rows[rowcount]["DATE"].ToString()));
BillAdd.AppendChild(MakeSimpleElem(inputXMLDoc, "DueDate", DT.Rows[rowcount]["DUEDATE"].ToString()));
BillAdd.AppendChild(MakeSimpleElem(inputXMLDoc, "RefNumber", DT.Rows[rowcount]["DOCNUM"].ToString()));

if (SessionHelper.IsUsingClassTracking)
if (SessionHelper.IsAssignClassTo != "None")
if (!string.IsNullOrEmpty(DT.Rows[rowcount]["CLASS"].ToString()))
XmlElement ClassRef = inputXMLDoc.CreateElement("ClassRef");
ClassRef.AppendChild(MakeSimpleElem(inputXMLDoc, "FullName", DT.Rows[rowcount]["CLASS"].ToString()));

if (SessionHelper.IsMemoRequired)
BillAdd.AppendChild(MakeSimpleElem(inputXMLDoc, "Memo", GetBaseURL() + "invoiceviewer/" + EnDecrypt(Invoice_Index.ToString())));


while (DT.Rows[rowcount][0].ToString() == "SPL")
XmlElement ExpenseLineAdd = inputXMLDoc.CreateElement("ExpenseLineAdd");
XmlElement AccountRef = inputXMLDoc.CreateElement("AccountRef");
AccountRef.AppendChild(MakeSimpleElem(inputXMLDoc, "FullName", DT.Rows[rowcount]["NAME"].ToString()));
ExpenseLineAdd.AppendChild(MakeSimpleElem(inputXMLDoc, "Amount", DT.Rows[rowcount]["AMOUNT"].ToString()));
ExpenseLineAdd.AppendChild(MakeSimpleElem(inputXMLDoc, "Memo", DT.Rows[rowcount]["MEMO"].ToString()));
//if (SessionHelper.IsUsingClassTracking)
// if (!string.IsNullOrEmpty(DT.Rows[rowcount]["CLASS"].ToString()))
// {
// XmlElement ClassRef = inputXMLDoc.CreateElement("ClassRef");
// ExpenseLineAdd.AppendChild(ClassRef);
// ClassRef.AppendChild(MakeSimpleElem(inputXMLDoc, "FullName", DT.Rows[rowcount]["CLASS"].ToString()));
// }

QuickBooks Team

Assign Class to the entire bill

Hi there, xcchaitime.


Thanks for reaching out back to us. Let me help you get in touch with our developers.


For help assigning classes at the bill level with QB Enterprise version using the APIs, I suggest visiting the Intuit Developers site. You can post and provide the codes there as they have in-depth information about the backend of Quickbooks.


You can get in touch with them through this link: Intuit Developers.


Please don't hesitate to post again or leave a comment should you have any other concern. I'm always here to help. Take care!

Need to get in touch?

Contact us