<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="urn:safetypay:schema:mws:api" elementFormDefault="qualified" targetNamespace="urn:safetypay:schema:mws:api" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:complexType name="ErrorManagerType">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="ErrorNumber" type="xs:integer" />
      <xs:element minOccurs="0" maxOccurs="1" name="Description" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="Severity" type="xs:integer" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ShippingDetailType">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="SalesOperationID" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="InvoiceDate" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="InvoiceNo" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="ShipDate" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="ShipMethod" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="DeliveryCompanyName" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="TrackingNumber" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="RecipientName" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="Language" type="tns:LanguageCodeType" />
  <xs:simpleType name="LanguageCodeType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="EN" />
      <xs:enumeration value="ES" />
      <xs:enumeration value="DE" />
      <xs:enumeration value="PT" />
      <xs:enumeration value="FR" />
      <xs:enumeration value="ZH" />
      <xs:enumeration value="JA" />
      <xs:enumeration value="IT" />
      <xs:enumeration value="NL" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="ShopperFieldType">
    <xs:attribute name="Key" type="xs:string" />
    <xs:attribute name="Value" type="xs:string" />
  </xs:complexType>
  <xs:complexType name="ArrayOfShopperFieldType">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="ShopperField" type="tns:ShopperFieldType" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="RefundType">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="OperationID" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="CreationDateTime" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="SalesOperationID" type="xs:string" />
      <xs:element minOccurs="1" maxOccurs="1" name="AmountToRefund" type="xs:decimal" />
      <xs:element minOccurs="0" maxOccurs="1" name="CurrencyIDToRefund" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="TotalPartial" type="xs:integer" />
      <xs:element minOccurs="0" maxOccurs="1" name="Reason" type="xs:integer" />
      <xs:element minOccurs="0" maxOccurs="1" name="Comments" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="MerchantRefundId" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="ShopperInformation" type="tns:ArrayOfShopperFieldType" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="CustomerInformationType">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="CustomerName" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="Phone" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="Email" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="CPF" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="BankName" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="Agency" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="Account" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfOperationType">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Operation" type="tns:OperationType" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="OperationType">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="CreationDateTime" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="OperationID" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="MerchantSalesID" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="MerchantOrderID" type="xs:string" />
      <xs:element minOccurs="1" maxOccurs="1" name="Amount" type="xs:decimal" />
      <xs:element minOccurs="0" maxOccurs="1" name="CurrencyID" type="xs:string" />
      <xs:element minOccurs="1" maxOccurs="1" name="ShopperAmount" type="xs:decimal" />
      <xs:element minOccurs="0" maxOccurs="1" name="ShopperCurrencyID" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="AuthorizationCode" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="OperationActivities" type="tns:ArrayOfOperationActivityType" />
      <xs:element minOccurs="0" maxOccurs="1" name="PaymentReferenceNo" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfOperationActivityType">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="OperationActivity" type="tns:OperationActivityType" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="OperationActivityType">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="CreationDateTime" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="Status" type="tns:StatusType" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="StatusType">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="StatusCode" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="Description" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfOperationActivityNotifiedType">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="ConfirmOperation" type="tns:OperationActivityNotifiedType" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="OperationActivityNotifiedType">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="CreationDateTime" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="OperationID" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="MerchantSalesID" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="MerchantOrderID" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="OperationStatus" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfString">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="ShopperCurrencyID" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="TransactionInfoType">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="CreationDateTime" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="SalesOperationID" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="TransactionIdentifier" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="MerchantSalesID" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="CustomMerchantName" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="CurrencyID" type="xs:string" />
      <xs:element minOccurs="1" maxOccurs="1" name="Amount" type="xs:decimal" />
      <xs:element minOccurs="0" maxOccurs="1" name="PayableAmounts" type="tns:ArrayOfPayableAmountType" />
      <xs:element minOccurs="0" maxOccurs="1" name="ExpirationTime" type="xs:integer" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfPayableAmountType">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="PayableAmount" type="tns:PayableAmountType" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="PayableAmountType">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="CurrencyID" type="xs:string" />
      <xs:element minOccurs="1" maxOccurs="1" name="Amount" type="xs:decimal" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfIdentifierSearchType">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="IdentifierSearch" type="tns:IdentifierSearchType" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="IdentifierSearchType">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="Value" type="xs:string" />
      <xs:element minOccurs="1" maxOccurs="1" name="Type" type="xs:short" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfTransactionProcessedStatusType">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="TransactionProcessedStatus" type="tns:TransactionProcessedStatusType" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="TransactionProcessedStatusType">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="TransactionIdentifier" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="OperationID" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="MerchantSalesID" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="ProcessStatus" type="tns:ProcessStatusType" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ProcessStatusType">
    <xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="Status" type="tns:ProcessStatusEnumType" />
      <xs:element minOccurs="0" maxOccurs="1" name="ProcessError" type="tns:ErrorManagerType" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="ProcessStatusEnumType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="PENDING" />
      <xs:enumeration value="SUCCESS" />
      <xs:enumeration value="FAILURE" />
    </xs:restriction>
  </xs:simpleType>
</xs:schema>