<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="urn:OrderControllerwsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" name="OrderController" targetNamespace="urn:OrderControllerwsdl">
  <wsdl:types>
    <xsd:schema targetNamespace="urn:OrderControllerwsdl">
      <xsd:complexType name="OrderStatusCodeArray">
        <xsd:complexContent>
          <xsd:restriction base="soap-enc:Array">
            <xsd:attribute ref="soap-enc:arrayType" wsdl:arrayType="tns:OrderStatusCode[]"/>
          </xsd:restriction>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="OrderStatusCode">
        <xsd:all>
          <xsd:element name="code" type="xsd:string"/>
          <xsd:element name="description" type="xsd:string"/>
          <xsd:element name="promoStandardsCode" type="xsd:string"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="OrderStatusArray">
        <xsd:complexContent>
          <xsd:restriction base="soap-enc:Array">
            <xsd:attribute ref="soap-enc:arrayType" wsdl:arrayType="tns:OrderStatus[]"/>
          </xsd:restriction>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="OrderStatus">
        <xsd:all>
          <xsd:element name="customerNumber" type="xsd:string"/>
          <xsd:element name="poNumber" type="xsd:string"/>
          <xsd:element name="orderNumber" type="xsd:string"/>
          <xsd:element name="status" type="xsd:string"/>
          <xsd:element name="orderDate" type="xsd:string"/>
          <xsd:element name="shipDate" type="xsd:string"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="OrderArray">
        <xsd:complexContent>
          <xsd:restriction base="soap-enc:Array">
            <xsd:attribute ref="soap-enc:arrayType" wsdl:arrayType="tns:Order[]"/>
          </xsd:restriction>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="Order">
        <xsd:all>
          <xsd:element name="customerNumber" type="xsd:string"/>
          <xsd:element name="poNumber" type="xsd:string"/>
          <xsd:element name="orderNumber" type="xsd:string"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="GetDetailsByReference">
        <xsd:all>
          <xsd:element name="total" type="xsd:string"/>
          <xsd:element name="referenceNumber" type="xsd:string"/>
          <xsd:element name="lines" type="tns:ReferenceLineArray"/>
          <xsd:element name="taxAmount" type="xsd:string"/>
          <xsd:element name="discountAmount" type="xsd:string"/>
          <xsd:element name="dutyAmount" type="xsd:string"/>
          <xsd:element name="freightAmount" type="xsd:string"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="ReferenceLineArray">
        <xsd:complexContent>
          <xsd:restriction base="soap-enc:Array">
            <xsd:attribute ref="soap-enc:arrayType" wsdl:arrayType="tns:ReferenceLine[]"/>
          </xsd:restriction>
        </xsd:complexContent>
      </xsd:complexType>
      <xsd:complexType name="ReferenceLine">
        <xsd:all>
          <xsd:element name="commodityCode" type="xsd:string"/>
          <xsd:element name="description" type="xsd:string"/>
          <xsd:element name="discountAmount" type="xsd:string"/>
          <xsd:element name="discounted" type="xsd:boolean"/>
          <xsd:element name="taxIncluded" type="xsd:boolean"/>
          <xsd:element name="lineItemTotal" type="xsd:string"/>
          <xsd:element name="productCode" type="xsd:string"/>
          <xsd:element name="quantity" type="xsd:string"/>
          <xsd:element name="unitCost" type="xsd:string"/>
          <xsd:element name="unitOfMeasure" type="xsd:string"/>
        </xsd:all>
      </xsd:complexType>
    </xsd:schema>
  </wsdl:types>
  <wsdl:message name="getStatusCodeListRequest">
    <wsdl:part name="customerNumber" type="xsd:string"/>
    <wsdl:part name="userCredential" type="xsd:string"/>
  </wsdl:message>
  <wsdl:message name="getStatusCodeListResponse">
    <wsdl:part name="return" type="tns:OrderStatusCodeArray"/>
  </wsdl:message>
  <wsdl:message name="getStatusesRequest">
    <wsdl:part name="customerNumber" type="xsd:string"/>
    <wsdl:part name="userCredential" type="xsd:string"/>
    <wsdl:part name="orderNumber" type="xsd:integer"/>
    <wsdl:part name="poNumber" type="xsd:string"/>
    <wsdl:part name="minDate" type="xsd:date"/>
    <wsdl:part name="maxDate" type="xsd:date"/>
  </wsdl:message>
  <wsdl:message name="getStatusesResponse">
    <wsdl:part name="return" type="tns:OrderStatusArray"/>
  </wsdl:message>
  <wsdl:message name="getConfirmationsRequest">
    <wsdl:part name="customerNumber" type="xsd:string"/>
    <wsdl:part name="userCredential" type="xsd:string"/>
    <wsdl:part name="date" type="xsd:date"/>
  </wsdl:message>
  <wsdl:message name="getConfirmationsResponse">
    <wsdl:part name="return" type="tns:OrderArray"/>
  </wsdl:message>
  <wsdl:message name="getOrderRequest">
    <wsdl:part name="customerNumber" type="xsd:string"/>
    <wsdl:part name="userCredential" type="xsd:string"/>
    <wsdl:part name="orderNumber" type="xsd:integer"/>
  </wsdl:message>
  <wsdl:message name="getOrderResponse">
    <wsdl:part name="return" type="tns:Order"/>
  </wsdl:message>
  <wsdl:message name="getOrderStatusGroupRequest">
    <wsdl:part name="customerNumber" type="xsd:string"/>
    <wsdl:part name="userCredential" type="xsd:string"/>
    <wsdl:part name="orderNumber" type="xsd:string"/>
    <wsdl:part name="poNumber" type="xsd:string"/>
    <wsdl:part name="minDate" type="xsd:string"/>
    <wsdl:part name="maxDate" type="xsd:string"/>
  </wsdl:message>
  <wsdl:message name="getOrderStatusGroupResponse">
    <wsdl:part name="return" type="tns:OrderStatusArray"/>
  </wsdl:message>
  <wsdl:message name="getLineItemsByReferenceRequest">
    <wsdl:part name="customerNumber" type="xsd:string"/>
    <wsdl:part name="userCredential" type="xsd:string"/>
    <wsdl:part name="isInvoice" type="xsd:boolean"/>
    <wsdl:part name="referenceNumber" type="xsd:string"/>
  </wsdl:message>
  <wsdl:message name="getLineItemsByReferenceResponse">
    <wsdl:part name="return" type="tns:GetDetailsByReference"/>
  </wsdl:message>
  <wsdl:portType name="OrderControllerPortType">
    <wsdl:operation name="getStatusCodeList">
      <wsdl:documentation>Returns list of possible order statuses</wsdl:documentation>
      <wsdl:input message="tns:getStatusCodeListRequest"/>
      <wsdl:output message="tns:getStatusCodeListResponse"/>
    </wsdl:operation>
    <wsdl:operation name="getStatuses">
      <wsdl:documentation>Gets the order statuses.</wsdl:documentation>
      <wsdl:input message="tns:getStatusesRequest"/>
      <wsdl:output message="tns:getStatusesResponse"/>
    </wsdl:operation>
    <wsdl:operation name="getConfirmations">
      <wsdl:documentation>Gets the order confirmations.</wsdl:documentation>
      <wsdl:input message="tns:getConfirmationsRequest"/>
      <wsdl:output message="tns:getConfirmationsResponse"/>
    </wsdl:operation>
    <wsdl:operation name="getOrder">
      <wsdl:documentation>Gets the order.</wsdl:documentation>
      <wsdl:input message="tns:getOrderRequest"/>
      <wsdl:output message="tns:getOrderResponse"/>
    </wsdl:operation>
    <wsdl:operation name="getOrderStatusGroup">
      <wsdl:documentation></wsdl:documentation>
      <wsdl:input message="tns:getOrderStatusGroupRequest"/>
      <wsdl:output message="tns:getOrderStatusGroupResponse"/>
    </wsdl:operation>
    <wsdl:operation name="getLineItemsByReference">
      <wsdl:documentation>This service is custom made for the BOA level 3 data
https://support.payeezy.com/hc/en-us/articles/206601408-First-Data-Payeezy-Gateway-Web-Service-API-Reference-Guide#4.3</wsdl:documentation>
      <wsdl:input message="tns:getLineItemsByReferenceRequest"/>
      <wsdl:output message="tns:getLineItemsByReferenceResponse"/>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="OrderControllerBinding" type="tns:OrderControllerPortType">
    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="getStatusCodeList">
      <soap:operation soapAction="urn:OrderControllerwsdl#getStatusCodeList" style="rpc"/>
      <wsdl:input>
        <soap:body use="encoded" namespace="urn:OrderControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="encoded" namespace="urn:OrderControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getStatuses">
      <soap:operation soapAction="urn:OrderControllerwsdl#getStatuses" style="rpc"/>
      <wsdl:input>
        <soap:body use="encoded" namespace="urn:OrderControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="encoded" namespace="urn:OrderControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getConfirmations">
      <soap:operation soapAction="urn:OrderControllerwsdl#getConfirmations" style="rpc"/>
      <wsdl:input>
        <soap:body use="encoded" namespace="urn:OrderControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="encoded" namespace="urn:OrderControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getOrder">
      <soap:operation soapAction="urn:OrderControllerwsdl#getOrder" style="rpc"/>
      <wsdl:input>
        <soap:body use="encoded" namespace="urn:OrderControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="encoded" namespace="urn:OrderControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getOrderStatusGroup">
      <soap:operation soapAction="urn:OrderControllerwsdl#getOrderStatusGroup" style="rpc"/>
      <wsdl:input>
        <soap:body use="encoded" namespace="urn:OrderControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="encoded" namespace="urn:OrderControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getLineItemsByReference">
      <soap:operation soapAction="urn:OrderControllerwsdl#getLineItemsByReference" style="rpc"/>
      <wsdl:input>
        <soap:body use="encoded" namespace="urn:OrderControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="encoded" namespace="urn:OrderControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="OrderControllerService">
    <wsdl:port name="OrderControllerPort" binding="tns:OrderControllerBinding">
      <soap:address location="https://ds.hitpromo.net/order/order?ws=1"/>
    </wsdl:port>
  </wsdl:service>
</definitions>
