CustomerAdd

The customer list includes information about the QuickBooks user’s customers and the individual jobs that are being performed for them. A CustomerRef aggregate refers to one of the customers (or customer jobs) on the list. In a request, if a CustomerRef aggregate includes both FullName and ListID, FullName will be ignored. Special cases to note:


Request

Response

XMLOps

VB.NET

C#

Tag Type Max length Implementation Required

ICustomerAdd

The customer list includes information about the QuickBooks user’s customers and the individual jobs that are being performed for them. A CustomerRef aggregate refers to one of the customers (or customer jobs) on the list. In a request, if a CustomerRef aggregate includes both FullName and ListID, FullName will be ignored. Special cases to note:In SalesReceipt and ReceivePayment requests, CustomerRef refers to the customer or customer job to which the payment is credited.In a TimeTracking request, CustomerRef refers to the customer or customer job to which this time could be billed. If IsBillable is set to true, CustomerRef is required in TimeTrackingAdd. In an ExpenseLineAdd request, if AccountRef refers to an A/P account, CustomerRef must refer to a vendor (not to a customer). If AccountRef refers to any other type of account, the CustomerRef must refer to a customer.
       

Name

The case-insensitive name of a list object, not including the names of its ancestors. Name must be unique, unless it is the Name of a “hierarchical” list object. List objects in different hierarchies can have duplicate names because their FullNames will still be unique. For example, two objects could both have the Name kitchen, but they could have unique FullNames, such as Job12:kitchen and Baker:kitchen. For built-in currencies, Name is the internationally accepted currency name and is not editable.
IQBStringType 41 chars   Y

IsActive

If IsActive is true, this object is currently enabled for use by QuickBooks. The default value is true.
IQBBoolType      

ClassRef

Classes can be used to separate transactions into meaningful categories. (For example, transactions could be classified according to department, business location, or type of work.) In QuickBooks, class tracking is off by default. A ClassRef aggregate refers to one of these named classes. For example, in a TimeTracking message, ClassRef refers to the QuickBooks class into which the timed activity falls. If a ClassRef aggregate includes both FullName and ListID, FullName will be ignored. In an InvoiceAdd request, if you specify a ClassRef for the whole invoice, that same ClassRef is automatically used in the line items. If you want to clear that (that is, have NO ClassRef for the line item, you can clear it in the line item by simply not specifying it in the line item.
IQBBaseRef   12.0  

ListID

Along with FullName, ListID is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a ListID. A ListID is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same ListID, and a customer could not have the same ListID as an employee (because Customer and Employee are both name lists). But a customer could have the same ListID as a non-inventory item.
IQBIDType   12.0  

FullName

FullName (along with ListID) is a way to identify a list object. The FullName is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. FullName values are not case-sensitive.
IQBStringType 159 chars 12.0  

ParentRef

A reference to the list object that is one level above this one. For example, an inventory item with the FullName of GermanCars:Mercedes-Benz:CL500I99AA might have a parent object with the FullName of GermanCars:Mercedes-Benz.In a request, if a ParentRef aggregate includes both FullName and ListID, FullName will be ignored.
IQBBaseRef      

ListID

Along with FullName, ListID is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a ListID. A ListID is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same ListID, and a customer could not have the same ListID as an employee (because Customer and Employee are both name lists). But a customer could have the same ListID as a non-inventory item.
IQBIDType      

FullName

FullName (along with ListID) is a way to identify a list object. The FullName is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. FullName values are not case-sensitive.
IQBStringType      

CompanyName

The name of the QuickBooks user’s business, as specified in QuickBooks. CompanyName and Address are used on invoices, checks, and other forms. (LegalCompanyName and LegalAddress, on the other hand, are used on a company’s tax forms and pay stubs.)
IQBStringType 41 chars    

Salutation

A formal reference, such as Mr. or Dr., that precedes a name.
IQBStringType 15 chars    

FirstName

The first name of a customer, vendor, employee, or person on the “other names” list.
IQBStringType 25 chars    

MiddleName

The middle name of a customer, vendor, employee, or person on the “other names” list.
IQBStringType 5 chars    

LastName

The last name of a customer, vendor, employee, or person on the “other names” list.
IQBStringType 25 chars    

JobTitle

The job title of a customer, vendor, employee, or person on the “other names” list.
IQBStringType 41 chars 12.0  

BillAddress

Whatever address you specify in this aggregate must not result in an address greater than 5 lines, otherwise you’ll get a runtime error, because QuickBooks doesn’t support addresses more than 5 lines. There are two ways to specify an address within this aggregate: Using Addr1 through Addr3 along with the other possible aggregate elements, such as City, State, Postalcode.Using Addr1, Addr2, Addr3, Addr4, and Addr5 to fully specify the address. If you use this so called “address block” approach, you cannot use any other address elements, such as City, State, etc. (Note: this approach is not valid for EmployeeAdd/Mod/Query) If you use the address block approach above, the lines Addr1…Addr5 are each printed as a separate line on the transaction, and the values are returned in the Ret object under the aggregate ShipAddressBlock or BillAddressBlock.
IAddress      

Addr1

The first line of an address.
IQBStringType 41 chars    

Addr2

The second line of an address (if a second line is needed).
IQBStringType 41 chars    

Addr3

The third line of an address (if a third line is needed).
IQBStringType 41 chars    

Addr4

The fourth line of an address (if a fourth line is needed).
IQBStringType 41 chars 2.0  

Addr5

The fifth line of an address (if a fifth line is needed).
IQBStringType 41 chars 6.0  

City

The city name in an address.
IQBStringType 31 chars    

State

The state name in an address.
IQBStringType 21 chars    

PostalCode

The postal code in an address.
IQBStringType 13 chars    

Country

The country name in an address, or, in returned Host information (HostRet or HostInfo), the country for which this edition of QuickBooks was designed. (Possible values are US, CA, UK, and AU.)
IQBStringType 31 chars    

Note

In a BillAddress or ShipAddress aggregate, the Note field value is written at the bottom of the address in the form in which it appears, such as the invoice form.
IQBStringType 41 chars 6.0  

ShipAddress

Whatever address you specify in this aggregate must not result in an address greater than 5 lines, otherwise you’ll get a runtime error, because QuickBooks doesn’t support addresses more than 5 lines. There are two ways to specify an address within this aggregate: Using Addr1 through Addr3 along with the other possible aggregate elements, such as City, State, Postalcode.Using Addr1, Addr2, Addr3, Addr4, and Addr5 to fully specify the address. If you use this so called “address block” approach, you cannot use any other address elements, such as City, State, etc. (Note: this approach is not valid for EmployeeAdd/Mod/Query) If you use the address block approach above, the lines Addr1…Addr5 are each printed as a separate line on the transaction, and the values are returned in the Ret object under the aggregate ShipAddressBlock or BillAddressBlock.
IAddress      

Addr1

The first line of an address.
IQBStringType 41 chars    

Addr2

The second line of an address (if a second line is needed).
IQBStringType 41 chars    

Addr3

The third line of an address (if a third line is needed).
IQBStringType 41 chars    

Addr4

The fourth line of an address (if a fourth line is needed).
IQBStringType 41 chars 2.0  

Addr5

The fifth line of an address (if a fifth line is needed).
IQBStringType 41 chars 6.0  

City

The city name in an address.
IQBStringType 31 chars    

State

The state name in an address.
IQBStringType 21 chars    

PostalCode

The postal code in an address.
IQBStringType 13 chars    

Country

The country name in an address, or, in returned Host information (HostRet or HostInfo), the country for which this edition of QuickBooks was designed. (Possible values are US, CA, UK, and AU.)
IQBStringType 31 chars    

Note

In a BillAddress or ShipAddress aggregate, the Note field value is written at the bottom of the address in the form in which it appears, such as the invoice form.
IQBStringType 41 chars 6.0  

ShipToAddressList

List of ship to addresses.
IShipToAddressList   12.0  

(List

of IShipToAddress Objects)
       

Name

The case-insensitive name of a list object, not including the names of its ancestors. Name must be unique, unless it is the Name of a “hierarchical” list object. List objects in different hierarchies can have duplicate names because their FullNames will still be unique. For example, two objects could both have the Name kitchen, but they could have unique FullNames, such as Job12:kitchen and Baker:kitchen. For built-in currencies, Name is the internationally accepted currency name and is not editable.
IQBStringType 41 chars   Y

Addr1

The first line of an address.
IQBStringType 41 chars    

Addr2

The second line of an address (if a second line is needed).
IQBStringType 41 chars    

Addr3

The third line of an address (if a third line is needed).
IQBStringType 41 chars    

Addr4

The fourth line of an address (if a fourth line is needed).
IQBStringType 41 chars 2.0  

Addr5

The fifth line of an address (if a fifth line is needed).
IQBStringType 41 chars 6.0  

City

The city name in an address.
IQBStringType 31 chars    

State

The state name in an address.
IQBStringType 21 chars    

PostalCode

The postal code in an address.
IQBStringType 13 chars    

Country

The country name in an address, or, in returned Host information (HostRet or HostInfo), the country for which this edition of QuickBooks was designed. (Possible values are US, CA, UK, and AU.)
IQBStringType 31 chars    

Note

In a BillAddress or ShipAddress aggregate, the Note field value is written at the bottom of the address in the form in which it appears, such as the invoice form.
IQBStringType 41 chars 6.0  

DefaultShipTo

Flag that address is the default ship to address.
IQBBoolType      

Phone

The telephone number.
IQBStringType 21 chars    

AltPhone

A telephone number given as an alternative to Phone.
IQBStringType 21 chars    

Fax

Fax number.
IQBStringType 21 chars    

Email

E-mail address.
IQBStringType 1023 chars    

Cc

Email address that would be carbon copied or CC.
IQBStringType 1023 chars 12.0  

Contact

The name of a contact person for a customer or vendor.
IQBStringType 41 chars    

AltContact

The name of an alternate contact person for a vendor, customer, or “other name” entry.
IQBStringType 41 chars    

AdditionalContactRefList

List of additional contacts.
IQBBaseRefList   12.0  

(List

of IQBBaseRef Objects)
       

ContactName

The name of the contact.
IQBStringType 40 chars   Y

ContactValue

The value of the contact field.
IQBStringType 255 chars   Y

ContactsList

A list of contact records.
IContactsList   12.0  

(List

of IContacts Objects)
       

Salutation

A formal reference, such as Mr. or Dr., that precedes a name.
IQBStringType 15 chars    

FirstName

The first name of a customer, vendor, employee, or person on the “other names” list.
IQBStringType 25 chars   Y

MiddleName

The middle name of a customer, vendor, employee, or person on the “other names” list.
IQBStringType 5 chars    

LastName

The last name of a customer, vendor, employee, or person on the “other names” list.
IQBStringType 25 chars    

JobTitle

The job title of a customer, vendor, employee, or person on the “other names” list.
IQBStringType 41 chars    

AdditionalContactRefList

List of additional contacts.
IQBBaseRefList      

(List

of IQBBaseRef Objects)
       

ContactName

The name of the contact.
IQBStringType 40 chars   Y

ContactValue

The value of the contact field.
IQBStringType 255 chars   Y

CustomerTypeRef

Customer types allow business owners to categorize customers in ways that are meaningful for their businesses. For example, a customer type might indicate which industry a customer represents, or which part of the country a customer is in. A CustomerTypeRef aggregate refers to one of the types on the CustomerType list. In a request, if a CustomerTypeRef aggregate includes both FullName and ListID, FullName will be ignored.
IQBBaseRef      

ListID

Along with FullName, ListID is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a ListID. A ListID is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same ListID, and a customer could not have the same ListID as an employee (because Customer and Employee are both name lists). But a customer could have the same ListID as a non-inventory item.
IQBIDType      

FullName

FullName (along with ListID) is a way to identify a list object. The FullName is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. FullName values are not case-sensitive.
IQBStringType 159 chars    

TermsRef

Refers to the payment terms associated with this entity. (This will be an item on the DateDrivenTerms or StandardTerms list.) If a TermsRef aggregate includes both FullName and ListID, FullName will be ignored.
IQBBaseRef      

ListID

Along with FullName, ListID is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a ListID. A ListID is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same ListID, and a customer could not have the same ListID as an employee (because Customer and Employee are both name lists). But a customer could have the same ListID as a non-inventory item.
IQBIDType      

FullName

FullName (along with ListID) is a way to identify a list object. The FullName is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. FullName values are not case-sensitive.
IQBStringType 31 chars    

SalesRepRef

A sales representative must be on the Employee, Vendor, or Other Names list within QuickBooks. Sales representative’s names and initials appear on the Rep drop-down list on QuickBooks sales forms. A SalesRepRef refers to a person on the SalesRep list. In a request, if a SalesRepRef aggregate includes both FullName and ListID, FullName will be ignored.
IQBBaseRef      

ListID

Along with FullName, ListID is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a ListID. A ListID is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same ListID, and a customer could not have the same ListID as an employee (because Customer and Employee are both name lists). But a customer could have the same ListID as a non-inventory item.
IQBIDType      

FullName

FullName (along with ListID) is a way to identify a list object. The FullName is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. FullName values are not case-sensitive.
IQBStringType 5 chars    

OpenBalance

The opening balance of this customer’s account. A positive number indicates money owed by the customer.
IQBAmountType      

OpenBalanceDate

The date of the opening balance for this customer.
IQBDateType      

SalesTaxCodeRef

Each item on a sales form is assigned a sales-tax code that indicates whether the item is taxable or non-taxable, and why. Two general codes, which can be modified but not deleted, appear on the sales-tax code list by default:Non-taxable (Name = NON; Desc = Non-Taxable; IsTaxable = false)Taxable (Name = TAX; Desc = Taxable; IsTaxable = true) A sales-tax code can be deleted only if it is no longer associated with any customer, item, or transaction. If the “Do You Charge Sales Tax?” preference within QuickBooks is set to No, QuickBooks will assign the default non-taxable sales-tax code to all sales. A SalesTaxCodeRef aggregate refers to a sales-tax code on the list. In a request, if a SalesTaxCodeRef aggregate includes both FullName and ListID, FullName will be ignored. In a Customer message, SalesTaxCodeRef refers to the sales-tax code that will be used for items related to this customer. In an ItemInventory message, SalesTaxCodeRef refers to the type of sales tax that will be charged for this item, if it is a taxable item and if sales tax is set up within QuickBooks.
IQBBaseRef      

ListID

Along with FullName, ListID is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a ListID. A ListID is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same ListID, and a customer could not have the same ListID as an employee (because Customer and Employee are both name lists). But a customer could have the same ListID as a non-inventory item.
IQBIDType      

FullName

FullName (along with ListID) is a way to identify a list object. The FullName is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. FullName values are not case-sensitive.
IQBStringType 3 chars    

ItemSalesTaxRef

A sales-tax item is used to calculate a single sales tax that is collected at a specified rate and paid to a single agency. (Compare with the ItemSalesTaxGroupAdd message.) An ItemSalesTaxRef aggregate refers to an item on this list. In a request, if an ItemSalesTaxRef aggregate includes both FullName and ListID, FullName will be ignored. Taxes can be reflected in transaction line items The following information refers to invoices specifically, but it also applies to sales receipts. Generally its best to assign a tax item or tax group item to an invoice and allow QuickBooks to apply the same tax to all taxable items on the invoice. However in some situations multiple tax combinations are required, so this method doesn’t work. In this case one must use techniques to apply the taxes in the invoice itself as line items. Using lines to apply taxes isn’t always straight forward. When applying taxes as line items, only single tax items can be used, tax groups can only be used for the entire invoice. If you have multiple taxes which apply to all taxable items, and one or more other taxes that only apply to some of the items on an invoice its better to use a tax group which applies to the entire invoice for the taxes which applies to all taxable items and then apply the other taxes in the invoice itself. One applies a tax or tax group to an entire invoice by using the ItemSalesTaxRef aggregate. One can use subtotals to apply a single tax line to multiple items in an invoice, but the tax is only applied automatically for the first tax line after the subtotal line. Any other tax lines which need to be applied to the subtotal line must supply their own amount. If you don’t supply an amount the amount comes out as zero and the tax line is useless. When one does supply an amount, the amount of tax on the subtotal also shows up in the rate column for that tax line. There isn’t any way for the rate to show up as anything other than the amount of the tax. If you have a complicated tax situation where no single tax applies to all taxable items on the invoice, you must choose a zero percent tax to apply for the entire invoice. It is recommended to name such a tax item “Tax Calculated On Invoice” so that it’s clear that the tax is not being applied by QuickBooks on the entire invoice.
IQBBaseRef   us.png  

ListID

Along with FullName, ListID is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a ListID. A ListID is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same ListID, and a customer could not have the same ListID as an employee (because Customer and Employee are both name lists). But a customer could have the same ListID as a non-inventory item.
IQBIDType   us.png  

FullName

FullName (along with ListID) is a way to identify a list object. The FullName is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. FullName values are not case-sensitive.
IQBStringType 31 chars us.png  

SalesTaxCountry

Country that sales tax is collected for.
IQBENSalesTaxCountryType   6.0 CA.png uk.png  

ResaleNumber

The customer’s resale number, if they have one. This number will not affect reports or sales tax calculations.
IQBStringType 15 chars    

AccountNumber

Account numbers appear in the QuickBooks chart of accounts, Account fields, and reports and graphs. If the IsUsingAccountNumber preference is false (that is, if the QuickBooks user has the account numbers Preference turned off), you can still set account numbers through the SDK, but the numbers will not be visible in the user interface.
IQBStringType 99 chars    

CreditLimit

Set and returned as a positive number that indicates a customer’s or vendor’s credit limit. If no value has been defined, there is no credit limit.
IQBAmountType      

PreferredPaymentMethodRef

Refers to a PaymentMethod object. In a request, if a PreferredPaymentMethodRef aggregate includes both FullName and ListID, FullName will be ignored.
IQBBaseRef   3.0  

ListID

Along with FullName, ListID is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a ListID. A ListID is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same ListID, and a customer could not have the same ListID as an employee (because Customer and Employee are both name lists). But a customer could have the same ListID as a non-inventory item.
IQBIDType   3.0  

FullName

FullName (along with ListID) is a way to identify a list object. The FullName is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. FullName values are not case-sensitive.
IQBStringType 31 chars 3.0  

CreditCardInfo

Customer’s credit-card information.
ICreditCardInfo   3.0  

CreditCardNumber

Credit-card number for this customer or this payment. Beginning with qbXML spec 6.0 and QuickBooks 2007, you must mask the credit card number with lower case “x” and no dashes. For example, xxxxxxxxxxxx1234.
IQBStringType 25 chars    

ExpirationMonth

The month when the credit card expires.
IQBIntType 12 chars    

ExpirationYear

The year when the credit card expires.
IQBIntType      

NameOnCard

The name on the customer’s credit card.
IQBStringType 41 chars    

CreditCardAddress

The address associated with this credit card.
IQBStringType 41 chars    

CreditCardPostalCode

The postal code associated with the address for this credit card.
IQBStringType 41 chars    

JobStatus

JobStatus Status information about a sub-customer; used in reports. The Job- elements (JobDesc, JobEndDate, JobProjectedEndDate, JobStartDate, and JobStatus) correspond to the fields in the Job Info tab of the Edit Job window in QuickBooks.
IQBENJobStatusType      

JobStartDate

The date on which work for a sub-customer was started; used in reports. The Job- elements (JobDesc, JobEndDate, JobProjectedEndDate, JobStartDate, and JobStatus) correspond to the fields in the Job Info tab of the Edit Job window in QuickBooks.
IQBDateType      

JobProjectedEndDate

The date on which work for a sub-customer is expected to be complete; used in reports. The Job- elements (JobDesc, JobEndDate, JobProjectedEndDate, JobStartDate, and JobStatus) correspond to the fields in the Job Info tab of the Edit Job window in QuickBooks.
IQBDateType      

JobEndDate

The date on which work for a sub-customer was completed; used in reports.The Job- elements (JobDesc, JobEndDate, JobProjectedEndDate, JobStartDate, and JobStatus) correspond to the fields in the Job Info tab of the Edit Job window in QuickBooks.
IQBDateType      

JobDesc

A short job description for a sub-customer; used in reports.The Job- elements (JobDesc, JobEndDate, JobProjectedEndDate, JobStartDate, and JobStatus) correspond to the fields in the Job Info tab of the Edit Job window in QuickBooks.
IQBStringType 99 chars    

JobTypeRef

Job type can be used to separate jobs into any categories that are meaningful to the business. A JobTypeRef aggregate refers to a job type on the JobType list. In a request, if a JobTypeRef aggregate includes both FullName and ListID, FullName will be ignored.
IQBBaseRef      

ListID

Along with FullName, ListID is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a ListID. A ListID is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same ListID, and a customer could not have the same ListID as an employee (because Customer and Employee are both name lists). But a customer could have the same ListID as a non-inventory item.
IQBIDType      

FullName

FullName (along with ListID) is a way to identify a list object. The FullName is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. FullName values are not case-sensitive.
IQBStringType 159 chars    

Notes

Not supported.
IQBStringType 4095 chars 3.0  

AdditionalNotesList

List of notes.
IAdditionalNotesList   12.0  

(List

of IAdditionalNotes Objects)
       

Note

In a BillAddress or ShipAddress aggregate, the Note field value is written at the bottom of the address in the form in which it appears, such as the invoice form.
IQBStringType 4095 chars   Y

PreferredDeliveryMethod

Preference for how invoices are delivered.
IQBENPreferredDeliveryMethodType   12.0  

PriceLevelRef

You can use price levels to specify custom pricing for specific customers. Once you create a price level for a customer, QuickBooks will automatically use the custom price in new invoices, sales receipts, sales orders or credit memos for that customer. You can override this automatic feature, however, when you create the invoices, sales receipts, etc.) The user can now specify a price level on line items in the following supported sales transactions: invoices, sales receipts, credit memos, and sales orders. Notice that the response data for the affected sales transaction does not list the price level that was used. The response simply lists the Rate for the item, which was set using the price level.
IQBBaseRef   4.0  

ListID

Along with FullName, ListID is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a ListID. A ListID is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same ListID, and a customer could not have the same ListID as an employee (because Customer and Employee are both name lists). But a customer could have the same ListID as a non-inventory item.
IQBIDType   4.0  

FullName

FullName (along with ListID) is a way to identify a list object. The FullName is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. FullName values are not case-sensitive.
IQBStringType 31 chars 4.0  

ExternalGUID

Allows for the attachment of a user defined GUID value.
IQBGUIDType   8.0  

TaxRegistrationNumber

Tax registration number used in CA and UK.
IQBStringType 30 chars 8.0 CA.png uk.png  

CurrencyRef

The currency object contains all of the information needed by QuickBooks to display and use. For built-in currencies, the name and currency code values are internationally accepted values and thus are not editable. The comma format is editable, as is the IsActive status. For user-defined currencies, every value in the object is editable including name and currency code. When used with PriceLevels, the CurrencyRef should only be used with “per item” price levels.
IQBBaseRef   8.0  

ListID

Along with FullName, ListID is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a ListID. A ListID is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same ListID, and a customer could not have the same ListID as an employee (because Customer and Employee are both name lists). But a customer could have the same ListID as a non-inventory item.
IQBIDType   8.0  

FullName

FullName (along with ListID) is a way to identify a list object. The FullName is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. FullName values are not case-sensitive.
IQBStringType 64 chars 8.0  

IncludeRetElementList

You use this if you want to limit the data that will be returned in the response. In this list, you specify the name of each top-level element or aggregate that you want to be returned in the response to the request. You cannot specify fields within an aggregate, for example, you cannot specify a City within an Address: you must specify Address and will get the entire address. The names specified in the list are not parsed, so you must be especially careful to supply valid names, properly cased. No error is returned in the status code if you specify an invalid name. Notice that if you want to return custom data or private data extensions, you must specify the DataExtRet element and you must supply the OwnerID set to either a value of 0 (custom data) or the GUID for the private data.
IBSTRList 50 chars 4.0  
Tag Type Max length Implementation Required

IResponse

The customer list includes information about the QuickBooks user’s customers and the individual jobs that are being performed for them. A CustomerRef aggregate refers to one of the customers (or customer jobs) on the list. In a request, if a CustomerRef aggregate includes both FullName and ListID, FullName will be ignored. Special cases to note:In SalesReceipt and ReceivePayment requests, CustomerRef refers to the customer or customer job to which the payment is credited.In a TimeTracking request, CustomerRef refers to the customer or customer job to which this time could be billed. If IsBillable is set to true, CustomerRef is required in TimeTrackingAdd. In an ExpenseLineAdd request, if AccountRef refers to an A/P account, CustomerRef must refer to a vendor (not to a customer). If AccountRef refers to any other type of account, the CustomerRef must refer to a customer.
       

StatusCode

A number that corresponds to a statusSeverity and statusMessage. Five status codes relate directly to signon messages: 2000, 2010, 2020, 2030, and 2040. For details about these and other statusCode values that can be returned, see the statusCode table on the Error Codes page.
IQBIntType     Y

StatusSeverity

One of the following values: INFO The request was completed, and the results are consistent with what your application expected. WARNING The request was completed, but the results might not be consistent with what you expected. ERROR The request was not completed. No data will appear in the server’s response after the statusMessage.
IQBStringType     Y

StatusMessage

A user-readable explanation of the success or error condition that is indicated by the statusCode. For details about the statusMessage values that can be returned, see the “Explanation” column of the statusCode table on the Error Codes page.
IQBStringType     Y

Detail

ICustomerRet      

ListID

Along with FullName, ListID is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a ListID. A ListID is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same ListID, and a customer could not have the same ListID as an employee (because Customer and Employee are both name lists). But a customer could have the same ListID as a non-inventory item.
IQBIDType     Y

TimeCreated

Time the object was created.
IQBDateTimeType     Y

TimeModified

Time the object was last modified.
IQBDateTimeType     Y

EditSequence

A number that the server generates and assigns to this object. Every time the object is changed, the server will change its EditSequence value. When you try to modify a list object, you must provide its EditSequence. The server compares the EditSequence you provide with the EditSequence in memory to make sure you are dealing with the latest copy of the object. If you are not, the server will reject the request and return an error. Because EditSequence is only used to check whether two objects match, there is no reason to interpret its value.
IQBStringType 16 chars   Y

Name

The case-insensitive name of a list object, not including the names of its ancestors. Name must be unique, unless it is the Name of a “hierarchical” list object. List objects in different hierarchies can have duplicate names because their FullNames will still be unique. For example, two objects could both have the Name kitchen, but they could have unique FullNames, such as Job12:kitchen and Baker:kitchen. For built-in currencies, Name is the internationally accepted currency name and is not editable.
IQBStringType 41 chars   Y

FullName

FullName (along with ListID) is a way to identify a list object. The FullName is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. FullName values are not case-sensitive.
IQBStringType 209 chars   Y

IsActive

If IsActive is true, this object is currently enabled for use by QuickBooks. The default value is true.
IQBBoolType      

ClassRef

Classes can be used to separate transactions into meaningful categories. (For example, transactions could be classified according to department, business location, or type of work.) In QuickBooks, class tracking is off by default. A ClassRef aggregate refers to one of these named classes. For example, in a TimeTracking message, ClassRef refers to the QuickBooks class into which the timed activity falls. If a ClassRef aggregate includes both FullName and ListID, FullName will be ignored. In an InvoiceAdd request, if you specify a ClassRef for the whole invoice, that same ClassRef is automatically used in the line items. If you want to clear that (that is, have NO ClassRef for the line item, you can clear it in the line item by simply not specifying it in the line item.
IQBBaseRef   12.0  

ListID

Along with FullName, ListID is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a ListID. A ListID is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same ListID, and a customer could not have the same ListID as an employee (because Customer and Employee are both name lists). But a customer could have the same ListID as a non-inventory item.
IQBIDType   12.0  

FullName

FullName (along with ListID) is a way to identify a list object. The FullName is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. FullName values are not case-sensitive.
IQBStringType 159 chars 12.0  

ParentRef

A reference to the list object that is one level above this one. For example, an inventory item with the FullName of GermanCars:Mercedes-Benz:CL500I99AA might have a parent object with the FullName of GermanCars:Mercedes-Benz.In a request, if a ParentRef aggregate includes both FullName and ListID, FullName will be ignored.
IQBBaseRef      

ListID

Along with FullName, ListID is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a ListID. A ListID is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same ListID, and a customer could not have the same ListID as an employee (because Customer and Employee are both name lists). But a customer could have the same ListID as a non-inventory item.
IQBIDType      

FullName

FullName (along with ListID) is a way to identify a list object. The FullName is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. FullName values are not case-sensitive.
IQBStringType      

Sublevel

The number of ancestors. For example, The customer job with Name = carpets and FullName = Jones:Building2:carpets would have a sublevel of 2.
IQBIntType     Y

CompanyName

The name of the QuickBooks user’s business, as specified in QuickBooks. CompanyName and Address are used on invoices, checks, and other forms. (LegalCompanyName and LegalAddress, on the other hand, are used on a company’s tax forms and pay stubs.)
IQBStringType 41 chars    

Salutation

A formal reference, such as Mr. or Dr., that precedes a name.
IQBStringType 15 chars    

FirstName

The first name of a customer, vendor, employee, or person on the “other names” list.
IQBStringType 25 chars    

MiddleName

The middle name of a customer, vendor, employee, or person on the “other names” list.
IQBStringType 5 chars    

LastName

The last name of a customer, vendor, employee, or person on the “other names” list.
IQBStringType 25 chars    

JobTitle

The job title of a customer, vendor, employee, or person on the “other names” list.
IQBStringType 41 chars 12.0  

BillAddress

Whatever address you specify in this aggregate must not result in an address greater than 5 lines, otherwise you’ll get a runtime error, because QuickBooks doesn’t support addresses more than 5 lines. There are two ways to specify an address within this aggregate: Using Addr1 through Addr3 along with the other possible aggregate elements, such as City, State, Postalcode.Using Addr1, Addr2, Addr3, Addr4, and Addr5 to fully specify the address. If you use this so called “address block” approach, you cannot use any other address elements, such as City, State, etc. (Note: this approach is not valid for EmployeeAdd/Mod/Query) If you use the address block approach above, the lines Addr1…Addr5 are each printed as a separate line on the transaction, and the values are returned in the Ret object under the aggregate ShipAddressBlock or BillAddressBlock.
IAddress      

Addr1

The first line of an address.
IQBStringType 41 chars    

Addr2

The second line of an address (if a second line is needed).
IQBStringType 41 chars    

Addr3

The third line of an address (if a third line is needed).
IQBStringType 41 chars    

Addr4

The fourth line of an address (if a fourth line is needed).
IQBStringType 41 chars 2.0  

Addr5

The fifth line of an address (if a fifth line is needed).
IQBStringType 41 chars 6.0  

City

The city name in an address.
IQBStringType 31 chars    

State

The state name in an address.
IQBStringType 21 chars    

PostalCode

The postal code in an address.
IQBStringType 13 chars    

Country

The country name in an address, or, in returned Host information (HostRet or HostInfo), the country for which this edition of QuickBooks was designed. (Possible values are US, CA, UK, and AU.)
IQBStringType 31 chars    

Note

In a BillAddress or ShipAddress aggregate, the Note field value is written at the bottom of the address in the form in which it appears, such as the invoice form.
IQBStringType 41 chars 6.0  

BillAddressBlock

The address expressed as an address block of Addr1 through Addr5, depending on the number of lines in the original request that created the address.
IAddressBlock   6.0  

Addr1

The first line of an address.
IQBStringType 41 chars    

Addr2

The second line of an address (if a second line is needed).
IQBStringType 41 chars    

Addr3

The third line of an address (if a third line is needed).
IQBStringType 41 chars    

Addr4

The fourth line of an address (if a fourth line is needed).
IQBStringType 41 chars    

Addr5

The fifth line of an address (if a fifth line is needed).
IQBStringType 41 chars    

ShipAddress

Whatever address you specify in this aggregate must not result in an address greater than 5 lines, otherwise you’ll get a runtime error, because QuickBooks doesn’t support addresses more than 5 lines. There are two ways to specify an address within this aggregate: Using Addr1 through Addr3 along with the other possible aggregate elements, such as City, State, Postalcode.Using Addr1, Addr2, Addr3, Addr4, and Addr5 to fully specify the address. If you use this so called “address block” approach, you cannot use any other address elements, such as City, State, etc. (Note: this approach is not valid for EmployeeAdd/Mod/Query) If you use the address block approach above, the lines Addr1…Addr5 are each printed as a separate line on the transaction, and the values are returned in the Ret object under the aggregate ShipAddressBlock or BillAddressBlock.
IAddress      

Addr1

The first line of an address.
IQBStringType 41 chars    

Addr2

The second line of an address (if a second line is needed).
IQBStringType 41 chars    

Addr3

The third line of an address (if a third line is needed).
IQBStringType 41 chars    

Addr4

The fourth line of an address (if a fourth line is needed).
IQBStringType 41 chars 2.0  

Addr5

The fifth line of an address (if a fifth line is needed).
IQBStringType 41 chars 6.0  

City

The city name in an address.
IQBStringType 31 chars    

State

The state name in an address.
IQBStringType 21 chars    

PostalCode

The postal code in an address.
IQBStringType 13 chars    

Country

The country name in an address, or, in returned Host information (HostRet or HostInfo), the country for which this edition of QuickBooks was designed. (Possible values are US, CA, UK, and AU.)
IQBStringType 31 chars    

Note

In a BillAddress or ShipAddress aggregate, the Note field value is written at the bottom of the address in the form in which it appears, such as the invoice form.
IQBStringType 41 chars 6.0  

ShipAddressBlock

The address expressed as an address block of Addr1 through Addr5, depending on the number of lines in the original request that created the address.
IAddressBlock   6.0  

Addr1

The first line of an address.
IQBStringType 41 chars    

Addr2

The second line of an address (if a second line is needed).
IQBStringType 41 chars    

Addr3

The third line of an address (if a third line is needed).
IQBStringType 41 chars    

Addr4

The fourth line of an address (if a fourth line is needed).
IQBStringType 41 chars    

Addr5

The fifth line of an address (if a fifth line is needed).
IQBStringType 41 chars    

ShipToAddressList

List of ship to addresses.
IShipToAddressList   12.0  

(List

of IShipToAddress Objects)
       

Name

The case-insensitive name of a list object, not including the names of its ancestors. Name must be unique, unless it is the Name of a “hierarchical” list object. List objects in different hierarchies can have duplicate names because their FullNames will still be unique. For example, two objects could both have the Name kitchen, but they could have unique FullNames, such as Job12:kitchen and Baker:kitchen. For built-in currencies, Name is the internationally accepted currency name and is not editable.
IQBStringType 41 chars   Y

Addr1

The first line of an address.
IQBStringType 41 chars    

Addr2

The second line of an address (if a second line is needed).
IQBStringType 41 chars    

Addr3

The third line of an address (if a third line is needed).
IQBStringType 41 chars    

Addr4

The fourth line of an address (if a fourth line is needed).
IQBStringType 41 chars 2.0  

Addr5

The fifth line of an address (if a fifth line is needed).
IQBStringType 41 chars 6.0  

City

The city name in an address.
IQBStringType 31 chars    

State

The state name in an address.
IQBStringType 21 chars    

PostalCode

The postal code in an address.
IQBStringType 13 chars    

Country

The country name in an address, or, in returned Host information (HostRet or HostInfo), the country for which this edition of QuickBooks was designed. (Possible values are US, CA, UK, and AU.)
IQBStringType 31 chars    

Note

In a BillAddress or ShipAddress aggregate, the Note field value is written at the bottom of the address in the form in which it appears, such as the invoice form.
IQBStringType 41 chars 6.0  

DefaultShipTo

Flag that address is the default ship to address.
IQBBoolType      

Phone

The telephone number.
IQBStringType 21 chars    

AltPhone

A telephone number given as an alternative to Phone.
IQBStringType 21 chars    

Fax

Fax number.
IQBStringType 21 chars    

Email

E-mail address.
IQBStringType 1023 chars    

Cc

Email address that would be carbon copied or CC.
IQBStringType 1023 chars 12.0  

Contact

The name of a contact person for a customer or vendor.
IQBStringType 41 chars    

AltContact

The name of an alternate contact person for a vendor, customer, or “other name” entry.
IQBStringType 41 chars    

AdditionalContactRefList

List of additional contacts.
IQBBaseRefList   12.0  

(List

of IQBBaseRef Objects)
       

ContactName

The name of the contact.
IQBStringType 40 chars   Y

ContactValue

The value of the contact field.
IQBStringType 255 chars   Y

ContactsRetList

A list of contact records.
IContactsRetList   12.0  

(List

of IContactsRet Objects)
       

ListID

Along with FullName, ListID is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a ListID. A ListID is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same ListID, and a customer could not have the same ListID as an employee (because Customer and Employee are both name lists). But a customer could have the same ListID as a non-inventory item.
IQBIDType     Y

TimeCreated

Time the object was created.
IQBDateTimeType     Y

TimeModified

Time the object was last modified.
IQBDateTimeType     Y

EditSequence

A number that the server generates and assigns to this object. Every time the object is changed, the server will change its EditSequence value. When you try to modify a list object, you must provide its EditSequence. The server compares the EditSequence you provide with the EditSequence in memory to make sure you are dealing with the latest copy of the object. If you are not, the server will reject the request and return an error. Because EditSequence is only used to check whether two objects match, there is no reason to interpret its value.
IQBStringType 16 chars   Y

Contact

The name of a contact person for a customer or vendor.
IQBStringType 41 chars    

Salutation

A formal reference, such as Mr. or Dr., that precedes a name.
IQBStringType 15 chars    

FirstName

The first name of a customer, vendor, employee, or person on the “other names” list.
IQBStringType 25 chars   Y

MiddleName

The middle name of a customer, vendor, employee, or person on the “other names” list.
IQBStringType 5 chars    

LastName

The last name of a customer, vendor, employee, or person on the “other names” list.
IQBStringType 25 chars    

JobTitle

The job title of a customer, vendor, employee, or person on the “other names” list.
IQBStringType 41 chars    

AdditionalContactRefList

List of additional contacts.
IQBBaseRefList      

(List

of IQBBaseRef Objects)
       

ContactName

The name of the contact.
IQBStringType 40 chars   Y

ContactValue

The value of the contact field.
IQBStringType 255 chars   Y

CustomerTypeRef

Customer types allow business owners to categorize customers in ways that are meaningful for their businesses. For example, a customer type might indicate which industry a customer represents, or which part of the country a customer is in. A CustomerTypeRef aggregate refers to one of the types on the CustomerType list. In a request, if a CustomerTypeRef aggregate includes both FullName and ListID, FullName will be ignored.
IQBBaseRef      

ListID

Along with FullName, ListID is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a ListID. A ListID is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same ListID, and a customer could not have the same ListID as an employee (because Customer and Employee are both name lists). But a customer could have the same ListID as a non-inventory item.
IQBIDType      

FullName

FullName (along with ListID) is a way to identify a list object. The FullName is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. FullName values are not case-sensitive.
IQBStringType 159 chars    

TermsRef

Refers to the payment terms associated with this entity. (This will be an item on the DateDrivenTerms or StandardTerms list.) If a TermsRef aggregate includes both FullName and ListID, FullName will be ignored.
IQBBaseRef      

ListID

Along with FullName, ListID is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a ListID. A ListID is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same ListID, and a customer could not have the same ListID as an employee (because Customer and Employee are both name lists). But a customer could have the same ListID as a non-inventory item.
IQBIDType      

FullName

FullName (along with ListID) is a way to identify a list object. The FullName is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. FullName values are not case-sensitive.
IQBStringType 31 chars    

SalesRepRef

A sales representative must be on the Employee, Vendor, or Other Names list within QuickBooks. Sales representative’s names and initials appear on the Rep drop-down list on QuickBooks sales forms. A SalesRepRef refers to a person on the SalesRep list. In a request, if a SalesRepRef aggregate includes both FullName and ListID, FullName will be ignored.
IQBBaseRef      

ListID

Along with FullName, ListID is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a ListID. A ListID is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same ListID, and a customer could not have the same ListID as an employee (because Customer and Employee are both name lists). But a customer could have the same ListID as a non-inventory item.
IQBIDType      

FullName

FullName (along with ListID) is a way to identify a list object. The FullName is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. FullName values are not case-sensitive.
IQBStringType 5 chars    

Balance

A positive number indicates money owed by the customer. Compare with TotalBalance.
IQBAmountType      

TotalBalance

Total balance for this customer, including all this customer’s jobs (subcustomers). A positive number indicates money that the customer owes. If a customer does not have any subcustomers, TotalBalance and Balance are the same.
IQBAmountType      

SalesTaxCodeRef

Each item on a sales form is assigned a sales-tax code that indicates whether the item is taxable or non-taxable, and why. Two general codes, which can be modified but not deleted, appear on the sales-tax code list by default:Non-taxable (Name = NON; Desc = Non-Taxable; IsTaxable = false)Taxable (Name = TAX; Desc = Taxable; IsTaxable = true) A sales-tax code can be deleted only if it is no longer associated with any customer, item, or transaction. If the “Do You Charge Sales Tax?” preference within QuickBooks is set to No, QuickBooks will assign the default non-taxable sales-tax code to all sales. A SalesTaxCodeRef aggregate refers to a sales-tax code on the list. In a request, if a SalesTaxCodeRef aggregate includes both FullName and ListID, FullName will be ignored. In a Customer message, SalesTaxCodeRef refers to the sales-tax code that will be used for items related to this customer. In an ItemInventory message, SalesTaxCodeRef refers to the type of sales tax that will be charged for this item, if it is a taxable item and if sales tax is set up within QuickBooks.
IQBBaseRef      

ListID

Along with FullName, ListID is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a ListID. A ListID is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same ListID, and a customer could not have the same ListID as an employee (because Customer and Employee are both name lists). But a customer could have the same ListID as a non-inventory item.
IQBIDType      

FullName

FullName (along with ListID) is a way to identify a list object. The FullName is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. FullName values are not case-sensitive.
IQBStringType 3 chars    

ItemSalesTaxRef

A sales-tax item is used to calculate a single sales tax that is collected at a specified rate and paid to a single agency. (Compare with the ItemSalesTaxGroupAdd message.) An ItemSalesTaxRef aggregate refers to an item on this list. In a request, if an ItemSalesTaxRef aggregate includes both FullName and ListID, FullName will be ignored. Taxes can be reflected in transaction line items The following information refers to invoices specifically, but it also applies to sales receipts. Generally its best to assign a tax item or tax group item to an invoice and allow QuickBooks to apply the same tax to all taxable items on the invoice. However in some situations multiple tax combinations are required, so this method doesn’t work. In this case one must use techniques to apply the taxes in the invoice itself as line items. Using lines to apply taxes isn’t always straight forward. When applying taxes as line items, only single tax items can be used, tax groups can only be used for the entire invoice. If you have multiple taxes which apply to all taxable items, and one or more other taxes that only apply to some of the items on an invoice its better to use a tax group which applies to the entire invoice for the taxes which applies to all taxable items and then apply the other taxes in the invoice itself. One applies a tax or tax group to an entire invoice by using the ItemSalesTaxRef aggregate. One can use subtotals to apply a single tax line to multiple items in an invoice, but the tax is only applied automatically for the first tax line after the subtotal line. Any other tax lines which need to be applied to the subtotal line must supply their own amount. If you don’t supply an amount the amount comes out as zero and the tax line is useless. When one does supply an amount, the amount of tax on the subtotal also shows up in the rate column for that tax line. There isn’t any way for the rate to show up as anything other than the amount of the tax. If you have a complicated tax situation where no single tax applies to all taxable items on the invoice, you must choose a zero percent tax to apply for the entire invoice. It is recommended to name such a tax item “Tax Calculated On Invoice” so that it’s clear that the tax is not being applied by QuickBooks on the entire invoice.
IQBBaseRef   us.png  

ListID

Along with FullName, ListID is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a ListID. A ListID is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same ListID, and a customer could not have the same ListID as an employee (because Customer and Employee are both name lists). But a customer could have the same ListID as a non-inventory item.
IQBIDType   us.png  

FullName

FullName (along with ListID) is a way to identify a list object. The FullName is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. FullName values are not case-sensitive.
IQBStringType 31 chars us.png  

SalesTaxCountry

Country that sales tax is collected for.
IQBENSalesTaxCountryType   6.0 CA.png uk.png  

ResaleNumber

The customer’s resale number, if they have one. This number will not affect reports or sales tax calculations.
IQBStringType 15 chars    

AccountNumber

Account numbers appear in the QuickBooks chart of accounts, Account fields, and reports and graphs. If the IsUsingAccountNumber preference is false (that is, if the QuickBooks user has the account numbers Preference turned off), you can still set account numbers through the SDK, but the numbers will not be visible in the user interface.
IQBStringType 99 chars    

CreditLimit

Set and returned as a positive number that indicates a customer’s or vendor’s credit limit. If no value has been defined, there is no credit limit.
IQBAmountType      

PreferredPaymentMethodRef

Refers to a PaymentMethod object. In a request, if a PreferredPaymentMethodRef aggregate includes both FullName and ListID, FullName will be ignored.
IQBBaseRef   3.0  

ListID

Along with FullName, ListID is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a ListID. A ListID is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same ListID, and a customer could not have the same ListID as an employee (because Customer and Employee are both name lists). But a customer could have the same ListID as a non-inventory item.
IQBIDType   3.0  

FullName

FullName (along with ListID) is a way to identify a list object. The FullName is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. FullName values are not case-sensitive.
IQBStringType 31 chars 3.0  

CreditCardInfo

Customer’s credit-card information.
ICreditCardInfo   3.0  

CreditCardNumber

Credit-card number for this customer or this payment. Beginning with qbXML spec 6.0 and QuickBooks 2007, you must mask the credit card number with lower case “x” and no dashes. For example, xxxxxxxxxxxx1234.
IQBStringType 25 chars    

ExpirationMonth

The month when the credit card expires.
IQBIntType 12 chars    

ExpirationYear

The year when the credit card expires.
IQBIntType      

NameOnCard

The name on the customer’s credit card.
IQBStringType 41 chars    

CreditCardAddress

The address associated with this credit card.
IQBStringType 41 chars    

CreditCardPostalCode

The postal code associated with the address for this credit card.
IQBStringType 41 chars    

JobStatus

JobStatus Status information about a sub-customer; used in reports. The Job- elements (JobDesc, JobEndDate, JobProjectedEndDate, JobStartDate, and JobStatus) correspond to the fields in the Job Info tab of the Edit Job window in QuickBooks.
IQBENJobStatusType      

JobStartDate

The date on which work for a sub-customer was started; used in reports. The Job- elements (JobDesc, JobEndDate, JobProjectedEndDate, JobStartDate, and JobStatus) correspond to the fields in the Job Info tab of the Edit Job window in QuickBooks.
IQBDateType      

JobProjectedEndDate

The date on which work for a sub-customer is expected to be complete; used in reports. The Job- elements (JobDesc, JobEndDate, JobProjectedEndDate, JobStartDate, and JobStatus) correspond to the fields in the Job Info tab of the Edit Job window in QuickBooks.
IQBDateType      

JobEndDate

The date on which work for a sub-customer was completed; used in reports.The Job- elements (JobDesc, JobEndDate, JobProjectedEndDate, JobStartDate, and JobStatus) correspond to the fields in the Job Info tab of the Edit Job window in QuickBooks.
IQBDateType      

JobDesc

A short job description for a sub-customer; used in reports.The Job- elements (JobDesc, JobEndDate, JobProjectedEndDate, JobStartDate, and JobStatus) correspond to the fields in the Job Info tab of the Edit Job window in QuickBooks.
IQBStringType 99 chars    

JobTypeRef

Job type can be used to separate jobs into any categories that are meaningful to the business. A JobTypeRef aggregate refers to a job type on the JobType list. In a request, if a JobTypeRef aggregate includes both FullName and ListID, FullName will be ignored.
IQBBaseRef      

ListID

Along with FullName, ListID is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a ListID. A ListID is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same ListID, and a customer could not have the same ListID as an employee (because Customer and Employee are both name lists). But a customer could have the same ListID as a non-inventory item.
IQBIDType      

FullName

FullName (along with ListID) is a way to identify a list object. The FullName is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. FullName values are not case-sensitive.
IQBStringType 159 chars    

Notes

Not supported.
IQBStringType 4095 chars    

AdditionalNotesRetList

List of notes.
IAdditionalNotesRetList   12.0  

(List

of IAdditionalNotesRet Objects)
       

NoteID

The ID of the note.
IQBIntType     Y

Date

The date the note was updated.
IQBDateType     Y

Note

In a BillAddress or ShipAddress aggregate, the Note field value is written at the bottom of the address in the form in which it appears, such as the invoice form.
IQBStringType 4095 chars   Y

PreferredDeliveryMethod

Preference for how invoices are delivered.
IQBENPreferredDeliveryMethodType   12.0  

PriceLevelRef

You can use price levels to specify custom pricing for specific customers. Once you create a price level for a customer, QuickBooks will automatically use the custom price in new invoices, sales receipts, sales orders or credit memos for that customer. You can override this automatic feature, however, when you create the invoices, sales receipts, etc.) The user can now specify a price level on line items in the following supported sales transactions: invoices, sales receipts, credit memos, and sales orders. Notice that the response data for the affected sales transaction does not list the price level that was used. The response simply lists the Rate for the item, which was set using the price level.
IQBBaseRef   4.0  

ListID

Along with FullName, ListID is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a ListID. A ListID is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same ListID, and a customer could not have the same ListID as an employee (because Customer and Employee are both name lists). But a customer could have the same ListID as a non-inventory item.
IQBIDType   4.0  

FullName

FullName (along with ListID) is a way to identify a list object. The FullName is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. FullName values are not case-sensitive.
IQBStringType 31 chars 4.0  

ExternalGUID

Allows for the attachment of a user defined GUID value.
IQBGUIDType   8.0  

TaxRegistrationNumber

Tax registration number used in CA and UK.
IQBStringType 30 chars 8.0 CA.png uk.png  

CurrencyRef

The currency object contains all of the information needed by QuickBooks to display and use. For built-in currencies, the name and currency code values are internationally accepted values and thus are not editable. The comma format is editable, as is the IsActive status. For user-defined currencies, every value in the object is editable including name and currency code. When used with PriceLevels, the CurrencyRef should only be used with “per item” price levels.
IQBBaseRef   8.0  

ListID

Along with FullName, ListID is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a ListID. A ListID is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same ListID, and a customer could not have the same ListID as an employee (because Customer and Employee are both name lists). But a customer could have the same ListID as a non-inventory item.
IQBIDType   8.0  

FullName

FullName (along with ListID) is a way to identify a list object. The FullName is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. FullName values are not case-sensitive.
IQBStringType 64 chars 8.0  

DataExtRetList

A list of IDataExtRet objects, each of which represents a field that has been added to QuickBooks as a data extension.
IDataExtRetList   2.0  

(List

of IDataExtRet Objects)
       

OwnerID

OwnerID refers to the owner of a data extension, and must be 0 or a valid GUID. (Custom fields, which are visible in the QuickBooks UI, always have an OwnerID of 0. ) Usually you would keep your application’s GUID confidential to prevent other applications from accessing your data extensions. But if you want to share data extensions with another application, the applications need to use the same GUID. In this case, each application could use two GUIDs, one for shared data extensions and one for confidential data extensions. (An application can have any number of GUIDs.) When you share a data extension with another application, the other application must know both the OwnerID and the DataExtName, as these together form a data extension’s unique name.
IQBGUIDType      

DataExtName

The name of the data extension. If this is a custom field, DataExtName will be visible as a label in the QuickBooks user interface. Also because OwnerID and DataExtName together make the data extension unique, and because custom fields all have the same OwnerID of zero, the DataExtName must be a unique value among existing custom fields. In contrast, the DataExtName for private data extensions must be unique only for the specified OwnerID GUID.
IQBStringType 31 chars   Y

DataExtType

The field’s data type, which corresponds to a qbXML data type. In an IDataExtDefAdd request object, if this is a custom field, DataExtType must be detSTR255TYPE.
IQBENDataExtTypeType     Y

DataExtValue

The data in this field. The maximum length of DataExtValue will depend on the DataExtType of this data extension. For example, if DataExtType is STR255TYPE, the maximum length of DataExtValue is 255 characters. If DataExtType is STR1024TYPE, the maximum size of DataExtValue is 1KB.
IQBStringType     Y

Detail

IErrorRecovery   11.0  

ORListOwnerTxn

IORListOwnerTxn     Y

ListID

Along with FullName, ListID is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a ListID. A ListID is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same ListID, and a customer could not have the same ListID as an employee (because Customer and Employee are both name lists). But a customer could have the same ListID as a non-inventory item.
IQBIDType      

OwnerID

Refers to the owner of a data extension:If OwnerID is 0, this is a public data extension, also known as a custom field. Custom fields appear in the QuickBooks UI.If OwnerID is a GUID, for example {6B063959-81B0-4622-85D6-F548C8CCB517}, this field is a private data extension defined by an integrated application. Private data extensions do not appear in the QuickBooks UI. Note that OwnerID values are not case-sensitive, meaning that if you enter an OwnerID value with lower-case letters, the value will be saved and returned with upper-case letters. When you share a private data extension with another application, the other application must know both the OwnerID and the DataExtName, as these together form a data extension’s unique name.
IQBGUIDType      

TxnID

QuickBooks generates a unique TxnID for each transaction that is added to QuickBooks. A TxnID returned from a request can be used to refer to the transaction in subsequent requests. Notice that you cannot supply the TxnID of a TimeTracking transaction to TransactionQueryRq requests. If you do, you get an error stating that no such record could be found, even though the transaction is in QuickBooks. This behavior reflects the behavior in the QuicKBooks UI in the Find window.
IQBIDType      

TxnNumber

An identifying number for this transaction.
IQBIntType      

EditSequence

A number that the server generates and assigns to this object. Every time the object is changed, the server will change its EditSequence value. When you try to modify a list object, you must provide its EditSequence. The server compares the EditSequence you provide with the EditSequence in memory to make sure you are dealing with the latest copy of the object. If you are not, the server will reject the request and return an error. Because EditSequence is only used to check whether two objects match, there is no reason to interpret its value.
IQBStringType 16 chars    

ExternalGUID

Allows for the attachment of a user defined GUID value.
IQBGUIDType      

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
<?xml version="1.0" encoding="utf-8"?>
<?qbxml version="16.0"?>
<QBXML>
        <QBXMLMsgsRq onError="stopOnError">
                <CustomerAddRq>
                        <CustomerAdd> <!-- required -->
                                <Name >STRTYPE</Name> <!-- required -->
                                <IsActive >BOOLTYPE</IsActive> <!-- optional -->
                                <ClassRef> <!-- optional -->
                                        <ListID >IDTYPE</ListID> <!-- optional -->
                                        <FullName >STRTYPE</FullName> <!-- optional -->
                                </ClassRef>
                                <ParentRef> <!-- optional -->
                                        <ListID >IDTYPE</ListID> <!-- optional -->
                                        <FullName >STRTYPE</FullName> <!-- optional -->
                                </ParentRef>
                                <CompanyName >STRTYPE</CompanyName> <!-- optional -->
                                <Salutation >STRTYPE</Salutation> <!-- optional -->
                                <FirstName >STRTYPE</FirstName> <!-- optional -->
                                <MiddleName >STRTYPE</MiddleName> <!-- optional -->
                                <LastName >STRTYPE</LastName> <!-- optional -->
                                <JobTitle >STRTYPE</JobTitle> <!-- optional -->
                                <BillAddress> <!-- optional -->
                                        <Addr1 >STRTYPE</Addr1> <!-- optional -->
                                        <Addr2 >STRTYPE</Addr2> <!-- optional -->
                                        <Addr3 >STRTYPE</Addr3> <!-- optional -->
                                        <Addr4 >STRTYPE</Addr4> <!-- optional -->
                                        <Addr5 >STRTYPE</Addr5> <!-- optional -->
                                        <City >STRTYPE</City> <!-- optional -->
                                        <State >STRTYPE</State> <!-- optional -->
                                        <PostalCode >STRTYPE</PostalCode> <!-- optional -->
                                        <Country >STRTYPE</Country> <!-- optional -->
                                        <Note >STRTYPE</Note> <!-- optional -->
                                </BillAddress>
                                <ShipAddress> <!-- optional -->
                                        <Addr1 >STRTYPE</Addr1> <!-- optional -->
                                        <Addr2 >STRTYPE</Addr2> <!-- optional -->
                                        <Addr3 >STRTYPE</Addr3> <!-- optional -->
                                        <Addr4 >STRTYPE</Addr4> <!-- optional -->
                                        <Addr5 >STRTYPE</Addr5> <!-- optional -->
                                        <City >STRTYPE</City> <!-- optional -->
                                        <State >STRTYPE</State> <!-- optional -->
                                        <PostalCode >STRTYPE</PostalCode> <!-- optional -->
                                        <Country >STRTYPE</Country> <!-- optional -->
                                        <Note >STRTYPE</Note> <!-- optional -->
                                </ShipAddress>
                                <ShipToAddress> <!-- must occur 0 - 50 times -->
                                        <Name >STRTYPE</Name> <!-- required -->
                                        <Addr1 >STRTYPE</Addr1> <!-- optional -->
                                        <Addr2 >STRTYPE</Addr2> <!-- optional -->
                                        <Addr3 >STRTYPE</Addr3> <!-- optional -->
                                        <Addr4 >STRTYPE</Addr4> <!-- optional -->
                                        <Addr5 >STRTYPE</Addr5> <!-- optional -->
                                        <City >STRTYPE</City> <!-- optional -->
                                        <State >STRTYPE</State> <!-- optional -->
                                        <PostalCode >STRTYPE</PostalCode> <!-- optional -->
                                        <Country >STRTYPE</Country> <!-- optional -->
                                        <Note >STRTYPE</Note> <!-- optional -->
                                        <DefaultShipTo >BOOLTYPE</DefaultShipTo> <!-- optional -->
                                </ShipToAddress>
                                <Phone >STRTYPE</Phone> <!-- optional -->
                                <AltPhone >STRTYPE</AltPhone> <!-- optional -->
                                <Fax >STRTYPE</Fax> <!-- optional -->
                                <Email >STRTYPE</Email> <!-- optional -->
                                <Cc >STRTYPE</Cc> <!-- optional -->
                                <Contact >STRTYPE</Contact> <!-- optional -->
                                <AltContact >STRTYPE</AltContact> <!-- optional -->
                                <AdditionalContactRef> <!-- must occur 0 - 8 times -->
                                        <ContactName >STRTYPE</ContactName> <!-- required -->
                                        <ContactValue >STRTYPE</ContactValue> <!-- required -->
                                </AdditionalContactRef>
                                <Contacts> <!-- optional, may repeat -->
                                        <Salutation >STRTYPE</Salutation> <!-- optional -->
                                        <FirstName >STRTYPE</FirstName> <!-- required -->
                                        <MiddleName >STRTYPE</MiddleName> <!-- optional -->
                                        <LastName >STRTYPE</LastName> <!-- optional -->
                                        <JobTitle >STRTYPE</JobTitle> <!-- optional -->
                                        <AdditionalContactRef> <!-- must occur 0 - 5 times -->
                                                <ContactName >STRTYPE</ContactName> <!-- required -->
                                                <ContactValue >STRTYPE</ContactValue> <!-- required -->
                                        </AdditionalContactRef>
                                </Contacts>
                                <CustomerTypeRef> <!-- optional -->
                                        <ListID >IDTYPE</ListID> <!-- optional -->
                                        <FullName >STRTYPE</FullName> <!-- optional -->
                                </CustomerTypeRef>
                                <TermsRef> <!-- optional -->
                                        <ListID >IDTYPE</ListID> <!-- optional -->
                                        <FullName >STRTYPE</FullName> <!-- optional -->
                                </TermsRef>
                                <SalesRepRef> <!-- optional -->
                                        <ListID >IDTYPE</ListID> <!-- optional -->
                                        <FullName >STRTYPE</FullName> <!-- optional -->
                                </SalesRepRef>
                                <OpenBalance >AMTTYPE</OpenBalance> <!-- optional -->
                                <OpenBalanceDate >DATETYPE</OpenBalanceDate> <!-- optional -->
                                <SalesTaxCodeRef> <!-- optional -->
                                        <ListID >IDTYPE</ListID> <!-- optional -->
                                        <FullName >STRTYPE</FullName> <!-- optional -->
                                </SalesTaxCodeRef>
                                <ItemSalesTaxRef> <!-- optional -->
                                        <ListID >IDTYPE</ListID> <!-- optional -->
                                        <FullName >STRTYPE</FullName> <!-- optional -->
                                </ItemSalesTaxRef>
                                <!-- SalesTaxCountry may have one of the following values: Australia, Canada [DEFAULT], UK, US -->
                                <SalesTaxCountry >ENUMTYPE</SalesTaxCountry> <!-- optional -->
                                <ResaleNumber >STRTYPE</ResaleNumber> <!-- optional -->
                                <AccountNumber >STRTYPE</AccountNumber> <!-- optional -->
                                <CreditLimit >AMTTYPE</CreditLimit> <!-- optional -->
                                <PreferredPaymentMethodRef> <!-- optional -->
                                        <ListID >IDTYPE</ListID> <!-- optional -->
                                        <FullName >STRTYPE</FullName> <!-- optional -->
                                </PreferredPaymentMethodRef>
                                <CreditCardInfo> <!-- optional -->
                                        <CreditCardNumber >STRTYPE</CreditCardNumber> <!-- optional -->
                                        <ExpirationMonth >INTTYPE</ExpirationMonth> <!-- optional -->
                                        <ExpirationYear >INTTYPE</ExpirationYear> <!-- optional -->
                                        <NameOnCard >STRTYPE</NameOnCard> <!-- optional -->
                                        <CreditCardAddress >STRTYPE</CreditCardAddress> <!-- optional -->
                                        <CreditCardPostalCode >STRTYPE</CreditCardPostalCode> <!-- optional -->
                                </CreditCardInfo>
                                <!-- JobStatus may have one of the following values: Awarded, Closed, InProgress, None [DEFAULT], NotAwarded, Pending -->
                                <JobStatus >ENUMTYPE</JobStatus> <!-- optional -->
                                <JobStartDate >DATETYPE</JobStartDate> <!-- optional -->
                                <JobProjectedEndDate >DATETYPE</JobProjectedEndDate> <!-- optional -->
                                <JobEndDate >DATETYPE</JobEndDate> <!-- optional -->
                                <JobDesc >STRTYPE</JobDesc> <!-- optional -->
                                <JobTypeRef> <!-- optional -->
                                        <ListID >IDTYPE</ListID> <!-- optional -->
                                        <FullName >STRTYPE</FullName> <!-- optional -->
                                </JobTypeRef>
                                <Notes >STRTYPE</Notes> <!-- optional -->
                                <AdditionalNotes> <!-- optional, may repeat -->
                                        <Note >STRTYPE</Note> <!-- required -->
                                </AdditionalNotes>
                                <!-- PreferredDeliveryMethod may have one of the following values: None [Default], Email, Fax -->
                                <PreferredDeliveryMethod >ENUMTYPE</PreferredDeliveryMethod> <!-- optional -->
                                <PriceLevelRef> <!-- optional -->
                                        <ListID >IDTYPE</ListID> <!-- optional -->
                                        <FullName >STRTYPE</FullName> <!-- optional -->
                                </PriceLevelRef>
                                <ExternalGUID >GUIDTYPE</ExternalGUID> <!-- optional -->
                                <TaxRegistrationNumber >STRTYPE</TaxRegistrationNumber> <!-- optional -->
                                <CurrencyRef> <!-- optional -->
                                        <ListID >IDTYPE</ListID> <!-- optional -->
                                        <FullName >STRTYPE</FullName> <!-- optional -->
                                </CurrencyRef>
                        </CustomerAdd>
                        <IncludeRetElement >STRTYPE</IncludeRetElement> <!-- optional, may repeat -->
                </CustomerAddRq>

                <CustomerAddRs statusCode="INTTYPE" statusSeverity="STRTYPE" statusMessage="STRTYPE">
                        <CustomerRet> <!-- optional -->
                                <ListID >IDTYPE</ListID> <!-- required -->
                                <TimeCreated >DATETIMETYPE</TimeCreated> <!-- required -->
                                <TimeModified >DATETIMETYPE</TimeModified> <!-- required -->
                                <EditSequence >STRTYPE</EditSequence> <!-- required -->
                                <Name >STRTYPE</Name> <!-- required -->
                                <FullName >STRTYPE</FullName> <!-- required -->
                                <IsActive >BOOLTYPE</IsActive> <!-- optional -->
                                <ClassRef> <!-- optional -->
                                        <ListID >IDTYPE</ListID> <!-- optional -->
                                        <FullName >STRTYPE</FullName> <!-- optional -->
                                </ClassRef>
                                <ParentRef> <!-- optional -->
                                        <ListID >IDTYPE</ListID> <!-- optional -->
                                        <FullName >STRTYPE</FullName> <!-- optional -->
                                </ParentRef>
                                <Sublevel >INTTYPE</Sublevel> <!-- required -->
                                <CompanyName >STRTYPE</CompanyName> <!-- optional -->
                                <Salutation >STRTYPE</Salutation> <!-- optional -->
                                <FirstName >STRTYPE</FirstName> <!-- optional -->
                                <MiddleName >STRTYPE</MiddleName> <!-- optional -->
                                <LastName >STRTYPE</LastName> <!-- optional -->
                                <JobTitle >STRTYPE</JobTitle> <!-- optional -->
                                <BillAddress> <!-- optional -->
                                        <Addr1 >STRTYPE</Addr1> <!-- optional -->
                                        <Addr2 >STRTYPE</Addr2> <!-- optional -->
                                        <Addr3 >STRTYPE</Addr3> <!-- optional -->
                                        <Addr4 >STRTYPE</Addr4> <!-- optional -->
                                        <Addr5 >STRTYPE</Addr5> <!-- optional -->
                                        <City >STRTYPE</City> <!-- optional -->
                                        <State >STRTYPE</State> <!-- optional -->
                                        <PostalCode >STRTYPE</PostalCode> <!-- optional -->
                                        <Country >STRTYPE</Country> <!-- optional -->
                                        <Note >STRTYPE</Note> <!-- optional -->
                                </BillAddress>
                                <BillAddressBlock> <!-- optional -->
                                        <Addr1 >STRTYPE</Addr1> <!-- optional -->
                                        <Addr2 >STRTYPE</Addr2> <!-- optional -->
                                        <Addr3 >STRTYPE</Addr3> <!-- optional -->
                                        <Addr4 >STRTYPE</Addr4> <!-- optional -->
                                        <Addr5 >STRTYPE</Addr5> <!-- optional -->
                                </BillAddressBlock>
                                <ShipAddress> <!-- optional -->
                                        <Addr1 >STRTYPE</Addr1> <!-- optional -->
                                        <Addr2 >STRTYPE</Addr2> <!-- optional -->
                                        <Addr3 >STRTYPE</Addr3> <!-- optional -->
                                        <Addr4 >STRTYPE</Addr4> <!-- optional -->
                                        <Addr5 >STRTYPE</Addr5> <!-- optional -->
                                        <City >STRTYPE</City> <!-- optional -->
                                        <State >STRTYPE</State> <!-- optional -->
                                        <PostalCode >STRTYPE</PostalCode> <!-- optional -->
                                        <Country >STRTYPE</Country> <!-- optional -->
                                        <Note >STRTYPE</Note> <!-- optional -->
                                </ShipAddress>
                                <ShipAddressBlock> <!-- optional -->
                                        <Addr1 >STRTYPE</Addr1> <!-- optional -->
                                        <Addr2 >STRTYPE</Addr2> <!-- optional -->
                                        <Addr3 >STRTYPE</Addr3> <!-- optional -->
                                        <Addr4 >STRTYPE</Addr4> <!-- optional -->
                                        <Addr5 >STRTYPE</Addr5> <!-- optional -->
                                </ShipAddressBlock>
                                <ShipToAddress> <!-- must occur 0 - 50 times -->
                                        <Name >STRTYPE</Name> <!-- required -->
                                        <Addr1 >STRTYPE</Addr1> <!-- optional -->
                                        <Addr2 >STRTYPE</Addr2> <!-- optional -->
                                        <Addr3 >STRTYPE</Addr3> <!-- optional -->
                                        <Addr4 >STRTYPE</Addr4> <!-- optional -->
                                        <Addr5 >STRTYPE</Addr5> <!-- optional -->
                                        <City >STRTYPE</City> <!-- optional -->
                                        <State >STRTYPE</State> <!-- optional -->
                                        <PostalCode >STRTYPE</PostalCode> <!-- optional -->
                                        <Country >STRTYPE</Country> <!-- optional -->
                                        <Note >STRTYPE</Note> <!-- optional -->
                                        <DefaultShipTo >BOOLTYPE</DefaultShipTo> <!-- optional -->
                                </ShipToAddress>
                                <Phone >STRTYPE</Phone> <!-- optional -->
                                <AltPhone >STRTYPE</AltPhone> <!-- optional -->
                                <Fax >STRTYPE</Fax> <!-- optional -->
                                <Email >STRTYPE</Email> <!-- optional -->
                                <Cc >STRTYPE</Cc> <!-- optional -->
                                <Contact >STRTYPE</Contact> <!-- optional -->
                                <AltContact >STRTYPE</AltContact> <!-- optional -->
                                <AdditionalContactRef> <!-- must occur 0 - 8 times -->
                                        <ContactName >STRTYPE</ContactName> <!-- required -->
                                        <ContactValue >STRTYPE</ContactValue> <!-- required -->
                                </AdditionalContactRef>
                                <ContactsRet> <!-- optional, may repeat -->
                                        <ListID >IDTYPE</ListID> <!-- required -->
                                        <TimeCreated >DATETIMETYPE</TimeCreated> <!-- required -->
                                        <TimeModified >DATETIMETYPE</TimeModified> <!-- required -->
                                        <EditSequence >STRTYPE</EditSequence> <!-- required -->
                                        <Contact >STRTYPE</Contact> <!-- optional -->
                                        <Salutation >STRTYPE</Salutation> <!-- optional -->
                                        <FirstName >STRTYPE</FirstName> <!-- required -->
                                        <MiddleName >STRTYPE</MiddleName> <!-- optional -->
                                        <LastName >STRTYPE</LastName> <!-- optional -->
                                        <JobTitle >STRTYPE</JobTitle> <!-- optional -->
                                        <AdditionalContactRef> <!-- must occur 0 - 5 times -->
                                                <ContactName >STRTYPE</ContactName> <!-- required -->
                                                <ContactValue >STRTYPE</ContactValue> <!-- required -->
                                        </AdditionalContactRef>
                                </ContactsRet>
                                <CustomerTypeRef> <!-- optional -->
                                        <ListID >IDTYPE</ListID> <!-- optional -->
                                        <FullName >STRTYPE</FullName> <!-- optional -->
                                </CustomerTypeRef>
                                <TermsRef> <!-- optional -->
                                        <ListID >IDTYPE</ListID> <!-- optional -->
                                        <FullName >STRTYPE</FullName> <!-- optional -->
                                </TermsRef>
                                <SalesRepRef> <!-- optional -->
                                        <ListID >IDTYPE</ListID> <!-- optional -->
                                        <FullName >STRTYPE</FullName> <!-- optional -->
                                </SalesRepRef>
                                <Balance >AMTTYPE</Balance> <!-- optional -->
                                <TotalBalance >AMTTYPE</TotalBalance> <!-- optional -->
                                <SalesTaxCodeRef> <!-- optional -->
                                        <ListID >IDTYPE</ListID> <!-- optional -->
                                        <FullName >STRTYPE</FullName> <!-- optional -->
                                </SalesTaxCodeRef>
                                <ItemSalesTaxRef> <!-- optional -->
                                        <ListID >IDTYPE</ListID> <!-- optional -->
                                        <FullName >STRTYPE</FullName> <!-- optional -->
                                </ItemSalesTaxRef>
                                <!-- SalesTaxCountry may have one of the following values: Australia, Canada [DEFAULT], UK, US -->
                                <SalesTaxCountry >ENUMTYPE</SalesTaxCountry> <!-- optional -->
                                <ResaleNumber >STRTYPE</ResaleNumber> <!-- optional -->
                                <AccountNumber >STRTYPE</AccountNumber> <!-- optional -->
                                <CreditLimit >AMTTYPE</CreditLimit> <!-- optional -->
                                <PreferredPaymentMethodRef> <!-- optional -->
                                        <ListID >IDTYPE</ListID> <!-- optional -->
                                        <FullName >STRTYPE</FullName> <!-- optional -->
                                </PreferredPaymentMethodRef>
                                <CreditCardInfo> <!-- optional -->
                                        <CreditCardNumber >STRTYPE</CreditCardNumber> <!-- optional -->
                                        <ExpirationMonth >INTTYPE</ExpirationMonth> <!-- optional -->
                                        <ExpirationYear >INTTYPE</ExpirationYear> <!-- optional -->
                                        <NameOnCard >STRTYPE</NameOnCard> <!-- optional -->
                                        <CreditCardAddress >STRTYPE</CreditCardAddress> <!-- optional -->
                                        <CreditCardPostalCode >STRTYPE</CreditCardPostalCode> <!-- optional -->
                                </CreditCardInfo>
                                <!-- JobStatus may have one of the following values: Awarded, Closed, InProgress, None [DEFAULT], NotAwarded, Pending -->
                                <JobStatus >ENUMTYPE</JobStatus> <!-- optional -->
                                <JobStartDate >DATETYPE</JobStartDate> <!-- optional -->
                                <JobProjectedEndDate >DATETYPE</JobProjectedEndDate> <!-- optional -->
                                <JobEndDate >DATETYPE</JobEndDate> <!-- optional -->
                                <JobDesc >STRTYPE</JobDesc> <!-- optional -->
                                <JobTypeRef> <!-- optional -->
                                        <ListID >IDTYPE</ListID> <!-- optional -->
                                        <FullName >STRTYPE</FullName> <!-- optional -->
                                </JobTypeRef>
                                <Notes >STRTYPE</Notes> <!-- optional -->
                                <AdditionalNotesRet> <!-- optional, may repeat -->
                                        <NoteID >INTTYPE</NoteID> <!-- required -->
                                        <Date >DATETYPE</Date> <!-- required -->
                                        <Note >STRTYPE</Note> <!-- required -->
                                </AdditionalNotesRet>
                                <!-- PreferredDeliveryMethod may have one of the following values: None [Default], Email, Fax -->
                                <PreferredDeliveryMethod >ENUMTYPE</PreferredDeliveryMethod> <!-- optional -->
                                <PriceLevelRef> <!-- optional -->
                                        <ListID >IDTYPE</ListID> <!-- optional -->
                                        <FullName >STRTYPE</FullName> <!-- optional -->
                                </PriceLevelRef>
                                <ExternalGUID >GUIDTYPE</ExternalGUID> <!-- optional -->
                                <TaxRegistrationNumber >STRTYPE</TaxRegistrationNumber> <!-- optional -->
                                <CurrencyRef> <!-- optional -->
                                        <ListID >IDTYPE</ListID> <!-- optional -->
                                        <FullName >STRTYPE</FullName> <!-- optional -->
                                </CurrencyRef>
                                <DataExtRet> <!-- optional, may repeat -->
                                        <OwnerID >GUIDTYPE</OwnerID> <!-- optional -->
                                        <DataExtName >STRTYPE</DataExtName> <!-- required -->
                                        <!-- DataExtType may have one of the following values: AMTTYPE, DATETIMETYPE, INTTYPE, PERCENTTYPE, PRICETYPE, QUANTYPE, STR1024TYPE, STR255TYPE -->
                                        <DataExtType >ENUMTYPE</DataExtType> <!-- required -->
                                        <DataExtValue >STRTYPE</DataExtValue> <!-- required -->
                                </DataExtRet>
                        </CustomerRet>
                        <ErrorRecovery> <!-- optional -->
                                <!-- BEGIN OR -->
                                        <ListID >IDTYPE</ListID> <!-- optional -->
                                <!-- OR -->
                                        <OwnerID >GUIDTYPE</OwnerID> <!-- optional -->
                                <!-- OR -->
                                        <TxnID >IDTYPE</TxnID> <!-- optional -->
                                <!-- END OR -->
                                <TxnNumber >INTTYPE</TxnNumber> <!-- optional -->
                                <EditSequence >STRTYPE</EditSequence> <!-- optional -->
                                <ExternalGUID >GUIDTYPE</ExternalGUID> <!-- optional -->
                        </ErrorRecovery>
                </CustomerAddRs>
        </QBXMLMsgsRq>
</QBXML>

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
'The following sample code is generated as an illustration of
'Creating requests and parsing responses ONLY
'This code is NOT intended to show best practices or ideal code
'Use at your most careful discretion

imports System
imports System.Net
imports System.Drawing
imports System.Collections
imports System.ComponentModel
imports System.Windows.Forms
imports System.Data
imports System.IO
imports Interop.QBFC16

Module com.intuit.idn.samples
        Public Class Sample
                Public Sub  DoCustomerAdd()
                        Dim sessionBegun as Boolean
                        sessionBegun = False
                        Dim connectionOpen as Boolean
                        connectionOpen = False
                        Dim sessionManager as QBSessionManager
                        sessionManager = nothing

                        Try
                                'Create the session Manager object
                                sessionManager = new QBSessionManager

                                'Create the message set request object to hold our request
                                Dim requestMsgSet as IMsgSetRequest
                                requestMsgSet = sessionManager.CreateMsgSetRequest("US",16,0)
                                requestMsgSet.Attributes.OnError = ENRqOnError.roeContinue

                                BuildCustomerAddRq(requestMsgSet)

                                'Connect to QuickBooks and begin a session
                                sessionManager.OpenConnection("","Sample Code from OSR")
                                connectionOpen = True
                                sessionManager.BeginSession("", ENOpenMode.omDontCare)
                                sessionBegun = True

                                'Send the request and get the response from QuickBooks
                                Dim responseMsgSet as IMsgSetResponse
                                responseMsgSet = sessionManager.DoRequests(requestMsgSet)

                                'End the session and close the connection to QuickBooks
                                sessionManager.EndSession()
                                sessionBegun = False
                                sessionManager.CloseConnection()
                                connectionOpen = False

                                WalkCustomerAddRs(responseMsgSet)
                        Catch e as Exception
                                MessageBox.Show(e.Message, "Error")
                                if (sessionBegun) then
                                        sessionManager.EndSession()
                                End If
                                if (connectionOpen) then
                                        sessionManager.CloseConnection()
                                End If
                        End Try
                End Sub
                Public Sub BuildCustomerAddRq(requestMsgSet as IMsgSetRequest)
                        Dim CustomerAddRq as ICustomerAdd
                        CustomerAddRq= requestMsgSet.AppendCustomerAddRq()
                        'Set field value for Name
                        CustomerAddRq.Name.SetValue("ab")
                        'Set field value for IsActive
                        CustomerAddRq.IsActive.SetValue(True)
                        'Set field value for ListID
                        CustomerAddRq.ClassRef.ListID.SetValue("200000-1011023419")
                        'Set field value for FullName
                        CustomerAddRq.ClassRef.FullName.SetValue("ab")
                        'Set field value for ListID
                        CustomerAddRq.ParentRef.ListID.SetValue("200000-1011023419")
                        'Set field value for FullName
                        CustomerAddRq.ParentRef.FullName.SetValue("ab")
                        'Set field value for CompanyName
                        CustomerAddRq.CompanyName.SetValue("ab")
                        'Set field value for Salutation
                        CustomerAddRq.Salutation.SetValue("ab")
                        'Set field value for FirstName
                        CustomerAddRq.FirstName.SetValue("ab")
                        'Set field value for MiddleName
                        CustomerAddRq.MiddleName.SetValue("ab")
                        'Set field value for LastName
                        CustomerAddRq.LastName.SetValue("ab")
                        'Set field value for JobTitle
                        CustomerAddRq.JobTitle.SetValue("ab")
                        'Set field value for Addr1
                        CustomerAddRq.BillAddress.Addr1.SetValue("ab")
                        'Set field value for Addr2
                        CustomerAddRq.BillAddress.Addr2.SetValue("ab")
                        'Set field value for Addr3
                        CustomerAddRq.BillAddress.Addr3.SetValue("ab")
                        'Set field value for Addr4
                        CustomerAddRq.BillAddress.Addr4.SetValue("ab")
                        'Set field value for Addr5
                        CustomerAddRq.BillAddress.Addr5.SetValue("ab")
                        'Set field value for City
                        CustomerAddRq.BillAddress.City.SetValue("ab")
                        'Set field value for State
                        CustomerAddRq.BillAddress.State.SetValue("ab")
                        'Set field value for PostalCode
                        CustomerAddRq.BillAddress.PostalCode.SetValue("ab")
                        'Set field value for Country
                        CustomerAddRq.BillAddress.Country.SetValue("ab")
                        'Set field value for Note
                        CustomerAddRq.BillAddress.Note.SetValue("ab")
                        'Set field value for Addr1
                        CustomerAddRq.ShipAddress.Addr1.SetValue("ab")
                        'Set field value for Addr2
                        CustomerAddRq.ShipAddress.Addr2.SetValue("ab")
                        'Set field value for Addr3
                        CustomerAddRq.ShipAddress.Addr3.SetValue("ab")
                        'Set field value for Addr4
                        CustomerAddRq.ShipAddress.Addr4.SetValue("ab")
                        'Set field value for Addr5
                        CustomerAddRq.ShipAddress.Addr5.SetValue("ab")
                        'Set field value for City
                        CustomerAddRq.ShipAddress.City.SetValue("ab")
                        'Set field value for State
                        CustomerAddRq.ShipAddress.State.SetValue("ab")
                        'Set field value for PostalCode
                        CustomerAddRq.ShipAddress.PostalCode.SetValue("ab")
                        'Set field value for Country
                        CustomerAddRq.ShipAddress.Country.SetValue("ab")
                        'Set field value for Note
                        CustomerAddRq.ShipAddress.Note.SetValue("ab")
                        Dim ShipToAddress7051 as IShipToAddress
                        ShipToAddress7051=CustomerAddRq.ShipToAddressList.Append()
                        'Set field value for Name
                        ShipToAddress7051.Name.SetValue("ab")
                        'Set field value for Addr1
                        ShipToAddress7051.Addr1.SetValue("ab")
                        'Set field value for Addr2
                        ShipToAddress7051.Addr2.SetValue("ab")
                        'Set field value for Addr3
                        ShipToAddress7051.Addr3.SetValue("ab")
                        'Set field value for Addr4
                        ShipToAddress7051.Addr4.SetValue("ab")
                        'Set field value for Addr5
                        ShipToAddress7051.Addr5.SetValue("ab")
                        'Set field value for City
                        ShipToAddress7051.City.SetValue("ab")
                        'Set field value for State
                        ShipToAddress7051.State.SetValue("ab")
                        'Set field value for PostalCode
                        ShipToAddress7051.PostalCode.SetValue("ab")
                        'Set field value for Country
                        ShipToAddress7051.Country.SetValue("ab")
                        'Set field value for Note
                        ShipToAddress7051.Note.SetValue("ab")
                        'Set field value for DefaultShipTo
                        ShipToAddress7051.DefaultShipTo.SetValue(True)
                        'Set field value for Phone
                        CustomerAddRq.Phone.SetValue("ab")
                        'Set field value for AltPhone
                        CustomerAddRq.AltPhone.SetValue("ab")
                        'Set field value for Fax
                        CustomerAddRq.Fax.SetValue("ab")
                        'Set field value for Email
                        CustomerAddRq.Email.SetValue("ab")
                        'Set field value for Cc
                        CustomerAddRq.Cc.SetValue("ab")
                        'Set field value for Contact
                        CustomerAddRq.Contact.SetValue("ab")
                        'Set field value for AltContact
                        CustomerAddRq.AltContact.SetValue("ab")
                        Dim AdditionalContactRef7052 as IQBBaseRef
                        AdditionalContactRef7052=CustomerAddRq.AdditionalContactRefList.Append()
                        'Set field value for ContactName
                        AdditionalContactRef7052.ContactName.SetValue("ab")
                        'Set field value for ContactValue
                        AdditionalContactRef7052.ContactValue.SetValue("ab")
                        Dim Contacts7053 as IContacts
                        Contacts7053=CustomerAddRq.ContactsList.Append()
                        'Set field value for Salutation
                        Contacts7053.Salutation.SetValue("ab")
                        'Set field value for FirstName
                        Contacts7053.FirstName.SetValue("ab")
                        'Set field value for MiddleName
                        Contacts7053.MiddleName.SetValue("ab")
                        'Set field value for LastName
                        Contacts7053.LastName.SetValue("ab")
                        'Set field value for JobTitle
                        Contacts7053.JobTitle.SetValue("ab")
                        Dim AdditionalContactRef7054 as IQBBaseRef
                        AdditionalContactRef7054=Contacts7053.AdditionalContactRefList.Append()
                        'Set field value for ContactName
                        AdditionalContactRef7054.ContactName.SetValue("ab")
                        'Set field value for ContactValue
                        AdditionalContactRef7054.ContactValue.SetValue("ab")
                        'Set field value for ListID
                        CustomerAddRq.CustomerTypeRef.ListID.SetValue("200000-1011023419")
                        'Set field value for FullName
                        CustomerAddRq.CustomerTypeRef.FullName.SetValue("ab")
                        'Set field value for ListID
                        CustomerAddRq.TermsRef.ListID.SetValue("200000-1011023419")
                        'Set field value for FullName
                        CustomerAddRq.TermsRef.FullName.SetValue("ab")
                        'Set field value for ListID
                        CustomerAddRq.SalesRepRef.ListID.SetValue("200000-1011023419")
                        'Set field value for FullName
                        CustomerAddRq.SalesRepRef.FullName.SetValue("ab")
                        'Set field value for OpenBalance
                        CustomerAddRq.OpenBalance.SetValue(10.01)
                        'Set field value for OpenBalanceDate
                        CustomerAddRq.OpenBalanceDate.SetValue(DateTime.Parse("12/15/2007"))
                        'Set field value for ListID
                        CustomerAddRq.SalesTaxCodeRef.ListID.SetValue("200000-1011023419")
                        'Set field value for FullName
                        CustomerAddRq.SalesTaxCodeRef.FullName.SetValue("ab")
                        'Set field value for ListID
                        CustomerAddRq.ItemSalesTaxRef.ListID.SetValue("200000-1011023419")
                        'Set field value for FullName
                        CustomerAddRq.ItemSalesTaxRef.FullName.SetValue("ab")
                        'Set field value for SalesTaxCountry
                        CustomerAddRq.SalesTaxCountry.SetValue(ENSalesTaxCountry.stcAustralia)
                        'Set field value for ResaleNumber
                        CustomerAddRq.ResaleNumber.SetValue("ab")
                        'Set field value for AccountNumber
                        CustomerAddRq.AccountNumber.SetValue("ab")
                        'Set field value for CreditLimit
                        CustomerAddRq.CreditLimit.SetValue(10.01)
                        'Set field value for ListID
                        CustomerAddRq.PreferredPaymentMethodRef.ListID.SetValue("200000-1011023419")
                        'Set field value for FullName
                        CustomerAddRq.PreferredPaymentMethodRef.FullName.SetValue("ab")
                        'Set field value for CreditCardNumber
                        CustomerAddRq.CreditCardInfo.CreditCardNumber.SetValue("ab")
                        'Set field value for ExpirationMonth
                        CustomerAddRq.CreditCardInfo.ExpirationMonth.SetValue(6)
                        'Set field value for ExpirationYear
                        CustomerAddRq.CreditCardInfo.ExpirationYear.SetValue(6)
                        'Set field value for NameOnCard
                        CustomerAddRq.CreditCardInfo.NameOnCard.SetValue("ab")
                        'Set field value for CreditCardAddress
                        CustomerAddRq.CreditCardInfo.CreditCardAddress.SetValue("ab")
                        'Set field value for CreditCardPostalCode
                        CustomerAddRq.CreditCardInfo.CreditCardPostalCode.SetValue("ab")
                        'Set field value for JobStatus
                        CustomerAddRq.JobStatus.SetValue(ENJobStatus.jsAwarded)
                        'Set field value for JobStartDate
                        CustomerAddRq.JobStartDate.SetValue(DateTime.Parse("12/15/2007"))
                        'Set field value for JobProjectedEndDate
                        CustomerAddRq.JobProjectedEndDate.SetValue(DateTime.Parse("12/15/2007"))
                        'Set field value for JobEndDate
                        CustomerAddRq.JobEndDate.SetValue(DateTime.Parse("12/15/2007"))
                        'Set field value for JobDesc
                        CustomerAddRq.JobDesc.SetValue("ab")
                        'Set field value for ListID
                        CustomerAddRq.JobTypeRef.ListID.SetValue("200000-1011023419")
                        'Set field value for FullName
                        CustomerAddRq.JobTypeRef.FullName.SetValue("ab")
                        'Set field value for Notes
                        CustomerAddRq.Notes.SetValue("ab")
                        Dim AdditionalNotes7055 as IAdditionalNotes
                        AdditionalNotes7055=CustomerAddRq.AdditionalNotesList.Append()
                        'Set field value for Note
                        AdditionalNotes7055.Note.SetValue("ab")
                        'Set field value for PreferredDeliveryMethod
                        CustomerAddRq.PreferredDeliveryMethod.SetValue(ENPreferredDeliveryMethod.pdmNone [Default])
                        'Set field value for ListID
                        CustomerAddRq.PriceLevelRef.ListID.SetValue("200000-1011023419")
                        'Set field value for FullName
                        CustomerAddRq.PriceLevelRef.FullName.SetValue("ab")
                        'Set field value for ExternalGUID
                        CustomerAddRq.ExternalGUID.SetValue(System.Guid.NewGuid().ToString())
                        'Set field value for TaxRegistrationNumber
                        CustomerAddRq.TaxRegistrationNumber.SetValue("ab")
                        'Set field value for ListID
                        CustomerAddRq.CurrencyRef.ListID.SetValue("200000-1011023419")
                        'Set field value for FullName
                        CustomerAddRq.CurrencyRef.FullName.SetValue("ab")
                        'Set field value for IncludeRetElementList
                        'May create more than one of these if needed
                        CustomerAddRq.IncludeRetElementList.Add("ab")
                End Sub




                Public Sub WalkCustomerAddRs( responseMsgSet as IMsgSetResponse)
                        if (responseMsgSet is nothing) then
                                Exit Sub
                        End If

                        Dim responseList as IResponseList
                        responseList = responseMsgSet.ResponseList
                        if (responseList is nothing) then
                                Exit Sub
                        End If

                        'if we sent only one request, there is only one response, we'll walk the list for this sample
                        for j=0 to responseList.Count-1
                                Dim response as IResponse
                                response = responseList.GetAt(j)
                                'check the status code of the response, 0=ok, >0 is warning
                                if (response.StatusCode >= 0) then
                                        'the request-specific response is in the details, make sure we have some
                                        if (not response.Detail is nothing) then
                                                'make sure the response is the type we're expecting
                                                Dim responseType as ENResponseType
                                                responseType = CType(response.Type.GetValue(),ENResponseType)
                                                if (responseType == ENResponseType.rtCustomerAddRs) then
                                                        'upcast to more specific type here, this is safe because we checked with response.Type check above
                                                        Dim CustomerRet as ICustomerRet
                                                        CustomerRet = CType(response.Detail,ICustomerRet)
                                                        WalkCustomerRet(CustomerRet)
                                                End If
                                        End If
                                End If
                        Next j
                End Sub




                Public Sub WalkCustomerRet(CustomerRet as ICustomerRet)
                        if (CustomerRet is nothing) then
                                Exit Sub
                        End If

                        'Go through all the elements of ICustomerRet
                        'Get value of ListID
                        Dim ListID7056 as String
                        ListID7056 = CustomerRet.ListID.GetValue()
                        'Get value of TimeCreated
                        Dim TimeCreated7057 as DateTime
                        TimeCreated7057 = CustomerRet.TimeCreated.GetValue()
                        'Get value of TimeModified
                        Dim TimeModified7058 as DateTime
                        TimeModified7058 = CustomerRet.TimeModified.GetValue()
                        'Get value of EditSequence
                        Dim EditSequence7059 as String
                        EditSequence7059 = CustomerRet.EditSequence.GetValue()
                        'Get value of Name
                        Dim Name7060 as String
                        Name7060 = CustomerRet.Name.GetValue()
                        'Get value of FullName
                        Dim FullName7061 as String
                        FullName7061 = CustomerRet.FullName.GetValue()
                        'Get value of IsActive
                        if ( not CustomerRet.IsActive is nothing) then
                                Dim IsActive7062 as Boolean
                                IsActive7062 = CustomerRet.IsActive.GetValue()
                        End If
                        if (not CustomerRet.ClassRef. is nothing) then
                                'Get value of ListID
                                if ( not CustomerRet.ClassRef.ListID is nothing) then
                                        Dim ListID7063 as String
                                        ListID7063 = CustomerRet.ClassRef.ListID.GetValue()
                                End If
                                'Get value of FullName
                                if ( not CustomerRet.ClassRef.FullName is nothing) then
                                        Dim FullName7064 as String
                                        FullName7064 = CustomerRet.ClassRef.FullName.GetValue()
                                End If
                        End If
                        if (not CustomerRet.ParentRef. is nothing) then
                                'Get value of ListID
                                if ( not CustomerRet.ParentRef.ListID is nothing) then
                                        Dim ListID7065 as String
                                        ListID7065 = CustomerRet.ParentRef.ListID.GetValue()
                                End If
                                'Get value of FullName
                                if ( not CustomerRet.ParentRef.FullName is nothing) then
                                        Dim FullName7066 as String
                                        FullName7066 = CustomerRet.ParentRef.FullName.GetValue()
                                End If
                        End If
                        'Get value of Sublevel
                        Dim Sublevel7067 as Integer
                        Sublevel7067 = CustomerRet.Sublevel.GetValue()
                        'Get value of CompanyName
                        if ( not CustomerRet.CompanyName is nothing) then
                                Dim CompanyName7068 as String
                                CompanyName7068 = CustomerRet.CompanyName.GetValue()
                        End If
                        'Get value of Salutation
                        if ( not CustomerRet.Salutation is nothing) then
                                Dim Salutation7069 as String
                                Salutation7069 = CustomerRet.Salutation.GetValue()
                        End If
                        'Get value of FirstName
                        if ( not CustomerRet.FirstName is nothing) then
                                Dim FirstName7070 as String
                                FirstName7070 = CustomerRet.FirstName.GetValue()
                        End If
                        'Get value of MiddleName
                        if ( not CustomerRet.MiddleName is nothing) then
                                Dim MiddleName7071 as String
                                MiddleName7071 = CustomerRet.MiddleName.GetValue()
                        End If
                        'Get value of LastName
                        if ( not CustomerRet.LastName is nothing) then
                                Dim LastName7072 as String
                                LastName7072 = CustomerRet.LastName.GetValue()
                        End If
                        'Get value of JobTitle
                        if ( not CustomerRet.JobTitle is nothing) then
                                Dim JobTitle7073 as String
                                JobTitle7073 = CustomerRet.JobTitle.GetValue()
                        End If
                        if (not CustomerRet.BillAddress. is nothing) then
                                'Get value of Addr1
                                if ( not CustomerRet.BillAddress.Addr1 is nothing) then
                                        Dim Addr17074 as String
                                        Addr17074 = CustomerRet.BillAddress.Addr1.GetValue()
                                End If
                                'Get value of Addr2
                                if ( not CustomerRet.BillAddress.Addr2 is nothing) then
                                        Dim Addr27075 as String
                                        Addr27075 = CustomerRet.BillAddress.Addr2.GetValue()
                                End If
                                'Get value of Addr3
                                if ( not CustomerRet.BillAddress.Addr3 is nothing) then
                                        Dim Addr37076 as String
                                        Addr37076 = CustomerRet.BillAddress.Addr3.GetValue()
                                End If
                                'Get value of Addr4
                                if ( not CustomerRet.BillAddress.Addr4 is nothing) then
                                        Dim Addr47077 as String
                                        Addr47077 = CustomerRet.BillAddress.Addr4.GetValue()
                                End If
                                'Get value of Addr5
                                if ( not CustomerRet.BillAddress.Addr5 is nothing) then
                                        Dim Addr57078 as String
                                        Addr57078 = CustomerRet.BillAddress.Addr5.GetValue()
                                End If
                                'Get value of City
                                if ( not CustomerRet.BillAddress.City is nothing) then
                                        Dim City7079 as String
                                        City7079 = CustomerRet.BillAddress.City.GetValue()
                                End If
                                'Get value of State
                                if ( not CustomerRet.BillAddress.State is nothing) then
                                        Dim State7080 as String
                                        State7080 = CustomerRet.BillAddress.State.GetValue()
                                End If
                                'Get value of PostalCode
                                if ( not CustomerRet.BillAddress.PostalCode is nothing) then
                                        Dim PostalCode7081 as String
                                        PostalCode7081 = CustomerRet.BillAddress.PostalCode.GetValue()
                                End If
                                'Get value of Country
                                if ( not CustomerRet.BillAddress.Country is nothing) then
                                        Dim Country7082 as String
                                        Country7082 = CustomerRet.BillAddress.Country.GetValue()
                                End If
                                'Get value of Note
                                if ( not CustomerRet.BillAddress.Note is nothing) then
                                        Dim Note7083 as String
                                        Note7083 = CustomerRet.BillAddress.Note.GetValue()
                                End If
                        End If
                        if (not CustomerRet.BillAddressBlock. is nothing) then
                                'Get value of Addr1
                                if ( not CustomerRet.BillAddressBlock.Addr1 is nothing) then
                                        Dim Addr17084 as String
                                        Addr17084 = CustomerRet.BillAddressBlock.Addr1.GetValue()
                                End If
                                'Get value of Addr2
                                if ( not CustomerRet.BillAddressBlock.Addr2 is nothing) then
                                        Dim Addr27085 as String
                                        Addr27085 = CustomerRet.BillAddressBlock.Addr2.GetValue()
                                End If
                                'Get value of Addr3
                                if ( not CustomerRet.BillAddressBlock.Addr3 is nothing) then
                                        Dim Addr37086 as String
                                        Addr37086 = CustomerRet.BillAddressBlock.Addr3.GetValue()
                                End If
                                'Get value of Addr4
                                if ( not CustomerRet.BillAddressBlock.Addr4 is nothing) then
                                        Dim Addr47087 as String
                                        Addr47087 = CustomerRet.BillAddressBlock.Addr4.GetValue()
                                End If
                                'Get value of Addr5
                                if ( not CustomerRet.BillAddressBlock.Addr5 is nothing) then
                                        Dim Addr57088 as String
                                        Addr57088 = CustomerRet.BillAddressBlock.Addr5.GetValue()
                                End If
                        End If
                        if (not CustomerRet.ShipAddress. is nothing) then
                                'Get value of Addr1
                                if ( not CustomerRet.ShipAddress.Addr1 is nothing) then
                                        Dim Addr17089 as String
                                        Addr17089 = CustomerRet.ShipAddress.Addr1.GetValue()
                                End If
                                'Get value of Addr2
                                if ( not CustomerRet.ShipAddress.Addr2 is nothing) then
                                        Dim Addr27090 as String
                                        Addr27090 = CustomerRet.ShipAddress.Addr2.GetValue()
                                End If
                                'Get value of Addr3
                                if ( not CustomerRet.ShipAddress.Addr3 is nothing) then
                                        Dim Addr37091 as String
                                        Addr37091 = CustomerRet.ShipAddress.Addr3.GetValue()
                                End If
                                'Get value of Addr4
                                if ( not CustomerRet.ShipAddress.Addr4 is nothing) then
                                        Dim Addr47092 as String
                                        Addr47092 = CustomerRet.ShipAddress.Addr4.GetValue()
                                End If
                                'Get value of Addr5
                                if ( not CustomerRet.ShipAddress.Addr5 is nothing) then
                                        Dim Addr57093 as String
                                        Addr57093 = CustomerRet.ShipAddress.Addr5.GetValue()
                                End If
                                'Get value of City
                                if ( not CustomerRet.ShipAddress.City is nothing) then
                                        Dim City7094 as String
                                        City7094 = CustomerRet.ShipAddress.City.GetValue()
                                End If
                                'Get value of State
                                if ( not CustomerRet.ShipAddress.State is nothing) then
                                        Dim State7095 as String
                                        State7095 = CustomerRet.ShipAddress.State.GetValue()
                                End If
                                'Get value of PostalCode
                                if ( not CustomerRet.ShipAddress.PostalCode is nothing) then
                                        Dim PostalCode7096 as String
                                        PostalCode7096 = CustomerRet.ShipAddress.PostalCode.GetValue()
                                End If
                                'Get value of Country
                                if ( not CustomerRet.ShipAddress.Country is nothing) then
                                        Dim Country7097 as String
                                        Country7097 = CustomerRet.ShipAddress.Country.GetValue()
                                End If
                                'Get value of Note
                                if ( not CustomerRet.ShipAddress.Note is nothing) then
                                        Dim Note7098 as String
                                        Note7098 = CustomerRet.ShipAddress.Note.GetValue()
                                End If
                        End If
                        if (not CustomerRet.ShipAddressBlock. is nothing) then
                                'Get value of Addr1
                                if ( not CustomerRet.ShipAddressBlock.Addr1 is nothing) then
                                        Dim Addr17099 as String
                                        Addr17099 = CustomerRet.ShipAddressBlock.Addr1.GetValue()
                                End If
                                'Get value of Addr2
                                if ( not CustomerRet.ShipAddressBlock.Addr2 is nothing) then
                                        Dim Addr27100 as String
                                        Addr27100 = CustomerRet.ShipAddressBlock.Addr2.GetValue()
                                End If
                                'Get value of Addr3
                                if ( not CustomerRet.ShipAddressBlock.Addr3 is nothing) then
                                        Dim Addr37101 as String
                                        Addr37101 = CustomerRet.ShipAddressBlock.Addr3.GetValue()
                                End If
                                'Get value of Addr4
                                if ( not CustomerRet.ShipAddressBlock.Addr4 is nothing) then
                                        Dim Addr47102 as String
                                        Addr47102 = CustomerRet.ShipAddressBlock.Addr4.GetValue()
                                End If
                                'Get value of Addr5
                                if ( not CustomerRet.ShipAddressBlock.Addr5 is nothing) then
                                        Dim Addr57103 as String
                                        Addr57103 = CustomerRet.ShipAddressBlock.Addr5.GetValue()
                                End If
                        End If
                        if (not CustomerRet.ShipToAddressList is nothing)
                                Dim i7104 as Integer
                                for i7104 = 0  to CustomerRet.ShipToAddressList.Count - 1
                                        Dim ShipToAddress as IShipToAddress
                                        ShipToAddress = CustomerRet.ShipToAddressList.GetAt(i7104)
                                        'Get value of Name
                                        Dim Name7105 as String
                                        Name7105 = ShipToAddressName.GetValue()
                                        'Get value of Addr1
                                        if ( not ShipToAddressAddr1 is nothing) then
                                                Dim Addr17106 as String
                                                Addr17106 = ShipToAddressAddr1.GetValue()
                                        End If
                                        'Get value of Addr2
                                        if ( not ShipToAddressAddr2 is nothing) then
                                                Dim Addr27107 as String
                                                Addr27107 = ShipToAddressAddr2.GetValue()
                                        End If
                                        'Get value of Addr3
                                        if ( not ShipToAddressAddr3 is nothing) then
                                                Dim Addr37108 as String
                                                Addr37108 = ShipToAddressAddr3.GetValue()
                                        End If
                                        'Get value of Addr4
                                        if ( not ShipToAddressAddr4 is nothing) then
                                                Dim Addr47109 as String
                                                Addr47109 = ShipToAddressAddr4.GetValue()
                                        End If
                                        'Get value of Addr5
                                        if ( not ShipToAddressAddr5 is nothing) then
                                                Dim Addr57110 as String
                                                Addr57110 = ShipToAddressAddr5.GetValue()
                                        End If
                                        'Get value of City
                                        if ( not ShipToAddressCity is nothing) then
                                                Dim City7111 as String
                                                City7111 = ShipToAddressCity.GetValue()
                                        End If
                                        'Get value of State
                                        if ( not ShipToAddressState is nothing) then
                                                Dim State7112 as String
                                                State7112 = ShipToAddressState.GetValue()
                                        End If
                                        'Get value of PostalCode
                                        if ( not ShipToAddressPostalCode is nothing) then
                                                Dim PostalCode7113 as String
                                                PostalCode7113 = ShipToAddressPostalCode.GetValue()
                                        End If
                                        'Get value of Country
                                        if ( not ShipToAddressCountry is nothing) then
                                                Dim Country7114 as String
                                                Country7114 = ShipToAddressCountry.GetValue()
                                        End If
                                        'Get value of Note
                                        if ( not ShipToAddressNote is nothing) then
                                                Dim Note7115 as String
                                                Note7115 = ShipToAddressNote.GetValue()
                                        End If
                                        'Get value of DefaultShipTo
                                        if ( not ShipToAddressDefaultShipTo is nothing) then
                                                Dim DefaultShipTo7116 as Boolean
                                                DefaultShipTo7116 = ShipToAddressDefaultShipTo.GetValue()
                                        End If
                                Next i7104
                        End If
                        'Get value of Phone
                        if ( not CustomerRet.Phone is nothing) then
                                Dim Phone7117 as String
                                Phone7117 = CustomerRet.Phone.GetValue()
                        End If
                        'Get value of AltPhone
                        if ( not CustomerRet.AltPhone is nothing) then
                                Dim AltPhone7118 as String
                                AltPhone7118 = CustomerRet.AltPhone.GetValue()
                        End If
                        'Get value of Fax
                        if ( not CustomerRet.Fax is nothing) then
                                Dim Fax7119 as String
                                Fax7119 = CustomerRet.Fax.GetValue()
                        End If
                        'Get value of Email
                        if ( not CustomerRet.Email is nothing) then
                                Dim Email7120 as String
                                Email7120 = CustomerRet.Email.GetValue()
                        End If
                        'Get value of Cc
                        if ( not CustomerRet.Cc is nothing) then
                                Dim Cc7121 as String
                                Cc7121 = CustomerRet.Cc.GetValue()
                        End If
                        'Get value of Contact
                        if ( not CustomerRet.Contact is nothing) then
                                Dim Contact7122 as String
                                Contact7122 = CustomerRet.Contact.GetValue()
                        End If
                        'Get value of AltContact
                        if ( not CustomerRet.AltContact is nothing) then
                                Dim AltContact7123 as String
                                AltContact7123 = CustomerRet.AltContact.GetValue()
                        End If
                        if (not CustomerRet.AdditionalContactRefList is nothing)
                                Dim i7124 as Integer
                                for i7124 = 0  to CustomerRet.AdditionalContactRefList.Count - 1
                                        Dim QBBaseRef as IQBBaseRef
                                        QBBaseRef = CustomerRet.AdditionalContactRefList.GetAt(i7124)
                                        'Get value of ContactName
                                        Dim ContactName7125 as String
                                        ContactName7125 = QBBaseRefContactName.GetValue()
                                        'Get value of ContactValue
                                        Dim ContactValue7126 as String
                                        ContactValue7126 = QBBaseRefContactValue.GetValue()
                                Next i7124
                        End If
                        if (not CustomerRet.ContactsRetList is nothing)
                                Dim i7127 as Integer
                                for i7127 = 0  to CustomerRet.ContactsRetList.Count - 1
                                        Dim ContactsRet as IContactsRet
                                        ContactsRet = CustomerRet.ContactsRetList.GetAt(i7127)
                                        'Get value of ListID
                                        Dim ListID7128 as String
                                        ListID7128 = ContactsRetListID.GetValue()
                                        'Get value of TimeCreated
                                        Dim TimeCreated7129 as DateTime
                                        TimeCreated7129 = ContactsRetTimeCreated.GetValue()
                                        'Get value of TimeModified
                                        Dim TimeModified7130 as DateTime
                                        TimeModified7130 = ContactsRetTimeModified.GetValue()
                                        'Get value of EditSequence
                                        Dim EditSequence7131 as String
                                        EditSequence7131 = ContactsRetEditSequence.GetValue()
                                        'Get value of Contact
                                        if ( not ContactsRetContact is nothing) then
                                                Dim Contact7132 as String
                                                Contact7132 = ContactsRetContact.GetValue()
                                        End If
                                        'Get value of Salutation
                                        if ( not ContactsRetSalutation is nothing) then
                                                Dim Salutation7133 as String
                                                Salutation7133 = ContactsRetSalutation.GetValue()
                                        End If
                                        'Get value of FirstName
                                        Dim FirstName7134 as String
                                        FirstName7134 = ContactsRetFirstName.GetValue()
                                        'Get value of MiddleName
                                        if ( not ContactsRetMiddleName is nothing) then
                                                Dim MiddleName7135 as String
                                                MiddleName7135 = ContactsRetMiddleName.GetValue()
                                        End If
                                        'Get value of LastName
                                        if ( not ContactsRetLastName is nothing) then
                                                Dim LastName7136 as String
                                                LastName7136 = ContactsRetLastName.GetValue()
                                        End If
                                        'Get value of JobTitle
                                        if ( not ContactsRetJobTitle is nothing) then
                                                Dim JobTitle7137 as String
                                                JobTitle7137 = ContactsRetJobTitle.GetValue()
                                        End If
                                        if (not ContactsRetAdditionalContactRefList is nothing)
                                                Dim i7138 as Integer
                                                for i7138 = 0  to ContactsRetAdditionalContactRefList.Count - 1
                                                        Dim QBBaseRef as IQBBaseRef
                                                        QBBaseRef = ContactsRetAdditionalContactRefList.GetAt(i7138)
                                                        'Get value of ContactName
                                                        Dim ContactName7139 as String
                                                        ContactName7139 = QBBaseRefContactName.GetValue()
                                                        'Get value of ContactValue
                                                        Dim ContactValue7140 as String
                                                        ContactValue7140 = QBBaseRefContactValue.GetValue()
                                                Next i7138
                                        End If
                                Next i7127
                        End If
                        if (not CustomerRet.CustomerTypeRef. is nothing) then
                                'Get value of ListID
                                if ( not CustomerRet.CustomerTypeRef.ListID is nothing) then
                                        Dim ListID7141 as String
                                        ListID7141 = CustomerRet.CustomerTypeRef.ListID.GetValue()
                                End If
                                'Get value of FullName
                                if ( not CustomerRet.CustomerTypeRef.FullName is nothing) then
                                        Dim FullName7142 as String
                                        FullName7142 = CustomerRet.CustomerTypeRef.FullName.GetValue()
                                End If
                        End If
                        if (not CustomerRet.TermsRef. is nothing) then
                                'Get value of ListID
                                if ( not CustomerRet.TermsRef.ListID is nothing) then
                                        Dim ListID7143 as String
                                        ListID7143 = CustomerRet.TermsRef.ListID.GetValue()
                                End If
                                'Get value of FullName
                                if ( not CustomerRet.TermsRef.FullName is nothing) then
                                        Dim FullName7144 as String
                                        FullName7144 = CustomerRet.TermsRef.FullName.GetValue()
                                End If
                        End If
                        if (not CustomerRet.SalesRepRef. is nothing) then
                                'Get value of ListID
                                if ( not CustomerRet.SalesRepRef.ListID is nothing) then
                                        Dim ListID7145 as String
                                        ListID7145 = CustomerRet.SalesRepRef.ListID.GetValue()
                                End If
                                'Get value of FullName
                                if ( not CustomerRet.SalesRepRef.FullName is nothing) then
                                        Dim FullName7146 as String
                                        FullName7146 = CustomerRet.SalesRepRef.FullName.GetValue()
                                End If
                        End If
                        'Get value of Balance
                        if ( not CustomerRet.Balance is nothing) then
                                Dim Balance7147 as Double
                                Balance7147 = CustomerRet.Balance.GetValue()
                        End If
                        'Get value of TotalBalance
                        if ( not CustomerRet.TotalBalance is nothing) then
                                Dim TotalBalance7148 as Double
                                TotalBalance7148 = CustomerRet.TotalBalance.GetValue()
                        End If
                        if (not CustomerRet.SalesTaxCodeRef. is nothing) then
                                'Get value of ListID
                                if ( not CustomerRet.SalesTaxCodeRef.ListID is nothing) then
                                        Dim ListID7149 as String
                                        ListID7149 = CustomerRet.SalesTaxCodeRef.ListID.GetValue()
                                End If
                                'Get value of FullName
                                if ( not CustomerRet.SalesTaxCodeRef.FullName is nothing) then
                                        Dim FullName7150 as String
                                        FullName7150 = CustomerRet.SalesTaxCodeRef.FullName.GetValue()
                                End If
                        End If
                        if (not CustomerRet.ItemSalesTaxRef. is nothing) then
                                'Get value of ListID
                                if ( not CustomerRet.ItemSalesTaxRef.ListID is nothing) then
                                        Dim ListID7151 as String
                                        ListID7151 = CustomerRet.ItemSalesTaxRef.ListID.GetValue()
                                End If
                                'Get value of FullName
                                if ( not CustomerRet.ItemSalesTaxRef.FullName is nothing) then
                                        Dim FullName7152 as String
                                        FullName7152 = CustomerRet.ItemSalesTaxRef.FullName.GetValue()
                                End If
                        End If
                        'Get value of SalesTaxCountry
                        if ( not CustomerRet.SalesTaxCountry is nothing) then
                                Dim SalesTaxCountry7153 as ENSalesTaxCountry
                                SalesTaxCountry7153 = CustomerRet.SalesTaxCountry.GetValue()
                        End If
                        'Get value of ResaleNumber
                        if ( not CustomerRet.ResaleNumber is nothing) then
                                Dim ResaleNumber7154 as String
                                ResaleNumber7154 = CustomerRet.ResaleNumber.GetValue()
                        End If
                        'Get value of AccountNumber
                        if ( not CustomerRet.AccountNumber is nothing) then
                                Dim AccountNumber7155 as String
                                AccountNumber7155 = CustomerRet.AccountNumber.GetValue()
                        End If
                        'Get value of CreditLimit
                        if ( not CustomerRet.CreditLimit is nothing) then
                                Dim CreditLimit7156 as Double
                                CreditLimit7156 = CustomerRet.CreditLimit.GetValue()
                        End If
                        if (not CustomerRet.PreferredPaymentMethodRef. is nothing) then
                                'Get value of ListID
                                if ( not CustomerRet.PreferredPaymentMethodRef.ListID is nothing) then
                                        Dim ListID7157 as String
                                        ListID7157 = CustomerRet.PreferredPaymentMethodRef.ListID.GetValue()
                                End If
                                'Get value of FullName
                                if ( not CustomerRet.PreferredPaymentMethodRef.FullName is nothing) then
                                        Dim FullName7158 as String
                                        FullName7158 = CustomerRet.PreferredPaymentMethodRef.FullName.GetValue()
                                End If
                        End If
                        if (not CustomerRet.CreditCardInfo. is nothing) then
                                'Get value of CreditCardNumber
                                if ( not CustomerRet.CreditCardInfo.CreditCardNumber is nothing) then
                                        Dim CreditCardNumber7159 as String
                                        CreditCardNumber7159 = CustomerRet.CreditCardInfo.CreditCardNumber.GetValue()
                                End If
                                'Get value of ExpirationMonth
                                if ( not CustomerRet.CreditCardInfo.ExpirationMonth is nothing) then
                                        Dim ExpirationMonth7160 as Integer
                                        ExpirationMonth7160 = CustomerRet.CreditCardInfo.ExpirationMonth.GetValue()
                                End If
                                'Get value of ExpirationYear
                                if ( not CustomerRet.CreditCardInfo.ExpirationYear is nothing) then
                                        Dim ExpirationYear7161 as Integer
                                        ExpirationYear7161 = CustomerRet.CreditCardInfo.ExpirationYear.GetValue()
                                End If
                                'Get value of NameOnCard
                                if ( not CustomerRet.CreditCardInfo.NameOnCard is nothing) then
                                        Dim NameOnCard7162 as String
                                        NameOnCard7162 = CustomerRet.CreditCardInfo.NameOnCard.GetValue()
                                End If
                                'Get value of CreditCardAddress
                                if ( not CustomerRet.CreditCardInfo.CreditCardAddress is nothing) then
                                        Dim CreditCardAddress7163 as String
                                        CreditCardAddress7163 = CustomerRet.CreditCardInfo.CreditCardAddress.GetValue()
                                End If
                                'Get value of CreditCardPostalCode
                                if ( not CustomerRet.CreditCardInfo.CreditCardPostalCode is nothing) then
                                        Dim CreditCardPostalCode7164 as String
                                        CreditCardPostalCode7164 = CustomerRet.CreditCardInfo.CreditCardPostalCode.GetValue()
                                End If
                        End If
                        'Get value of JobStatus
                        if ( not CustomerRet.JobStatus is nothing) then
                                Dim JobStatus7165 as ENJobStatus
                                JobStatus7165 = CustomerRet.JobStatus.GetValue()
                        End If
                        'Get value of JobStartDate
                        if ( not CustomerRet.JobStartDate is nothing) then
                                Dim JobStartDate7166 as DateTime
                                JobStartDate7166 = CustomerRet.JobStartDate.GetValue()
                        End If
                        'Get value of JobProjectedEndDate
                        if ( not CustomerRet.JobProjectedEndDate is nothing) then
                                Dim JobProjectedEndDate7167 as DateTime
                                JobProjectedEndDate7167 = CustomerRet.JobProjectedEndDate.GetValue()
                        End If
                        'Get value of JobEndDate
                        if ( not CustomerRet.JobEndDate is nothing) then
                                Dim JobEndDate7168 as DateTime
                                JobEndDate7168 = CustomerRet.JobEndDate.GetValue()
                        End If
                        'Get value of JobDesc
                        if ( not CustomerRet.JobDesc is nothing) then
                                Dim JobDesc7169 as String
                                JobDesc7169 = CustomerRet.JobDesc.GetValue()
                        End If
                        if (not CustomerRet.JobTypeRef. is nothing) then
                                'Get value of ListID
                                if ( not CustomerRet.JobTypeRef.ListID is nothing) then
                                        Dim ListID7170 as String
                                        ListID7170 = CustomerRet.JobTypeRef.ListID.GetValue()
                                End If
                                'Get value of FullName
                                if ( not CustomerRet.JobTypeRef.FullName is nothing) then
                                        Dim FullName7171 as String
                                        FullName7171 = CustomerRet.JobTypeRef.FullName.GetValue()
                                End If
                        End If
                        'Get value of Notes
                        if ( not CustomerRet.Notes is nothing) then
                                Dim Notes7172 as String
                                Notes7172 = CustomerRet.Notes.GetValue()
                        End If
                        if (not CustomerRet.AdditionalNotesRetList is nothing)
                                Dim i7173 as Integer
                                for i7173 = 0  to CustomerRet.AdditionalNotesRetList.Count - 1
                                        Dim AdditionalNotesRet as IAdditionalNotesRet
                                        AdditionalNotesRet = CustomerRet.AdditionalNotesRetList.GetAt(i7173)
                                        'Get value of NoteID
                                        Dim NoteID7174 as Integer
                                        NoteID7174 = AdditionalNotesRetNoteID.GetValue()
                                        'Get value of Date
                                        Dim Date7175 as DateTime
                                        Date7175 = AdditionalNotesRetDate.GetValue()
                                        'Get value of Note
                                        Dim Note7176 as String
                                        Note7176 = AdditionalNotesRetNote.GetValue()
                                Next i7173
                        End If
                        'Get value of PreferredDeliveryMethod
                        if ( not CustomerRet.PreferredDeliveryMethod is nothing) then
                                Dim PreferredDeliveryMethod7177 as ENPreferredDeliveryMethod
                                PreferredDeliveryMethod7177 = CustomerRet.PreferredDeliveryMethod.GetValue()
                        End If
                        if (not CustomerRet.PriceLevelRef. is nothing) then
                                'Get value of ListID
                                if ( not CustomerRet.PriceLevelRef.ListID is nothing) then
                                        Dim ListID7178 as String
                                        ListID7178 = CustomerRet.PriceLevelRef.ListID.GetValue()
                                End If
                                'Get value of FullName
                                if ( not CustomerRet.PriceLevelRef.FullName is nothing) then
                                        Dim FullName7179 as String
                                        FullName7179 = CustomerRet.PriceLevelRef.FullName.GetValue()
                                End If
                        End If
                        'Get value of ExternalGUID
                        if ( not CustomerRet.ExternalGUID is nothing) then
                                Dim ExternalGUID7180 as String
                                ExternalGUID7180 = CustomerRet.ExternalGUID.GetValue()
                        End If
                        'Get value of TaxRegistrationNumber
                        if ( not CustomerRet.TaxRegistrationNumber is nothing) then
                                Dim TaxRegistrationNumber7181 as String
                                TaxRegistrationNumber7181 = CustomerRet.TaxRegistrationNumber.GetValue()
                        End If
                        if (not CustomerRet.CurrencyRef. is nothing) then
                                'Get value of ListID
                                if ( not CustomerRet.CurrencyRef.ListID is nothing) then
                                        Dim ListID7182 as String
                                        ListID7182 = CustomerRet.CurrencyRef.ListID.GetValue()
                                End If
                                'Get value of FullName
                                if ( not CustomerRet.CurrencyRef.FullName is nothing) then
                                        Dim FullName7183 as String
                                        FullName7183 = CustomerRet.CurrencyRef.FullName.GetValue()
                                End If
                        End If
                        if (not CustomerRet.DataExtRetList is nothing)
                                Dim i7184 as Integer
                                for i7184 = 0  to CustomerRet.DataExtRetList.Count - 1
                                        Dim DataExtRet as IDataExtRet
                                        DataExtRet = CustomerRet.DataExtRetList.GetAt(i7184)
                                        'Get value of OwnerID
                                        if ( not DataExtRetOwnerID is nothing) then
                                                Dim OwnerID7185 as String
                                                OwnerID7185 = DataExtRetOwnerID.GetValue()
                                        End If
                                        'Get value of DataExtName
                                        Dim DataExtName7186 as String
                                        DataExtName7186 = DataExtRetDataExtName.GetValue()
                                        'Get value of DataExtType
                                        Dim DataExtType7187 as ENDataExtType
                                        DataExtType7187 = DataExtRetDataExtType.GetValue()
                                        'Get value of DataExtValue
                                        Dim DataExtValue7188 as String
                                        DataExtValue7188 = DataExtRetDataExtValue.GetValue()
                                Next i7184
                        End If
                End Sub




        End Class
End Module

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
//The following sample code is generated as an illustration of
//Creating requests and parsing responses ONLY
//This code is NOT intended to show best practices or ideal code
//Use at your most careful discretion

using System;
using System.Net;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.IO;
using Interop.QBFC16;

namespace com.intuit.idn.samples
{
        public class Sample
        {
                public void  DoCustomerAdd()
                {
                        bool sessionBegun = false;
                        bool connectionOpen = false;
                        QBSessionManager sessionManager = null;

                        try
                        {
                                //Create the session Manager object
                                sessionManager = new QBSessionManager();

                                //Create the message set request object to hold our request
                                IMsgSetRequest requestMsgSet = sessionManager.CreateMsgSetRequest("US",16,0);
                                requestMsgSet.Attributes.OnError = ENRqOnError.roeContinue;

                                BuildCustomerAddRq(requestMsgSet);

                                //Connect to QuickBooks and begin a session
                                sessionManager.OpenConnection("","Sample Code from OSR");
                                connectionOpen = true;
                                sessionManager.BeginSession("", ENOpenMode.omDontCare);
                                sessionBegun = true;

                                //Send the request and get the response from QuickBooks
                                IMsgSetResponse responseMsgSet = sessionManager.DoRequests(requestMsgSet);

                                //End the session and close the connection to QuickBooks
                                sessionManager.EndSession();
                                sessionBegun = false;
                                sessionManager.CloseConnection();
                                connectionOpen = false;

                                WalkCustomerAddRs(responseMsgSet);
                        }
                        catch (Exception e)
                        {
                                MessageBox.Show(e.Message, "Error");
                                if (sessionBegun)
                                {
                                        sessionManager.EndSession();
                                }
                                if (connectionOpen)
                                {
                                        sessionManager.CloseConnection();
                                }
                        }
                }
                void BuildCustomerAddRq(IMsgSetRequest requestMsgSet)
                {
                        ICustomerAdd CustomerAddRq= requestMsgSet.AppendCustomerAddRq();
                        //Set field value for Name
                        CustomerAddRq.Name.SetValue("ab");
                        //Set field value for IsActive
                        CustomerAddRq.IsActive.SetValue(true);
                        //Set field value for ListID
                        CustomerAddRq.ClassRef.ListID.SetValue("200000-1011023419");
                        //Set field value for FullName
                        CustomerAddRq.ClassRef.FullName.SetValue("ab");
                        //Set field value for ListID
                        CustomerAddRq.ParentRef.ListID.SetValue("200000-1011023419");
                        //Set field value for FullName
                        CustomerAddRq.ParentRef.FullName.SetValue("ab");
                        //Set field value for CompanyName
                        CustomerAddRq.CompanyName.SetValue("ab");
                        //Set field value for Salutation
                        CustomerAddRq.Salutation.SetValue("ab");
                        //Set field value for FirstName
                        CustomerAddRq.FirstName.SetValue("ab");
                        //Set field value for MiddleName
                        CustomerAddRq.MiddleName.SetValue("ab");
                        //Set field value for LastName
                        CustomerAddRq.LastName.SetValue("ab");
                        //Set field value for JobTitle
                        CustomerAddRq.JobTitle.SetValue("ab");
                        //Set field value for Addr1
                        CustomerAddRq.BillAddress.Addr1.SetValue("ab");
                        //Set field value for Addr2
                        CustomerAddRq.BillAddress.Addr2.SetValue("ab");
                        //Set field value for Addr3
                        CustomerAddRq.BillAddress.Addr3.SetValue("ab");
                        //Set field value for Addr4
                        CustomerAddRq.BillAddress.Addr4.SetValue("ab");
                        //Set field value for Addr5
                        CustomerAddRq.BillAddress.Addr5.SetValue("ab");
                        //Set field value for City
                        CustomerAddRq.BillAddress.City.SetValue("ab");
                        //Set field value for State
                        CustomerAddRq.BillAddress.State.SetValue("ab");
                        //Set field value for PostalCode
                        CustomerAddRq.BillAddress.PostalCode.SetValue("ab");
                        //Set field value for Country
                        CustomerAddRq.BillAddress.Country.SetValue("ab");
                        //Set field value for Note
                        CustomerAddRq.BillAddress.Note.SetValue("ab");
                        //Set field value for Addr1
                        CustomerAddRq.ShipAddress.Addr1.SetValue("ab");
                        //Set field value for Addr2
                        CustomerAddRq.ShipAddress.Addr2.SetValue("ab");
                        //Set field value for Addr3
                        CustomerAddRq.ShipAddress.Addr3.SetValue("ab");
                        //Set field value for Addr4
                        CustomerAddRq.ShipAddress.Addr4.SetValue("ab");
                        //Set field value for Addr5
                        CustomerAddRq.ShipAddress.Addr5.SetValue("ab");
                        //Set field value for City
                        CustomerAddRq.ShipAddress.City.SetValue("ab");
                        //Set field value for State
                        CustomerAddRq.ShipAddress.State.SetValue("ab");
                        //Set field value for PostalCode
                        CustomerAddRq.ShipAddress.PostalCode.SetValue("ab");
                        //Set field value for Country
                        CustomerAddRq.ShipAddress.Country.SetValue("ab");
                        //Set field value for Note
                        CustomerAddRq.ShipAddress.Note.SetValue("ab");
                        IShipToAddress ShipToAddress6913=CustomerAddRq.ShipToAddressList.Append();
                        //Set field value for Name
                        ShipToAddress6913.Name.SetValue("ab");
                        //Set field value for Addr1
                        ShipToAddress6913.Addr1.SetValue("ab");
                        //Set field value for Addr2
                        ShipToAddress6913.Addr2.SetValue("ab");
                        //Set field value for Addr3
                        ShipToAddress6913.Addr3.SetValue("ab");
                        //Set field value for Addr4
                        ShipToAddress6913.Addr4.SetValue("ab");
                        //Set field value for Addr5
                        ShipToAddress6913.Addr5.SetValue("ab");
                        //Set field value for City
                        ShipToAddress6913.City.SetValue("ab");
                        //Set field value for State
                        ShipToAddress6913.State.SetValue("ab");
                        //Set field value for PostalCode
                        ShipToAddress6913.PostalCode.SetValue("ab");
                        //Set field value for Country
                        ShipToAddress6913.Country.SetValue("ab");
                        //Set field value for Note
                        ShipToAddress6913.Note.SetValue("ab");
                        //Set field value for DefaultShipTo
                        ShipToAddress6913.DefaultShipTo.SetValue(true);
                        //Set field value for Phone
                        CustomerAddRq.Phone.SetValue("ab");
                        //Set field value for AltPhone
                        CustomerAddRq.AltPhone.SetValue("ab");
                        //Set field value for Fax
                        CustomerAddRq.Fax.SetValue("ab");
                        //Set field value for Email
                        CustomerAddRq.Email.SetValue("ab");
                        //Set field value for Cc
                        CustomerAddRq.Cc.SetValue("ab");
                        //Set field value for Contact
                        CustomerAddRq.Contact.SetValue("ab");
                        //Set field value for AltContact
                        CustomerAddRq.AltContact.SetValue("ab");
                        IQBBaseRef AdditionalContactRef6914=CustomerAddRq.AdditionalContactRefList.Append();
                        //Set field value for ContactName
                        AdditionalContactRef6914.ContactName.SetValue("ab");
                        //Set field value for ContactValue
                        AdditionalContactRef6914.ContactValue.SetValue("ab");
                        IContacts Contacts6915=CustomerAddRq.ContactsList.Append();
                        //Set field value for Salutation
                        Contacts6915.Salutation.SetValue("ab");
                        //Set field value for FirstName
                        Contacts6915.FirstName.SetValue("ab");
                        //Set field value for MiddleName
                        Contacts6915.MiddleName.SetValue("ab");
                        //Set field value for LastName
                        Contacts6915.LastName.SetValue("ab");
                        //Set field value for JobTitle
                        Contacts6915.JobTitle.SetValue("ab");
                        IQBBaseRef AdditionalContactRef6916=Contacts6915.AdditionalContactRefList.Append();
                        //Set field value for ContactName
                        AdditionalContactRef6916.ContactName.SetValue("ab");
                        //Set field value for ContactValue
                        AdditionalContactRef6916.ContactValue.SetValue("ab");
                        //Set field value for ListID
                        CustomerAddRq.CustomerTypeRef.ListID.SetValue("200000-1011023419");
                        //Set field value for FullName
                        CustomerAddRq.CustomerTypeRef.FullName.SetValue("ab");
                        //Set field value for ListID
                        CustomerAddRq.TermsRef.ListID.SetValue("200000-1011023419");
                        //Set field value for FullName
                        CustomerAddRq.TermsRef.FullName.SetValue("ab");
                        //Set field value for ListID
                        CustomerAddRq.SalesRepRef.ListID.SetValue("200000-1011023419");
                        //Set field value for FullName
                        CustomerAddRq.SalesRepRef.FullName.SetValue("ab");
                        //Set field value for OpenBalance
                        CustomerAddRq.OpenBalance.SetValue(10.01);
                        //Set field value for OpenBalanceDate
                        CustomerAddRq.OpenBalanceDate.SetValue(DateTime.Parse("12/15/2007"));
                        //Set field value for ListID
                        CustomerAddRq.SalesTaxCodeRef.ListID.SetValue("200000-1011023419");
                        //Set field value for FullName
                        CustomerAddRq.SalesTaxCodeRef.FullName.SetValue("ab");
                        //Set field value for ListID
                        CustomerAddRq.ItemSalesTaxRef.ListID.SetValue("200000-1011023419");
                        //Set field value for FullName
                        CustomerAddRq.ItemSalesTaxRef.FullName.SetValue("ab");
                        //Set field value for SalesTaxCountry
                        CustomerAddRq.SalesTaxCountry.SetValue(ENSalesTaxCountry.stcAustralia);
                        //Set field value for ResaleNumber
                        CustomerAddRq.ResaleNumber.SetValue("ab");
                        //Set field value for AccountNumber
                        CustomerAddRq.AccountNumber.SetValue("ab");
                        //Set field value for CreditLimit
                        CustomerAddRq.CreditLimit.SetValue(10.01);
                        //Set field value for ListID
                        CustomerAddRq.PreferredPaymentMethodRef.ListID.SetValue("200000-1011023419");
                        //Set field value for FullName
                        CustomerAddRq.PreferredPaymentMethodRef.FullName.SetValue("ab");
                        //Set field value for CreditCardNumber
                        CustomerAddRq.CreditCardInfo.CreditCardNumber.SetValue("ab");
                        //Set field value for ExpirationMonth
                        CustomerAddRq.CreditCardInfo.ExpirationMonth.SetValue(6);
                        //Set field value for ExpirationYear
                        CustomerAddRq.CreditCardInfo.ExpirationYear.SetValue(6);
                        //Set field value for NameOnCard
                        CustomerAddRq.CreditCardInfo.NameOnCard.SetValue("ab");
                        //Set field value for CreditCardAddress
                        CustomerAddRq.CreditCardInfo.CreditCardAddress.SetValue("ab");
                        //Set field value for CreditCardPostalCode
                        CustomerAddRq.CreditCardInfo.CreditCardPostalCode.SetValue("ab");
                        //Set field value for JobStatus
                        CustomerAddRq.JobStatus.SetValue(ENJobStatus.jsAwarded);
                        //Set field value for JobStartDate
                        CustomerAddRq.JobStartDate.SetValue(DateTime.Parse("12/15/2007"));
                        //Set field value for JobProjectedEndDate
                        CustomerAddRq.JobProjectedEndDate.SetValue(DateTime.Parse("12/15/2007"));
                        //Set field value for JobEndDate
                        CustomerAddRq.JobEndDate.SetValue(DateTime.Parse("12/15/2007"));
                        //Set field value for JobDesc
                        CustomerAddRq.JobDesc.SetValue("ab");
                        //Set field value for ListID
                        CustomerAddRq.JobTypeRef.ListID.SetValue("200000-1011023419");
                        //Set field value for FullName
                        CustomerAddRq.JobTypeRef.FullName.SetValue("ab");
                        //Set field value for Notes
                        CustomerAddRq.Notes.SetValue("ab");
                        IAdditionalNotes AdditionalNotes6917=CustomerAddRq.AdditionalNotesList.Append();
                        //Set field value for Note
                        AdditionalNotes6917.Note.SetValue("ab");
                        //Set field value for PreferredDeliveryMethod
                        CustomerAddRq.PreferredDeliveryMethod.SetValue(ENPreferredDeliveryMethod.pdmNone [Default]);
                        //Set field value for ListID
                        CustomerAddRq.PriceLevelRef.ListID.SetValue("200000-1011023419");
                        //Set field value for FullName
                        CustomerAddRq.PriceLevelRef.FullName.SetValue("ab");
                        //Set field value for ExternalGUID
                        CustomerAddRq.ExternalGUID.SetValue(Guid.NewGuid().ToString());
                        //Set field value for TaxRegistrationNumber
                        CustomerAddRq.TaxRegistrationNumber.SetValue("ab");
                        //Set field value for ListID
                        CustomerAddRq.CurrencyRef.ListID.SetValue("200000-1011023419");
                        //Set field value for FullName
                        CustomerAddRq.CurrencyRef.FullName.SetValue("ab");
                        //Set field value for IncludeRetElementList
                        //May create more than one of these if needed
                        CustomerAddRq.IncludeRetElementList.Add("ab");
                }




                void WalkCustomerAddRs(IMsgSetResponse responseMsgSet)
                {
                        if (responseMsgSet == null) return;
                        IResponseList responseList = responseMsgSet.ResponseList;
                        if (responseList == null) return;
                        //if we sent only one request, there is only one response, we'll walk the list for this sample
                        for(int i=0; i < responseList.Count; i++)
                        {
                                IResponse response = responseList.GetAt(i);
                                //check the status code of the response, 0=ok, >0 is warning
                                if (response.StatusCode >= 0)
                                {
                                        //the request-specific response is in the details, make sure we have some
                                        if (response.Detail != null)
                                        {
                                                //make sure the response is the type we're expecting
                                                ENResponseType responseType = (ENResponseType)response.Type.GetValue();
                                                if (responseType == ENResponseType.rtCustomerAddRs)
                                                {
                                                        //upcast to more specific type here, this is safe because we checked with response.Type check above
                                                        ICustomerRet CustomerRet = (ICustomerRet)response.Detail;
                                                        WalkCustomerRet(CustomerRet);
                                                }
                                        }
                                }
                        }
                }




                void WalkCustomerRet(ICustomerRet CustomerRet)
                {
                        if (CustomerRet == null) return;
                        //Go through all the elements of ICustomerRet
                        //Get value of ListID
                        string ListID6918 = (string)CustomerRet.ListID.GetValue();
                        //Get value of TimeCreated
                        DateTime TimeCreated6919 = (DateTime)CustomerRet.TimeCreated.GetValue();
                        //Get value of TimeModified
                        DateTime TimeModified6920 = (DateTime)CustomerRet.TimeModified.GetValue();
                        //Get value of EditSequence
                        string EditSequence6921 = (string)CustomerRet.EditSequence.GetValue();
                        //Get value of Name
                        string Name6922 = (string)CustomerRet.Name.GetValue();
                        //Get value of FullName
                        string FullName6923 = (string)CustomerRet.FullName.GetValue();
                        //Get value of IsActive
                        if (CustomerRet.IsActive != null)
                        {
                                bool IsActive6924 = (bool)CustomerRet.IsActive.GetValue();
                        }
                        if (CustomerRet.ClassRef != null)
                        {
                                //Get value of ListID
                                if (CustomerRet.ClassRef.ListID != null)
                                {
                                        string ListID6925 = (string)CustomerRet.ClassRef.ListID.GetValue();
                                }
                                //Get value of FullName
                                if (CustomerRet.ClassRef.FullName != null)
                                {
                                        string FullName6926 = (string)CustomerRet.ClassRef.FullName.GetValue();
                                }
                        }
                        if (CustomerRet.ParentRef != null)
                        {
                                //Get value of ListID
                                if (CustomerRet.ParentRef.ListID != null)
                                {
                                        string ListID6927 = (string)CustomerRet.ParentRef.ListID.GetValue();
                                }
                                //Get value of FullName
                                if (CustomerRet.ParentRef.FullName != null)
                                {
                                        string FullName6928 = (string)CustomerRet.ParentRef.FullName.GetValue();
                                }
                        }
                        //Get value of Sublevel
                        int Sublevel6929 = (int)CustomerRet.Sublevel.GetValue();
                        //Get value of CompanyName
                        if (CustomerRet.CompanyName != null)
                        {
                                string CompanyName6930 = (string)CustomerRet.CompanyName.GetValue();
                        }
                        //Get value of Salutation
                        if (CustomerRet.Salutation != null)
                        {
                                string Salutation6931 = (string)CustomerRet.Salutation.GetValue();
                        }
                        //Get value of FirstName
                        if (CustomerRet.FirstName != null)
                        {
                                string FirstName6932 = (string)CustomerRet.FirstName.GetValue();
                        }
                        //Get value of MiddleName
                        if (CustomerRet.MiddleName != null)
                        {
                                string MiddleName6933 = (string)CustomerRet.MiddleName.GetValue();
                        }
                        //Get value of LastName
                        if (CustomerRet.LastName != null)
                        {
                                string LastName6934 = (string)CustomerRet.LastName.GetValue();
                        }
                        //Get value of JobTitle
                        if (CustomerRet.JobTitle != null)
                        {
                                string JobTitle6935 = (string)CustomerRet.JobTitle.GetValue();
                        }
                        if (CustomerRet.BillAddress != null)
                        {
                                //Get value of Addr1
                                if (CustomerRet.BillAddress.Addr1 != null)
                                {
                                        string Addr16936 = (string)CustomerRet.BillAddress.Addr1.GetValue();
                                }
                                //Get value of Addr2
                                if (CustomerRet.BillAddress.Addr2 != null)
                                {
                                        string Addr26937 = (string)CustomerRet.BillAddress.Addr2.GetValue();
                                }
                                //Get value of Addr3
                                if (CustomerRet.BillAddress.Addr3 != null)
                                {
                                        string Addr36938 = (string)CustomerRet.BillAddress.Addr3.GetValue();
                                }
                                //Get value of Addr4
                                if (CustomerRet.BillAddress.Addr4 != null)
                                {
                                        string Addr46939 = (string)CustomerRet.BillAddress.Addr4.GetValue();
                                }
                                //Get value of Addr5
                                if (CustomerRet.BillAddress.Addr5 != null)
                                {
                                        string Addr56940 = (string)CustomerRet.BillAddress.Addr5.GetValue();
                                }
                                //Get value of City
                                if (CustomerRet.BillAddress.City != null)
                                {
                                        string City6941 = (string)CustomerRet.BillAddress.City.GetValue();
                                }
                                //Get value of State
                                if (CustomerRet.BillAddress.State != null)
                                {
                                        string State6942 = (string)CustomerRet.BillAddress.State.GetValue();
                                }
                                //Get value of PostalCode
                                if (CustomerRet.BillAddress.PostalCode != null)
                                {
                                        string PostalCode6943 = (string)CustomerRet.BillAddress.PostalCode.GetValue();
                                }
                                //Get value of Country
                                if (CustomerRet.BillAddress.Country != null)
                                {
                                        string Country6944 = (string)CustomerRet.BillAddress.Country.GetValue();
                                }
                                //Get value of Note
                                if (CustomerRet.BillAddress.Note != null)
                                {
                                        string Note6945 = (string)CustomerRet.BillAddress.Note.GetValue();
                                }
                        }
                        if (CustomerRet.BillAddressBlock != null)
                        {
                                //Get value of Addr1
                                if (CustomerRet.BillAddressBlock.Addr1 != null)
                                {
                                        string Addr16946 = (string)CustomerRet.BillAddressBlock.Addr1.GetValue();
                                }
                                //Get value of Addr2
                                if (CustomerRet.BillAddressBlock.Addr2 != null)
                                {
                                        string Addr26947 = (string)CustomerRet.BillAddressBlock.Addr2.GetValue();
                                }
                                //Get value of Addr3
                                if (CustomerRet.BillAddressBlock.Addr3 != null)
                                {
                                        string Addr36948 = (string)CustomerRet.BillAddressBlock.Addr3.GetValue();
                                }
                                //Get value of Addr4
                                if (CustomerRet.BillAddressBlock.Addr4 != null)
                                {
                                        string Addr46949 = (string)CustomerRet.BillAddressBlock.Addr4.GetValue();
                                }
                                //Get value of Addr5
                                if (CustomerRet.BillAddressBlock.Addr5 != null)
                                {
                                        string Addr56950 = (string)CustomerRet.BillAddressBlock.Addr5.GetValue();
                                }
                        }
                        if (CustomerRet.ShipAddress != null)
                        {
                                //Get value of Addr1
                                if (CustomerRet.ShipAddress.Addr1 != null)
                                {
                                        string Addr16951 = (string)CustomerRet.ShipAddress.Addr1.GetValue();
                                }
                                //Get value of Addr2
                                if (CustomerRet.ShipAddress.Addr2 != null)
                                {
                                        string Addr26952 = (string)CustomerRet.ShipAddress.Addr2.GetValue();
                                }
                                //Get value of Addr3
                                if (CustomerRet.ShipAddress.Addr3 != null)
                                {
                                        string Addr36953 = (string)CustomerRet.ShipAddress.Addr3.GetValue();
                                }
                                //Get value of Addr4
                                if (CustomerRet.ShipAddress.Addr4 != null)
                                {
                                        string Addr46954 = (string)CustomerRet.ShipAddress.Addr4.GetValue();
                                }
                                //Get value of Addr5
                                if (CustomerRet.ShipAddress.Addr5 != null)
                                {
                                        string Addr56955 = (string)CustomerRet.ShipAddress.Addr5.GetValue();
                                }
                                //Get value of City
                                if (CustomerRet.ShipAddress.City != null)
                                {
                                        string City6956 = (string)CustomerRet.ShipAddress.City.GetValue();
                                }
                                //Get value of State
                                if (CustomerRet.ShipAddress.State != null)
                                {
                                        string State6957 = (string)CustomerRet.ShipAddress.State.GetValue();
                                }
                                //Get value of PostalCode
                                if (CustomerRet.ShipAddress.PostalCode != null)
                                {
                                        string PostalCode6958 = (string)CustomerRet.ShipAddress.PostalCode.GetValue();
                                }
                                //Get value of Country
                                if (CustomerRet.ShipAddress.Country != null)
                                {
                                        string Country6959 = (string)CustomerRet.ShipAddress.Country.GetValue();
                                }
                                //Get value of Note
                                if (CustomerRet.ShipAddress.Note != null)
                                {
                                        string Note6960 = (string)CustomerRet.ShipAddress.Note.GetValue();
                                }
                        }
                        if (CustomerRet.ShipAddressBlock != null)
                        {
                                //Get value of Addr1
                                if (CustomerRet.ShipAddressBlock.Addr1 != null)
                                {
                                        string Addr16961 = (string)CustomerRet.ShipAddressBlock.Addr1.GetValue();
                                }
                                //Get value of Addr2
                                if (CustomerRet.ShipAddressBlock.Addr2 != null)
                                {
                                        string Addr26962 = (string)CustomerRet.ShipAddressBlock.Addr2.GetValue();
                                }
                                //Get value of Addr3
                                if (CustomerRet.ShipAddressBlock.Addr3 != null)
                                {
                                        string Addr36963 = (string)CustomerRet.ShipAddressBlock.Addr3.GetValue();
                                }
                                //Get value of Addr4
                                if (CustomerRet.ShipAddressBlock.Addr4 != null)
                                {
                                        string Addr46964 = (string)CustomerRet.ShipAddressBlock.Addr4.GetValue();
                                }
                                //Get value of Addr5
                                if (CustomerRet.ShipAddressBlock.Addr5 != null)
                                {
                                        string Addr56965 = (string)CustomerRet.ShipAddressBlock.Addr5.GetValue();
                                }
                        }
                        if (CustomerRet.ShipToAddressList != null)
                        {
                                for (int i6966 = 0; i6966 < CustomerRet.ShipToAddressList.Count; i6966++)
                                {
                                        IShipToAddress ShipToAddress = CustomerRet.ShipToAddressList.GetAt(i6966);
                                        //Get value of Name
                                        string Name6967 = (string)ShipToAddress.Name.GetValue();
                                        //Get value of Addr1
                                        if (ShipToAddress.Addr1 != null)
                                        {
                                                string Addr16968 = (string)ShipToAddress.Addr1.GetValue();
                                        }
                                        //Get value of Addr2
                                        if (ShipToAddress.Addr2 != null)
                                        {
                                                string Addr26969 = (string)ShipToAddress.Addr2.GetValue();
                                        }
                                        //Get value of Addr3
                                        if (ShipToAddress.Addr3 != null)
                                        {
                                                string Addr36970 = (string)ShipToAddress.Addr3.GetValue();
                                        }
                                        //Get value of Addr4
                                        if (ShipToAddress.Addr4 != null)
                                        {
                                                string Addr46971 = (string)ShipToAddress.Addr4.GetValue();
                                        }
                                        //Get value of Addr5
                                        if (ShipToAddress.Addr5 != null)
                                        {
                                                string Addr56972 = (string)ShipToAddress.Addr5.GetValue();
                                        }
                                        //Get value of City
                                        if (ShipToAddress.City != null)
                                        {
                                                string City6973 = (string)ShipToAddress.City.GetValue();
                                        }
                                        //Get value of State
                                        if (ShipToAddress.State != null)
                                        {
                                                string State6974 = (string)ShipToAddress.State.GetValue();
                                        }
                                        //Get value of PostalCode
                                        if (ShipToAddress.PostalCode != null)
                                        {
                                                string PostalCode6975 = (string)ShipToAddress.PostalCode.GetValue();
                                        }
                                        //Get value of Country
                                        if (ShipToAddress.Country != null)
                                        {
                                                string Country6976 = (string)ShipToAddress.Country.GetValue();
                                        }
                                        //Get value of Note
                                        if (ShipToAddress.Note != null)
                                        {
                                                string Note6977 = (string)ShipToAddress.Note.GetValue();
                                        }
                                        //Get value of DefaultShipTo
                                        if (ShipToAddress.DefaultShipTo != null)
                                        {
                                                bool DefaultShipTo6978 = (bool)ShipToAddress.DefaultShipTo.GetValue();
                                        }
                                }
                        }
                        //Get value of Phone
                        if (CustomerRet.Phone != null)
                        {
                                string Phone6979 = (string)CustomerRet.Phone.GetValue();
                        }
                        //Get value of AltPhone
                        if (CustomerRet.AltPhone != null)
                        {
                                string AltPhone6980 = (string)CustomerRet.AltPhone.GetValue();
                        }
                        //Get value of Fax
                        if (CustomerRet.Fax != null)
                        {
                                string Fax6981 = (string)CustomerRet.Fax.GetValue();
                        }
                        //Get value of Email
                        if (CustomerRet.Email != null)
                        {
                                string Email6982 = (string)CustomerRet.Email.GetValue();
                        }
                        //Get value of Cc
                        if (CustomerRet.Cc != null)
                        {
                                string Cc6983 = (string)CustomerRet.Cc.GetValue();
                        }
                        //Get value of Contact
                        if (CustomerRet.Contact != null)
                        {
                                string Contact6984 = (string)CustomerRet.Contact.GetValue();
                        }
                        //Get value of AltContact
                        if (CustomerRet.AltContact != null)
                        {
                                string AltContact6985 = (string)CustomerRet.AltContact.GetValue();
                        }
                        if (CustomerRet.AdditionalContactRefList != null)
                        {
                                for (int i6986 = 0; i6986 < CustomerRet.AdditionalContactRefList.Count; i6986++)
                                {
                                        IQBBaseRef QBBaseRef = CustomerRet.AdditionalContactRefList.GetAt(i6986);
                                        //Get value of ContactName
                                        string ContactName6987 = (string)QBBaseRef.ContactName.GetValue();
                                        //Get value of ContactValue
                                        string ContactValue6988 = (string)QBBaseRef.ContactValue.GetValue();
                                }
                        }
                        if (CustomerRet.ContactsRetList != null)
                        {
                                for (int i6989 = 0; i6989 < CustomerRet.ContactsRetList.Count; i6989++)
                                {
                                        IContactsRet ContactsRet = CustomerRet.ContactsRetList.GetAt(i6989);
                                        //Get value of ListID
                                        string ListID6990 = (string)ContactsRet.ListID.GetValue();
                                        //Get value of TimeCreated
                                        DateTime TimeCreated6991 = (DateTime)ContactsRet.TimeCreated.GetValue();
                                        //Get value of TimeModified
                                        DateTime TimeModified6992 = (DateTime)ContactsRet.TimeModified.GetValue();
                                        //Get value of EditSequence
                                        string EditSequence6993 = (string)ContactsRet.EditSequence.GetValue();
                                        //Get value of Contact
                                        if (ContactsRet.Contact != null)
                                        {
                                                string Contact6994 = (string)ContactsRet.Contact.GetValue();
                                        }
                                        //Get value of Salutation
                                        if (ContactsRet.Salutation != null)
                                        {
                                                string Salutation6995 = (string)ContactsRet.Salutation.GetValue();
                                        }
                                        //Get value of FirstName
                                        string FirstName6996 = (string)ContactsRet.FirstName.GetValue();
                                        //Get value of MiddleName
                                        if (ContactsRet.MiddleName != null)
                                        {
                                                string MiddleName6997 = (string)ContactsRet.MiddleName.GetValue();
                                        }
                                        //Get value of LastName
                                        if (ContactsRet.LastName != null)
                                        {
                                                string LastName6998 = (string)ContactsRet.LastName.GetValue();
                                        }
                                        //Get value of JobTitle
                                        if (ContactsRet.JobTitle != null)
                                        {
                                                string JobTitle6999 = (string)ContactsRet.JobTitle.GetValue();
                                        }
                                        if (ContactsRet.AdditionalContactRefList != null)
                                        {
                                                for (int i7000 = 0; i7000 < ContactsRet.AdditionalContactRefList.Count; i7000++)
                                                {
                                                        IQBBaseRef QBBaseRef = ContactsRet.AdditionalContactRefList.GetAt(i7000);
                                                        //Get value of ContactName
                                                        string ContactName7001 = (string)QBBaseRef.ContactName.GetValue();
                                                        //Get value of ContactValue
                                                        string ContactValue7002 = (string)QBBaseRef.ContactValue.GetValue();
                                                }
                                        }
                                }
                        }
                        if (CustomerRet.CustomerTypeRef != null)
                        {
                                //Get value of ListID
                                if (CustomerRet.CustomerTypeRef.ListID != null)
                                {
                                        string ListID7003 = (string)CustomerRet.CustomerTypeRef.ListID.GetValue();
                                }
                                //Get value of FullName
                                if (CustomerRet.CustomerTypeRef.FullName != null)
                                {
                                        string FullName7004 = (string)CustomerRet.CustomerTypeRef.FullName.GetValue();
                                }
                        }
                        if (CustomerRet.TermsRef != null)
                        {
                                //Get value of ListID
                                if (CustomerRet.TermsRef.ListID != null)
                                {
                                        string ListID7005 = (string)CustomerRet.TermsRef.ListID.GetValue();
                                }
                                //Get value of FullName
                                if (CustomerRet.TermsRef.FullName != null)
                                {
                                        string FullName7006 = (string)CustomerRet.TermsRef.FullName.GetValue();
                                }
                        }
                        if (CustomerRet.SalesRepRef != null)
                        {
                                //Get value of ListID
                                if (CustomerRet.SalesRepRef.ListID != null)
                                {
                                        string ListID7007 = (string)CustomerRet.SalesRepRef.ListID.GetValue();
                                }
                                //Get value of FullName
                                if (CustomerRet.SalesRepRef.FullName != null)
                                {
                                        string FullName7008 = (string)CustomerRet.SalesRepRef.FullName.GetValue();
                                }
                        }
                        //Get value of Balance
                        if (CustomerRet.Balance != null)
                        {
                                double Balance7009 = (double)CustomerRet.Balance.GetValue();
                        }
                        //Get value of TotalBalance
                        if (CustomerRet.TotalBalance != null)
                        {
                                double TotalBalance7010 = (double)CustomerRet.TotalBalance.GetValue();
                        }
                        if (CustomerRet.SalesTaxCodeRef != null)
                        {
                                //Get value of ListID
                                if (CustomerRet.SalesTaxCodeRef.ListID != null)
                                {
                                        string ListID7011 = (string)CustomerRet.SalesTaxCodeRef.ListID.GetValue();
                                }
                                //Get value of FullName
                                if (CustomerRet.SalesTaxCodeRef.FullName != null)
                                {
                                        string FullName7012 = (string)CustomerRet.SalesTaxCodeRef.FullName.GetValue();
                                }
                        }
                        if (CustomerRet.ItemSalesTaxRef != null)
                        {
                                //Get value of ListID
                                if (CustomerRet.ItemSalesTaxRef.ListID != null)
                                {
                                        string ListID7013 = (string)CustomerRet.ItemSalesTaxRef.ListID.GetValue();
                                }
                                //Get value of FullName
                                if (CustomerRet.ItemSalesTaxRef.FullName != null)
                                {
                                        string FullName7014 = (string)CustomerRet.ItemSalesTaxRef.FullName.GetValue();
                                }
                        }
                        //Get value of SalesTaxCountry
                        if (CustomerRet.SalesTaxCountry != null)
                        {
                                ENSalesTaxCountry SalesTaxCountry7015 = (ENSalesTaxCountry)CustomerRet.SalesTaxCountry.GetValue();
                        }
                        //Get value of ResaleNumber
                        if (CustomerRet.ResaleNumber != null)
                        {
                                string ResaleNumber7016 = (string)CustomerRet.ResaleNumber.GetValue();
                        }
                        //Get value of AccountNumber
                        if (CustomerRet.AccountNumber != null)
                        {
                                string AccountNumber7017 = (string)CustomerRet.AccountNumber.GetValue();
                        }
                        //Get value of CreditLimit
                        if (CustomerRet.CreditLimit != null)
                        {
                                double CreditLimit7018 = (double)CustomerRet.CreditLimit.GetValue();
                        }
                        if (CustomerRet.PreferredPaymentMethodRef != null)
                        {
                                //Get value of ListID
                                if (CustomerRet.PreferredPaymentMethodRef.ListID != null)
                                {
                                        string ListID7019 = (string)CustomerRet.PreferredPaymentMethodRef.ListID.GetValue();
                                }
                                //Get value of FullName
                                if (CustomerRet.PreferredPaymentMethodRef.FullName != null)
                                {
                                        string FullName7020 = (string)CustomerRet.PreferredPaymentMethodRef.FullName.GetValue();
                                }
                        }
                        if (CustomerRet.CreditCardInfo != null)
                        {
                                //Get value of CreditCardNumber
                                if (CustomerRet.CreditCardInfo.CreditCardNumber != null)
                                {
                                        string CreditCardNumber7021 = (string)CustomerRet.CreditCardInfo.CreditCardNumber.GetValue();
                                }
                                //Get value of ExpirationMonth
                                if (CustomerRet.CreditCardInfo.ExpirationMonth != null)
                                {
                                        int ExpirationMonth7022 = (int)CustomerRet.CreditCardInfo.ExpirationMonth.GetValue();
                                }
                                //Get value of ExpirationYear
                                if (CustomerRet.CreditCardInfo.ExpirationYear != null)
                                {
                                        int ExpirationYear7023 = (int)CustomerRet.CreditCardInfo.ExpirationYear.GetValue();
                                }
                                //Get value of NameOnCard
                                if (CustomerRet.CreditCardInfo.NameOnCard != null)
                                {
                                        string NameOnCard7024 = (string)CustomerRet.CreditCardInfo.NameOnCard.GetValue();
                                }
                                //Get value of CreditCardAddress
                                if (CustomerRet.CreditCardInfo.CreditCardAddress != null)
                                {
                                        string CreditCardAddress7025 = (string)CustomerRet.CreditCardInfo.CreditCardAddress.GetValue();
                                }
                                //Get value of CreditCardPostalCode
                                if (CustomerRet.CreditCardInfo.CreditCardPostalCode != null)
                                {
                                        string CreditCardPostalCode7026 = (string)CustomerRet.CreditCardInfo.CreditCardPostalCode.GetValue();
                                }
                        }
                        //Get value of JobStatus
                        if (CustomerRet.JobStatus != null)
                        {
                                ENJobStatus JobStatus7027 = (ENJobStatus)CustomerRet.JobStatus.GetValue();
                        }
                        //Get value of JobStartDate
                        if (CustomerRet.JobStartDate != null)
                        {
                                DateTime JobStartDate7028 = (DateTime)CustomerRet.JobStartDate.GetValue();
                        }
                        //Get value of JobProjectedEndDate
                        if (CustomerRet.JobProjectedEndDate != null)
                        {
                                DateTime JobProjectedEndDate7029 = (DateTime)CustomerRet.JobProjectedEndDate.GetValue();
                        }
                        //Get value of JobEndDate
                        if (CustomerRet.JobEndDate != null)
                        {
                                DateTime JobEndDate7030 = (DateTime)CustomerRet.JobEndDate.GetValue();
                        }
                        //Get value of JobDesc
                        if (CustomerRet.JobDesc != null)
                        {
                                string JobDesc7031 = (string)CustomerRet.JobDesc.GetValue();
                        }
                        if (CustomerRet.JobTypeRef != null)
                        {
                                //Get value of ListID
                                if (CustomerRet.JobTypeRef.ListID != null)
                                {
                                        string ListID7032 = (string)CustomerRet.JobTypeRef.ListID.GetValue();
                                }
                                //Get value of FullName
                                if (CustomerRet.JobTypeRef.FullName != null)
                                {
                                        string FullName7033 = (string)CustomerRet.JobTypeRef.FullName.GetValue();
                                }
                        }
                        //Get value of Notes
                        if (CustomerRet.Notes != null)
                        {
                                string Notes7034 = (string)CustomerRet.Notes.GetValue();
                        }
                        if (CustomerRet.AdditionalNotesRetList != null)
                        {
                                for (int i7035 = 0; i7035 < CustomerRet.AdditionalNotesRetList.Count; i7035++)
                                {
                                        IAdditionalNotesRet AdditionalNotesRet = CustomerRet.AdditionalNotesRetList.GetAt(i7035);
                                        //Get value of NoteID
                                        int NoteID7036 = (int)AdditionalNotesRet.NoteID.GetValue();
                                        //Get value of Date
                                        DateTime Date7037 = (DateTime)AdditionalNotesRet.Date.GetValue();
                                        //Get value of Note
                                        string Note7038 = (string)AdditionalNotesRet.Note.GetValue();
                                }
                        }
                        //Get value of PreferredDeliveryMethod
                        if (CustomerRet.PreferredDeliveryMethod != null)
                        {
                                ENPreferredDeliveryMethod PreferredDeliveryMethod7039 = (ENPreferredDeliveryMethod)CustomerRet.PreferredDeliveryMethod.GetValue();
                        }
                        if (CustomerRet.PriceLevelRef != null)
                        {
                                //Get value of ListID
                                if (CustomerRet.PriceLevelRef.ListID != null)
                                {
                                        string ListID7040 = (string)CustomerRet.PriceLevelRef.ListID.GetValue();
                                }
                                //Get value of FullName
                                if (CustomerRet.PriceLevelRef.FullName != null)
                                {
                                        string FullName7041 = (string)CustomerRet.PriceLevelRef.FullName.GetValue();
                                }
                        }
                        //Get value of ExternalGUID
                        if (CustomerRet.ExternalGUID != null)
                        {
                                string ExternalGUID7042 = (string)CustomerRet.ExternalGUID.GetValue();
                        }
                        //Get value of TaxRegistrationNumber
                        if (CustomerRet.TaxRegistrationNumber != null)
                        {
                                string TaxRegistrationNumber7043 = (string)CustomerRet.TaxRegistrationNumber.GetValue();
                        }
                        if (CustomerRet.CurrencyRef != null)
                        {
                                //Get value of ListID
                                if (CustomerRet.CurrencyRef.ListID != null)
                                {
                                        string ListID7044 = (string)CustomerRet.CurrencyRef.ListID.GetValue();
                                }
                                //Get value of FullName
                                if (CustomerRet.CurrencyRef.FullName != null)
                                {
                                        string FullName7045 = (string)CustomerRet.CurrencyRef.FullName.GetValue();
                                }
                        }
                        if (CustomerRet.DataExtRetList != null)
                        {
                                for (int i7046 = 0; i7046 < CustomerRet.DataExtRetList.Count; i7046++)
                                {
                                        IDataExtRet DataExtRet = CustomerRet.DataExtRetList.GetAt(i7046);
                                        //Get value of OwnerID
                                        if (DataExtRet.OwnerID != null)
                                        {
                                                string OwnerID7047 = (string)DataExtRet.OwnerID.GetValue();
                                        }
                                        //Get value of DataExtName
                                        string DataExtName7048 = (string)DataExtRet.DataExtName.GetValue();
                                        //Get value of DataExtType
                                        ENDataExtType DataExtType7049 = (ENDataExtType)DataExtRet.DataExtType.GetValue();
                                        //Get value of DataExtValue
                                        string DataExtValue7050 = (string)DataExtRet.DataExtValue.GetValue();
                                }
                        }
                }




        }
}