<?xml version="1.0" encoding="ISO-8859-1"?>
<definitions xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="urn:BankPaymentService" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="urn:BankPaymentService">
<types>
<xsd:schema targetNamespace="urn:BankPaymentService">
 <xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
 <xsd:import namespace="http://schemas.xmlsoap.org/wsdl/" />
</xsd:schema>
</types>
<message name="authenticateRequest">
  <part name="ap_key" type="xsd:string" />
  <part name="api_username" type="xsd:string" />
  <part name="api_password" type="xsd:string" />
  <part name="hash" type="xsd:string" />
  <part name="backref" type="xsd:anyType" />
</message>
<message name="authenticateResponse">
  <part name="return" type="xsd:string" />
</message>
<message name="verifyReferenceRequest">
  <part name="session_key" type="xsd:string" />
  <part name="reference" type="xsd:string" />
  <part name="hash" type="xsd:string" />
  <part name="backref" type="xsd:string" />
</message>
<message name="verifyReferenceResponse">
  <part name="return" type="xsd:string" />
</message>
<message name="getMarketsRequest">
	<part name="session_key" type="xsd:string" />
	<part name="hash" type="xsd:string" />
	<part name="backref" type="xsd:string" />
</message>
<message name="getMarketsResponse">
	<part name="return" type="xsd:string" />
</message>
<message name="getBusinessTypeRequest">
	<part name="session_key" type="xsd:string" />
	<part name="hash" type="xsd:string" />
	<part name="backref" type="xsd:string" />
</message>
<message name="getBusinessTypeResponse">
	<part name="return" type="xsd:string" />
</message>
<message name="getBusinessItemRequest">
	<part name="session_key" type="xsd:string" />
	<part name="business_type_id" type="xsd:string" />
	<part name="hash" type="xsd:string" />
	<part name="backref" type="xsd:string" />
</message>
<message name="getBusinessItemResponse">
	<part name="return" type="xsd:string" />
</message>
<message name="generatePrnRequest">
	<part name="session_key" type="xsd:string" />
	<part name="vendor_name" type="xsd:string" />
	<part name="tel_contact" type="xsd:string" />
	<part name="market" type="xsd:string" />
	<part name="items" type="xsd:string" />
	<part name="amount" type="xsd:string" />
	<part name="hash" type="xsd:string" />
	<part name="backref" type="xsd:string" />
</message>
<message name="generatePrnResponse">
	<part name="return" type="xsd:string" />
</message>
	<message name="transactRequest">
  <part name="session_key" type="xsd:string" />
  <part name="reference" type="xsd:string" />
  <part name="transaction" type="xsd:anyType" />
  <part name="hash" type="xsd:string" />
  <part name="backref" type="xsd:string" />
</message>
<message name="transactResponse">
  <part name="return" type="xsd:string" />
</message>
<message name="closeTransactionRequest">
  <part name="session_key" type="xsd:string" />
  <part name="reference" type="xsd:string" />
  <part name="transaction_id" type="xsd:anyType" />
  <part name="hash" type="xsd:string" />
  <part name="backref" type="xsd:string" />
</message>
<message name="closeTransactionResponse">
  <part name="return" type="xsd:string" />
</message>
<message name="eodReportRequest">
  <part name="session_key" type="xsd:string" />
  <part name="content" type="xsd:string" />
  <part name="backref" type="xsd:string" />
</message>
<message name="eodReportResponse">
  <part name="return" type="xsd:string" />
</message>
<message name="updateRequest">
  <part name="session_key" type="xsd:string" />
  <part name="prn" type="xsd:string" />
  <part name="cheque_number" type="xsd:anyType" />
  <part name="status" type="xsd:anyType" />
  <part name="reason" type="xsd:anyType" />
  <part name="hash" type="xsd:string" />
  <part name="backref" type="xsd:string" />
</message>
<message name="updateResponse">
  <part name="return" type="xsd:string" />
</message>
<portType name="BankPaymentServicePortType">
  <operation name="authenticate">
    <documentation>Validate a user by supplied password, returns session key</documentation>
    <input message="tns:authenticateRequest"/>
    <output message="tns:authenticateResponse"/>
  </operation>
  <operation name="verifyReference">
    <documentation>The operation is meant to be used for verifying a payment reference which a customer wish to pay</documentation>
    <input message="tns:verifyReferenceRequest"/>
    <output message="tns:verifyReferenceResponse"/>
  </operation>
	<operation name="getMarkets">
		<documentation>The operation is meant to be used for searching the available market which the customer wish to pay for</documentation>
		<input message="tns:getMarketsRequest"/>
		<output message="tns:getMarketsResponse"/>
	</operation>
	<operation name="getBusinessType">
		<documentation>The operation is meant to be used for searching the available business types for market dues which the customer wish to pay for</documentation>
		<input message="tns:getBusinessTypeRequest"/>
		<output message="tns:getBusinessTypeResponse"/>
	</operation>
	<operation name="getBusinessItem">
		<documentation>The operation is meant to be used for searching the available business types for market dues which the customer wish to pay for</documentation>
		<input message="tns:getBusinessItemRequest"/>
		<output message="tns:getBusinessItemResponse"/>
	</operation>
	<operation name="generatePrn">
		<documentation>The operation is meant to be used for searching the available business types for market dues which the customer wish to pay for</documentation>
		<input message="tns:generatePrnRequest"/>
		<output message="tns:generatePrnResponse"/>
	</operation>
	<operation name="transact">
    <documentation>The operation is meant to be used for sending transaction that has been done on the banking side following the verifyReference operation</documentation>
    <input message="tns:transactRequest"/>
    <output message="tns:transactResponse"/>
  </operation>
  <operation name="closeTransaction">
    <documentation>The operation is meant to be used for finalizing a transaction with the details of transaction from bank or payment.</documentation>
    <input message="tns:closeTransactionRequest"/>
    <output message="tns:closeTransactionResponse"/>
  </operation>
  <operation name="eodReport">
    <documentation>The operation is meant to be used for sending all transaction that has been processed throughout the day back to the Payment service for reconciliation.</documentation>
    <input message="tns:eodReportRequest"/>
    <output message="tns:eodReportResponse"/>
  </operation>
  <operation name="update">
    <documentation>The operation is meant to be used for sending transaction updates in previous cheque transacton and it follows the authenticate operation</documentation>
    <input message="tns:updateRequest"/>
    <output message="tns:updateResponse"/>
  </operation>
</portType>
<binding name="BankPaymentServiceBinding" type="tns:BankPaymentServicePortType">
  <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
  <operation name="authenticate">
    <soap:operation soapAction="urn:BankPaymentService#authenticate" style="rpc"/>
    <input><soap:body use="encoded" namespace="urn:BankPaymentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input>
    <output><soap:body use="encoded" namespace="urn:BankPaymentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output>
  </operation>
  <operation name="verifyReference">
    <soap:operation soapAction="urn:BankPaymentService#verifyReference" style="rpc"/>
    <input><soap:body use="encoded" namespace="urn:BankPaymentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input>
    <output><soap:body use="encoded" namespace="urn:BankPaymentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output>
  </operation>
	<operation name="getMarkets">
		<soap:operation soapAction="urn:BankPaymentService#getMarkets" style="rpc"/>
		<input><soap:body use="encoded" namespace="urn:BankPaymentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input>
		<output><soap:body use="encoded" namespace="urn:BankPaymentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output>
	</operation>
	<operation name="getBusinessType">
		<soap:operation soapAction="urn:BankPaymentService#getBusinessType" style="rpc"/>
		<input><soap:body use="encoded" namespace="urn:BankPaymentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input>
		<output><soap:body use="encoded" namespace="urn:BankPaymentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output>
	</operation>
	<operation name="getBusinessItem">
		<soap:operation soapAction="urn:BankPaymentService#getBusinessItem" style="rpc"/>
		<input><soap:body use="encoded" namespace="urn:BankPaymentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input>
		<output><soap:body use="encoded" namespace="urn:BankPaymentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output>
	</operation>
	<operation name="generatePrn">
		<soap:operation soapAction="urn:BankPaymentService#generatePrn" style="rpc"/>
		<input><soap:body use="encoded" namespace="urn:BankPaymentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input>
		<output><soap:body use="encoded" namespace="urn:BankPaymentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output>
	</operation>
	<operation name="transact">
    <soap:operation soapAction="urn:BankPaymentService#transact" style="rpc"/>
    <input><soap:body use="encoded" namespace="urn:BankPaymentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input>
    <output><soap:body use="encoded" namespace="urn:BankPaymentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output>
  </operation>
  <operation name="closeTransaction">
    <soap:operation soapAction="urn:BankPaymentService#closeTransaction" style="rpc"/>
    <input><soap:body use="encoded" namespace="urn:BankPaymentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input>
    <output><soap:body use="encoded" namespace="urn:BankPaymentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output>
  </operation>
  <operation name="eodReport">
    <soap:operation soapAction="urn:BankPaymentService#eodReport" style="rpc"/>
    <input><soap:body use="encoded" namespace="urn:BankPaymentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input>
    <output><soap:body use="encoded" namespace="urn:BankPaymentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output>
  </operation>
   <operation name="update">
    <soap:operation soapAction="urn:BankPaymentService#update" style="rpc"/>
    <input><soap:body use="encoded" namespace="urn:BankPaymentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input>
    <output><soap:body use="encoded" namespace="urn:BankPaymentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output>
  </operation>
</binding>
<service name="BankPaymentService">
  <port name="BankPaymentServicePort" binding="tns:BankPaymentServiceBinding">
    <soap:address location="https://ecitietest.kcca.go.ug/ecitie/api/bank-paymentv1.php"/>
  </port>
</service>
</definitions>
