Services
Umoh Bassey-Duke
he Merchant Services Web-Services Platform enables partner Merchants to integrate with the Paga platform to enable Paga to process automated real-time payment transactions with the Merchant's systems using secure SOAP Web Services. This specification describes the web-services interfaces that the Merchant must implement for automated integration using Web-Services
The services that are described in this specification are:
- Get Supported Integration Services -This service allows Paga to verify which of the integration services listed here the merchant implementation supports in order to configure subsequent interaction with the merchant platform.. This service is mandatory.
- Payment Execution -This service provides the mechanism for Paga to submit a payment notification to the merchant systems and receive confirmation of its approval. This service is mandatory.
- Customer Validation - This service allows Paga to verify the existence of a customer in good standing with the merchant using several customer properties. This service is optional.
- Query Payments- This service provides the mechanism for Paga to request historical payment(s) records from the biller. This service is optional.
- Get Merchant Services - This service provides the mechanism for Paga to request a list of named merchant services and associated service properties provide by the merchant. This service is optional.
1. Get Supported Integration Services
This service is mandatory.
This service allows Paga to verify which of the integration services listed here the merchant implementation supports in order to configure subsequent interaction with the merchant platform.
The web service must implement this service in order to provide a list of the services that it supports. The response from the server will include a list of any of the string provided by the IntegrationService simple type list.
Service name: getIntegrationServices
Request
Parameters
Argument Name | Type | Required | Description |
---|---|---|---|
isTtest | boolean | Required | Indication whether the service call is a test call (true) or live call (false). Merchant services must honor this flag in order to provide a continuous way of testing merchant services without impacting live systems. |
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:mes="http://pagatech.com/merchant/messages"> <soap:Header/> <soap:Body> <mes:getIntegrationServicesRequest> <mes:isTest>false</mes:isTest> </mes:getIntegrationServicesRequest> </soap:Body> </soap:Envelope>
Response Parameters
Argument Name | Type | Required | Description |
---|---|---|---|
services | IntegrationService (restricted string) list | Required (0 or more items) | List of IntegrationService types (string) indicating which integration services are supported |
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"> <env:Header/> <env:Body> <paga:getIntegrationServicesResponse xmlns:paga="http://pagatech.com/merchant/messages"> <paga:services>SUBMIT_PAYMENT</paga:services> <paga:services>VALIDATE_CUSTOMER</paga:services> <paga:services>QUERY_PAYMENTS</paga:services> </paga:getIntegrationServicesResponse> </env:Body> </env:Envelope>
2. Transaction Execution
This service is mandatory.
This service provides the mechanism for Paga to submit a payment notification to the merchant systems and receive confirmation of its approval.
Execution of this service should trigger payment logic in merchant system and then provide response including success/fail result and other properties to Paga system.
Service name: submitTransaction
Request Parameters
Argument Name | Type | Required | Description |
---|---|---|---|
Argument Name | Type | Requirement | Description |
isTest | boolean | Required | Indication whether the service call is a test call (true) or live call (false). Merchant services must honor this flag in order to provide a continuous way of testing merchant services without impacting live systems. |
Transaction | Transaction | Required | The Transaction object providing the payment transaction details. See Transaction object described in the Schema Objects section |
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:mes="http://pagatech.com/merchant/messages"> <soap:Header/> <soap:Body> <mes:submitTransactionRequest> <mes:isTest>?</mes:isTest> <mes:transaction> <mes:utcTransactionDateTime>2011-05-01T12:40:00.466</mes:utcTransactionDateTime> <mes:totalAmount>45000</mes:totalAmount> <mes:isCredit>true</mes:isCredit> <mes:pagaTransactionId>172a56a0-3dde-4837-986b-bc8965b1d35f</mes:pagaTransactionId> <mes:currency>NGN</mes:currency> <mes:customerReference>ABC123456</mes:customerReference> <mes:period>4</mes:period> <mes:customerFirstName>John</mes:customerFirstName> <mes:customerLastName>Doe</mes:customerLastName> <mes:serviceAmounts>?</mes:serviceAmounts> <mes:transactionChannel>SMS</mes:transactionChannel> </mes:transaction> </mes:submitTransactionRequest> </soap:Body> </soap:Envelope>
Response Parameters
Argument Name | Type | Requirement | Description |
---|---|---|---|
status | Status | Required | The status of the payment attempt. See Status object described in the Schema Objects section |
uniqueTransactionId | string | Optional | The unique transaction id of the payment transaction. If one is provided as part of the payment request, this must be the same one, otherwise, one can be generated and provided as part of this response by the Merchant system |
customerReference | string | Optional | The Merchant's customer reference number for the customer affected by this payment. This may have been provided as part of the request transaction. |
merchantStatus | string | Optional | A merchant-specific status code generated by the merchant coding the result of the transaction |
message | string | Optional | A transaction result message generated by the Merchant |
confirmationCode | string | Optional | A confirmation value or reference to be provided to the customer in reference to a successful transaction |
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"> <env:Header/> <env:Body> <paga:submitPaymentResponse xmlns:paga="http://pagatech.com/merchant/messages"> <paga:status>SUCCESS</paga:status> <paga:pagaTransactionId>172a56a0-3dde-4837-986b-bc8965b1d35f</paga:pagaTransactionId> <paga:merchantTransactionId>000000456</paga:merchantTransactionId> <paga:merchantStatus>1000</paga:merchantStatus> <paga:message>Successfully executed payment</paga:message> <paga:confirmationCode>XHSUR-23724-FSR4</paga:confirmationCode> </paga:submitPaymentResponse> </env:Body> </env:Envelope>
3. Customer Validation
This service is optional.
This service allows Paga to verify the existence of a customer in good standing with the merchant using several customer properties.
Service Name: validateCustomer
Request Parameters
Argument Name | Type | Requirement | Description |
---|---|---|---|
isTest | boolean | Required | Indication whether the service call is a test call (true) or live call (false). Merchant services must honor this flag in order to provide a continuous way of testing merchant services without impacting live systems. |
customerReference | string | Optional | A reference number identifying the customer at the merchant |
customerFirstName | string | Optional | Customer's first name |
customerLastName | string | Optional | Customer's last name |
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:mes="http://pagatech.com/merchant/messages"> <soap:Header/> <soap:Body> <mes:validateCustomerRequest> <mes:isTest>false</mes:isTest> <mes:customerReference>AB4839344-01</mes:customerReference> </mes:validateCustomerRequest> </soap:Body> </soap:Envelope>
Response Parameters
Argument Name | Type | Requirement | Description |
---|---|---|---|
isValid | boolean | Required | Whether the customer information provided represents a valid customer or not |
status | Status | Required | The status of the payment attempt. See Status object described in the Schema Objects section |
merchantStatus | string | Optional | A merchant-specific status code generated by the merchant coding the result of the validation attempt |
Message | string | Optional | A transaction result message generated by the Merchant |
firstName | string | Optional | The customer's first name |
lastName | string | Optional | The customer's last name |
lastPaymentDate | date | optional | date of last payment by customer |
accountStatus | CustomerAccountStatus | optional | status of customer see CustomerAccountStatus object described in the Schema Objects section |
paymentDueDate | date | optional | date of next due payment |
isDisplayed | boolean | optional | this flag allow the system tot display the customer information on the portal |
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"> <env:Header/> <env:Body> <paga:validateCustomerResponse xmlns:paga="http://pagatech.com/merchant/messages"> <paga:isValid>true</paga:isValid> <paga:status>SUCCESS</paga:status> <paga:merchantStatus>0</paga:merchantStatus> <paga:message>Successfull validated customer</paga:message> <paga:firstName>John</paga:message> <paga:lastName>Doe</paga:message> <paga:lastPaymentDate>2011-05-26T22:46:05.136Z</paga:message> <paga:accountStatus>ACTIVE</paga:message> <paga:paymentDueDate>2011-05-26T22:46:05.136Z</paga:message> <paga:isDisplayed>true</paga:message> </paga:validateCustomerResponse> </env:Body> </env:Envelope>
4. Query Payments
This service is optional.
This service provides the mechanism for Paga to request historical payment(s) records from the biller.
Service Name: queryPayments
Request Parameters
Argument Name | Type | Requirement | Description |
---|---|---|---|
isTest | boolean | Required | Indication whether the service call is a test call (true) or live call (false). Merchant services must honor this flag in order to provide a continuous way of testing merchant services without impacting live systems. |
transaction | Transaction | Required | A Transaction object whose properties specify the filter to be applied to all transaction records. See Transaction object described in the Schema Objects section. |
resultsPerRequest | Integer | Optional | For results paination, the suggested results-per-page for the server to return for the results of the query. The server can choose to return fewer results due to implementation details. The server should not return more results. |
resultsPage | string | Optional (required if resultsPerPage is set) | For pagination, if results-per-page is provided, this describes the page of results to be returned by the sever. |
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:mes="http://pagatech.com/merchant/messages"> <soap:Header/> <soap:Body> <mes:queryPaymentsRequest> <mes:isTest>false</mes:isTest> <mes:transaction> <mes:customerReference>AB4839344-01</mes:customerReference> <mes:period>2</mes:period> </mes:transaction> <mes:resultsPerRequest>20</mes:resultsPerRequest> <mes:resultsPage>1</mes:resultsPage> </mes:queryPaymentsRequest> </soap:Body> </soap:Envelope>
Response Parameters
Argument Name | Type | Requirement | Description |
---|---|---|---|
Results | Transaction list | Optional | The list of Transaction objects matching the query (if any). See Transaction object described in the Schema Objects section. |
resultsPerRequest | Integer | Optional | If pagination requested, the contains the actual results per page delivered by the server |
resultsPage | string | Optional (required if resultsPerPage is set) | If pagination requested, the contains the actual results page delivered by the server |
status | Status | Required | The status of the payment attempt. See Status object described in the Schema Objects section |
merchantStatus | string | Optional | A merchant-specific status code generated by the merchant coding the result of the validation attempt |
Message | string | Optional | A transaction result message generated by the Merchant |
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"> <env:Header/> <env:Body> <paga:queryPaymentsResponse xmlns:paga="http://pagatech.com/merchant/messages"> <paga:status>SUCCESS</paga:status> <paga:results> <paga:utcTransactionDateTime>2011-05-26T22:46:05.136Z</paga:utcTransactionDateTime> <paga:totalAmount>10000.32</paga:totalAmount> <paga:isCredit>false</paga:isCredit> <paga:currency>NGN</paga:currency> <paga:customerReference>AB4839344-01</paga:customerReference> <paga:period>2</paga:period> </paga:results> <paga:results> <paga:utcTransactionDateTime>2011-05-26T22:49:17.136Z</paga:utcTransactionDateTime> <paga:totalAmount>2032.1</paga:totalAmount> <paga:isCredit>false</paga:isCredit> <paga:currency>NGN</paga:currency> <paga:customerReference>AB4839344-01</paga:customerReference> <paga:period>2</paga:period> </paga:results> </paga:queryPaymentsResponse> </env:Body> </env:Envelope>
5. Get Merchant Services
This service is optional.
This service provides the mechanism for Paga to request a list of named merchant services and associated service properties provide by the merchant
Service Name: getMerchantServices
Request Parameters
Argument Name | Type | Requirement | Description |
---|---|---|---|
isTest | boolean | Required | Indication whether the service call is a test call (true) or live call (false). Merchant services must honor this flag in order to provide a continuous way of testing merchant services without impacting live systems. |
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:mes="http://pagatech.com/merchant/messages"> <soap:Header/> <soap:Body> <mes:getMerchantServicesRequest> <mes:isTest>false</mes:isTest> </mes:getMerchantServicesRequest> </soap:Body> </soap:Envelope>
Response Parameters
Argument Name | Type | Requirement | Description |
---|---|---|---|
services | MerhantService list | Required (0 or more items) | List of MerchantService objects indicating which merchant service offerings provided by the merchant. See MerchantService object described in the Schema Objects section |
status | Status | Required | The status of the payment attempt. See Status object described in the Schema Objects section |
merchantStatus | string | Optional | A merchant-specific status code generated by the merchant coding the result of the validation attempt |
Message | string | Optional | A transaction result message generated by the Merchant |
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"> <env:Header/> <env:Body> <paga:getMerchantServicesResponse xmlns:paga="http://pagatech.com/merchant/messages"> <paga:status>SUCCESS</paga:status> <paga:services> <paga:name>SILVER PLAN</paga:name> <paga:price>32000.0</paga:price> <paga:shortCode>SP</paga:shortCode> <paga:productCode>XS_SP</paga:productCode> <paga:isPublic>true</paga:isPublic> </paga:services> <paga:services> <paga:name>GOLD PLAN</paga:name> <paga:price>50000.0</paga:price> <paga:shortCode>GP</paga:shortCode> <paga:productCode>XS_GP</paga:productCode> <paga:isPublic>true</paga:isPublic> </paga:services> </paga:getMerchantServicesResponse> </env:Body> </env:Envelope>
Schema Objects
The following objects are defined as part of the Merchant Services Web Service Platform schema and are used in the execution of the services described above.
Transaction
The transaction object captures all the details of a financ
Property Name | Type | Requirement | Description |
---|---|---|---|
utcTransactionDatetime | dateTime | Optional (required for submission) | The date/time stamp of the transaction, in UTC (GMT) time-zone. |
transactionType | TransactionType | Optional (required for submission) | The enumerated transaction type |
totalAmount | double | Optional (required for submission) | The total amount value of the transaction |
pagaAmount | double | Optional (required for submission) | The gross amount paid as fees to Paga for this transaction |
agentAmount | double | Optional (required for submission) | The amount paid to the merchant (if applicable) as part of this transaction |
merchantAmount | double | Optional (required for submission) | The gross amount paid to the Merchant as part of this transaction |
isCredit | boolean | Optional (required for submission) | Whether the transaction credits the sending customer (true) or debits (false) - This will be true for payment transactions |
pagaTransactionId | string | Optional (required for submission) | A common Paga transaction id identifying the transaction. As part of a transaction submission this will be provided by the Paga platform to uniquely identify the transaction to the Merchant. This transaction id is shared with all parties involved in this transaction |
merchantTransactionId | string | Optional | A unique transaction id identifying the transaction on the Merchant's system. this may be provided by the merchant in response to a transaction submission in order to provide a reference to Paga for the transaction on the Merchant's system |
currency | string | Optional | ISO 4217 currency code of currency in which transaction occurs |
customerReference | string | A reference number identifying the customer at the merchant. This may be an account number or other merchant-specific identifier | |
period | integer | The period in which the transaction occurs. | |
customerFirstName | string | The first name of the customer subject of the transaction | |
customerLastName | string | The last name of the customer subject of the transaction | |
services | MerchantService list | A list of the Merchant's services (as provide by the getMerchantServices() operation) for which this transaction is being made. This allows for specific identification of which services the transaction is for. See MerchantService object described in the Schema Objects section. | |
channel | Channel | Required | The communication channel (eg. SMS, ONLINE etc.) by which the customer initiated the transaction. See Channel object described in the Schema Objects section |
agent | Optional | An identifier of the agent at which the transaction was performed, if the transaction was performed at an agent | |
location | Optional | The descriptive location of the transaction, if applicable. | |
description | A description of the transaction | ||
methodOfPayment | Optional | The method of payment used by the customer for the transaction, if applicable and any other required payment details |
MerchantService
The MerchantService object describes a merchant-specific service offering along with pricing and coding information.
A MerchantService may be made up of other Merchant services (such as when service offerings are grouped and potentially priced differently in their groupings)
Property Name | Type | Requirement | Description |
---|---|---|---|
name | string | Required | The displayed human-readable name of the merchant service |
price | double | Required | The price for this service |
shortCode | string | Required | The short-code for this service offering - this is just an arbitrary code that must be 5 characters or less which will be used to identify the service on some channels (such as SMS). Each short code must be unique for all services provided by the Merchant |
productCode | string | Required | This is a product code which identifies the service in the Merchants systems. This provides the merchant-specific code for the service which will be sent to the merchant system as part of the transaction in order to help identify the service on the Merchant systems. |
isPublic | boolean | Required | This is a flag identifying whether this service should be exposed to customers for selection or not. |
composition | MerchantService list | Optional | For Merchant services which are made up of other Merchant services, this provides the list of 'children' merchant services which define the parent service. |
Channel [Enumeration]
The channel enumeration list all the possible channels through which transactions and other service calls may be initiated on the Paga platform. For some service calls, the initiating channel may be submitted to the Merchant platform.
Value | Description |
---|---|
SMS | Service methods initiated by SMS on the Paga platform |
ONLINE | Service methods initiated online on the Paga platform |
VOICE | Service methods initiated by voice telephony on the Paga platform |
Service methods initiated by email on the Paga platform | |
USSD | Service methods initiated by USSD on the Paga platform |
E_WIDGET | Service methods integrated by an integrated e-widget (Paga e-widget integrated in third-party online platform) |
Status [Enumeration]
The status enumeration provides a standard set of status codes by which the Merchant system can respond to to indicate the success or failure state of the attempted service call.
Value | Description |
---|---|
SUCCESS | The execution was processed successfully |
CLIENT_ERROR | The execution failed due to some invalid parameters or other aspect of information provided by the client in the request |
SERVER_EROR | The execution failed due to an error o the Merchant system side (usually accompanied by a merchant error status code and/or a message) |
TransactionType [Enumeration]
The status enumeration provides a standard set of transaction type codes by which indicate the type of transaction executed.
Value | Description |
---|---|
BILL_PAY | A bill payment transaction |
CustomerAccountStatus [Enumeration]
This status enumeration provides a standard set of status codes by which indicate a customer's account status.
Value | Description |
---|---|
ACTIVE | Customer's account is Active |
INACTIVE | Customer's account is Inactive |
Security
To secure the communications between the Paga platform and the merchant systems, there are several communications layer and web-service security requirements and options.
SSL
All communications between the Paga platform and the merchant must be performed over a secure sockets layer (SSL) HTTP communication channel. This means that the merchant must provide an encrypted SSL HHTP address (HTTPS URL).
Username/Password Digest Token
All merchant web-services integrated with the Paga Merchant Services Web-Services must implement the standard Web-Service Security Web Services Security: SOAP Message Security 1.0 Standard 200401, March 2004 which provides a specification for SOAP web-service header username/token authentication credentials.
Within this specification, the service will employ the Password Digest authentication MS-WSP password will be provided along with the username to authenticate the merchant. The merchant's username and MS-WSP password credentials will be provided to the Merchant a part of their Merchant Services registration process.
Certificate Authentication
This authentication method is optional
In order to verify that web-service requests are originating from Paga to the Merchant platform, the Merchant can choose to perform public certificate validation. If this is required by the Merchant, during the registration process, Paga will share a public certificate key with the merchant which can be used to validate that the request originated from the Paga platform.
Web Service Definition - WSDL
The following is the WSDL definition of the web-service:
<wsdl:definitions targetNamespace="http://pagatech.com/merchant/messages" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:sch="http://pagatech.com/merchant/messages" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:tns="http://pagatech.com/merchant/messages"> <wsdl:types> <schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://pagatech.com/merchant/messages" xmlns="http://www.w3.org/2001/XMLSchema"> <element name="getIntegrationServicesRequest"> <complexType> <sequence> <element name="isTest" type="boolean"/> </sequence> </complexType> </element> <element name="getIntegrationServicesResponse"> <complexType> <sequence> <element maxOccurs="unbounded" minOccurs="0" name="services" type="tns:IntegrationService"/> </sequence> </complexType> </element> <element name="validateCustomerRequest"> <complexType> <sequence> <element name="isTest" type="boolean"/> <element minOccurs="0" name="customerReference" type="string"/> <element minOccurs="0" name="customerFirstName" type="string"/> <element minOccurs="0" name="customerLastName" type="string"/> </sequence> </complexType> </element> <element name="validateCustomerResponse"> <complexType> <sequence> <element name="isValid" type="boolean" /> <element name="status" type="tns:Status" /> <element minOccurs="0" name="merchantStatus" type="string" /> <element minOccurs="0" name="message" type="string" /> <element name="firstName" type="string" minOccurs="0" maxOccurs="1"/> <element name="lastName" type="string" minOccurs="0" maxOccurs="1" /> <element name="lastPaymentDate" type="dateTime" minOccurs="0" maxOccurs="1" /> <element name="accountStatus" type="tns:CustomerAccountStatus" minOccurs="0" maxOccurs="1" /> <element name="paymentDueDate" type="dateTime" minOccurs="0" maxOccurs="1" /> <element name="isDisplayed" type="boolean" minOccurs="0" maxOccurs="1" /> </sequence> </complexType> </element> <element name="submitTransactionRequest"> <complexType> <sequence> <element name="isTest" type="boolean"/> <element name="transaction" type="tns:Transaction"/> </sequence> </complexType> </element> <element name="submitTransactionResponse"> <complexType> <sequence> <element name="status" type="tns:Status"/> <element name="uniqueTransactionId" type="string"/> <element minOccurs="0" name="customerReference" type="string"/> <element minOccurs="0" name="merchantStatus" type="string"/> <element minOccurs="0" name="message" type="string"/> <element minOccurs="0" name="confirmationCode" type="string"/> </sequence> </complexType> </element> <element name="queryPaymentsRequest"> <complexType> <sequence> <element name="isTest" type="boolean"/> <element name="transaction" type="tns:Transaction"/> <element minOccurs="0" name="resultsPerRequest" type="int"/> <element minOccurs="0" name="resultsPage" type="int"/> </sequence> </complexType> </element> <element name="queryPaymentsResponse"> <complexType> <sequence> <element maxOccurs="unbounded" minOccurs="0" name="results" type="tns:Transaction"/> <element minOccurs="0" name="resultsPerRequest" type="int"/> <element minOccurs="0" name="resultsPage" type="int"/> <element name="status" type="tns:Status"/> <element minOccurs="0" name="merchantStatus" type="string"/> <element minOccurs="0" name="message" type="string"/> </sequence> </complexType> </element> <element name="getMerchantServicesRequest"> <complexType> <sequence> <element name="isTest" type="boolean"/> </sequence> </complexType> </element> <element name="getMerchantServicesResponse"> <complexType> <sequence> <element maxOccurs="unbounded" minOccurs="0" name="services" type="tns:MerchantService"/> <element name="status" type="tns:Status"/> <element minOccurs="0" name="merchantStatus" type="string"/> <element minOccurs="0" name="message" type="string"/> </sequence> </complexType> </element> <complexType name="Transaction"> <sequence> <element minOccurs="0" name="utcTransactionDateTime" type="dateTime"/> <element minOccurs="0" name="transactionType" type="tns:TransactionType"/> <element minOccurs="0" name="totalAmount" type="double"/> <element minOccurs="0" name="pagaAmount" type="double"/> <element minOccurs="0" name="agentAmount" type="double"/> <element minOccurs="0" name="merchantAmount" type="double"/> <element minOccurs="0" name="isCredit" type="boolean"/> <element minOccurs="0" name="pagaTransactionId" type="string"/> <element minOccurs="0" name="merchantTransactionId" type="string"/> <element minOccurs="0" name="currency" type="string"/> <element minOccurs="0" name="customerReference" type="string"/> <element minOccurs="0" name="period" type="int"/> <element minOccurs="0" name="customerFirstName" type="string"/> <element minOccurs="0" name="customerLastName" type="string"/> <element maxOccurs="unbounded" minOccurs="0" name="services" type="tns:MerchantService"/> <element minOccurs="0" name="channel" type="tns:Channel"/> <element minOccurs="0" name="agent" type="string"/> <element minOccurs="0" name="location" type="string"/> <element minOccurs="0" name="description" type="string"/> <element minOccurs="0" name="methodOfPayment" type="string"/> </sequence> </complexType> <complexType name="MerchantService"> <sequence> <element name="name" type="string"/> <element name="price" type="double"/> <element name="shortCode" type="string"/> <element name="productCode" type="string"/> <element name="isPublic" type="boolean"/> <element maxOccurs="unbounded" minOccurs="0" name="composition" type="tns:MerchantService"/> </sequence> </complexType> <simpleType name="Channel"> <restriction base="string"> <enumeration value="SMS"/> <enumeration value="ONLINE"/> <enumeration value="VOICE"/> <enumeration value="EMAIL"/> <enumeration value="USSD"/> <enumeration value="E_WIDGET"/> <enumeration value="WEB_SERVICE"/> <enumeration value="AGENT"/> </restriction> </simpleType> <simpleType name="Status"> <restriction base="string"> <enumeration value="SUCCESS"/> <enumeration value="CLIENT_ERROR"/> <enumeration value="SERVER_ERROR"/> </restriction> </simpleType> <simpleType name="CustomerAccountStatus"> <restriction base="string"> <enumeration value="ACTIVE"/> <enumeration value="INACTIVE" /> </restriction> </simpleType> <simpleType name="IntegrationService"> <restriction base="string"> <enumeration value="VALIDATE_CUSTOMER"/> <enumeration value="SUBMIT_PAYMENT"/> <enumeration value="QUERY_PAYMENTS"/> <enumeration value="GET_MERCHANT_SERVICES"/> </restriction> </simpleType> <simpleType name="TransactionType"> <restriction base="string"> <enumeration value="BILL_PAY"/> </restriction> </simpleType> </schema> </wsdl:types> <wsdl:message name="getMerchantServicesResponse"> <wsdl:part element="tns:getMerchantServicesResponse" name="getMerchantServicesResponse"></wsdl:part> </wsdl:message> <wsdl:message name="getIntegrationServicesRequest"> <wsdl:part element="tns:getIntegrationServicesRequest" name="getIntegrationServicesRequest"></wsdl:part> </wsdl:message> <wsdl:message name="submitTransactionRequest"> <wsdl:part element="tns:submitTransactionRequest" name="submitTransactionRequest"></wsdl:part> </wsdl:message> <wsdl:message name="validateCustomerResponse"> <wsdl:part element="tns:validateCustomerResponse" name="validateCustomerResponse"></wsdl:part> </wsdl:message> <wsdl:message name="getMerchantServicesRequest"> <wsdl:part element="tns:getMerchantServicesRequest" name="getMerchantServicesRequest"></wsdl:part> </wsdl:message> <wsdl:message name="queryPaymentsRequest"> <wsdl:part element="tns:queryPaymentsRequest" name="queryPaymentsRequest"></wsdl:part> </wsdl:message> <wsdl:message name="queryPaymentsResponse"> <wsdl:part element="tns:queryPaymentsResponse" name="queryPaymentsResponse"></wsdl:part> </wsdl:message> <wsdl:message name="validateCustomerRequest"> <wsdl:part element="tns:validateCustomerRequest" name="validateCustomerRequest"></wsdl:part> </wsdl:message> <wsdl:message name="submitTransactionResponse"> <wsdl:part element="tns:submitTransactionResponse" name="submitTransactionResponse"></wsdl:part> </wsdl:message> <wsdl:message name="getIntegrationServicesResponse"> <wsdl:part element="tns:getIntegrationServicesResponse" name="getIntegrationServicesResponse"></wsdl:part> </wsdl:message> <wsdl:portType name="MerchantService"> <wsdl:operation name="getMerchantServices"> <wsdl:input message="tns:getMerchantServicesRequest" name="getMerchantServicesRequest"></wsdl:input> <wsdl:output message="tns:getMerchantServicesResponse" name="getMerchantServicesResponse"></wsdl:output> </wsdl:operation> <wsdl:operation name="getIntegrationServices"> <wsdl:input message="tns:getIntegrationServicesRequest" name="getIntegrationServicesRequest"></wsdl:input> <wsdl:output message="tns:getIntegrationServicesResponse" name="getIntegrationServicesResponse"></wsdl:output> </wsdl:operation> <wsdl:operation name="submitTransaction"> <wsdl:input message="tns:submitTransactionRequest" name="submitTransactionRequest"></wsdl:input> <wsdl:output message="tns:submitTransactionResponse" name="submitTransactionResponse"></wsdl:output> </wsdl:operation> <wsdl:operation name="validateCustomer"> <wsdl:input message="tns:validateCustomerRequest" name="validateCustomerRequest"></wsdl:input> <wsdl:output message="tns:validateCustomerResponse" name="validateCustomerResponse"></wsdl:output> </wsdl:operation> <wsdl:operation name="queryPayments"> <wsdl:input message="tns:queryPaymentsRequest" name="queryPaymentsRequest"></wsdl:input> <wsdl:output message="tns:queryPaymentsResponse" name="queryPaymentsResponse"></wsdl:output> </wsdl:operation> </wsdl:portType> <wsdl:binding name="MerchantServiceSoap12" type="tns:MerchantService"> <soap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="getMerchantServices"> <soap12:operation soapAction=""/> <wsdl:input name="getMerchantServicesRequest"> <soap12:body use="literal"/> </wsdl:input> <wsdl:output name="getMerchantServicesResponse"> <soap12:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="getIntegrationServices"> <soap12:operation soapAction=""/> <wsdl:input name="getIntegrationServicesRequest"> <soap12:body use="literal"/> </wsdl:input> <wsdl:output name="getIntegrationServicesResponse"> <soap12:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="submitTransaction"> <soap12:operation soapAction=""/> <wsdl:input name="submitTransactionRequest"> <soap12:body use="literal"/> </wsdl:input> <wsdl:output name="submitTransactionResponse"> <soap12:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="validateCustomer"> <soap12:operation soapAction=""/> <wsdl:input name="validateCustomerRequest"> <soap12:body use="literal"/> </wsdl:input> <wsdl:output name="validateCustomerResponse"> <soap12:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation name="queryPayments"> <soap12:operation soapAction=""/> <wsdl:input name="queryPaymentsRequest"> <soap12:body use="literal"/> </wsdl:input> <wsdl:output name="queryPaymentsResponse"> <soap12:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="MerchantService"> <wsdl:port binding="tns:MerchantServiceSoap12" name="MerchantServiceSoap12"> <soap12:address location="http://localhost:8080/paga-test/merchantService/"/> </wsdl:port> </wsdl:service> </wsdl:definitions>