<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:tns="http://developer.intuit.com/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="ApiNation" targetNamespace="http://developer.intuit.com/">
	
    
	<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"/>
	

    
	<wsdl:types>
		
       
		<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://developer.intuit.com/" elementFormDefault="qualified">
			
       
			<xsd:element name="serverVersion">
				<xsd:complexType/>
			</xsd:element>
			<xsd:element name="serverVersionResponse">
				<xsd:complexType>
					<xsd:all>
						<xsd:element name="serverVersionResult" type="xsd:string"/>
					</xsd:all>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="clientVersion">
				<xsd:complexType>
					<xsd:all>
						<xsd:element name="strVersion" type="xsd:string"/>
					</xsd:all>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="clientVersionResponse">
				<xsd:complexType>
					<xsd:all>
						<xsd:element name="clientVersionResult" type="xsd:string"/>
					</xsd:all>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="authenticate">
				<xsd:complexType>
					<xsd:all>
						<xsd:element name="strUserName" type="xsd:string"/>
						<xsd:element name="strPassword" type="xsd:string"/>
					</xsd:all>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="authenticateResponse">
				<xsd:complexType>
					<xsd:all>
						<xsd:element name="authenticateResult" type="tns:ArrayOfauthenticateResponseauthenticateResult"/>
					</xsd:all>
				</xsd:complexType>
			</xsd:element>
			<xsd:complexType name="ArrayOfauthenticateResponseauthenticateResult">
				<xsd:sequence>
					<xsd:element name="string" minOccurs="0" maxOccurs="unbounded" type="xsd:string"/>
				</xsd:sequence>
			</xsd:complexType>
			<xsd:element name="closeConnection">
				<xsd:complexType>
					<xsd:all>
						<xsd:element name="ticket" type="xsd:string"/>
					</xsd:all>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="closeConnectionResponse">
				<xsd:complexType>
					<xsd:all>
						<xsd:element name="closeConnectionResult" type="xsd:string"/>
					</xsd:all>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="sendRequestXML">
				<xsd:complexType>
					<xsd:all>
						<xsd:element name="ticket" type="xsd:string"/>
						<xsd:element name="strHCPResponse" type="xsd:string"/>
						<xsd:element name="strCompanyFileName" type="xsd:string"/>
						<xsd:element name="qbXMLCountry" type="xsd:string"/>
						<xsd:element name="qbXMLMajorVers" type="xsd:int"/>
						<xsd:element name="qbXMLMinorVers" type="xsd:int"/>
					</xsd:all>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="sendRequestXMLResponse">
				<xsd:complexType>
					<xsd:all>
						<xsd:element name="sendRequestXMLResult" type="xsd:string"/>
					</xsd:all>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="receiveResponseXML">
				<xsd:complexType>
					<xsd:all>
						<xsd:element name="ticket" type="xsd:string"/>
						<xsd:element name="response" type="xsd:string"/>
						<xsd:element name="hresult" type="xsd:string"/>
						<xsd:element name="message" type="xsd:string"/>
					</xsd:all>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="receiveResponseXMLResponse">
				<xsd:complexType>
					<xsd:all>
						<xsd:element name="receiveResponseXMLResult" type="xsd:int"/>
					</xsd:all>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="getLastError">
				<xsd:complexType>
					<xsd:all>
						<xsd:element name="ticket" type="xsd:string"/>
					</xsd:all>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="getLastErrorResponse">
				<xsd:complexType>
					<xsd:all>
						<xsd:element name="getLastErrorResult" type="xsd:int"/>
					</xsd:all>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="connectionError">
				<xsd:complexType>
					<xsd:all>
						<xsd:element name="ticket" type="xsd:string"/>
						<xsd:element name="hresult" type="xsd:string"/>
						<xsd:element name="message" type="xsd:string"/>
					</xsd:all>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="connectionErrorResponse">
				<xsd:complexType>
					<xsd:all>
						<xsd:element name="connectionErrorResult" type="xsd:string"/>
					</xsd:all>
				</xsd:complexType>
			</xsd:element>
		</xsd:schema>
		
    
	</wsdl:types>
	


	<wsdl:message name="serverVersionInput">
		<wsdl:part name="parameters" element="tns:serverVersion"/>
	</wsdl:message>
	<wsdl:message name="serverVersionOutput">
		<wsdl:part name="parameters" element="tns:serverVersionResponse"/>
	</wsdl:message>
	<wsdl:message name="clientVersionInput">
		<wsdl:part name="parameters" element="tns:clientVersion"/>
	</wsdl:message>
	<wsdl:message name="clientVersionOutput">
		<wsdl:part name="parameters" element="tns:clientVersionResponse"/>
	</wsdl:message>
	<wsdl:message name="authenticateInput">
		<wsdl:part name="parameters" element="tns:authenticate"/>
	</wsdl:message>
	<wsdl:message name="authenticateOutput">
		<wsdl:part name="parameters" element="tns:authenticateResponse"/>
	</wsdl:message>
	<wsdl:message name="closeConnectionInput">
		<wsdl:part name="parameters" element="tns:closeConnection"/>
	</wsdl:message>
	<wsdl:message name="closeConnectionOutput">
		<wsdl:part name="parameters" element="tns:closeConnectionResponse"/>
	</wsdl:message>
	<wsdl:message name="sendRequestXMLInput">
		<wsdl:part name="parameters" element="tns:sendRequestXML"/>
	</wsdl:message>
	<wsdl:message name="sendRequestXMLOutput">
		<wsdl:part name="parameters" element="tns:sendRequestXMLResponse"/>
	</wsdl:message>
	<wsdl:message name="receiveResponseXMLInput">
		<wsdl:part name="parameters" element="tns:receiveResponseXML"/>
	</wsdl:message>
	<wsdl:message name="receiveResponseXMLOutput">
		<wsdl:part name="parameters" element="tns:receiveResponseXMLResponse"/>
	</wsdl:message>
	<wsdl:message name="getLastErrorInput">
		<wsdl:part name="parameters" element="tns:getLastError"/>
	</wsdl:message>
	<wsdl:message name="getLastErrorOutput">
		<wsdl:part name="parameters" element="tns:getLastErrorResponse"/>
	</wsdl:message>
	<wsdl:message name="connectionErrorInput">
		<wsdl:part name="parameters" element="tns:connectionError"/>
	</wsdl:message>
	<wsdl:message name="connectionErrorOutput">
		<wsdl:part name="parameters" element="tns:connectionErrorResponse"/>
	</wsdl:message>
	<wsdl:portType name="ApiNationPortType">
		<wsdl:operation name="serverVersion">
			<wsdl:documentation>
        The Web Connector connects to your SOAP server, sending serverVersion(), you can ignore this call for now.

        :return:
        </wsdl:documentation>
			<wsdl:input message="tns:serverVersionInput"/>
			<wsdl:output message="tns:serverVersionOutput"/>
		</wsdl:operation>
		<wsdl:operation name="clientVersion">
			<wsdl:documentation>
        The Web Connector connects to your SOAP server, sending clientVersion(), you can ignore this call for now.

        :param strVersion:
        :return:
        </wsdl:documentation>
			<wsdl:input message="tns:clientVersionInput"/>
			<wsdl:output message="tns:clientVersionOutput"/>
		</wsdl:operation>
		<wsdl:operation name="authenticate">
			<wsdl:documentation>
        The Web Connector connects to your SOAP server, sending authenticate().
        You should check the username and password sent to ensure the username and password are valid (you should be
        storing a list of valid usernames/passwords somewhere on your server).

        If the username and password are invalid, send back an array:
        [
            {&quot;string&quot;: ''},
            {&quot;string&quot;: 'nvu'}
        ]

        If the username and password are valid, you need to generate a session ID (a &quot;ticket&quot;) and store this ticket in
        your database. Every subsequent call to the Web Connector methods will include this ticket string, and you'll
        check to ensure the ticket is valid on every subsequent call.

        You should then check to see if there is anything to do. You should be maintaining a queue of things to
        do within your SOAP server. If there is *nothing* to do,
        you should return this array:
        [
            {&quot;string&quot;: self.ticket},
            {&quot;string&quot;: &quot;&quot;}
        ]

        If there is *something* to do, then you should return this array:
        [
            {&quot;string&quot;: self.ticket},
            {&quot;string&quot;: &quot;&quot;},
            {'string': 10}, # this is *optional*, you may send an empty string or an integer indicating the number of minutes to wait before doing the next update
            {'string': 120} # this is *optional*, you may send an empty string or an integer indicating the minimum number of seconds the web connector should allow between update sessions
        ]

        :param strUserName:
        :param strPassword:
        :return:
        </wsdl:documentation>
			<wsdl:input message="tns:authenticateInput"/>
			<wsdl:output message="tns:authenticateOutput"/>
		</wsdl:operation>
		<wsdl:operation name="closeConnection">
			<wsdl:documentation>
        Once this method is called, the session has ended and the Web Connector will stop making requests.
        This will always be the *last* SOAP service call that gets issued.

        :param ticket:
        :return:
        </wsdl:documentation>
			<wsdl:input message="tns:closeConnectionInput"/>
			<wsdl:output message="tns:closeConnectionOutput"/>
		</wsdl:operation>
		<wsdl:operation name="sendRequestXML">
			<wsdl:input message="tns:sendRequestXMLInput"/>
			<wsdl:output message="tns:sendRequestXMLOutput"/>
		</wsdl:operation>
		<wsdl:operation name="receiveResponseXML">
			<wsdl:input message="tns:receiveResponseXMLInput"/>
			<wsdl:output message="tns:receiveResponseXMLOutput"/>
		</wsdl:operation>
		<wsdl:operation name="getLastError">
			<wsdl:documentation>
        This method will *only* get called if some sort of error occurs.

        :param ticket:
        :return:
        </wsdl:documentation>
			<wsdl:input message="tns:getLastErrorInput"/>
			<wsdl:output message="tns:getLastErrorOutput"/>
		</wsdl:operation>
		<wsdl:operation name="connectionError">
			<wsdl:documentation>
        This method will *only* get called if some sort of error occurs.

        :param ticket:
        :param hresult:
        :param message:
        :return:
        </wsdl:documentation>
			<wsdl:input message="tns:connectionErrorInput"/>
			<wsdl:output message="tns:connectionErrorOutput"/>
		</wsdl:operation>
	</wsdl:portType>
	<wsdl:binding name="ApiNationBinding" type="tns:ApiNationPortType">
		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
		<wsdl:operation name="serverVersion">
			<soap:operation soapAction="https://cn-qbd-soap.apination.com/serverVersion" style="document"/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
		<wsdl:operation name="clientVersion">
			<soap:operation soapAction="https://cn-qbd-soap.apination.com/clientVersion" style="document"/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
		<wsdl:operation name="authenticate">
			<soap:operation soapAction="https://cn-qbd-soap.apination.com/authenticate" style="document"/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
		<wsdl:operation name="closeConnection">
			<soap:operation soapAction="https://cn-qbd-soap.apination.com/closeConnection" style="document"/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
		<wsdl:operation name="sendRequestXML">
			<soap:operation soapAction="https://cn-qbd-soap.apination.com/sendRequestXML" style="document"/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
		<wsdl:operation name="receiveResponseXML">
			<soap:operation soapAction="https://cn-qbd-soap.apination.com/receiveResponseXML" style="document"/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
		<wsdl:operation name="getLastError">
			<soap:operation soapAction="https://cn-qbd-soap.apination.com/getLastError" style="document"/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
		<wsdl:operation name="connectionError">
			<soap:operation soapAction="https://cn-qbd-soap.apination.com/connectionError" style="document"/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
	</wsdl:binding>
	<wsdl:service name="ApiNationService">
		<wsdl:documentation></wsdl:documentation>
		<wsdl:port name="ApiNation" binding="tns:ApiNationBinding">
			<soap:address location="https://cn-qbd-soap.apination.com/"/>
		</wsdl:port>
	</wsdl:service>
</wsdl:definitions>
