Web Connector

Your App

serverVersion

Asks your server for its current version

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
        xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
        xmlns:tns="http://developer.intuit.com"
        xmlns:types="http://developer.intuit.com/encodedTypes"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <q1:serverVersion xmlns:q1="http://developer.intuit.com/" />
  </soap:Body>
</soap:Envelope>

serverVersionResponse

Your server responds with its version (any string)

<?xml version="1.0" encoding="UTF-8" ?>
<env:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
  <env:Body>
    <n1:serverVersionResponse env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
        xmlns:n1="urn:ActionWebService">
      <return xsi:type="xsd:string">Your App 1.0</return>
    </n1:serverVersionResponse>
  </env:Body>
</env:Envelope>

clientVersion

The web connector tells your app it's version

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:tns="http://developer.intuit.com"
    xmlns:types="http://developer.intuit.com/encodedTypes"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <q1:clientVersion xmlns:q1="http://developer.intuit.com/">
      <strVersion xsi:type="xsd:string">2.3.0.215</strVersion>
    </q1:clientVersion>
  </soap:Body>
</soap:Envelope>

clientVersionResponse

Returning an empty string to indicate support for this version of the web connector

<?xml version="1.0" encoding="UTF-8" ?>
<env:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
  <env:Body>
    <n1:clientVersionResponse
        env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
        xmlns:n1="urn:ActionWebService">
    </n1:clientVersionResponse>
  </env:Body>
</env:Envelope>

authenticate

The username is provided by the QWC file you gave them, their password is entered into the web connector

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xmlns:xsd="http://www.w3.org/2001/XMLSchema">
	<soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
		<q1:authenticate xmlns:q1="http://developer.intuit.com/">
			<strUserName xsi:type="xsd:string">a_username_goes_here</strUserName>
			<strPassword xsi:type="xsd:string">a_password_goes_here</strPassword>
    </q1:authenticate>
	</soap:Body>
</soap:Envelope>

authenticateResponse

We generate and return a session ticket (guid), along with the authentication result (an empty string means "use the current company file and proceed")

<?xml version="1.0" encoding="UTF-8" ?>
<env:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
  <env:Body>
    <n1:authenticateResponse
			 env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
			 xmlns:n1="urn:QuickbooksDesktopIntegration">
      <return xmlns:n2="http://schemas.xmlsoap.org/soap/encoding/"
          n2:arrayType="xsd:string[2]"
          xsi:type="n2:Array">
        <item>abcd-qwerf-zxxcv-asdf</item>
        <item></item>
      </return>
    </n1:authenticateResponse>
  </env:Body>
</env:Envelope>

sendRequestXML

The web connector asking your app if there's anything to do, and provides some extra data about the QuickBooks account

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:tns="http://developer.intuit.com"
    xmlns:types="http://developer.intuit.com/encodedTypes"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <q1:sendRequestXML xmlns:q1="http://developer.intuit.com/">
      <ticket xsi:type="xsd:string">abcd-qwerf-zxxcv-asdf
      <!-- strHCPResponse is escaped, and only gets sent along with the first `sendRequestXML` request -->
      <strHCPResponse>
        &lt;?xml version=&quot;1.0&quot;?&gt;
&lt;QBXML&gt;
  &lt;QBXMLMsgsRs&gt;
    &lt;HostQueryRs requestID=&quot;0&quot; statusCode=&quot;0&quot; statusSeverity=&quot;Info&quot; statusMessage=&quot;Status OK&quot;&gt;
      &lt;HostRet&gt;
        &lt;ProductName&gt;QuickBooks Desktop Pro&lt;/ProductName&gt;
        &lt;MajorVersion&gt;30&lt;/MajorVersion&gt;
        &lt;MinorVersion&gt;0&lt;/MinorVersion&gt;
        &lt;Country&gt;CA&lt;/Country&gt;
        &lt;SupportedQBXMLVersion&gt;1.0&lt;/SupportedQBXMLVersion&gt;
        &lt;SupportedQBXMLVersion&gt;1.1&lt;/SupportedQBXMLVersion&gt;
        &lt;SupportedQBXMLVersion&gt;2.0&lt;/SupportedQBXMLVersion&gt;
        &lt;SupportedQBXMLVersion&gt;2.1&lt;/SupportedQBXMLVersion&gt;
        &lt;SupportedQBXMLVersion&gt;3.0&lt;/SupportedQBXMLVersion&gt;
        &lt;SupportedQBXMLVersion&gt;4.0&lt;/SupportedQBXMLVersion&gt;
        &lt;SupportedQBXMLVersion&gt;4.1&lt;/SupportedQBXMLVersion&gt;
        &lt;SupportedQBXMLVersion&gt;5.0&lt;/SupportedQBXMLVersion&gt;
        &lt;SupportedQBXMLVersion&gt;6.0&lt;/SupportedQBXMLVersion&gt;
        &lt;SupportedQBXMLVersion&gt;7.0&lt;/SupportedQBXMLVersion&gt;
        &lt;SupportedQBXMLVersion&gt;8.0&lt;/SupportedQBXMLVersion&gt;
        &lt;SupportedQBXMLVersion&gt;9.0&lt;/SupportedQBXMLVersion&gt;
        &lt;SupportedQBXMLVersion&gt;10.0&lt;/SupportedQBXMLVersion&gt;
        &lt;SupportedQBXMLVersion&gt;11.0&lt;/SupportedQBXMLVersion&gt;
        &lt;SupportedQBXMLVersion&gt;12.0&lt;/SupportedQBXMLVersion&gt;
        &lt;SupportedQBXMLVersion&gt;13.0&lt;/SupportedQBXMLVersion&gt;
        &lt;SupportedQBXMLVersion&gt;14.0&lt;/SupportedQBXMLVersion&gt;
        &lt;IsAutomaticLogin&gt;false&lt;/IsAutomaticLogin&gt;
        &lt;QBFileMode&gt;SingleUser&lt;/QBFileMode&gt;
      &lt;/HostRet&gt;
    &lt;/HostQueryRs&gt;
    &lt;CompanyQueryRs requestID=&quot;1&quot; statusCode=&quot;0&quot; statusSeverity=&quot;Info&quot; statusMessage=&quot;Status OK&quot;&gt;
      &lt;CompanyRet&gt;
        &lt;IsSampleCompany&gt;true&lt;/IsSampleCompany&gt;
        &lt;CompanyName&gt;Pro Hockey School&lt;/CompanyName&gt;
        &lt;LegalCompanyName&gt;Pro Hockey School&lt;/LegalCompanyName&gt;
        &lt;Address&gt;
          &lt;Addr1&gt;4567 Dixon&lt;/Addr1&gt;
          &lt;City&gt;Toronto ON&lt;/City&gt;
          &lt;PostalCode&gt;M4Y 2M8&lt;/PostalCode&gt;
          &lt;Country&gt;Canada&lt;/Country&gt;
        &lt;/Address&gt;
        &lt;AddressBlock&gt;
          &lt;Addr1&gt;4567 Dixon&lt;/Addr1&gt;
          &lt;Addr2&gt;Toronto ON, M4Y 2M8&lt;/Addr2&gt;
        &lt;/AddressBlock&gt;
        &lt;LegalAddress&gt;
          &lt;Addr1&gt;4567 Dixon&lt;/Addr1&gt;
          &lt;City&gt;Toronto&lt;/City&gt;
          &lt;State&gt;ON&lt;/State&gt;
          &lt;PostalCode&gt;M4Y 2M8&lt;/PostalCode&gt;
          &lt;Country&gt;Canada&lt;/Country&gt;
        &lt;/LegalAddress&gt;
        &lt;Phone&gt;416 456-7890&lt;/Phone&gt;
        &lt;Fax&gt;416 789-4561&lt;/Fax&gt;
        &lt;FirstMonthFiscalYear&gt;January&lt;/FirstMonthFiscalYear&gt;
        &lt;FirstMonthIncomeTaxYear&gt;January&lt;/FirstMonthIncomeTaxYear&gt;
        &lt;CompanyType&gt;(No Type)&lt;/CompanyType&gt;
        &lt;TaxForm&gt;OtherOrNone&lt;/TaxForm&gt;
        &lt;SubscribedServices&gt;
          &lt;Service&gt;
            &lt;Name&gt;QuickBooks Online Banking&lt;/Name&gt;
            &lt;Domain&gt;banking.qb&lt;/Domain&gt;
            &lt;ServiceStatus&gt;Never&lt;/ServiceStatus&gt;
          &lt;/Service&gt;
          &lt;Service&gt;
            &lt;Name&gt;QuickBooks Online Billing&lt;/Name&gt;
            &lt;Domain&gt;billing.qb&lt;/Domain&gt;
            &lt;ServiceStatus&gt;Never&lt;/ServiceStatus&gt;
          &lt;/Service&gt;
          &lt;Service&gt;
            &lt;Name&gt;QuickBooks Online Billing Level 1 Service&lt;/Name&gt;
            &lt;Domain&gt;qbob1.qbn&lt;/Domain&gt;
            &lt;ServiceStatus&gt;Never&lt;/ServiceStatus&gt;
          &lt;/Service&gt;
          &lt;Service&gt;
            &lt;Name&gt;QuickBooks Online Billing Level 2 Service&lt;/Name&gt;
            &lt;Domain&gt;qbob2.qbn&lt;/Domain&gt;
            &lt;ServiceStatus&gt;Never&lt;/ServiceStatus&gt;
          &lt;/Service&gt;
          &lt;Service&gt;
            &lt;Name&gt;QuickBooks Online Billing Payment Service&lt;/Name&gt;
            &lt;Domain&gt;qbobpay.qbn&lt;/Domain&gt;
            &lt;ServiceStatus&gt;Never&lt;/ServiceStatus&gt;
          &lt;/Service&gt;
          &lt;Service&gt;
            &lt;Name&gt;QuickBooks Bill Payment&lt;/Name&gt;
            &lt;Domain&gt;billpay.qb&lt;/Domain&gt;
            &lt;ServiceStatus&gt;Never&lt;/ServiceStatus&gt;
          &lt;/Service&gt;
          &lt;Service&gt;
            &lt;Name&gt;QuickBooks Online Billing Paper Mailing Service&lt;/Name&gt;
            &lt;Domain&gt;qbobpaper.qbn&lt;/Domain&gt;
            &lt;ServiceStatus&gt;Never&lt;/ServiceStatus&gt;
          &lt;/Service&gt;
          &lt;Service&gt;
            &lt;Name&gt;QuickBooks Payroll Service&lt;/Name&gt;
            &lt;Domain&gt;payroll.qb&lt;/Domain&gt;
            &lt;ServiceStatus&gt;Never&lt;/ServiceStatus&gt;
          &lt;/Service&gt;
          &lt;Service&gt;
            &lt;Name&gt;QuickBooks Basic Payroll Service&lt;/Name&gt;
            &lt;Domain&gt;payrollbsc.qb&lt;/Domain&gt;
            &lt;ServiceStatus&gt;Never&lt;/ServiceStatus&gt;
          &lt;/Service&gt;
          &lt;Service&gt;
            &lt;Name&gt;QuickBooks Basic Disk Payroll Service&lt;/Name&gt;
            &lt;Domain&gt;payrollbscdisk.qb&lt;/Domain&gt;
            &lt;ServiceStatus&gt;Never&lt;/ServiceStatus&gt;
          &lt;/Service&gt;
          &lt;Service&gt;
            &lt;Name&gt;QuickBooks Deluxe Payroll Service&lt;/Name&gt;
            &lt;Domain&gt;payrolldlx.qb&lt;/Domain&gt;
            &lt;ServiceStatus&gt;Never&lt;/ServiceStatus&gt;
          &lt;/Service&gt;
          &lt;Service&gt;
            &lt;Name&gt;QuickBooks Premier Payroll Service&lt;/Name&gt;
            &lt;Domain&gt;payrollprm.qb&lt;/Domain&gt;
            &lt;ServiceStatus&gt;Never&lt;/ServiceStatus&gt;
          &lt;/Service&gt;
          &lt;Service&gt;
            &lt;Name&gt;Basic Plus Federal&lt;/Name&gt;
            &lt;Domain&gt;basic_plus_fed.qb&lt;/Domain&gt;
            &lt;ServiceStatus&gt;Never&lt;/ServiceStatus&gt;
          &lt;/Service&gt;
          &lt;Service&gt;
            &lt;Name&gt;Basic Plus Federal and State&lt;/Name&gt;
            &lt;Domain&gt;basic_plus_fed_state.qb&lt;/Domain&gt;
            &lt;ServiceStatus&gt;Never&lt;/ServiceStatus&gt;
          &lt;/Service&gt;
          &lt;Service&gt;
            &lt;Name&gt;Basic Plus Direct Deposit&lt;/Name&gt;
            &lt;Domain&gt;basic_plus_dd.qb&lt;/Domain&gt;
            &lt;ServiceStatus&gt;Never&lt;/ServiceStatus&gt;
          &lt;/Service&gt;
          &lt;Service&gt;
            &lt;Name&gt;Merchant Account Service&lt;/Name&gt;
            &lt;Domain&gt;mas.qbn&lt;/Domain&gt;
            &lt;ServiceStatus&gt;Never&lt;/ServiceStatus&gt;
          &lt;/Service&gt;
        &lt;/SubscribedServices&gt;
        &lt;AccountantCopy&gt;
          &lt;AccountantCopyExists&gt;false&lt;/AccountantCopyExists&gt;
        &lt;/AccountantCopy&gt;
        &lt;DataExtRet&gt;
          &lt;OwnerID&gt;{57F3B9B1-86F1-4fcc-B1EE-566DE1813D20}&lt;/OwnerID&gt;
          &lt;DataExtName&gt;AppLock&lt;/DataExtName&gt;
          &lt;DataExtType&gt;STR255TYPE&lt;/DataExtType&gt;
          &lt;DataExtValue&gt;LOCKED:DESKTOP-DC96AO8:637506041579451907&lt;/DataExtValue&gt;
        &lt;/DataExtRet&gt;
        &lt;DataExtRet&gt;
          &lt;OwnerID&gt;{57F3B9B1-86F1-4fcc-B1EE-566DE1813D20}&lt;/OwnerID&gt;
          &lt;DataExtName&gt;FileID&lt;/DataExtName&gt;
          &lt;DataExtType&gt;STR255TYPE&lt;/DataExtType&gt;
          &lt;DataExtValue&gt;{90A44FB5-33D9-4815-AC85-BC87A7E7D1EB}&lt;/DataExtValue&gt;
        &lt;/DataExtRet&gt;
      &lt;/CompanyRet&gt;
    &lt;/CompanyQueryRs&gt;
    &lt;PreferencesQueryRs requestID=&quot;2&quot; statusCode=&quot;0&quot; statusSeverity=&quot;Info&quot; statusMessage=&quot;Status OK&quot;&gt;
      &lt;PreferencesRet&gt;
        &lt;AccountingPreferences&gt;
          &lt;IsUsingAccountNumbers&gt;false&lt;/IsUsingAccountNumbers&gt;
          &lt;IsRequiringAccounts&gt;true&lt;/IsRequiringAccounts&gt;
          &lt;IsUsingClassTracking&gt;true&lt;/IsUsingClassTracking&gt;
          &lt;AssignClassesTo&gt;None&lt;/AssignClassesTo&gt;
          &lt;IsUsingAuditTrail&gt;true&lt;/IsUsingAuditTrail&gt;
          &lt;IsAssigningJournalEntryNumbers&gt;true&lt;/IsAssigningJournalEntryNumbers&gt;
          &lt;ClosingDate&gt;2008-09-30&lt;/ClosingDate&gt;
        &lt;/AccountingPreferences&gt;
        &lt;FinanceChargePreferences&gt;
          &lt;AnnualInterestRate&gt;0.00&lt;/AnnualInterestRate&gt;
          &lt;MinFinanceCharge&gt;0.00&lt;/MinFinanceCharge&gt;
          &lt;GracePeriod&gt;0&lt;/GracePeriod&gt;
          &lt;IsAssessingForOverdueCharges&gt;false&lt;/IsAssessingForOverdueCharges&gt;
          &lt;CalculateChargesFrom&gt;DueDate&lt;/CalculateChargesFrom&gt;
          &lt;IsMarkedToBePrinted&gt;false&lt;/IsMarkedToBePrinted&gt;
        &lt;/FinanceChargePreferences&gt;
        &lt;JobsAndEstimatesPreferences&gt;
          &lt;IsUsingEstimates&gt;true&lt;/IsUsingEstimates&gt;
          &lt;IsUsingProgressInvoicing&gt;true&lt;/IsUsingProgressInvoicing&gt;
          &lt;IsPrintingItemsWithZeroAmounts&gt;false&lt;/IsPrintingItemsWithZeroAmounts&gt;
        &lt;/JobsAndEstimatesPreferences&gt;
        &lt;MultiCurrencyPreferences&gt;
          &lt;IsMultiCurrencyOn&gt;false&lt;/IsMultiCurrencyOn&gt;
        &lt;/MultiCurrencyPreferences&gt;
        &lt;MultiLocationInventoryPreferences&gt;
          &lt;IsMultiLocationInventoryAvailable&gt;false&lt;/IsMultiLocationInventoryAvailable&gt;
          &lt;IsMultiLocationInventoryEnabled&gt;false&lt;/IsMultiLocationInventoryEnabled&gt;
        &lt;/MultiLocationInventoryPreferences&gt;
        &lt;PurchasesAndVendorsPreferences&gt;
          &lt;IsUsingInventory&gt;true&lt;/IsUsingInventory&gt;
          &lt;DaysBillsAreDue&gt;10&lt;/DaysBillsAreDue&gt;
          &lt;IsAutomaticallyUsingDiscounts&gt;true&lt;/IsAutomaticallyUsingDiscounts&gt;
          &lt;DefaultDiscountAccountRef&gt;
            &lt;ListID&gt;2C0000-1199214000&lt;/ListID&gt;
            &lt;FullName&gt;Vendor Discounts&lt;/FullName&gt;
          &lt;/DefaultDiscountAccountRef&gt;
        &lt;/PurchasesAndVendorsPreferences&gt;
        &lt;ReportsPreferences&gt;
          &lt;AgingReportBasis&gt;AgeFromDueDate&lt;/AgingReportBasis&gt;
          &lt;SummaryReportBasis&gt;Accrual&lt;/SummaryReportBasis&gt;
        &lt;/ReportsPreferences&gt;
        &lt;SalesAndCustomersPreferences&gt;
          &lt;IsTrackingReimbursedExpensesAsIncome&gt;false&lt;/IsTrackingReimbursedExpensesAsIncome&gt;
          &lt;IsAutoApplyingPayments&gt;true&lt;/IsAutoApplyingPayments&gt;
          &lt;PriceLevels&gt;
            &lt;IsUsingPriceLevels&gt;true&lt;/IsUsingPriceLevels&gt;
            &lt;IsRoundingSalesPriceUp&gt;true&lt;/IsRoundingSalesPriceUp&gt;
          &lt;/PriceLevels&gt;
        &lt;/SalesAndCustomersPreferences&gt;
        &lt;SalesTaxPreferences&gt;
          &lt;PaySalesTax&gt;Annually&lt;/PaySalesTax&gt;
          &lt;DefaultTaxableSalesTaxCodeRef&gt;
            &lt;ListID&gt;80000006-1193777349&lt;/ListID&gt;
            &lt;FullName&gt;.&lt;/FullName&gt;
          &lt;/DefaultTaxableSalesTaxCodeRef&gt;
          &lt;DefaultNonTaxableSalesTaxCodeRef&gt;
            &lt;ListID&gt;80000005-1193777349&lt;/ListID&gt;
            &lt;FullName&gt;E&lt;/FullName&gt;
          &lt;/DefaultNonTaxableSalesTaxCodeRef&gt;
          &lt;IsUsingVendorTaxCode&gt;false&lt;/IsUsingVendorTaxCode&gt;
          &lt;IsUsingCustomerTaxCode&gt;false&lt;/IsUsingCustomerTaxCode&gt;
          &lt;IsUsingAmountsIncludeTax&gt;false&lt;/IsUsingAmountsIncludeTax&gt;
        &lt;/SalesTaxPreferences&gt;
        &lt;TimeTrackingPreferences&gt;
          &lt;FirstDayOfWeek&gt;Monday&lt;/FirstDayOfWeek&gt;
        &lt;/TimeTrackingPreferences&gt;
        &lt;CurrentAppAccessRights&gt;
          &lt;IsAutomaticLoginAllowed&gt;true&lt;/IsAutomaticLoginAllowed&gt;
          &lt;AutomaticLoginUserName&gt;Admin&lt;/AutomaticLoginUserName&gt;
          &lt;IsPersonalDataAccessAllowed&gt;false&lt;/IsPersonalDataAccessAllowed&gt;
        &lt;/CurrentAppAccessRights&gt;
        &lt;ItemsAndInventoryPreferences&gt;
          &lt;EnhancedInventoryReceivingEnabled&gt;false&lt;/EnhancedInventoryReceivingEnabled&gt;
          &lt;IsTrackingSerialOrLotNumber&gt;None&lt;/IsTrackingSerialOrLotNumber&gt;
          &lt;FIFOEnabled&gt;false&lt;/FIFOEnabled&gt;
          &lt;IsRSBEnabled&gt;false&lt;/IsRSBEnabled&gt;
          &lt;IsBarcodeEnabled&gt;false&lt;/IsBarcodeEnabled&gt;
        &lt;/ItemsAndInventoryPreferences&gt;
      &lt;/PreferencesRet&gt;
    &lt;/PreferencesQueryRs&gt;
  &lt;/QBXMLMsgsRs&gt;
&lt;/QBXML&gt;

      </strHCPResponse>
      <strCompanyFileName xsi:type="xsd:string">C:\\Users\\Garrett Lancaster\\Documents\\QB files\\Sample_Pro.QBW</strCompanyFileName>
      <qbXMLCountry xsi:type="xsd:string">US</qbXMLCountry>
      <qbXMLMajorVers xsi:type="xsd:int">14</qbXMLMajorVers>
      <qbXMLMinorVers xsi:type="xsd:int">0</qbXMLMinorVers>
    </q1:sendRequestXML>
  </soap:Body>
</soap:Envelope>

sendRequestXMLResponse

We respond with the QBXML we want the web connector to process

<?xml version="1.0" encoding="UTF-8" ?>
<env:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
  <env:Body>
    <n1:sendRequestXMLResponse
        env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
        xmlns:n1="urn:QuickbooksDesktopIntegration">
      <return xsi:type="xsd:string">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;?qbxml version=&quot;16.0&quot;?&gt;
&lt;QBXML&gt;
  &lt;QBXMLMsgsRq onError=&quot;stopOnError&quot;&gt;
    &lt;InvoiceAddRq&gt;
      &lt;InvoiceAdd&gt;
        &lt;CustomerRef&gt;
          &lt;ListID&gt;1&lt;/ListID&gt;
        &lt;/CustomerRef&gt;

        &lt;InvoiceLineAdd&gt;
          &lt;ItemRef&gt;
            &lt;ListID&gt;1&lt;/ListID&gt;
          &lt;/ItemRef&gt;
          &lt;Desc&gt;
            Some description of the line item
          &lt;/Desc&gt;
          &lt;Quantity&gt;1.0&lt;/Quantity&gt;
          &lt;Rate&gt;100.0&lt;/Rate&gt;
        &lt;/InvoiceLineAdd&gt;
      &lt;/InvoiceAdd&gt;
    &lt;/InvoiceAddRq&gt;
  &lt;/QBXMLMsgsRq&gt;
&lt;/QBXML&gt;
</return>
    </n1:sendRequestXMLResponse>
  </env:Body>
</env:Envelope>

receiveResponseXML

The web connector sends the response back to your app

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:tns="http://developer.intuit.com"
    xmlns:types="http://developer.intuit.com/encodedTypes"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <q1:receiveResponseXML xmlns:q1="http://developer.intuit.com/">
      <ticket xsi:type="xsd:string">abcd-qwerf-zxxcv-asdf</ticket>
      <response>
        &lt;?xml version=&quot;1.0&quot;?&gt;
&lt;?qbxml version=&quot;16.0&quot;?&gt;
&lt;QBXML&gt;
  &lt;InvoiceAddRs statusCode=&quot;INTTYPE&quot; statusSeverity=&quot;STRTYPE&quot; statusMessage=&quot;STRTYPE&quot;&gt;
  &lt;InvoiceRet&gt; &lt;!-- optional --&gt;
          &lt;TxnID &gt;IDTYPE&lt;/TxnID&gt; &lt;!-- required --&gt;
          &lt;TimeCreated &gt;DATETIMETYPE&lt;/TimeCreated&gt; &lt;!-- required --&gt;
          &lt;TimeModified &gt;DATETIMETYPE&lt;/TimeModified&gt; &lt;!-- required --&gt;
          &lt;EditSequence &gt;STRTYPE&lt;/EditSequence&gt; &lt;!-- required --&gt;
          &lt;TxnNumber &gt;INTTYPE&lt;/TxnNumber&gt; &lt;!-- optional --&gt;
          &lt;CustomerRef&gt; &lt;!-- required --&gt;
                  &lt;ListID &gt;IDTYPE&lt;/ListID&gt; &lt;!-- optional --&gt;
                  &lt;FullName &gt;STRTYPE&lt;/FullName&gt; &lt;!-- optional --&gt;
          &lt;/CustomerRef&gt;
          &lt;ClassRef&gt; &lt;!-- optional --&gt;
                  &lt;ListID &gt;IDTYPE&lt;/ListID&gt; &lt;!-- optional --&gt;
                  &lt;FullName &gt;STRTYPE&lt;/FullName&gt; &lt;!-- optional --&gt;
          &lt;/ClassRef&gt;
          &lt;ARAccountRef&gt; &lt;!-- optional --&gt;
                  &lt;ListID &gt;IDTYPE&lt;/ListID&gt; &lt;!-- optional --&gt;
                  &lt;FullName &gt;STRTYPE&lt;/FullName&gt; &lt;!-- optional --&gt;
          &lt;/ARAccountRef&gt;
          &lt;TemplateRef&gt; &lt;!-- optional --&gt;
                  &lt;ListID &gt;IDTYPE&lt;/ListID&gt; &lt;!-- optional --&gt;
                  &lt;FullName &gt;STRTYPE&lt;/FullName&gt; &lt;!-- optional --&gt;
          &lt;/TemplateRef&gt;
          &lt;TxnDate &gt;DATETYPE&lt;/TxnDate&gt; &lt;!-- required --&gt;
          &lt;RefNumber &gt;STRTYPE&lt;/RefNumber&gt; &lt;!-- optional --&gt;
          &lt;BillAddress&gt; &lt;!-- optional --&gt;
                  &lt;Addr1 &gt;STRTYPE&lt;/Addr1&gt; &lt;!-- optional --&gt;
                  &lt;Addr2 &gt;STRTYPE&lt;/Addr2&gt; &lt;!-- optional --&gt;
                  &lt;Addr3 &gt;STRTYPE&lt;/Addr3&gt; &lt;!-- optional --&gt;
                  &lt;Addr4 &gt;STRTYPE&lt;/Addr4&gt; &lt;!-- optional --&gt;
                  &lt;Addr5 &gt;STRTYPE&lt;/Addr5&gt; &lt;!-- optional --&gt;
                  &lt;City &gt;STRTYPE&lt;/City&gt; &lt;!-- optional --&gt;
                  &lt;State &gt;STRTYPE&lt;/State&gt; &lt;!-- optional --&gt;
                  &lt;PostalCode &gt;STRTYPE&lt;/PostalCode&gt; &lt;!-- optional --&gt;
                  &lt;Country &gt;STRTYPE&lt;/Country&gt; &lt;!-- optional --&gt;
                  &lt;Note &gt;STRTYPE&lt;/Note&gt; &lt;!-- optional --&gt;
          &lt;/BillAddress&gt;
          &lt;BillAddressBlock&gt; &lt;!-- optional --&gt;
                  &lt;Addr1 &gt;STRTYPE&lt;/Addr1&gt; &lt;!-- optional --&gt;
                  &lt;Addr2 &gt;STRTYPE&lt;/Addr2&gt; &lt;!-- optional --&gt;
                  &lt;Addr3 &gt;STRTYPE&lt;/Addr3&gt; &lt;!-- optional --&gt;
                  &lt;Addr4 &gt;STRTYPE&lt;/Addr4&gt; &lt;!-- optional --&gt;
                  &lt;Addr5 &gt;STRTYPE&lt;/Addr5&gt; &lt;!-- optional --&gt;
          &lt;/BillAddressBlock&gt;
          &lt;ShipAddress&gt; &lt;!-- optional --&gt;
                  &lt;Addr1 &gt;STRTYPE&lt;/Addr1&gt; &lt;!-- optional --&gt;
                  &lt;Addr2 &gt;STRTYPE&lt;/Addr2&gt; &lt;!-- optional --&gt;
                  &lt;Addr3 &gt;STRTYPE&lt;/Addr3&gt; &lt;!-- optional --&gt;
                  &lt;Addr4 &gt;STRTYPE&lt;/Addr4&gt; &lt;!-- optional --&gt;
                  &lt;Addr5 &gt;STRTYPE&lt;/Addr5&gt; &lt;!-- optional --&gt;
                  &lt;City &gt;STRTYPE&lt;/City&gt; &lt;!-- optional --&gt;
                  &lt;State &gt;STRTYPE&lt;/State&gt; &lt;!-- optional --&gt;
                  &lt;PostalCode &gt;STRTYPE&lt;/PostalCode&gt; &lt;!-- optional --&gt;
                  &lt;Country &gt;STRTYPE&lt;/Country&gt; &lt;!-- optional --&gt;
                  &lt;Note &gt;STRTYPE&lt;/Note&gt; &lt;!-- optional --&gt;
          &lt;/ShipAddress&gt;
          &lt;ShipAddressBlock&gt; &lt;!-- optional --&gt;
                  &lt;Addr1 &gt;STRTYPE&lt;/Addr1&gt; &lt;!-- optional --&gt;
                  &lt;Addr2 &gt;STRTYPE&lt;/Addr2&gt; &lt;!-- optional --&gt;
                  &lt;Addr3 &gt;STRTYPE&lt;/Addr3&gt; &lt;!-- optional --&gt;
                  &lt;Addr4 &gt;STRTYPE&lt;/Addr4&gt; &lt;!-- optional --&gt;
                  &lt;Addr5 &gt;STRTYPE&lt;/Addr5&gt; &lt;!-- optional --&gt;
          &lt;/ShipAddressBlock&gt;
          &lt;IsPending &gt;BOOLTYPE&lt;/IsPending&gt; &lt;!-- optional --&gt;
          &lt;IsFinanceCharge &gt;BOOLTYPE&lt;/IsFinanceCharge&gt; &lt;!-- optional --&gt;
          &lt;PONumber &gt;STRTYPE&lt;/PONumber&gt; &lt;!-- optional --&gt;
          &lt;TermsRef&gt; &lt;!-- optional --&gt;
                  &lt;ListID &gt;IDTYPE&lt;/ListID&gt; &lt;!-- optional --&gt;
                  &lt;FullName &gt;STRTYPE&lt;/FullName&gt; &lt;!-- optional --&gt;
          &lt;/TermsRef&gt;
          &lt;DueDate &gt;DATETYPE&lt;/DueDate&gt; &lt;!-- optional --&gt;
          &lt;SalesRepRef&gt; &lt;!-- optional --&gt;
                  &lt;ListID &gt;IDTYPE&lt;/ListID&gt; &lt;!-- optional --&gt;
                  &lt;FullName &gt;STRTYPE&lt;/FullName&gt; &lt;!-- optional --&gt;
          &lt;/SalesRepRef&gt;
          &lt;FOB &gt;STRTYPE&lt;/FOB&gt; &lt;!-- optional --&gt;
          &lt;ShipDate &gt;DATETYPE&lt;/ShipDate&gt; &lt;!-- optional --&gt;
          &lt;ShipMethodRef&gt; &lt;!-- optional --&gt;
                  &lt;ListID &gt;IDTYPE&lt;/ListID&gt; &lt;!-- optional --&gt;
                  &lt;FullName &gt;STRTYPE&lt;/FullName&gt; &lt;!-- optional --&gt;
          &lt;/ShipMethodRef&gt;
          &lt;Subtotal &gt;AMTTYPE&lt;/Subtotal&gt; &lt;!-- optional --&gt;
          &lt;ItemSalesTaxRef&gt; &lt;!-- optional --&gt;
                  &lt;ListID &gt;IDTYPE&lt;/ListID&gt; &lt;!-- optional --&gt;
                  &lt;FullName &gt;STRTYPE&lt;/FullName&gt; &lt;!-- optional --&gt;
          &lt;/ItemSalesTaxRef&gt;
          &lt;SalesTaxPercentage &gt;PERCENTTYPE&lt;/SalesTaxPercentage&gt; &lt;!-- optional --&gt;
          &lt;SalesTaxTotal &gt;AMTTYPE&lt;/SalesTaxTotal&gt; &lt;!-- optional --&gt;
          &lt;AppliedAmount &gt;AMTTYPE&lt;/AppliedAmount&gt; &lt;!-- optional --&gt;
          &lt;BalanceRemaining &gt;AMTTYPE&lt;/BalanceRemaining&gt; &lt;!-- optional --&gt;
          &lt;CurrencyRef&gt; &lt;!-- optional --&gt;
                  &lt;ListID &gt;IDTYPE&lt;/ListID&gt; &lt;!-- optional --&gt;
                  &lt;FullName &gt;STRTYPE&lt;/FullName&gt; &lt;!-- optional --&gt;
          &lt;/CurrencyRef&gt;
          &lt;ExchangeRate &gt;FLOATTYPE&lt;/ExchangeRate&gt; &lt;!-- optional --&gt;
          &lt;BalanceRemainingInHomeCurrency &gt;AMTTYPE&lt;/BalanceRemainingInHomeCurrency&gt; &lt;!-- optional --&gt;
          &lt;Memo &gt;STRTYPE&lt;/Memo&gt; &lt;!-- optional --&gt;
          &lt;IsPaid &gt;BOOLTYPE&lt;/IsPaid&gt; &lt;!-- optional --&gt;
          &lt;CustomerMsgRef&gt; &lt;!-- optional --&gt;
                  &lt;ListID &gt;IDTYPE&lt;/ListID&gt; &lt;!-- optional --&gt;
                  &lt;FullName &gt;STRTYPE&lt;/FullName&gt; &lt;!-- optional --&gt;
          &lt;/CustomerMsgRef&gt;
          &lt;IsToBePrinted &gt;BOOLTYPE&lt;/IsToBePrinted&gt; &lt;!-- optional --&gt;
          &lt;IsToBeEmailed &gt;BOOLTYPE&lt;/IsToBeEmailed&gt; &lt;!-- optional --&gt;
          &lt;IsTaxIncluded &gt;BOOLTYPE&lt;/IsTaxIncluded&gt; &lt;!-- optional --&gt;
          &lt;CustomerSalesTaxCodeRef&gt; &lt;!-- optional --&gt;
                  &lt;ListID &gt;IDTYPE&lt;/ListID&gt; &lt;!-- optional --&gt;
                  &lt;FullName &gt;STRTYPE&lt;/FullName&gt; &lt;!-- optional --&gt;
          &lt;/CustomerSalesTaxCodeRef&gt;
          &lt;SuggestedDiscountAmount &gt;AMTTYPE&lt;/SuggestedDiscountAmount&gt; &lt;!-- optional --&gt;
          &lt;SuggestedDiscountDate &gt;DATETYPE&lt;/SuggestedDiscountDate&gt; &lt;!-- optional --&gt;
          &lt;Other &gt;STRTYPE&lt;/Other&gt; &lt;!-- optional --&gt;
          &lt;ExternalGUID &gt;GUIDTYPE&lt;/ExternalGUID&gt; &lt;!-- optional --&gt;
          &lt;LinkedTxn&gt; &lt;!-- optional, may repeat --&gt;
                  &lt;TxnID &gt;IDTYPE&lt;/TxnID&gt; &lt;!-- required --&gt;
                  &lt;!-- TxnType may have one of the following values: ARRefundCreditCard, Bill, BillPaymentCheck, BillPaymentCreditCard, BuildAssembly, Charge, Check, CreditCardCharge, CreditCardCredit, CreditMemo, Deposit, Estimate, InventoryAdjustment, Invoice, ItemReceipt, JournalEntry, LiabilityAdjustment, Paycheck, PayrollLiabilityCheck, PurchaseOrder, ReceivePayment, SalesOrder, SalesReceipt, SalesTaxPaymentCheck, Transfer, VendorCredit, YTDAdjustment --&gt;
                  &lt;TxnType &gt;ENUMTYPE&lt;/TxnType&gt; &lt;!-- required --&gt;
                  &lt;TxnDate &gt;DATETYPE&lt;/TxnDate&gt; &lt;!-- required --&gt;
                  &lt;RefNumber &gt;STRTYPE&lt;/RefNumber&gt; &lt;!-- optional --&gt;
                  &lt;!-- LinkType may have one of the following values: AMTTYPE, QUANTYPE --&gt;
                  &lt;LinkType &gt;ENUMTYPE&lt;/LinkType&gt; &lt;!-- optional --&gt;
                  &lt;Amount &gt;AMTTYPE&lt;/Amount&gt; &lt;!-- required --&gt;
          &lt;/LinkedTxn&gt;
          &lt;!-- BEGIN OR --&gt;
                  &lt;InvoiceLineRet&gt; &lt;!-- optional --&gt;
                          &lt;TxnLineID &gt;IDTYPE&lt;/TxnLineID&gt; &lt;!-- required --&gt;
                          &lt;ItemRef&gt; &lt;!-- optional --&gt;
                                  &lt;ListID &gt;IDTYPE&lt;/ListID&gt; &lt;!-- optional --&gt;
                                  &lt;FullName &gt;STRTYPE&lt;/FullName&gt; &lt;!-- optional --&gt;
                          &lt;/ItemRef&gt;
                          &lt;Desc &gt;STRTYPE&lt;/Desc&gt; &lt;!-- optional --&gt;
                          &lt;Quantity &gt;QUANTYPE&lt;/Quantity&gt; &lt;!-- optional --&gt;
                          &lt;UnitOfMeasure &gt;STRTYPE&lt;/UnitOfMeasure&gt; &lt;!-- optional --&gt;
                          &lt;OverrideUOMSetRef&gt; &lt;!-- optional --&gt;
                                  &lt;ListID &gt;IDTYPE&lt;/ListID&gt; &lt;!-- optional --&gt;
                                  &lt;FullName &gt;STRTYPE&lt;/FullName&gt; &lt;!-- optional --&gt;
                          &lt;/OverrideUOMSetRef&gt;
                          &lt;!-- BEGIN OR --&gt;
                                  &lt;Rate &gt;PRICETYPE&lt;/Rate&gt; &lt;!-- optional --&gt;
                          &lt;!-- OR --&gt;
                                  &lt;RatePercent &gt;PERCENTTYPE&lt;/RatePercent&gt; &lt;!-- optional --&gt;
                          &lt;!-- END OR --&gt;
                          &lt;ClassRef&gt; &lt;!-- optional --&gt;
                                  &lt;ListID &gt;IDTYPE&lt;/ListID&gt; &lt;!-- optional --&gt;
                                  &lt;FullName &gt;STRTYPE&lt;/FullName&gt; &lt;!-- optional --&gt;
                          &lt;/ClassRef&gt;
                          &lt;Amount &gt;AMTTYPE&lt;/Amount&gt; &lt;!-- optional --&gt;
                          &lt;InventorySiteRef&gt; &lt;!-- optional --&gt;
                                  &lt;ListID &gt;IDTYPE&lt;/ListID&gt; &lt;!-- optional --&gt;
                                  &lt;FullName &gt;STRTYPE&lt;/FullName&gt; &lt;!-- optional --&gt;
                          &lt;/InventorySiteRef&gt;
                          &lt;InventorySiteLocationRef&gt; &lt;!-- optional --&gt;
                                  &lt;ListID &gt;IDTYPE&lt;/ListID&gt; &lt;!-- optional --&gt;
                                  &lt;FullName &gt;STRTYPE&lt;/FullName&gt; &lt;!-- optional --&gt;
                          &lt;/InventorySiteLocationRef&gt;
                          &lt;!-- BEGIN OR --&gt;
                                  &lt;SerialNumber &gt;STRTYPE&lt;/SerialNumber&gt; &lt;!-- optional --&gt;
                          &lt;!-- OR --&gt;
                                  &lt;LotNumber &gt;STRTYPE&lt;/LotNumber&gt; &lt;!-- optional --&gt;
                          &lt;!-- END OR --&gt;
                          &lt;ServiceDate &gt;DATETYPE&lt;/ServiceDate&gt; &lt;!-- optional --&gt;
                          &lt;SalesTaxCodeRef&gt; &lt;!-- optional --&gt;
                                  &lt;ListID &gt;IDTYPE&lt;/ListID&gt; &lt;!-- optional --&gt;
                                  &lt;FullName &gt;STRTYPE&lt;/FullName&gt; &lt;!-- optional --&gt;
                          &lt;/SalesTaxCodeRef&gt;
                          &lt;Other1 &gt;STRTYPE&lt;/Other1&gt; &lt;!-- optional --&gt;
                          &lt;Other2 &gt;STRTYPE&lt;/Other2&gt; &lt;!-- optional --&gt;
                          &lt;DataExtRet&gt; &lt;!-- optional, may repeat --&gt;
                                  &lt;OwnerID &gt;GUIDTYPE&lt;/OwnerID&gt; &lt;!-- optional --&gt;
                                  &lt;DataExtName &gt;STRTYPE&lt;/DataExtName&gt; &lt;!-- required --&gt;
                                  &lt;!-- DataExtType may have one of the following values: AMTTYPE, DATETIMETYPE, INTTYPE, PERCENTTYPE, PRICETYPE, QUANTYPE, STR1024TYPE, STR255TYPE --&gt;
                                  &lt;DataExtType &gt;ENUMTYPE&lt;/DataExtType&gt; &lt;!-- required --&gt;
                                  &lt;DataExtValue &gt;STRTYPE&lt;/DataExtValue&gt; &lt;!-- required --&gt;
                          &lt;/DataExtRet&gt;
                  &lt;/InvoiceLineRet&gt;
          &lt;!-- OR --&gt;
                  &lt;InvoiceLineGroupRet&gt; &lt;!-- optional --&gt;
                          &lt;TxnLineID &gt;IDTYPE&lt;/TxnLineID&gt; &lt;!-- required --&gt;
                          &lt;ItemGroupRef&gt; &lt;!-- required --&gt;
                                  &lt;ListID &gt;IDTYPE&lt;/ListID&gt; &lt;!-- optional --&gt;
                                  &lt;FullName &gt;STRTYPE&lt;/FullName&gt; &lt;!-- optional --&gt;
                          &lt;/ItemGroupRef&gt;
                          &lt;Desc &gt;STRTYPE&lt;/Desc&gt; &lt;!-- optional --&gt;
                          &lt;Quantity &gt;QUANTYPE&lt;/Quantity&gt; &lt;!-- optional --&gt;
                          &lt;UnitOfMeasure &gt;STRTYPE&lt;/UnitOfMeasure&gt; &lt;!-- optional --&gt;
                          &lt;OverrideUOMSetRef&gt; &lt;!-- optional --&gt;
                                  &lt;ListID &gt;IDTYPE&lt;/ListID&gt; &lt;!-- optional --&gt;
                                  &lt;FullName &gt;STRTYPE&lt;/FullName&gt; &lt;!-- optional --&gt;
                          &lt;/OverrideUOMSetRef&gt;
                          &lt;IsPrintItemsInGroup &gt;BOOLTYPE&lt;/IsPrintItemsInGroup&gt; &lt;!-- required --&gt;
                          &lt;TotalAmount &gt;AMTTYPE&lt;/TotalAmount&gt; &lt;!-- required --&gt;
                          &lt;InvoiceLineRet&gt; &lt;!-- optional, may repeat --&gt;
                                  &lt;TxnLineID &gt;IDTYPE&lt;/TxnLineID&gt; &lt;!-- required --&gt;
                                  &lt;ItemRef&gt; &lt;!-- optional --&gt;
                                          &lt;ListID &gt;IDTYPE&lt;/ListID&gt; &lt;!-- optional --&gt;
                                          &lt;FullName &gt;STRTYPE&lt;/FullName&gt; &lt;!-- optional --&gt;
                                  &lt;/ItemRef&gt;
                                  &lt;Desc &gt;STRTYPE&lt;/Desc&gt; &lt;!-- optional --&gt;
                                  &lt;Quantity &gt;QUANTYPE&lt;/Quantity&gt; &lt;!-- optional --&gt;
                                  &lt;UnitOfMeasure &gt;STRTYPE&lt;/UnitOfMeasure&gt; &lt;!-- optional --&gt;
                                  &lt;OverrideUOMSetRef&gt; &lt;!-- optional --&gt;
                                          &lt;ListID &gt;IDTYPE&lt;/ListID&gt; &lt;!-- optional --&gt;
                                          &lt;FullName &gt;STRTYPE&lt;/FullName&gt; &lt;!-- optional --&gt;
                                  &lt;/OverrideUOMSetRef&gt;
                                  &lt;!-- BEGIN OR --&gt;
                                          &lt;Rate &gt;PRICETYPE&lt;/Rate&gt; &lt;!-- optional --&gt;
                                  &lt;!-- OR --&gt;
                                          &lt;RatePercent &gt;PERCENTTYPE&lt;/RatePercent&gt; &lt;!-- optional --&gt;
                                  &lt;!-- END OR --&gt;
                                  &lt;ClassRef&gt; &lt;!-- optional --&gt;
                                          &lt;ListID &gt;IDTYPE&lt;/ListID&gt; &lt;!-- optional --&gt;
                                          &lt;FullName &gt;STRTYPE&lt;/FullName&gt; &lt;!-- optional --&gt;
                                  &lt;/ClassRef&gt;
                                  &lt;Amount &gt;AMTTYPE&lt;/Amount&gt; &lt;!-- optional --&gt;
                                  &lt;InventorySiteRef&gt; &lt;!-- optional --&gt;
                                          &lt;ListID &gt;IDTYPE&lt;/ListID&gt; &lt;!-- optional --&gt;
                                          &lt;FullName &gt;STRTYPE&lt;/FullName&gt; &lt;!-- optional --&gt;
                                  &lt;/InventorySiteRef&gt;
                                  &lt;InventorySiteLocationRef&gt; &lt;!-- optional --&gt;
                                          &lt;ListID &gt;IDTYPE&lt;/ListID&gt; &lt;!-- optional --&gt;
                                          &lt;FullName &gt;STRTYPE&lt;/FullName&gt; &lt;!-- optional --&gt;
                                  &lt;/InventorySiteLocationRef&gt;
                                  &lt;!-- BEGIN OR --&gt;
                                          &lt;SerialNumber &gt;STRTYPE&lt;/SerialNumber&gt; &lt;!-- optional --&gt;
                                  &lt;!-- OR --&gt;
                                          &lt;LotNumber &gt;STRTYPE&lt;/LotNumber&gt; &lt;!-- optional --&gt;
                                  &lt;!-- END OR --&gt;
                                  &lt;ServiceDate &gt;DATETYPE&lt;/ServiceDate&gt; &lt;!-- optional --&gt;
                                  &lt;SalesTaxCodeRef&gt; &lt;!-- optional --&gt;
                                          &lt;ListID &gt;IDTYPE&lt;/ListID&gt; &lt;!-- optional --&gt;
                                          &lt;FullName &gt;STRTYPE&lt;/FullName&gt; &lt;!-- optional --&gt;
                                  &lt;/SalesTaxCodeRef&gt;
                                  &lt;Other1 &gt;STRTYPE&lt;/Other1&gt; &lt;!-- optional --&gt;
                                  &lt;Other2 &gt;STRTYPE&lt;/Other2&gt; &lt;!-- optional --&gt;
                                  &lt;DataExtRet&gt; &lt;!-- optional, may repeat --&gt;
                                          &lt;OwnerID &gt;GUIDTYPE&lt;/OwnerID&gt; &lt;!-- optional --&gt;
                                          &lt;DataExtName &gt;STRTYPE&lt;/DataExtName&gt; &lt;!-- required --&gt;
                                          &lt;!-- DataExtType may have one of the following values: AMTTYPE, DATETIMETYPE, INTTYPE, PERCENTTYPE, PRICETYPE, QUANTYPE, STR1024TYPE, STR255TYPE --&gt;
                                          &lt;DataExtType &gt;ENUMTYPE&lt;/DataExtType&gt; &lt;!-- required --&gt;
                                          &lt;DataExtValue &gt;STRTYPE&lt;/DataExtValue&gt; &lt;!-- required --&gt;
                                  &lt;/DataExtRet&gt;
                          &lt;/InvoiceLineRet&gt;
                          &lt;DataExtRet&gt; &lt;!-- optional, may repeat --&gt;
                                  &lt;OwnerID &gt;GUIDTYPE&lt;/OwnerID&gt; &lt;!-- optional --&gt;
                                  &lt;DataExtName &gt;STRTYPE&lt;/DataExtName&gt; &lt;!-- required --&gt;
                                  &lt;!-- DataExtType may have one of the following values: AMTTYPE, DATETIMETYPE, INTTYPE, PERCENTTYPE, PRICETYPE, QUANTYPE, STR1024TYPE, STR255TYPE --&gt;
                                  &lt;DataExtType &gt;ENUMTYPE&lt;/DataExtType&gt; &lt;!-- required --&gt;
                                  &lt;DataExtValue &gt;STRTYPE&lt;/DataExtValue&gt; &lt;!-- required --&gt;
                          &lt;/DataExtRet&gt;
                  &lt;/InvoiceLineGroupRet&gt;
          &lt;!-- END OR --&gt;
          &lt;DataExtRet&gt; &lt;!-- optional, may repeat --&gt;
                  &lt;OwnerID &gt;GUIDTYPE&lt;/OwnerID&gt; &lt;!-- optional --&gt;
                  &lt;DataExtName &gt;STRTYPE&lt;/DataExtName&gt; &lt;!-- required --&gt;
                  &lt;!-- DataExtType may have one of the following values: AMTTYPE, DATETIMETYPE, INTTYPE, PERCENTTYPE, PRICETYPE, QUANTYPE, STR1024TYPE, STR255TYPE --&gt;
                  &lt;DataExtType &gt;ENUMTYPE&lt;/DataExtType&gt; &lt;!-- required --&gt;
                  &lt;DataExtValue &gt;STRTYPE&lt;/DataExtValue&gt; &lt;!-- required --&gt;
          &lt;/DataExtRet&gt;
  &lt;/InvoiceRet&gt;
  &lt;ErrorRecovery&gt; &lt;!-- optional --&gt;
          &lt;!-- BEGIN OR --&gt;
                  &lt;ListID &gt;IDTYPE&lt;/ListID&gt; &lt;!-- optional --&gt;
          &lt;!-- OR --&gt;
                  &lt;OwnerID &gt;GUIDTYPE&lt;/OwnerID&gt; &lt;!-- optional --&gt;
          &lt;!-- OR --&gt;
                  &lt;TxnID &gt;IDTYPE&lt;/TxnID&gt; &lt;!-- optional --&gt;
          &lt;!-- END OR --&gt;
          &lt;TxnNumber &gt;INTTYPE&lt;/TxnNumber&gt; &lt;!-- optional --&gt;
          &lt;EditSequence &gt;STRTYPE&lt;/EditSequence&gt; &lt;!-- optional --&gt;
          &lt;ExternalGUID &gt;GUIDTYPE&lt;/ExternalGUID&gt; &lt;!-- optional --&gt;
  &lt;/ErrorRecovery&gt;
&lt;/InvoiceAddRs&gt;
&lt;/QBXML&gt;

      </response>
    </q1:receiveResponseXML>
  </soap:Body>
</soap:Envelope>

receiveResponseXMLResponse

We respond with 100 to indicate we're done

<env:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
  <env:Body>
    <n1:receiveResponseXMLResponse env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
        xmlns:n1="urn:QuickbooksDesktopIntegration">
      <return xsi:type="xsd:int">100</return>
    </n1:receiveResponseXMLResponse>
  </env:Body>
</env:Envelope>

closeConnection

The web connector is done, so it closes the connection

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:tns="http://developer.intuit.com"
    xmlns:types="http://developer.intuit.com/encodedTypes"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <q1:closeConnection xmlns:q1="http://developer.intuit.com/">
      <strTicket xsi:type="xsd:string">abcd-qwerf-zxxcv-asdf</strTicket>
    </q1:closeConnection>
  </soap:Body>
</soap:Envelope>

closeConnectionResponse

We respond with an arbitrary string to indicate we are done

<env:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xmlns:xsd="http://www.w3.org/2001/XMLSchema"
              xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
  <env:Body>
    <n1:closeConnectionResponse env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
        xmlns:n1="urn:ActionWebService">
      <return xsi:type="xsd:string">OK</return>
    </n1:closeConnectionResponse>
  </env:Body>
</env:Envelope>