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: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 name="CavvAlgorithm" type="cavvAlgorithm"/>
</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:schema>