Page tree
Skip to end of metadata
Go to start of metadata

Схема web-служб сервісу Money Transfer і лежать в її основі базові і основні компоненти необхідні для розробки інтеграції з додатками банків і PSP компаній.

XSD (XML Schema Definition), рекомендація World Wide Web Consortium (W3C), визначає, як формально описувати елементи в документі розширюваної мови розмітки (XML). Він може бути використаний програмістами для перевірки кожного фрагмента вмісту елемента в документі. Вони можуть перевірити, чи відповідає він опису елемента, в який він поміщений.

Нижче вказані необхідні файли XSD:



CardZoneRequest
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
           version="1.0"
           elementFormDefault="qualified"
           attributeFormDefault="qualified">
    <xs:import namespace="http://www.w3.org/2000/09/xmldsig#"
               schemaLocation="classpath:schemas/xmldsig-core-schema.xsd"/>

    <xs:element name="CardZoneRequest" type="cardZoneRequest"/>

    <xs:complexType name="cardZoneRequest">
        <xs:all>
            <xs:element name="MerchantId" type="merchantId"/>
            <xs:element name="TerminalId" type="terminalId" minOccurs="0"/>
            <xs:element name="TrackingId" type="trackingId"/>
            <xs:element name="CardFromNumber" type="cardFromNumber" minOccurs="0"/>
            <xs:element name="CardToNumber" type="cardToNumber" minOccurs="0"/>
            <xs:element ref="ds:Signature" minOccurs="0"/>
        </xs:all>
    </xs:complexType>
    <xs:simpleType name="merchantId">
        <xs:restriction base="xs:string">
        <xs:pattern value="[A-Za-z0-9]{1,15}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="terminalId">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9]{1,8}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="trackingId">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9]{1,16}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="cardFromNumber">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{13,19}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="cardToNumber">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{13,19}"/>
        </xs:restriction>
    </xs:simpleType>
</xs:schema>
CardZoneResponse
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
           version="1.0"
           elementFormDefault="qualified"
           attributeFormDefault="qualified">
    <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="classpath:schemas/xmldsig-core-schema.xsd"/>

    <xs:element name="CardInfo" type="cardBinInfo"/>

    <xs:element name="CardZoneResponse" type="cardZoneResponse"/>

    <xs:complexType name="cardZoneResponse">
        <xs:all>
            <xs:element name="TrackingId" type="trackingId"/>
            <xs:element name="Status" type="status"/>
            <xs:element name="CardFromInfo" type="cardBinInfo" minOccurs="0"/>
            <xs:element name="CardToInfo" type="cardBinInfo" minOccurs="0"/>
            <xs:element ref="ds:Signature" minOccurs="0"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="status">
        <xs:all>
            <xs:element name="Code" type="xs:string"/>
            <xs:element name="Message" type="xs:string"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="cardBinInfo">
        <xs:all>
            <xs:element name="CountryCode" type="xs:string"/>
            <xs:element name="CardType" type="xs:string"/>
            <xs:element name="Brand" type="cardBrand"/>
            <xs:element name="CardZone" type="cardZone"/>
            <xs:element name="BinProgram" type="binProgram" minOccurs="0"/>
        </xs:all>
    </xs:complexType>

    <xs:simpleType name="cardBrand">
        <xs:restriction base="xs:string">
            <xs:enumeration value="VISA"/>
            <xs:enumeration value="MAST"/>
            <xs:enumeration value="MAES"/>
            <xs:enumeration value="ONIX"/>
            <xs:enumeration value="PROSTIR"/>
            <xs:enumeration value="DINA"/>
            <xs:enumeration value="BORICA"/>
        </xs:restriction>
</xs:simpleType>

    <xs:simpleType name="cardZone">
        <xs:restriction base="xs:string">
            <xs:enumeration value="NATIVE"/>
            <xs:enumeration value="LOCAL"/>
            <xs:enumeration value="DOMESTIC"/>
            <xs:enumeration value="CROSS_BOARD"/>
            <xs:enumeration value="FORBIDDEN"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="trackingId">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9]{1,16}"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="binProgram">
        <xs:all>
            <xs:element ref="BinProgramOfPaySystem" minOccurs="0"/>
        </xs:all>
    </xs:complexType>

    <xs:element name="BinProgramOfPaySystem" abstract="true"/>
    <xs:element name="MasterCard" type="masterBinProgram" substitutionGroup="BinProgramOfPaySystem"/>
    <xs:element name="Visa" type="visaBinProgram" substitutionGroup="BinProgramOfPaySystem"/>

    <xs:complexType name="masterBinProgram">
        <xs:all>
            <xs:element name="fastFundsIndicator" type="xs:string"/>
            <xs:element name="mappingServiceIndicator" type="xs:string"/>
            <xs:element name="MoneySendIndicator" type="xs:string"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="visaBinProgram">
        <xs:all>
            <xs:element name="tokenIndicator" type="xs:string"/>
            <xs:element name="fastFunds" type="xs:string"/>
            <xs:element name="originalCredit" type="xs:string"/>
            <xs:element name="originalCreditMoneyTransfer" type="xs:string"/>
            <xs:element name="originalCreditOnlineGambling" type="xs:string"/>
            <xs:element name="productId" type="xs:string"/>
        </xs:all>
    </xs:complexType>
</xs:schema>
   
TransactionRequest
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
           version="1.0"
           elementFormDefault="qualified"
           attributeFormDefault="qualified">

    <xs:import namespace="http://www.w3.org/2000/09/xmldsig#"
               schemaLocation="classpath:schemas/xmldsig-core-schema.xsd"/>

    <xs:element name="Amount" type="amount"/>

    <xs:element name="TransactionRequest" type="transactionRequest"/>

    <xs:element name="address" type="address"/>

    <xs:element name="funding" type="funding"/>

    <xs:element name="paRes" type="paRes"/>

    <xs:element name="payment" type="payment"/>

    <xs:element name="personInfo" type="personInfo"/>

    <xs:complexType name="transactionRequest">
        <xs:all>
            <xs:element name="TrackingId" type="trackingId"/>
            <xs:element name="MerchantId" type="merchantId"/>
            <xs:element name="TerminalId" type="terminalId" minOccurs="0"/>
            <xs:element ref="Amount"/>
            <xs:element name="Funding" type="funding" minOccurs="0"/>
            <xs:element name="Payment" type="payment" minOccurs="0"/>
            <xs:element ref="ds:Signature" minOccurs="0"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="funding">
        <xs:all>
            <xs:element name="CVV2" type="cvv2" minOccurs="0"/>
            <xs:element name="PARes" type="paRes" minOccurs="0"/>
            <xs:element name="SenderInfo" type="personInfo" minOccurs="0"/>
            <xs:element ref="FundingCardOrToken" minOccurs="0"/>
            <xs:element name="Wallet" type="wallet" minOccurs="0"/>
            <xs:element name="BusinessApplicationIdentifier" type="businessApplicationIdentifier" minOccurs="0"/>
            <xs:element name="SCAExemption" type="typeSCAExemption" minOccurs="0"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="paRes">
        <xs:sequence>
            <xs:element name="Status" type="status"/>
            <xs:element name="CAVV" type="xs:string" minOccurs="0"/>
            <xs:element name="ECI" type="eci" minOccurs="0"/>
            <xs:element ref="Emv3dsV1OrV2" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="personInfo">
        <xs:all>
            <xs:element name="Name" type="name"/>
            <xs:element name="Address" type="address" minOccurs="0"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="address">
        <xs:all>
            <xs:element name="Zip" type="zip"/>
            <xs:element name="Country" type="country"/>
            <xs:element name="City" type="city"/>
            <xs:element name="Street" type="street"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="fullCardInfo">
        <xs:all>
            <xs:element name="CardNumber" type="cardNumber"/>
            <xs:element name="ExpYear" type="expYear"/>
            <xs:element name="ExpMonth" type="expMonth"/>
            <xs:element name="CardHolderName" type="cardHolderName" minOccurs="0"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="payment">
        <xs:all>
            <xs:element name="SenderAccountNumber" type="senderAccountNumber" minOccurs="0"/>
            <xs:element ref="RecipientCardOrToken"/>
            <xs:element name="SenderPhoneNumber" type="senderPhone" minOccurs="0"/>
            <xs:element name="Message" type="message" minOccurs="0"/>
            <xs:element name="DateOfBirth" type="dateOfBirth" minOccurs="0"/>
            <xs:element name="PaymentInfo" type="personInfo" minOccurs="0"/>
            <xs:element name="Wallet" type="wallet" minOccurs="0"/>
            <xs:element name="BusinessApplicationIdentifier" type="businessApplicationIdentifier" minOccurs="0"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="amount">
        <xs:all>
            <xs:element name="Value" type="xs:nonNegativeInteger"/>
            <xs:element name="CurrencyCode" type="currencyNumericCode"/>
            <xs:element name="Surcharge" type="xs:nonNegativeInteger" minOccurs="0"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="wallet">
        <xs:choice>
            <xs:element name="Masterpass" type="masterpass" minOccurs="0"/>
        </xs:choice>
    </xs:complexType>

    <xs:complexType name="masterpass">
        <xs:sequence>
            <xs:element name="Walletid" type="walletId"/>
        </xs:sequence>
    </xs:complexType>

    <xs:simpleType name="merchantId">
        <xs:restriction base="xs:string">
        <xs:pattern value="[A-Za-z0-9]{1,15}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="terminalId">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9]{1,8}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="trackingId">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9]{1,16}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="cvv2">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{3}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="status">
        <xs:restriction base="xs:string">
            <xs:pattern value="[YNAUynau]{1}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="eci">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{2}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="cavvAlgorithm">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{1}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="name">
        <xs:restriction base="xs:string">
            <xs:maxLength value="50"/>
            <xs:pattern value="([a-zA-Z0-9.-]*[a-zA-Z][a-zA-Z0-9.-]*\s+)*[a-zA-Z0-9.-]*[a-zA-Z][a-zA-Z0-9.-]*\s*"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="zip">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{1,7}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="country">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z]{3}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="city">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z .-]{1,16}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="street">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z .-]{1,128}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="cardNumber">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{13,19}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="expYear">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{4}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="expMonth">
        <xs:restriction base="xs:string">
            <xs:pattern value="0?[1-9]|1[0-2]"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="dateOfBirth">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{8}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="cardHolderName">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z \.]{1,25}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="senderAccountNumber">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{0,20}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="recipientCardNumber">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{13,19}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="senderPhone">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{0,20}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="message">
        <xs:restriction base="xs:string">
            <xs:maxLength value="45"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="currencyNumericCode">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{3}"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="walletId">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9]{3}"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="businessApplicationIdentifier">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9A-Z]{2}"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="token">
        <xs:choice minOccurs="1" maxOccurs="1">
            <xs:element name="UPCToken" type="upcToken"/>
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="upcToken">
        <xs:sequence>
            <xs:element name="TokenId" type="tokenId"/>
            <xs:element name="CardInfo" type="cardInfo" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="cardInfo">
        <xs:sequence>
            <xs:element name="Mask" type="maskedPAN"/>
            <xs:element name="ExpMonth" type="expMonth"/>
            <xs:element name="ExpYear" type="expYear"/>
            <xs:element name="Brand" type="brand"/>
        </xs:sequence>
    </xs:complexType>

    <xs:simpleType name="tokenId">
        <xs:restriction base="xs:string">
            <xs:pattern value="[a-fA-F0-9]{32}"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="maskedPAN">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{0,6}[*]{4,12}[0-9]{4}"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="brand">
        <xs:restriction base="xs:string">
            <xs:pattern value="(VISA|MAST|MAES)"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:element name="FundingCardOrToken" abstract="true"/>
    <xs:element name="CardInfo" type="fullCardInfo" substitutionGroup="FundingCardOrToken"/>
    <xs:element name="TokenFunding" type="token" substitutionGroup="FundingCardOrToken"/>

    <xs:element name="RecipientCardOrToken" abstract="true"/>
    <xs:element name="RecipientCardNumber" type="recipientCardNumber" substitutionGroup="RecipientCardOrToken"/>
    <xs:element name="TokenPayment" type="token" substitutionGroup="RecipientCardOrToken"/>
    <xs:element name="Emv3dsV1OrV2" abstract="true" />
    <xs:element name="CavvAlgorithm" type="cavvAlgorithm" substitutionGroup="Emv3dsV1OrV2"/>
    <xs:element name="EMV3ds" type="emv3dsV2" substitutionGroup="Emv3dsV1OrV2"/>

    <xs:complexType name="emv3dsV2">
        <xs:sequence>
            <xs:element name="DServerTransID" type="typeDServerTransID" />
            <xs:element name="VisaMerchantIdentifier" type="typeVisaMerchantIdentifier" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

    <xs:simpleType name="typeDServerTransID" id="typeDServerTransID">
        <xs:restriction base="xs:string">
            <xs:pattern value="[a-zA-Z0-9-]{36}"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="typeSCAExemption" id="typeSCAExemption">
        <xs:restriction base="xs:string">
            <xs:pattern value="0[1-7]"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="typeVisaMerchantIdentifier" id="typeVisaMerchantIdentifier">
        <xs:restriction base="xs:string">
            <xs:pattern value=".{8}"/>
        </xs:restriction>
    </xs:simpleType>

</xs:schema>
TransactionResponse
створив(ла) Igor Uleschenko — Востаннє змінено: Вер 19, 2019 15:01

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
           version="1.0"
           elementFormDefault="qualified"
           attributeFormDefault="qualified">

    <xs:import namespace="http://www.w3.org/2000/09/xmldsig#"
               schemaLocation="classpath:schemas/xmldsig-core-schema.xsd"/>

    <xs:element name="TransactionResponse" type="transactionResponse"/>

    <xs:element name="tranCliche" type="tranCliche"/>

    <xs:element name="tranResult" type="tranResult"/>

    <xs:complexType name="transactionResponse">
        <xs:all>
            <xs:element name="TrackingId" type="trackingId"/>
            <xs:element name="Status" type="status"/>
            <xs:element name="FundingResult" type="tranResult" minOccurs="0"/>
            <xs:element name="PaymentResult" type="tranResult" minOccurs="0"/>
            <xs:element ref="ds:Signature" minOccurs="0"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="status">
        <xs:all>
            <xs:element name="Code" type="xs:string"/>
            <xs:element name="Message" type="xs:string"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="tranResult">
        <xs:sequence>
            <xs:element name="Date" type="xs:string"/>
            <xs:element name="CVResult" type="xs:string" minOccurs="0"/>
            <xs:element name="MerchantCliche" type="tranCliche" minOccurs="0"/>
            <xs:element name="ApprovalCode" type="xs:string"/>
            <xs:element name="AuthCode" type="xs:string"/>
            <xs:element name="RRN" type="xs:string"/>
            <xs:element name="Token" type="token" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="tranCliche">
        <xs:sequence>
            <xs:element name="MerchantId" type="xs:string"/>
            <xs:element name="TerminalId" type="xs:string"/>
            <xs:element name="MCC" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:simpleType name="trackingId">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9]{1,16}"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="token">
        <xs:choice minOccurs="1" maxOccurs="1">
            <xs:element name="UPCToken" type="upcToken"/>
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="upcToken">
        <xs:sequence>
            <xs:element name="TokenId" type="tokenId"/>
            <xs:element name="CardInfo" type="cardInfo" minOccurs="0"/>
            <xs:element name="ExpDate" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="cardInfo">
        <xs:sequence>
            <xs:element name="Mask" type="maskedPAN"/>
            <xs:element name="ExpMonth" type="expMonth"/>
            <xs:element name="ExpYear" type="expYear"/>
            <xs:element name="Brand" type="brand"/>
        </xs:sequence>
    </xs:complexType>

    <xs:simpleType name="tokenId">
        <xs:restriction base="xs:string">
            <xs:pattern value="[a-fA-F0-9]{32}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="maskedPAN">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{0,6}[*]{4,12}[0-9]{4}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="brand">
        <xs:restriction base="xs:string">
            <xs:pattern value="(VISA|MAST|MAES)"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="expYear">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{4}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="expMonth">
        <xs:restriction base="xs:string">
            <xs:pattern value="0?[1-9]|1[0-2]"/>
        </xs:restriction>
    </xs:simpleType>
</xs:schema>

ReversalRequest
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
           version="1.0"
           elementFormDefault="qualified"
           attributeFormDefault="qualified">
 
    <xs:import namespace="http://www.w3.org/2000/09/xmldsig#"
               schemaLocation="classpath:schemas/xmldsig-core-schema.xsd"/>
 
    <xs:element name="ReversalRequest" type="reversalRequest"/>
 
    <xs:complexType name="reversalRequest">
        <xs:all>
            <xs:element name="MerchantId" type="merchantId"/>
            <xs:element name="TerminalId" type="terminalId" minOccurs="0"/>
            <xs:element name="TrackingId" type="trackingId"/>
            <xs:element name="Amount" type="amount"/>
            <xs:element name="Funding" type="tranResult"/>
            <xs:element ref="ds:Signature" minOccurs="0"/>
        </xs:all>
    </xs:complexType>
 
    <xs:simpleType name="merchantId">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9]{1,15}"/>
        </xs:restriction>
    </xs:simpleType>
 
    <xs:simpleType name="terminalId">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9]{1,8}"/>
        </xs:restriction>
    </xs:simpleType>
 
    <xs:simpleType name="trackingId">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9]{1,16}"/>
        </xs:restriction>
    </xs:simpleType>
 
    <xs:simpleType name="currencyNumericCode">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{3}"/>
        </xs:restriction>
    </xs:simpleType>
 
    <xs:complexType name="amount">
        <xs:all>
            <xs:element name="Value" type="xs:nonNegativeInteger"/>
            <xs:element name="CurrencyCode" type="currencyNumericCode"/>
            <xs:element name="Surcharge" type="xs:nonNegativeInteger" minOccurs="0"/>
        </xs:all>
    </xs:complexType>
 
    <xs:complexType name="tranResult">
        <xs:all>
            <xs:element name="ApprovalCode" type="approvalCode"/>
            <xs:element name="RRN" type="rrn"/>
        </xs:all>
    </xs:complexType>
 
    <xs:simpleType name="approvalCode">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9]{6}"/>
        </xs:restriction>
    </xs:simpleType>
 
    <xs:simpleType name="rrn">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9]{12}"/>
        </xs:restriction>
    </xs:simpleType>
 
</xs:schema>
ReversalResponse
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
           version="1.0"
           elementFormDefault="qualified"
           attributeFormDefault="qualified">
 
    <xs:import namespace="http://www.w3.org/2000/09/xmldsig#"
               schemaLocation="classpath:schemas/xmldsig-core-schema.xsd"/>
 
    <xs:element name="ReversalResponse" type="reversalResponse"/>
 
    <xs:complexType name="reversalResponse">
        <xs:all>
            <xs:element name="TrackingId" type="xs:string"/>
            <xs:element name="Status" type="status"/>
            <xs:element name="ReversalResult" type="tranResult"/>
            <xs:element ref="ds:Signature" minOccurs="0"/>
        </xs:all>
    </xs:complexType>
 
    <xs:complexType name="status">
        <xs:all>
            <xs:element name="Code" type="xs:string"/>
            <xs:element name="Message" type="xs:string"/>
        </xs:all>
    </xs:complexType>
 
    <xs:complexType name="tranResult">
        <xs:sequence>
            <xs:element name="Date" type="xs:string"/>
            <xs:element name="CVResult" type="xs:string" minOccurs="0"/>
            <xs:element name="MerchantCliche" type="tranCliche" minOccurs="0"/>
            <xs:element name="ApprovalCode" type="xs:string"/>
            <xs:element name="AuthCode" type="xs:string"/>
            <xs:element name="RRN" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
 
    <xs:complexType name="tranCliche">
        <xs:sequence>
            <xs:element name="MerchantId" type="xs:string"/>
            <xs:element name="TerminalId" type="xs:string"/>
            <xs:element name="MCC" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
 
</xs:schema>
Signature
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE schema
        PUBLIC "-//W3C//DTD XMLSchema 200102//EN" "http://www.w3.org/2001/XMLSchema.dtd"
        [
                <!ATTLIST schema
                        xmlns:ds CDATA #FIXED "http://www.w3.org/2000/09/xmldsig#">
                <!ENTITY dsig 'http://www.w3.org/2000/09/xmldsig#'>
                <!ENTITY % p ''>
                <!ENTITY % s ''>
                ]>

<!-- Schema for XML Signatures
    http://www.w3.org/2000/09/xmldsig#
    $Revision: 1.1 $ on $Date: 2002/02/08 20:32:26 $ by $Author: reagle $

    Copyright 2001 The Internet Society and W3C (Massachusetts Institute
    of Technology, Institut National de Recherche en Informatique et en
    Automatique, Keio University). All Rights Reserved.
    http://www.w3.org/Consortium/Legal/

    This document is governed by the W3C Software License [1] as described
    in the FAQ [2].

    [1] http://www.w3.org/Consortium/Legal/copyright-software-19980720
    [2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD
-->


<schema xmlns="http://www.w3.org/2001/XMLSchema"
        xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
        targetNamespace="http://www.w3.org/2000/09/xmldsig#"
        version="0.1" elementFormDefault="qualified">

    <!-- Basic Types Defined for Signatures -->

    <simpleType name="CryptoBinary">
        <restriction base="base64Binary">
        </restriction>
    </simpleType>

    <!-- Start Signature -->

    <element name="Signature" type="ds:SignatureType"/>
    <complexType name="SignatureType">
        <sequence>
            <element ref="ds:SignedInfo"/>
            <element ref="ds:SignatureValue"/>
            <element ref="ds:KeyInfo" minOccurs="0"/>
            <element ref="ds:Object" minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
        <attribute name="Id" type="ID" use="optional"/>
    </complexType>

    <element name="SignatureValue" type="ds:SignatureValueType"/>
    <complexType name="SignatureValueType">
        <simpleContent>
            <extension base="base64Binary">
                <attribute name="Id" type="ID" use="optional"/>
            </extension>
        </simpleContent>
    </complexType>

    <!-- Start SignedInfo -->

    <element name="SignedInfo" type="ds:SignedInfoType"/>
    <complexType name="SignedInfoType">
        <sequence>
            <element ref="ds:CanonicalizationMethod"/>
            <element ref="ds:SignatureMethod"/>
            <element ref="ds:Reference" maxOccurs="unbounded"/>
        </sequence>
        <attribute name="Id" type="ID" use="optional"/>
    </complexType>

    <element name="CanonicalizationMethod" type="ds:CanonicalizationMethodType"/>
    <complexType name="CanonicalizationMethodType" mixed="true">
        <sequence>
            <any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
            <!-- (0,unbounded) elements from (1,1) namespace -->
        </sequence>
        <attribute name="Algorithm" type="anyURI" use="required"/>
    </complexType>

    <element name="SignatureMethod" type="ds:SignatureMethodType"/>
    <complexType name="SignatureMethodType" mixed="true">
        <sequence>
            <element name="HMACOutputLength" minOccurs="0" type="ds:HMACOutputLengthType"/>
            <any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
            <!-- (0,unbounded) elements from (1,1) external namespace -->
        </sequence>
        <attribute name="Algorithm" type="anyURI" use="required"/>
    </complexType>

    <!-- Start Reference -->

    <element name="Reference" type="ds:ReferenceType"/>
    <complexType name="ReferenceType">
        <sequence>
            <element ref="ds:Transforms" minOccurs="0"/>
            <element ref="ds:DigestMethod"/>
            <element ref="ds:DigestValue"/>
        </sequence>
        <attribute name="Id" type="ID" use="optional"/>
        <attribute name="URI" type="anyURI" use="optional"/>
        <attribute name="Type" type="anyURI" use="optional"/>
    </complexType>

    <element name="Transforms" type="ds:TransformsType"/>
    <complexType name="TransformsType">
        <sequence>
            <element ref="ds:Transform" maxOccurs="unbounded"/>
        </sequence>
    </complexType>

    <element name="Transform" type="ds:TransformType"/>
    <complexType name="TransformType" mixed="true">
        <choice minOccurs="0" maxOccurs="unbounded">
            <any namespace="##other" processContents="lax"/>
            <!-- (1,1) elements from (0,unbounded) namespaces -->
            <element name="XPath" type="string"/>
        </choice>
        <attribute name="Algorithm" type="anyURI" use="required"/>
    </complexType>

    <!-- End Reference -->

    <element name="DigestMethod" type="ds:DigestMethodType"/>
    <complexType name="DigestMethodType" mixed="true">
        <sequence>
            <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
        <attribute name="Algorithm" type="anyURI" use="required"/>
    </complexType>

    <element name="DigestValue" type="ds:DigestValueType"/>
    <simpleType name="DigestValueType">
        <restriction base="base64Binary"/>
    </simpleType>

    <!-- End SignedInfo -->

    <!-- Start KeyInfo -->

    <element name="KeyInfo" type="ds:KeyInfoType"/>
    <complexType name="KeyInfoType" mixed="true">
        <choice maxOccurs="unbounded">
            <element ref="ds:KeyName"/>
            <element ref="ds:KeyValue"/>
            <element ref="ds:RetrievalMethod"/>
            <element ref="ds:X509Data"/>
            <element ref="ds:PGPData"/>
            <element ref="ds:SPKIData"/>
            <element ref="ds:MgmtData"/>
            <any processContents="lax" namespace="##other"/>
            <!-- (1,1) elements from (0,unbounded) namespaces -->
        </choice>
        <attribute name="Id" type="ID" use="optional"/>
    </complexType>

    <element name="KeyName" type="string"/>
    <element name="MgmtData" type="string"/>

    <element name="KeyValue" type="ds:KeyValueType"/>
    <complexType name="KeyValueType" mixed="true">
        <choice>
            <element ref="ds:DSAKeyValue"/>
            <element ref="ds:RSAKeyValue"/>
            <any namespace="##other" processContents="lax"/>
        </choice>
    </complexType>

    <element name="RetrievalMethod" type="ds:RetrievalMethodType"/>
    <complexType name="RetrievalMethodType">
        <sequence>
            <element ref="ds:Transforms" minOccurs="0"/>
        </sequence>
        <attribute name="URI" type="anyURI"/>
        <attribute name="Type" type="anyURI" use="optional"/>
    </complexType>

    <!-- Start X509Data -->

    <element name="X509Data" type="ds:X509DataType"/>
    <complexType name="X509DataType">
        <sequence maxOccurs="unbounded">
            <choice>
                <element name="X509IssuerSerial" type="ds:X509IssuerSerialType"/>
                <element name="X509SKI" type="base64Binary"/>
                <element name="X509SubjectName" type="string"/>
                <element name="X509Certificate" type="base64Binary"/>
                <element name="X509CRL" type="base64Binary"/>
                <any namespace="##other" processContents="lax"/>
            </choice>
        </sequence>
    </complexType>

    <complexType name="X509IssuerSerialType">
        <sequence>
            <element name="X509IssuerName" type="string"/>
            <element name="X509SerialNumber" type="integer"/>
        </sequence>
    </complexType>

    <!-- End X509Data -->

    <!-- Begin PGPData -->

    <element name="PGPData" type="ds:PGPDataType"/>
    <complexType name="PGPDataType">
        <choice>
            <sequence>
                <element name="PGPKeyID" type="base64Binary"/>
                <element name="PGPKeyPacket" type="base64Binary" minOccurs="0"/>
                <any namespace="##other" processContents="lax" minOccurs="0"
                     maxOccurs="unbounded"/>
            </sequence>
            <sequence>
                <element name="PGPKeyPacket" type="base64Binary"/>
                <any namespace="##other" processContents="lax" minOccurs="0"
                     maxOccurs="unbounded"/>
            </sequence>
        </choice>
    </complexType>

    <!-- End PGPData -->

    <!-- Begin SPKIData -->

    <element name="SPKIData" type="ds:SPKIDataType"/>
    <complexType name="SPKIDataType">
        <sequence maxOccurs="unbounded">
            <element name="SPKISexp" type="base64Binary"/>
            <any namespace="##other" processContents="lax" minOccurs="0"/>
        </sequence>
    </complexType>

    <!-- End SPKIData -->

    <!-- End KeyInfo -->

    <!-- Start Object (Manifest, SignatureProperty) -->

    <element name="Object" type="ds:ObjectType"/>
    <complexType name="ObjectType" mixed="true">
        <sequence minOccurs="0" maxOccurs="unbounded">
            <any namespace="##any" processContents="lax"/>
        </sequence>
        <attribute name="Id" type="ID" use="optional"/>
        <attribute name="MimeType" type="string" use="optional"/> <!-- add a grep facet -->
        <attribute name="Encoding" type="anyURI" use="optional"/>
    </complexType>

    <element name="Manifest" type="ds:ManifestType"/>
    <complexType name="ManifestType">
        <sequence>
            <element ref="ds:Reference" maxOccurs="unbounded"/>
        </sequence>
        <attribute name="Id" type="ID" use="optional"/>
    </complexType>

    <element name="SignatureProperties" type="ds:SignaturePropertiesType"/>
    <complexType name="SignaturePropertiesType">
        <sequence>
            <element ref="ds:SignatureProperty" maxOccurs="unbounded"/>
        </sequence>
        <attribute name="Id" type="ID" use="optional"/>
    </complexType>

    <element name="SignatureProperty" type="ds:SignaturePropertyType"/>
    <complexType name="SignaturePropertyType" mixed="true">
        <choice maxOccurs="unbounded">
            <any namespace="##other" processContents="lax"/>
            <!-- (1,1) elements from (1,unbounded) namespaces -->
        </choice>
        <attribute name="Target" type="anyURI" use="required"/>
        <attribute name="Id" type="ID" use="optional"/>
    </complexType>

    <!-- End Object (Manifest, SignatureProperty) -->

    <!-- Start Algorithm Parameters -->

    <simpleType name="HMACOutputLengthType">
        <restriction base="integer"/>
    </simpleType>

    <!-- Start KeyValue Element-types -->

    <element name="DSAKeyValue" type="ds:DSAKeyValueType"/>
    <complexType name="DSAKeyValueType">
        <sequence>
            <sequence minOccurs="0">
                <element name="P" type="ds:CryptoBinary"/>
                <element name="Q" type="ds:CryptoBinary"/>
            </sequence>
            <element name="G" type="ds:CryptoBinary" minOccurs="0"/>
            <element name="Y" type="ds:CryptoBinary"/>
            <element name="J" type="ds:CryptoBinary" minOccurs="0"/>
            <sequence minOccurs="0">
                <element name="Seed" type="ds:CryptoBinary"/>
                <element name="PgenCounter" type="ds:CryptoBinary"/>
            </sequence>
        </sequence>
    </complexType>

    <element name="RSAKeyValue" type="ds:RSAKeyValueType"/>
    <complexType name="RSAKeyValueType">
        <sequence>
            <element name="Modulus" type="ds:CryptoBinary"/>
            <element name="Exponent" type="ds:CryptoBinary"/>
        </sequence>
    </complexType>

    <!-- End KeyValue Element-types -->

    <!-- End Signature -->

</schema>
StatusRequest
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
           version="1.0"
           elementFormDefault="qualified"
           attributeFormDefault="qualified">

    <xs:import namespace="http://www.w3.org/2000/09/xmldsig#"
               schemaLocation="classpath:schemas/xmldsig-core-schema.xsd"/>

    <xs:element name="StatusRequest" type="statusRequest"/>

    <xs:complexType name="statusRequest">
        <xs:all>
            <xs:element name="MerchantId" type="merchantId"/>
            <xs:element name="TerminalId" type="terminalId" minOccurs="0"/>
            <xs:element name="TrackingId" type="trackingId"/>
            <xs:element ref="ds:Signature" minOccurs="0"/>
        </xs:all>
    </xs:complexType>
    <xs:simpleType name="merchantId">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9]{1,15}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="terminalId">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9]{1,8}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="trackingId">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9]{1,16}"/>
        </xs:restriction>
    </xs:simpleType>
</xs:schema>

StatusResponse
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
           version="1.0"
           elementFormDefault="qualified"
           attributeFormDefault="qualified">

    <xs:import namespace="http://www.w3.org/2000/09/xmldsig#"
               schemaLocation="classpath:schemas/xmldsig-core-schema.xsd"/>

    <xs:element name="CardInfo" type="cardBinInfo"/>

    <xs:element name="CardZoneResponse" type="cardZoneResponse"/>

    <xs:element name="StatusResponse" type="statusResponse"/>

    <xs:element name="Status" type="statusElement"/>

    <xs:element name="TransactionResponse" type="transactionResponse"/>

    <xs:element name="tranCliche" type="tranCliche"/>

    <xs:element name="tranResult" type="tranResult"/>

    <xs:complexType name="statusResponse">
        <xs:all>
            <xs:element minOccurs="0" ref="Status"/>
            <xs:element minOccurs="0" name="CardZoneResponses">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element maxOccurs="unbounded" minOccurs="0" ref="CardZoneResponse"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element minOccurs="0" name="TransactionResponses">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element maxOccurs="unbounded" minOccurs="0" ref="TransactionResponse"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="cardZoneResponse">
        <xs:all>
            <xs:element name="TrackingId" type="xs:string"/>
            <xs:element name="Status" type="status"/>
            <xs:element minOccurs="0" name="CardFromInfo" type="cardBinInfo"/>
            <xs:element minOccurs="0" name="CardToInfo" type="cardBinInfo"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="status">
        <xs:all>
            <xs:element name="Code" type="xs:string"/>
            <xs:element name="Message" type="xs:string"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="statusElement">
        <xs:all>
            <xs:element minOccurs="0" name="Code" type="xs:string"/>
            <xs:element minOccurs="0" name="Message" type="xs:string"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="cardBinInfo">
        <xs:all>
            <xs:element name="CountryCode" type="xs:string"/>
            <xs:element name="CardType" type="xs:string"/>
            <xs:element name="Brand" type="cardBrand"/>
            <xs:element name="CardZone" type="cardZone"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="transactionResponse">
        <xs:all>
            <xs:element name="TrackingId" type="xs:string"/>
            <xs:element name="Status" type="status"/>
            <xs:element minOccurs="0" name="FundingResult" type="tranResult"/>
            <xs:element minOccurs="0" name="PaymentResult" type="tranResult"/>
            <xs:element ref="ds:Signature" minOccurs="0"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="tranResult">
        <xs:sequence>
            <xs:element name="Date" type="xs:string"/>
            <xs:element name="CVResult" type="xs:string" minOccurs="0"/>
            <xs:element name="MerchantCliche" type="tranCliche" minOccurs="0"/>
            <xs:element name="ApprovalCode" type="xs:string"/>
            <xs:element name="AuthCode" type="xs:string"/>
            <xs:element name="RRN" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="tranCliche">
        <xs:sequence>
            <xs:element name="MerchantId" type="xs:string"/>
            <xs:element name="TerminalId" type="xs:string"/>
            <xs:element name="MCC" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>

    <xs:simpleType name="cardBrand">
        <xs:restriction base="xs:string">
            <xs:enumeration value="VISA"/>
            <xs:enumeration value="MAST"/>
            <xs:enumeration value="MAES"/>
            <xs:enumeration value="ONIX"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="cardZone">
        <xs:restriction base="xs:string">
            <xs:enumeration value="NATIVE"/>
            <xs:enumeration value="LOCAL"/>
            <xs:enumeration value="DOMESTIC"/>
            <xs:enumeration value="CROSS_BOARD"/>
            <xs:enumeration value="FORBIDDEN"/>
        </xs:restriction>
    </xs:simpleType>
</xs:schema>

 

DebugErrorMessage
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0">

    <xs:element name="DebugErrorMessage" type="debugErrorMessage"/>

    <xs:complexType name="debugErrorMessage">
        <xs:all>
            <xs:element name="TrackingId" type="trackingId"/>
            <xs:element name="Status" type="status"/>
            <xs:element minOccurs="0" name="debugCause" type="xs:string"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="status">
        <xs:all>
            <xs:element name="Code" type="xs:string"/>
            <xs:element name="Message" type="xs:string"/>
        </xs:all>
    </xs:complexType>
    <xs:simpleType name="trackingId">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9]{1,16}"/>
        </xs:restriction>
    </xs:simpleType>
</xs:schema>
FeeRequest
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
           version="1.0"
           elementFormDefault="qualified"
           attributeFormDefault="qualified">
    <xs:import namespace="http://www.w3.org/2000/09/xmldsig#"
               schemaLocation="classpath:schemas/xmldsig-core-schema.xsd"/>

    <xs:element name="FeeRequest" type="feeRequest"/>

    <xs:element name="C2C" type="c2c"/>
    <xs:element name="A2C" type="a2c"/>
    <xs:element name="C2A" type="c2a"/>

    <xs:complexType name="feeRequest">
        <xs:sequence>
            <xs:element name="MerchantId" type="merchantId"/>
            <xs:element name="TerminalId" type="terminalId" minOccurs="0"/>
            <xs:sequence>
                <xs:choice>
                    <xs:element ref="C2C"/>
                    <xs:element ref="A2C"/>
                    <xs:element ref="C2A"/>
                </xs:choice>
            </xs:sequence>
            <xs:element name="Amount" type="xs:nonNegativeInteger"/>
            <xs:element name="CurrencyCode" type="currencyNumericCode"/>
            <xs:element ref="ds:Signature" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>


    <xs:simpleType name="merchantId">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9]{1,15}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="terminalId">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9]{1,8}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="cardNumber">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{13,19}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="currencyNumericCode">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{3}"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="c2c">
        <xs:sequence>
            <xs:element name="CardFunding" type="cardNumber"/>
            <xs:element name="CardPayment" type="cardNumber"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="a2c">
        <xs:sequence>
            <xs:element name="CardPayment" type="cardNumber"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="c2a">
        <xs:sequence>
            <xs:element name="CardFunding" type="cardNumber"/>
        </xs:sequence>
    </xs:complexType>

</xs:schema>
FeeResponse
<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
           version="1.0"
           elementFormDefault="qualified"
           attributeFormDefault="qualified">
    <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="classpath:schemas/xmldsig-core-schema.xsd"/>

    <xs:element name="FeeResponse" type="feeResponse"/>

    <xs:complexType name="feeResponse">
        <xs:all>
            <xs:element name="Fee" type="xs:nonNegativeInteger"/>
            <xs:element name="TotalAmount" type="xs:nonNegativeInteger"/>
            <xs:element name="Rule" type="rule"/>
            <xs:element ref="ds:Signature" minOccurs="0"/>
        </xs:all>
    </xs:complexType>

    <xs:simpleType name="rule">
        <xs:restriction base="xs:string">
            <xs:enumeration value="BIN"/>
            <xs:enumeration value="SENDER_BANK"/>
            <xs:enumeration value="RECIPIENT_BANK"/>
            <xs:enumeration value="COUNTRY"/>
            <xs:enumeration value="CURRENCY"/>
            <xs:enumeration value="MERCHANT"/>
            <xs:enumeration value="NOT_FOUND"/>
        </xs:restriction>
    </xs:simpleType>
</xs:schema>
ExchangeRate
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:ds="http://www.w3.org/2000/09/xmldsig#" version="1.0">
    <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="signature.xsd"/>
    <xs:element name="ExchangeRateRequest">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="MerchantId" type="merchantCode"/>
                <xs:element name="TerminalId" type="terminalId" minOccurs="0"/>
                <xs:element name="TrackingId" type="trackingId"/>
                <xs:element name="FromCurrency" type="currencyNumericCode"/>
                <xs:element name="ToCurrency" type="currencyNumericCode"/>
                <xs:element name="ExchangeRateType" type="exchangeRateType"/>
                <xs:element name="Date" type="date" minOccurs="0"/>
                <xs:element ref="ds:Signature" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="ExchangeRateResponse">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="TrackingId" type="trackingId"/>
                <xs:element name="Status" type="status"/>
                <xs:element name="Date" type="date" minOccurs="0"/>
                <xs:element name="ExchangeRate" type="Decimal7-5" minOccurs="0"/>
                <xs:element ref="ds:Signature" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>



    <xs:simpleType name="aliasType" id="aliasType">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0][0-4]"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="merchantCode">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9]{1,15}"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="terminalId">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9]{1,8}"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="currencyNumericCode">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{3}"/>
        </xs:restriction>
    </xs:simpleType>


    <xs:simpleType name="date">
        <xs:restriction base="xs:string">
            <xs:pattern value="^([1-2]\d{3})-([0]\d|[1][0-2])-([0-2]\d|[3][0-1])(?:(?:\s([0-1]\d|[2][0-3]):([0-5]\d)(?::([0-5]\d))?)?)$"/>
            <xs:pattern value=""/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="exchangeRateType" final="restriction">
        <xs:restriction base="xs:string">
            <xs:enumeration value="CROSS_BORDER_P2P"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Decimal7-5">
        <xs:restriction base="xs:decimal">
            <xs:maxInclusive value="9999999"/>
            <xs:fractionDigits value="5"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="trackingId">
        <xs:restriction base="xs:string">
            <xs:pattern value="[A-Za-z0-9]{1,16}"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="status">
        <xs:all>
            <xs:element name="Code" type="xs:string"/>
            <xs:element name="Message" type="xs:string"/>
        </xs:all>
    </xs:complexType>
</xs:schema>


  • No labels