XML Schema Specification

XSD (XML Schema Definition), a recommendation of the World Wide Web Consortium (W3C), specifies how to formally describe the elements in an Extensible Markup Language (XML) document. It can be used by programmers to verify each piece of item content in a document. They can check if it adheres to the description of the element it is placed in.

Payment XSD

XSD (XML Schema Definition)
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
        xmlns:xs="http://www.w3.org/2001/XMLSchema"
        xmlns="http://www.elastic-payments.com/schema/payment"
        targetNamespace="http://www.elastic-payments.com/schema/payment"
        elementFormDefault="qualified"
        attributeFormDefault="unqualified">
    <xs:annotation>
        <xs:documentation xml:lang="en">
            Payment Schema for Elastic Engine
            Copyright 2011 elastic-payments.com. All rights reserved.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleType name="integer4">
        <xs:restriction base="xs:int">
            <xs:minInclusive id="int.min" value="1"/>
            <xs:maxInclusive id="int.max" value="4"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="card-type">
        <xs:restriction base="xs:token">
            <xs:enumeration value="amex"/>
            <xs:enumeration value="amway"/>
            <xs:enumeration value="aura"/>
            <xs:enumeration value="cartasi"/>
            <xs:enumeration value="cartebancaire"/>
            <xs:enumeration value="cartebleue"/>
            <xs:enumeration value="cepas"/>
            <xs:enumeration value="cup"/>
            <xs:enumeration value="dankort"/>
            <xs:enumeration value="diners"/>
            <xs:enumeration value="discover"/>
            <xs:enumeration value="expresscheckout"/>
            <xs:enumeration value="elo"/>
            <xs:enumeration value="ezlink"/>
            <xs:enumeration value="hiper"/>
            <xs:enumeration value="hipercard"/>
            <xs:enumeration value="jcb"/>
            <xs:enumeration value="maestro"/>
            <xs:enumeration value="maestrouk"/>
            <xs:enumeration value="mastercard"/>
            <xs:enumeration value="mydebit"/>
            <xs:enumeration value="netsfp"/>
            <xs:enumeration value="postepay"/>
            <xs:enumeration value="sorocred"/>
            <xs:enumeration value="uatp"/>
            <xs:enumeration value="upop"/>
            <xs:enumeration value="visa"/>
            <xs:enumeration value="vpay"/>
            <xs:enumeration value="upi"/>
            <xs:enumeration value="mir"/>
            <xs:enumeration value="arca"/>
            <xs:enumeration value="uzcard"/>
            <xs:enumeration value="rupay"/>
            <xs:enumeration value="cabcharge"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="cryptogram-type">
        <xs:restriction base="xs:token">
            <xs:enumeration value="google-pay"/>
            <xs:enumeration value="android-pay"/>
            <xs:enumeration value="apple-pay"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="transaction-type">
        <xs:restriction base="xs:token">
            <xs:enumeration value="activation"/>
            <xs:enumeration value="add-data"/>
            <xs:enumeration value="adjust-authorization"/>
            <xs:enumeration value="adjust-capture"/>
            <xs:enumeration value="adjust-offline-purchase"/>
            <xs:enumeration value="adjust-purchase"/>
            <xs:enumeration value="adjustment-cr"/>
            <xs:enumeration value="adjustment-dr"/>
            <xs:enumeration value="authorization"/>
            <xs:enumeration value="authorization-only"/>
            <xs:enumeration value="authorization-supplementary"/>
            <xs:enumeration value="authorization-renewal"/>
            <xs:enumeration value="auto-sale"/>
            <xs:enumeration value="batch-upload"/>
            <xs:enumeration value="capture-authorization"/>
            <xs:enumeration value="capture-final-auth"/>
            <xs:enumeration value="capture-preauthorization"/>
            <xs:enumeration value="check-enrollment"/>
            <xs:enumeration value="check-payer-response"/>
            <xs:enumeration value="check-risk"/>
            <xs:enumeration value="check-signature"/>
            <xs:enumeration value="check-fee"/>
            <xs:enumeration value="calculate-fee"/>
            <xs:enumeration value="credit"/>
            <xs:enumeration value="credit-request"/>
            <xs:enumeration value="credit-return"/>
            <xs:enumeration value="debit"/>
            <xs:enumeration value="debit-return"/>
            <xs:enumeration value="debit-return-succ-rep"/>
            <xs:enumeration value="debit-return-unsucc-rep"/>
            <xs:enumeration value="deposit"/>
            <xs:enumeration value="detokenize"/>
            <xs:enumeration value="echo"/>
            <xs:enumeration value="final-authorization"/>
            <xs:enumeration value="first-cb"/>
            <xs:enumeration value="first-cb-rep"/>
            <xs:enumeration value="first-cb-succ-rep"/>
            <xs:enumeration value="first-cb-unsucc-rep"/>
            <xs:enumeration value="get-url"/>
            <xs:enumeration value="message"/>
            <xs:enumeration value="offline-purchase"/>
            <xs:enumeration value="order"/>
            <xs:enumeration value="original-credit"/>
            <xs:enumeration value="pending-authorization"/>
            <xs:enumeration value="pending-credit"/>
            <xs:enumeration value="pending-debit"/>
            <xs:enumeration value="pending-purchase"/>
            <xs:enumeration value="preauthorization"/>
            <xs:enumeration value="precheckout"/>
            <xs:enumeration value="purchase"/>
            <xs:enumeration value="referenced-authorization"/>
            <xs:enumeration value="referenced-purchase"/>
            <xs:enumeration value="refund-capture"/>
            <xs:enumeration value="refund-debit"/>
            <xs:enumeration value="refund-purchase"/>
            <xs:enumeration value="refund-request"/>
            <xs:enumeration value="refund-off-purchase"/>
            <xs:enumeration value="request-checkout"/>
            <xs:enumeration value="retrieval-request"/>
            <xs:enumeration value="retrieval-request-rep"/>
            <xs:enumeration value="reversal-authorization"/>
            <xs:enumeration value="reversal-purchase"/>
            <xs:enumeration value="reversal-capture-authorization"/>
            <xs:enumeration value="reversal-credit"/>
            <xs:enumeration value="reversal-refund-purchase"/>
            <xs:enumeration value="reversal-refund-capture"/>
            <xs:enumeration value="reversal-refund-off-purchase"/>
            <xs:enumeration value="reversal-standalone-refund"/>
            <xs:enumeration value="reversal-void-auth"/>
            <xs:enumeration value="reversal-void-capture"/>
            <xs:enumeration value="reversal-void-off-purchase"/>
            <xs:enumeration value="reversal-void-purchase"/>
            <xs:enumeration value="reversal-void-st-refund"/>
            <xs:enumeration value="reversal-void-credit"/>
            <xs:enumeration value="reversal-void-refund-purchase"/>
            <xs:enumeration value="reversal-void-refund-capture"/>
            <xs:enumeration value="reversal-void-refund-off-purch"/>
            <xs:enumeration value="reversal-debit"/>
            <xs:enumeration value="revoke-adjust-capture"/>
            <xs:enumeration value="revoke-adjust-purchase"/>
            <xs:enumeration value="revoke-capture"/>
            <xs:enumeration value="revoke-original-credit"/>
            <xs:enumeration value="revoke-purchase"/>
            <xs:enumeration value="revoke-refund"/>
            <xs:enumeration value="second-cb"/>
            <xs:enumeration value="second-cb-rep"/>
            <xs:enumeration value="second-cb-succ-rep"/>
            <xs:enumeration value="second-cb-unsucc-rep"/>
            <xs:enumeration value="settlement"/>
            <xs:enumeration value="settlement-close"/>
            <xs:enumeration value="sign-on"/>
            <xs:enumeration value="sign-off"/>
            <xs:enumeration value="standalone-refund"/>
            <xs:enumeration value="tc-upload"/>
            <xs:enumeration value="tokenize"/>
            <xs:enumeration value="void-auth-supplementary"/>
            <xs:enumeration value="void-authorization"/>
            <xs:enumeration value="void-capture"/>
            <xs:enumeration value="void-capture-final-auth"/>
            <xs:enumeration value="void-capture-preauthorization"/>
            <xs:enumeration value="void-credit"/>
            <xs:enumeration value="void-debit"/>
            <xs:enumeration value="void-final-authorization"/>
            <xs:enumeration value="void-offline-purchase"/>
            <xs:enumeration value="void-original-credit"/>
            <xs:enumeration value="void-pending-credit"/>
            <xs:enumeration value="void-pending-debit"/>
            <xs:enumeration value="void-preauthorization"/>
            <xs:enumeration value="void-purchase"/>
            <xs:enumeration value="void-refund-capture"/>
            <xs:enumeration value="void-refund-purchase"/>
            <xs:enumeration value="void-refund-off-purchase"/>
            <xs:enumeration value="void-standalone-refund"/>
            <xs:enumeration value="generate-otp"/>
            <xs:enumeration value="reserve"/>
            <xs:enumeration value="redeem"/>
            <xs:enumeration value="cancel-redeem"/>
            <xs:enumeration value="void-reserve"/>
            <xs:enumeration value="void-cancel-redeem"/>
            <xs:enumeration value="enrollment"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="transaction-state">
        <xs:restriction base="xs:token">
            <xs:enumeration value="success"/>
            <xs:enumeration value="failed"/>
            <xs:enumeration value="in-progress"/>
            <xs:enumeration value="repeated"/>
            <xs:enumeration value="revoked"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="request-type">
        <xs:restriction base="xs:token">
            <xs:enumeration value="pairing"/>
            <xs:enumeration value="checkout"/>
            <xs:enumeration value="pairing-and-checkout"/>
            <xs:enumeration value="connect-checkout"/>
            <xs:enumeration value="express-checkout"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="payment-method-name">
        <xs:restriction base="xs:token">
            <xs:enumeration value="2c2p-ebanking"/>
            <xs:enumeration value="paydirekt"/>
            <xs:enumeration value="3pay-carrier"/>
            <xs:enumeration value="alipay"/>
            <xs:enumeration value="alipay-xborder"/>
            <xs:enumeration value="alogateway"/>
            <xs:enumeration value="bancontact"/>
            <xs:enumeration value="banktransfer"/>
            <xs:enumeration value="barpay"/>
            <xs:enumeration value="bitcoin"/>
            <xs:enumeration value="boleto"/>
            <xs:enumeration value="boleto_bancario"/>
            <xs:enumeration value="carrier-billing"/>
            <xs:enumeration value="cepas"/>
            <xs:enumeration value="chinapay"/>
            <xs:enumeration value="chinapay_sh"/>
            <xs:enumeration value="cimbclicks"/>
            <xs:enumeration value="clickandbuy"/>
            <xs:enumeration value="creditcard"/>
            <xs:enumeration value="debito_bradesco"/>
            <xs:enumeration value="directtransfer"/>
            <xs:enumeration value="eft"/>
            <xs:enumeration value="epay_bg"/>
            <xs:enumeration value="eplatby"/>
            <xs:enumeration value="eps"/>
            <xs:enumeration value="euteller"/>
            <xs:enumeration value="expresscheckout"/>
            <xs:enumeration value="giropay"/>
            <xs:enumeration value="gluepay"/>
            <xs:enumeration value="hobex-vt"/>
            <xs:enumeration value="ideal"/>
            <xs:enumeration value="klarna-invoice"/>
            <xs:enumeration value="klarna-install"/>
            <xs:enumeration value="masterpass"/>
            <xs:enumeration value="visacheckout"/>
            <xs:enumeration value="maybank2u"/>
            <xs:enumeration value="mercado_pago"/>
            <xs:enumeration value="miles-and-more"/>
            <xs:enumeration value="migs-25"/>
            <xs:enumeration value="mistercash"/>
            <xs:enumeration value="mobicred"/>
            <xs:enumeration value="moneta_ru"/>
            <xs:enumeration value="mpass"/>
            <xs:enumeration value="neteller_ru"/>
            <xs:enumeration value="p24"/>
            <xs:enumeration value="paybox"/>
            <xs:enumeration value="zapp"/>
            <xs:enumeration value="paylah"/>
            <xs:enumeration value="paylib"/>
            <xs:enumeration value="payolution-inst"/>
            <xs:enumeration value="payolution-inv"/>
            <xs:enumeration value="payolution-b2b"/>
            <xs:enumeration value="payolution-elv"/>
            <xs:enumeration value="paypal"/>
            <xs:enumeration value="paysafecard"/>
            <xs:enumeration value="poli"/>
            <xs:enumeration value="ratepay-elv"/>
            <xs:enumeration value="ratepay-install"/>
            <xs:enumeration value="ratepay-invoice"/>
            <xs:enumeration value="safetypay"/>
            <xs:enumeration value="sampath-bank"/>
            <xs:enumeration value="sepa"/>
            <xs:enumeration value="sepacredit"/>
            <xs:enumeration value="sepadirectdebit"/>
            <xs:enumeration value="sid-eft"/>
            <xs:enumeration value="skrill"/>
            <xs:enumeration value="sofortbanking"/>
            <xs:enumeration value="tatrapay"/>
            <xs:enumeration value="tenpay"/>
            <xs:enumeration value="transferencia"/>
            <xs:enumeration value="trustly"/>
            <xs:enumeration value="trustpay"/>
            <xs:enumeration value="upop"/>
            <xs:enumeration value="webmoney"/>
            <xs:enumeration value="wiretransfer"/>
            <xs:enumeration value="yandex"/>
            <xs:enumeration value="voucher"/>
            <xs:enumeration value="alipay-spot-pay"/>
            <xs:enumeration value="fpx"/>
            <xs:enumeration value="enets"/>
            <xs:enumeration value="icashcard"/>
            <xs:enumeration value="tbc"/>
            <xs:enumeration value="mydebit"/>
            <xs:enumeration value="billdesk"/>
            <xs:enumeration value="barzahlen"/>
            <xs:enumeration value="alipay-qr-gen"/>
            <xs:enumeration value="mpesa"/>
            <xs:enumeration value="wechat-qrpay"/>
            <xs:enumeration value="wechat-quickpay"/>
            <xs:enumeration value="guaranteed-inv"/>
            <xs:enumeration value="guaranteed-dd"/>
            <xs:enumeration value="fpx_amonline"/>
            <xs:enumeration value="fpx_muamalat"/>
            <xs:enumeration value="onlinebankdebit"/>
            <xs:enumeration value="fpx_bankrakyat"/>
            <xs:enumeration value="fpx_bimb"/>
            <xs:enumeration value="dragonpay"/>
            <xs:enumeration value="fpx_abb"/>
            <xs:enumeration value="fpx_abmb"/>
            <xs:enumeration value="fpx_bsn"/>
            <xs:enumeration value="fpx_ocbc"/>
            <xs:enumeration value="fpx_scb"/>
            <xs:enumeration value="fpx_uob"/>
            <xs:enumeration value="fpx_hlbconnect"/>
            <xs:enumeration value="nganluong"/>
            <xs:enumeration value="omise"/>
            <xs:enumeration value="omise_bay"/>
            <xs:enumeration value="omise_bbl"/>
            <xs:enumeration value="omise_ktb"/>
            <xs:enumeration value="omise_scb"/>
            <xs:enumeration value="omise_tl"/>
            <xs:enumeration value="fpx_pbb"/>
            <xs:enumeration value="fpx_rhbnow"/>
            <xs:enumeration value="singpost"/>
            <xs:enumeration value="vtcpay"/>
            <xs:enumeration value="interac"/>
            <xs:enumeration value="linepay"/>
            <xs:enumeration value="scb-promptpay"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="bank-account-type">
        <xs:restriction base="xs:token">
            <xs:enumeration value="checking"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="tax-document-type">
        <xs:restriction base="xs:token">
            <xs:enumeration value="cpf"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="card-security-code">
        <xs:restriction base="xs:token">
            <xs:pattern value="[0-9]{3,4}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="personal-identification-number">
        <xs:restriction base="xs:token">
            <xs:pattern value="[0-9]{1,5}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="request-id">
        <xs:restriction base="xs:token">
            <xs:minLength value="1"/>
            <xs:maxLength value="150"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="ip-address">
        <xs:restriction base="xs:string">
            <xs:minLength value="1"/>
            <xs:maxLength value="45"/>
            <xs:pattern value="(((25[0-5])|(2[0-4]\d)|(1?\d{1,2}))\.){3}((25[0-5])|(2[0-4]\d)|(1?\d{1,2}))"/>
            <xs:pattern value="([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}(%[^%\s]+)?"/>
            <xs:pattern value="(([0-9A-Fa-f]{1,4}(:[0-9A-Fa-f]{1,4})*)?)::(([0-9A-Fa-f]{1,4}(:[0-9A-Fa-f]{1,4})*)?)(%[^%\s]+)?"/>
            <xs:pattern value="(([0-9A-Fa-f]{1,4}:){6,6})(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}(%[^%\s]+)?"/>
            <xs:pattern
                    value="(([0-9A-Fa-f]{1,4}(:[0-9A-Fa-f]{1,4})*)?)::(([0-9A-Fa-f]{1,4}:)*)(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}(%[^%\s]+)?"/>
            <!--Normal IPv6-->
            <!--IPv6 Hex Compressed-->
            <!--IPv6 Hex + IPv4 Dec-->
            <!--IPv6 Hex Compressed + IPv4 Dec-->
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="url">
        <xs:restriction base="xs:string">
            <xs:pattern value="(((s*)(ftp)(s*)|(http)(s*)|mailto|news|file):(\S*))|((www.)(\S*))"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="email">
        <xs:restriction base="xs:string">
            <xs:pattern value="([0-9a-zA-Z]([-_.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="account-number">
        <xs:restriction base="xs:token">
            <xs:pattern value="[0-9]{13,19}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="promotion-code">
        <xs:restriction base="xs:string">
            <xs:minLength value="1"/>
            <xs:maxLength value="20"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="merchant-account-resolver-category">
        <xs:restriction base="xs:string">
            <xs:minLength value="1"/>
            <xs:maxLength value="32"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="name">
        <xs:restriction base="xs:string">
            <xs:minLength value="1"/>
            <xs:maxLength value="50"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="gender">
        <xs:restriction base="xs:token">
            <xs:enumeration value="m"/>
            <xs:enumeration value="f"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="merchant-account-id">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="ref" type="url" use="optional"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:simpleType name="month">
        <xs:restriction base="xs:short">
            <xs:minInclusive value="1"/>
            <xs:maxInclusive value="12"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="year">
        <xs:restriction base="xs:short">
            <xs:minInclusive value="2000"/>
            <xs:maxInclusive value="3000"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="uuid">
        <xs:restriction base="xs:token">
            <!--<xs:pattern value="[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"></xs:pattern>-->
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="currency">
        <xs:restriction base="xs:token">
            <xs:length value="3" fixed="true"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="country">
        <xs:restriction base="xs:token">
            <xs:length value="2" fixed="true"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="money">
        <xs:simpleContent>
            <xs:extension base="xs:decimal">
                <xs:attribute name="currency" type="currency" use="required"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="address">
        <xs:all>
            <xs:element name="block-no" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="level" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="unit" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="street1" type="xs:string" minOccurs="1" maxOccurs="1"/>
            <xs:element name="street2" type="xs:string" minOccurs="0" maxOccurs="1"/>
			<xs:element name="street3" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="city" type="xs:string" minOccurs="1" maxOccurs="1"/>
            <xs:element name="state" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="country" type="country" minOccurs="1" maxOccurs="1"/>
            <xs:element name="postal-code" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="house-extension" type="xs:string" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="account-holder">
        <xs:all>
            <xs:element name="first-name" type="name" minOccurs="0" maxOccurs="1"/>
            <xs:element name="last-name" type="name" minOccurs="0" maxOccurs="1"/>
            <xs:element name="email" type="email" minOccurs="0" maxOccurs="1"/>
            <xs:element name="gender" type="gender" minOccurs="0" maxOccurs="1"/>
            <xs:element name="date-of-birth" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="phone" type="xs:string" minOccurs="0" maxOccurs="1"/>
			<xs:element name="mobile-phone" type="xs:string" minOccurs="0" maxOccurs="1"/>
			<xs:element name="work-phone" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="address" type="address" minOccurs="0" maxOccurs="1"/>
            <xs:element name="merchant-crm-id" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="social-security-number" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="tax-number" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="account-info" type="account-info" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="account-info">
        <xs:all>
            <xs:element name="authentication-method" type="authentication-type" minOccurs="0" maxOccurs="1"/>
            <xs:element name="authentication-timestamp" type="xs:dateTime" minOccurs="0" maxOccurs="1"/>
            <xs:element name="challenge-indicator" type="challenge-type" minOccurs="0" maxOccurs="1"/>
            <xs:element name="creation-date" type="xs:date" minOccurs="0" maxOccurs="1"/>
            <xs:element name="update-date" type="xs:date" minOccurs="0" maxOccurs="1"/>
            <xs:element name="password-change-date" type="xs:date" minOccurs="0" maxOccurs="1"/>
            <xs:element name="shipping-address-first-use" type="xs:date" minOccurs="0" maxOccurs="1"/>
            <xs:element name="transactions-last-day" type="xs:int" minOccurs="0" maxOccurs="1"/>
            <xs:element name="transactions-last-year" type="xs:int" minOccurs="0" maxOccurs="1"/>
            <xs:element name="card-transactions-last-day" type="xs:int" minOccurs="0" maxOccurs="1"/>
            <xs:element name="purchases-last-six-months" type="xs:int" minOccurs="0" maxOccurs="1"/>
            <xs:element name="suspicious-activity" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
            <xs:element name="card-creation-date" type="xs:date" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:simpleType name="challenge-type">
		<xs:annotation>
			<xs:documentation>3DS2: threeDSRequestorChallengeInd
			01 = No preference,
			02 = No challenge requested,
			03 = Challenge requested: 3DS Requestor Preference,
			04 = Challenge requested: Mandate</xs:documentation>
		</xs:annotation>
        <xs:restriction base="xs:token">
            <xs:enumeration value="01"/>
            <xs:enumeration value="02"/>
            <xs:enumeration value="03"/>
            <xs:enumeration value="04"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="authentication-type">
		<xs:annotation>
				<xs:documentation>3DS2: threeDSReqAuthMethod
				01 = No 3DS Requestor authentication occurred (i.e. cardholder “logged in” as guest),
				02 = Login to the cardholder account at the 3DS Requestor system using 3DS Requestor’s own credentials,
				03 = Login to the cardholder account at the 3DS Requestor system using federated ID,
				04 = Login to the cardholder account at the 3DS Requestor system using issuer credentials,
				05 = Login to the cardholder account at the 3DS Requestor system using third-party authentication,
				06 = Login to the cardholder account at the 3DS Requestor system using FIDO Authenticator</xs:documentation>
		</xs:annotation>
        <xs:restriction base="xs:token">
            <xs:enumeration value="01"/>
            <xs:enumeration value="02"/>
            <xs:enumeration value="03"/>
            <xs:enumeration value="04"/>
            <xs:enumeration value="05"/>
            <xs:enumeration value="06"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="consumer">
        <xs:all>
            <xs:element name="first-name" type="name" minOccurs="1" maxOccurs="1"/>
            <xs:element name="last-name" type="name" minOccurs="1" maxOccurs="1"/>
            <xs:element name="email" type="email" minOccurs="0" maxOccurs="1"/>
            <xs:element name="gender" type="gender" minOccurs="0" maxOccurs="1"/>
            <!-- DD-MM-YYYY format-->
            <xs:element name="date-of-birth" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="phone" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="address" type="address" minOccurs="0" maxOccurs="1"/>
            <xs:element name="merchant-crm-id" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="social-security-number" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="tax-number" type="xs:string" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="shipping">
        <xs:all>
            <xs:element name="first-name" type="name" minOccurs="1" maxOccurs="1"/>
            <xs:element name="last-name" type="name" minOccurs="1" maxOccurs="1"/>
            <xs:element name="phone" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="address" type="address" minOccurs="1" maxOccurs="1"/>
            <xs:element name="email" type="email" minOccurs="0" maxOccurs="1"/>
            <xs:element name="shipping-method" type="shipping-method" minOccurs="0" maxOccurs="1"/>
            <xs:element name="tracking-number" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="tracking-url" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="shipping-company" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="return-tracking-number" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="return-tracking-url" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="return-shipping-company" type="xs:string" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="loyalty-card">
        <xs:all>
            <xs:element name="account-number" type="account-number" minOccurs="0" maxOccurs="1"/>
            <xs:element name="personal-identification-number" type="personal-identification-number" minOccurs="0"
                        maxOccurs="1"/>
            <xs:element name="promotion-code" type="promotion-code" minOccurs="0" maxOccurs="1"/>
            <!-- YYYY-DD-MM format-->
            <xs:element name="activity-date" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="user-id" type="xs:string" minOccurs="0" />
            <xs:element name="card-id" type="xs:string" minOccurs="0" />
        </xs:all>
    </xs:complexType>

    <xs:complexType name="hotel-industry">
        <xs:all>
            <xs:element name="hotel-code" type="xs:string"/>
            <xs:element name="hotel-name" type="xs:string" minOccurs="0"/>
            <xs:element name="hotel-folio-number" type="xs:string" minOccurs="0"/>
            <xs:element name="reservation-confirmation-number" type="confirmation-number"/>
            <xs:element name="guest-first-name" type="xs:string" minOccurs="0"/>
            <xs:element name="guest-last-name" type="xs:string" minOccurs="0"/>
            <xs:element name="company" type="xs:string" minOccurs="0"/>
            <xs:element name="check-in-date" type="xs:string" minOccurs="0"/>
            <xs:element name="check-out-date" type="xs:string" minOccurs="0"/>
            <xs:element name="no-show" type="zero-or-one" minOccurs="0"/>
            <xs:element name="agent-code" type="xs:string" minOccurs="0"/>
            <xs:element name="agent-name" type="xs:string" minOccurs="0"/>
            <xs:element name="hotel-phone-number" type="xs:string" minOccurs="0"/>
            <xs:element name="service-phone-number" type="xs:string" minOccurs="0"/>
            <xs:element name="total-room-nights" type="xs:short" minOccurs="0"/>
            <xs:element name="daily-room-rate" type="money" minOccurs="0"/>
            <xs:element name="total-room-tax" type="money" minOccurs="0"/>
            <xs:element name="non-room-charges" type="money" minOccurs="0"/>
            <xs:element name="telephone-fax-charges" type="money" minOccurs="0"/>
            <xs:element name="gift-shop-purchases" type="money" minOccurs="0"/>
            <xs:element name="movie-charges" type="money" minOccurs="0"/>
            <xs:element name="health-club-charges" type="money" minOccurs="0"/>
            <xs:element name="business-center-charges" type="money" minOccurs="0"/>
            <xs:element name="laundry-charges" type="money" minOccurs="0"/>
            <xs:element name="food-beverages-minibar-charges" type="money" minOccurs="0"/>
            <xs:element name="parking-valet-charges" type="money" minOccurs="0"/>
            <xs:element name="cash-advances" type="money" minOccurs="0"/>
        </xs:all>
    </xs:complexType>

    <xs:simpleType name="confirmation-number">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9a-zA-Z_]{1,64}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="card">
        <xs:all>
            <xs:element name="account-number" type="account-number" minOccurs="0" maxOccurs="1"/>
            <xs:element name="expiration-month" type="month" nillable="true" minOccurs="1" maxOccurs="1"/>
            <xs:element name="expiration-year" type="year" nillable="true" minOccurs="1" maxOccurs="1"/>
            <xs:element name="issue-number" type="xs:short" minOccurs="0" maxOccurs="1"/>
            <xs:element name="start-month" type="month" minOccurs="0" maxOccurs="1"/>
            <xs:element name="start-year" type="year" minOccurs="0" maxOccurs="1"/>
            <xs:element name="card-security-code" type="card-security-code" minOccurs="0" maxOccurs="1"/>
            <xs:element name="card-type" type="card-type" minOccurs="1" maxOccurs="1"/>
            <xs:element name="account-type" type="account-type" minOccurs="0" maxOccurs="1"/>
            <xs:element name="card-last-four" type="xs:token" minOccurs="0" maxOccurs="1"/>
            <xs:element name="track-1" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="track-2" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="pin-data" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <!-- pin-data should be replaced with cardPin - KIV and to be removed -->
            <xs:element name="card-emv" type="card-emv" minOccurs="0" maxOccurs="1"/>
            <xs:element name="card-pin" type="card-pin" minOccurs="0" maxOccurs="1"/>
            <xs:element name="card-raw" type="card-raw" minOccurs="0" maxOccurs="1"/>
            <xs:element name="card-token" type="card-token" minOccurs="0" maxOccurs="1"/>
            <xs:element name="merchant-tokenization-flag" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
	   <xs:simpleType name="account-type">
		<xs:annotation>
			<xs:documentation>3DS2: acctType
			01 = Not Applicable,
			02 = Credit,
			03 = Debit</xs:documentation>
		</xs:annotation>
        <xs:restriction base="xs:token">
            <xs:enumeration value="01"/>
            <xs:enumeration value="02"/>
            <xs:enumeration value="03"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="card-emv">
        <xs:all>
            <xs:element name="request-icc-data" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="request-icc-data-encoding" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="response-icc-data" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="response-icc-data-encoding" type="xs:string" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="card-pin">
        <xs:all>
            <xs:element name="data" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="encoding" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="format" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="encryption-context" type="encryption-context" minOccurs="0" maxOccurs="1"/>
            <xs:element name="encryption-version" type="xs:string" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="card-raw">
        <xs:all>
            <xs:element name="data" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="encoding" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="format" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="encryption-context" type="encryption-context" minOccurs="0" maxOccurs="1"/>
            <xs:element name="encryption-version" type="xs:string" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="encryption-context">
        <xs:all>
            <xs:element name="value" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="version" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="algorithm" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="parameter" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="padding" type="xs:string" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="card-data">
        <xs:all>
            <xs:element name="issuer-name" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="cc-category" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="cc-category-ext" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="cc-product-id" type="xs:string" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="card-token">
        <xs:all>
            <xs:element name="token-id" type="uuid" minOccurs="0" maxOccurs="1"/>
            <xs:element name="token-ext-id" type="token-ext-id" minOccurs="0" maxOccurs="1"/>
            <xs:element name="masked-account-number" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="alias" type="xs:string" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="token-ext-id">
        <xs:simpleContent>
            <xs:extension base="xs:token">
                <xs:attribute name="provider-id" type="xs:token" use="optional"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="cryptogram">
        <xs:all>
            <xs:element name="cryptogram-type" type="cryptogram-type" minOccurs="1" maxOccurs="1"/>
            <xs:element name="cryptogram-value" type="xs:string" minOccurs="1" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="notification">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="transaction-state" type="transaction-state" use="optional"/>
                <xs:attribute name="url" type="url" use="required"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="notifications">
        <xs:sequence>
            <xs:element name="notification" type="notification" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="format" type="xs:string"/>
    </xs:complexType>
    <xs:complexType name="custom-field">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="field-name" type="string64" use="required"/>
                <xs:attribute name="field-value" type="string256" use="required"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:simpleType name="string1">
        <xs:restriction base="xs:string">
            <xs:maxLength value="1"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="string36">
        <xs:restriction base="xs:string">
            <xs:maxLength value="36"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="string50">
        <xs:restriction base="xs:string">
            <xs:maxLength value="50"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="string64">
        <xs:restriction base="xs:string">
            <xs:maxLength value="64"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="string256">
        <xs:restriction base="xs:string">
            <xs:maxLength value="256"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="string2048">
        <xs:restriction base="xs:string">
            <xs:maxLength value="2048"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="custom-fields">
        <xs:sequence>
            <xs:element name="custom-field" type="custom-field" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="card-types">
        <xs:sequence>
            <xs:element name="card-type" type="card-type" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="payload-field">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="field-name" type="xs:string" use="required"/>
                <xs:attribute name="field-value" type="xs:string" use="required"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="payload">
        <xs:sequence>
            <xs:element name="payload-field" type="payload-field" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="payment-method">
        <xs:sequence>
            <xs:element name="card-types" type="card-types" minOccurs="0" maxOccurs="1"/>
            <xs:element name="payload" type="payload" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
        <xs:attribute name="url" type="xs:string" use="optional"/>
        <xs:attribute name="name" type="payment-method-name" use="required"/>
    </xs:complexType>
    <xs:complexType name="payment-methods">
        <xs:sequence>
            <xs:element name="payment-method" type="payment-method" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:simpleType name="severity">
        <xs:restriction base="xs:token">
            <xs:enumeration value="error"/>
            <xs:enumeration value="warning"/>
            <xs:enumeration value="information"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="status">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="code" type="xs:string" use="required"/>
                <xs:attribute name="description" type="xs:string" use="required"/>
                <xs:attribute name="severity" type="severity" use="required"/>
                <xs:attribute name="provider-transaction-id" type="xs:string" use="optional"/>
                <xs:attribute name="provider-code" type="xs:string" use="optional"/>
                <xs:attribute name="provider-message" type="xs:string" use="optional"/>
                <xs:attribute name="field" type="xs:string" use="optional"/>
                <xs:attribute name="detail" type="xs:string" use="optional"/>
                <xs:attribute name="acquirer-response-code" type="xs:string" use="optional"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="statuses">
        <xs:sequence>
            <xs:element name="status" type="status" minOccurs="1" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:simpleType name="eci">
        <xs:restriction base="xs:string">
            <xs:enumeration value="0"/>
            <xs:enumeration value="1"/>
            <xs:enumeration value="2"/>
            <xs:enumeration value="5"/>
            <xs:enumeration value="6"/>
            <xs:enumeration value="7"/>
            <xs:enumeration value="8"/>
            <xs:enumeration value="9"/>
            <xs:enumeration value="00"/>
            <xs:enumeration value="01"/>
            <xs:enumeration value="02"/>
            <xs:enumeration value="05"/>
            <xs:enumeration value="06"/>
            <xs:enumeration value="07"/>
            <xs:enumeration value="08"/>
            <xs:enumeration value="09"/>
            <xs:enumeration value="10"/>
        </xs:restriction>
    </xs:simpleType>
	<xs:simpleType name="shipping-method">
		<xs:annotation>
			<xs:documentation>3DS2: shipIndicator
			01 = home_delivery -  Ship to cardholder’s billing address,
			02 = verified_address_delivery - Ship to another verified address on file with merchant,
			03 = other_address_delivery - Ship to address that is different than the cardholder’s billing address,
			04 = store_pick_up - Pick-up at local store,
			05 = digital_goods - Digital goods,
			06 = digital_tickets - Travel and Event tickets, not shipped,
			07 = other_verified - Other</xs:documentation>
		</xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="store_pick_up"/>
            <xs:enumeration value="home_delivery"/>
            <xs:enumeration value="verified_address_delivery"/>
            <xs:enumeration value="other_address_delivery"/>
            <xs:enumeration value="registered_box"/>
            <xs:enumeration value="unregistered_box"/>
            <xs:enumeration value="pick_up_point"/>
            <xs:enumeration value="own_delivery"/>
    		<xs:enumeration value="digital_tickets"/>
			<xs:enumeration value="digital_goods"/>
			<xs:enumeration value="other_verified"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="order-item-type">
        <xs:restriction base="xs:string">
            <xs:enumeration value="shipment_fee"/>
            <xs:enumeration value="handling_fee"/>
            <xs:enumeration value="discount"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="zero-or-one">
        <xs:restriction base="xs:string">
            <xs:enumeration value="0"/>
            <xs:enumeration value="1"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="three-d">
        <xs:all>
            <xs:element name="pares" type="xs:string" minOccurs="0" maxOccurs="1"/>

            <xs:element name="eci" type="eci" minOccurs="0" maxOccurs="1"/>
            <xs:element name="xid" type="xs:string" minOccurs="0" maxOccurs="1"/>

            <!-- This field is  used for both CAVV (Visa) and AAV (MC)-->
            <xs:element name="cardholder-authentication-value" type="xs:string" minOccurs="0" maxOccurs="1"/>

            <xs:element name="pareq" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="acs-url" type="xs:string" minOccurs="0" maxOccurs="1"/>

            <xs:element name="attempt-three-d" type="xs:boolean" minOccurs="0" maxOccurs="1"/>

            <xs:element name="liability-shift-indicator" type="xs:string" minOccurs="0" maxOccurs="1"/>

            <xs:element name="cardholder-authentication-status" type="xs:string" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Possible values are Y, A, U, N, E.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="riid" type="riid-type" minOccurs="0" maxOccurs="1"/>
            <xs:element name="server-transaction-id" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="version" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="ds-transaction-id" type="xs:string" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
	<xs:simpleType name="riid-type">
		<xs:annotation>
			<xs:documentation>3DS2: threeRIInd
			01 = Recurring transaction,
			02 = Instalment transaction,
			03 = Add card,
			04 = Maintain card information,
			05 = Account</xs:documentation>
		</xs:annotation>
        <xs:restriction base="xs:token">
            <xs:enumeration value="01"/>
            <xs:enumeration value="02"/>
			<xs:enumeration value="03"/>
			<xs:enumeration value="04"/>
			<xs:enumeration value="05"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="ticket-issuer">
        <xs:sequence>
            <xs:element name="address" type="address" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="browser">
        <xs:all>
            <xs:element name="accept" type="string2048" minOccurs="0" maxOccurs="1"/>
            <xs:element name="user-agent" type="string256" minOccurs="0" maxOccurs="1"/>
            <xs:element name="ip-address" type="ip-address" minOccurs="0" maxOccurs="1"/>

            <xs:element name="hostname" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="browser-version" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="os" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="time-zone" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="screen-resolution" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="referrer" type="xs:string" minOccurs="0" maxOccurs="1"/>

            <xs:element name="headers" type="headers" minOccurs="0" maxOccurs="1"/>
            <xs:element name="cookies" type="cookies" minOccurs="0" maxOccurs="1"/>
            <xs:element name="challenge-window-size" type="window-size" minOccurs="0" maxOccurs="1"/>
            <xs:element name="color-depth" type="xs:int" minOccurs="0" maxOccurs="1"/>
            <xs:element name="java-enabled" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
            <xs:element name="language" type="xs:string" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
	<xs:simpleType name="window-size">
		<xs:annotation>
			<xs:documentation>3DS2: challengeWindowSize
			01 = 250 x 400,
			02 = 390 x 400,
			03 = 500 x 600,
			04 = 600 x 400,
			05 = Full screen</xs:documentation>
		</xs:annotation>
        <xs:restriction base="xs:token">
            <xs:enumeration value="01"/>
            <xs:enumeration value="02"/>
			<xs:enumeration value="03"/>
			<xs:enumeration value="04"/>
			<xs:enumeration value="05"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="cookies">
        <xs:sequence>
            <xs:element name="cookie" type="cookie" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="cookie">
        <xs:all>
            <xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="1"/>
            <xs:element name="value" type="xs:string" minOccurs="1" maxOccurs="1"/>
            <xs:element name="domain" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="path" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="max-age" type="xs:long" minOccurs="0" maxOccurs="1"/>
            <xs:element name="secure" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
            <xs:element name="http-only" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="headers">
        <xs:sequence>
            <xs:element name="header" type="header" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="header">
        <xs:all>
            <xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="1"/>
            <xs:element name="value" type="xs:string" minOccurs="1" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="segment">
        <xs:all>
            <xs:element name="carrier-code" type="xs:string" minOccurs="1" maxOccurs="1"/>
            <xs:element name="departure-airport-code" type="xs:string" minOccurs="1" maxOccurs="1"/>
            <xs:element name="departure-city-code" type="xs:string" minOccurs="1" maxOccurs="1"/>
            <xs:element name="arrival-airport-code" type="xs:string" minOccurs="1" maxOccurs="1"/>
            <xs:element name="arrival-city-code" type="xs:string" minOccurs="1" maxOccurs="1"/>
            <xs:element name="departure-date" type="xs:date" minOccurs="1" maxOccurs="1"/>
            <xs:element name="arrival-date" type="xs:date" minOccurs="1" maxOccurs="1"/>
            <xs:element name="flight-number" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="fare-class" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="fare-basis" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="stop-over-code" type="zero-or-one" minOccurs="0" maxOccurs="1"/>
            <xs:element name="tax-amount" type="money" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="itinerary">
        <xs:sequence>
            <xs:element name="segment" type="segment" maxOccurs="99"/>
        </xs:sequence>
    </xs:complexType>
    <!-- Level III data for airline market segment -->
    <xs:complexType name="airline-industry">
        <xs:all>
            <xs:element name="airline-code" type="xs:string"/>
            <xs:element name="airline-name" type="xs:string" minOccurs="0"/>
            <xs:element name="passenger-code" type="xs:string" minOccurs="0"/>
            <xs:element name="passenger-name" type="xs:string" minOccurs="0"/>
            <xs:element name="passenger-phone" type="xs:string" minOccurs="0"/>
            <xs:element name="passenger-email" type="email" minOccurs="0"/>
            <xs:element name="passenger-ip-address" type="ip-address" minOccurs="0"/>
            <xs:element name="ticket-issue-date" type="xs:date" minOccurs="0"/>
            <xs:element name="ticket-number" type="xs:string"/>
            <xs:element name="ticket-restricted-flag" type="zero-or-one" minOccurs="0"/>
            <xs:element name="pnr-file-key" type="xs:string" minOccurs="0"/>
            <xs:element name="ticket-check-digit" type="xs:short" minOccurs="0"/>
            <xs:element name="agent-code" type="xs:string" minOccurs="0"/>
            <xs:element name="agent-name" type="xs:string" minOccurs="0"/>
            <xs:element name="non-taxable-net-amount" type="money" minOccurs="0"/>
            <xs:element name="ticket-issuer" type="ticket-issuer" minOccurs="0"/>
            <xs:element name="number-of-passengers" type="xs:short" minOccurs="0"/>
            <xs:element name="reservation-code" type="xs:string" minOccurs="0"/>
            <xs:element name="itinerary" type="itinerary" minOccurs="0"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="cruise-industry">
        <xs:all>
            <xs:element name="carrier-code" type="xs:string"/>
            <xs:element name="agent-code" type="xs:string" minOccurs="0"/>
            <xs:element name="travel-package-type-code" type="xs:string" minOccurs="0"/>
            <xs:element name="ticket-number" type="xs:string" minOccurs="0"/>
            <xs:element name="passenger-name" type="xs:string" minOccurs="0"/>
            <xs:element name="lodging-check-in-date" type="xs:string" minOccurs="0"/>
            <xs:element name="lodging-check-out-date" type="xs:string" minOccurs="0"/>
            <xs:element name="lodging-room-rate" type="money" minOccurs="0"/>
            <xs:element name="number-of-nights" type="xs:short" minOccurs="0"/>
            <xs:element name="lodging-name" type="xs:string" minOccurs="0"/>
            <xs:element name="lodging-city-name" type="xs:string" minOccurs="0"/>
            <xs:element name="lodging-region-code" type="xs:string" minOccurs="0"/>
            <xs:element name="lodging-country-code" type="xs:string" minOccurs="0"/>
            <xs:element name="itinerary" type="itinerary" minOccurs="0"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="travel-industry">
        <xs:all>
            <xs:element name="journeys" type="journeys" minOccurs="0"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="journeys">
        <xs:sequence>
            <xs:element name="journey" type="journey" maxOccurs="99"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="journey">
        <xs:all>
            <xs:element name="type" type="journey-type" minOccurs="0" maxOccurs="1"/>
            <xs:element name="origin-location" type="location" minOccurs="0" maxOccurs="1"/>
            <xs:element name="destination-location" type="location" minOccurs="0" maxOccurs="1"/>
            <xs:element name="valid-from" type="xs:dateTime" minOccurs="0" maxOccurs="1"/>
            <xs:element name="valid-until" type="xs:dateTime" minOccurs="0" maxOccurs="1"/>
            <xs:element name="transferable" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="location">
        <xs:all>
            <xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="address" type="address" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:simpleType name="journey-type">
        <xs:restriction base="xs:token">
            <xs:enumeration value="train"/>
            <xs:enumeration value="bus"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="bank-account">
        <xs:all>
            <xs:element name="bank-name" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="branch-city" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="branch-state" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="branch-address" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="iban" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="bic" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="account-number" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="bank-code" type="xs:string" minOccurs="0" maxOccurs="1"/>

            <!-- boleto refunding fields -->
            <xs:element name="type" type="bank-account-type" minOccurs="0" maxOccurs="1"/>
            <xs:element name="agency-number" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="agency-check-number" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="account-check-number" type="xs:string" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="mandate">
        <xs:all>
            <xs:element name="mandate-id" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <!-- YYYY-MM-DD format--><!--http://www.w3.org/TR/xmlschema-2/#dateTime-order-->
            <xs:element name="signed-date" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="signed-city" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <!-- base64 encoded image-->
            <xs:element name="signature-image" type="xs:string" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="invoice">
        <xs:all>
            <xs:element name="invoice-number" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <!-- YYYY-MM-DD format--><!--http://www.w3.org/TR/xmlschema-2/#dateTime-order-->
            <xs:element name="invoice-date" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="invoice-url" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="delivery-method" type="delivery-method" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:simpleType name="delivery-method">
        <xs:restriction base="xs:string">
            <xs:enumeration value="mail"/>
            <xs:enumeration value="email"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="files">
        <xs:sequence>
            <xs:element name="file" type="file" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="file">
        <xs:all>
            <xs:element name="content" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="type-id" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="onus">
        <xs:all>
            <xs:element name="provider-acquirer-code" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="provider-acquirer-name" type="xs:string" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:simpleType name="entry-mode">
        <xs:restriction base="xs:token">
            <xs:enumeration value="mail-order"/>
            <xs:enumeration value="telephone-order"/>
            <xs:enumeration value="ecommerce"/>
            <xs:enumeration value="mcommerce"/>
            <xs:enumeration value="pos"/>
            <xs:enumeration value="applepay"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="periodic-type">
        <xs:restriction base="xs:token">
            <xs:enumeration value="installment"/>
            <xs:enumeration value="recurring"/>
            <xs:enumeration value="ucof"/>
            <xs:enumeration value="ci"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="sequence-type">
        <xs:restriction base="xs:token">
            <xs:enumeration value="first"/>
            <xs:enumeration value="recurring"/>
            <xs:enumeration value="final"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="installment-plan">
        <xs:all>
            <xs:element name="installment-plan-id" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="program-id" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="plan-code" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="plan-type" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="first-payment-amount" type="money" minOccurs="0" maxOccurs="1"/>
            <xs:element name="monthly-payment-amount" type="money" minOccurs="0" maxOccurs="1"/>
            <xs:element name="last-payment-amount" type="money" minOccurs="0" maxOccurs="1"/>
            <xs:element name="total-payment-amount" type="money" minOccurs="0" maxOccurs="1"/>
            <xs:element name="tenure" type="integer4" minOccurs="0" maxOccurs="1"/>
            <xs:element name="tenure-unit" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="interest-rate" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
            <xs:element name="annual-interest-rate" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
            <xs:element name="acquirer-code" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="interest-payer" type="string1" minOccurs="0" maxOccurs="1"/>
            <xs:element name="management-fee" type="money" minOccurs="0" maxOccurs="1"/>
            <xs:element name="interest-type" type="xs:int" minOccurs="0" maxOccurs="1"/>
            <xs:element name="interest-mode" type="xs:string" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:simpleType name="interest-payer">
        <xs:restriction base="xs:token">
            <xs:enumeration value="M"/>
            <xs:enumeration value="C"/>
            <xs:enumeration value="S"/>
            <xs:enumeration value="X"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="periodic">
        <xs:all>
            <xs:element name="periodic-type" type="periodic-type" minOccurs="1" maxOccurs="1"/>
            <xs:element name="sequence-type" type="sequence-type" minOccurs="0" maxOccurs="1"/>
            <xs:element name="number-of-installments" type="integer4" minOccurs="0" maxOccurs="1"/>
			<!-- 3DS 2.0 -->
            <!-- YYYY-MM-DD format-->
            <xs:element name="recurring-expire-date" type="xs:date" minOccurs="0" maxOccurs="1"/>
            <xs:element name="installment-plan" type="installment-plan" minOccurs="0" maxOccurs="1"/>
            <xs:element name="recurring-frequency" type="xs:int" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:simpleType name="non-gambling-oct-type">
        <xs:restriction base="xs:token">
            <xs:enumeration value="p2p"/>
            <xs:enumeration value="md"/>
            <xs:enumeration value="acc2acc"/>
            <xs:enumeration value="ccBill"/>
            <xs:enumeration value="fd"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="reversal-type">
        <xs:restriction base="xs:token">
            <xs:enumeration value="merchant"/>
            <xs:enumeration value="system"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="wallet">
        <xs:all>
            <xs:element name="account-id" type="xs:string" minOccurs="1" maxOccurs="1"/>
            <xs:element name="merchant-id" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="request-token" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="pair-token" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="card-id" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="address-id" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="provider-ref" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="provider-transaction-id" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="wallet-data" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="type" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="indicator" type="xs:string" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="settlement">
        <xs:all>
            <xs:element name="gross-amount" type="xs:decimal" minOccurs="1" maxOccurs="1"/>
            <xs:element name="currency" type="currency" minOccurs="1" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="batch">
        <xs:all>
            <xs:element name="file-name" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="record-number" type="xs:string" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="pos">
        <xs:all>
            <xs:element name="merchant-id" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="terminal-id" type="xs:string" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="order-item">
        <xs:annotation>
            <xs:documentation>Order item amount always includes tax. Tax can be specified either by tax-amount or by
                tax-rate.
            </xs:documentation>
        </xs:annotation>
        <xs:all>
            <xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="1"/>
            <xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="article-number" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="amount" type="money" minOccurs="1" maxOccurs="1"/>
            <xs:element name="tax-amount" type="money" minOccurs="0" maxOccurs="1"/>
            <xs:element name="tax-rate" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
            <xs:element name="quantity" type="xs:short" minOccurs="1" maxOccurs="1"/>
            <xs:element name="type" type="order-item-type" minOccurs="0" maxOccurs="1"/>
            <xs:element name="discount" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="order-items">
        <xs:sequence>
            <xs:element name="order-item" type="order-item" minOccurs="1" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="sub-merchant-info">
        <xs:all>
            <xs:element name="id" type="xs:string" minOccurs="0"/>
            <xs:element name="appid" type="xs:string" minOccurs="0"/>
            <xs:element name="name" type="xs:string" minOccurs="0"/>
            <xs:element name="street" type="xs:string" minOccurs="0"/>
            <xs:element name="city" type="xs:string" minOccurs="0"/>
            <xs:element name="postal-code" type="xs:string" minOccurs="0"/>
            <xs:element name="state" type="xs:string" minOccurs="0"/>
            <xs:element name="country" type="xs:string" minOccurs="0"/>
            <xs:element name="category" type="xs:string" minOccurs="0"/>
            <xs:element name="store-id" type="string64" minOccurs="0"/>
            <xs:element name="store-name" type="string64" minOccurs="0"/>
            <xs:element name="payment-facilitator-id" type="xs:string" minOccurs="0"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="iso-field">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="field-name" type="xs:string" use="required"/>
                <xs:attribute name="field-value" type="xs:string" use="required"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="iso-fields">
        <xs:sequence>
            <xs:element name="iso-field" type="iso-field" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="iso">
        <xs:all>
            <xs:element name="merchant-id" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="terminal-id" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="bank-terminal-id" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="response-code" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="approval-code" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="retrieval-reference-number" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="invoice-number" type="xs:string" minOccurs="0" maxOccurs="1"/>

            <xs:element name="transaction-advise-ref" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="transaction-reversal-ref" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="transaction-amount" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="message-type-id" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="processing-code" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="system-trace-number" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="pos-transaction-time" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="pos-transaction-date" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="pos-entry-mode" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="pos-pin-input-length-capability" type="xs:int" minOccurs="0" maxOccurs="1"/>
            <xs:element name="card-seq-number" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="pos-nii" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="pos-condition-code" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="additional-amount" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="request-emv-icc-data" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="response-emv-icc-data" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="batch-number" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="original-amount" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="original-message-data" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="settle-id" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="settle-on" type="xs:dateTime" minOccurs="0" maxOccurs="1"/>
            <xs:element name="pin-data" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="product-code" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="msg-auth-code" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="iso-fields" type="iso-fields" minOccurs="0" maxOccurs="1"/>

            <xs:element name="transmission-date-time" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="network-management-info-code" type="xs:string" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="iso-recon">
        <xs:all>
            <xs:element name="captured-sale-count" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="captured-sale-amount" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="captured-refund-count" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="captured-refund-amount" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="authorized-sale-count" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="authorized-sale-amount" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="authorized-refund-count" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="authorized-refund-amount" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="response-text" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="number-of-reversal" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="number-of-adjustment" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="number-of-roc" type="xs:string" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="device">
        <xs:all>
            <xs:element name="fingerprint" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="policy-score" type="xs:int" minOccurs="0" maxOccurs="1"/>
            <xs:element name="type" type="device-type" minOccurs="0" maxOccurs="1"/>
            <xs:element name="operating-system" type="device-os" minOccurs="0" maxOccurs="1"/>
			<xs:element name="render-options" type="render-options" minOccurs="0" maxOccurs="1"/>
			<xs:element name="sdk" type="sdk-type" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="render-options">
        <xs:all>
			<xs:element name="interface" type="render-type" minOccurs="0" maxOccurs="1"/>
			<xs:element name="ui-type" type="ui-type" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:simpleType name="render-type">
		<xs:annotation>
			<xs:documentation>3DS2: sdkInterface
			01 = Native,
			02 = HTML,
			03 = Both</xs:documentation>
		</xs:annotation>
    	<xs:restriction base="xs:token">
    		<xs:enumeration value="01"/>
    		<xs:enumeration value="02"/>
			<xs:enumeration value="03"/>
    	</xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="ui-type">
		<xs:annotation>
			<xs:documentation>3DS2: sdkUiType
			01 = Text,
			02 = Single Select,
			03 = Multi Select,
			04 = OOB,
			05 = HTML Other (valid only for HTML UI)</xs:documentation>
		</xs:annotation>
    	<xs:restriction base="xs:token">
    		<xs:enumeration value="01"/>
    		<xs:enumeration value="02"/>
			<xs:enumeration value="03"/>
			<xs:enumeration value="04"/>
			<xs:enumeration value="05"/>
    	</xs:restriction>
    </xs:simpleType>
    <xs:complexType name="sdk-type">
        <xs:all>
            <xs:element name="max-timeout" type="xs:int" minOccurs="0" maxOccurs="1" />
            <xs:element name="application-id" type="xs:string" minOccurs="0" maxOccurs="1" />
            <xs:element name="encrypted-data" type="xs:string" minOccurs="0" maxOccurs="1" />
            <xs:element name="public-key" type="xs:string" minOccurs="0" maxOccurs="1" />
            <xs:element name="reference-number" type="xs:string" minOccurs="0" maxOccurs="1" />
            <xs:element name="transaction-id" type="xs:string" minOccurs="0" maxOccurs="1" />
		</xs:all>
    </xs:complexType>
    <xs:simpleType name="voucher-card-id">
        <xs:restriction base="xs:string">
            <xs:pattern value="[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="voucher">
        <xs:all>
            <xs:element name="voucher-code" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="voucher-brand-id" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="voucher-token-id" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="voucher-description" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="voucher-serial-number" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="voucher-alternative-amount" type="alternative-amount" minOccurs="0" maxOccurs="1"/>
            <xs:element name="voucher-type" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="voucher-instant-activation" type="xs:boolean" minOccurs="0" maxOccurs="1" />
            <xs:element name="voucher-state" type="xs:string" minOccurs="0" maxOccurs="1" />
        </xs:all>
    </xs:complexType>
    <xs:complexType name="alternative-amount">
        <xs:simpleContent>
            <xs:extension base="xs:decimal">
                <xs:attribute name="currency" type="xs:string" use="required"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="signature">
        <xs:all>
            <xs:element name="signature-type" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="signature-value" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="signature-encoding" type="xs:string" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="avs">
        <xs:sequence>
            <xs:element name="result-code" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="result-message" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="provider-result-code" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="provider-result-message" type="xs:string" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="additional-provider-data">
        <xs:sequence>
            <xs:element name="provider-data" type="provider-data" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="provider-data">
        <xs:sequence>
            <xs:element name="request" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="response" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="consumer-receipt" minOccurs="0" maxOccurs="1">
                <xs:complexType>
                    <xs:simpleContent>
                        <xs:extension base="xs:string">
                            <xs:attribute name="encoding" type="encoding" use="optional" default="base64"/>
                            <xs:attribute name="format" use="optional" default="ascii">
                                <xs:simpleType>
                                    <xs:restriction base="xs:string">
                                        <xs:enumeration value="ascii"/>
                                        <xs:enumeration value="json"/>
                                    </xs:restriction>
                                </xs:simpleType>
                            </xs:attribute>
                        </xs:extension>
                    </xs:simpleContent>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="provider-id" type="xs:string" use="optional"/>
        <xs:attribute name="provider-transaction-id" type="xs:string" use="optional"/>
    </xs:complexType>
    <xs:complexType name="audit">
        <xs:sequence>
            <xs:element name="request-source" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="user" type="xs:string" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="surcharge">
        <xs:all>
            <xs:element name="surcharge-amount" type="money" minOccurs="0" maxOccurs="1"/>
            <xs:element name="original-requested-amount" type="money" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:simpleType name="aft-bai-type">
        <xs:restriction base="xs:token">
            <xs:enumeration value="p2p"/>
            <xs:enumeration value="acct2acct"/>
            <xs:enumeration value="ccBill"/>
            <xs:enumeration value="bi"/>
            <xs:enumeration value="tu"/>
            <xs:enumeration value="wt"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="risk-info">
        <xs:all>
            <xs:element name="availability" type="availability-type" minOccurs="0" maxOccurs="1"/>
            <xs:element name="delivery-mail" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="delivery-timeframe" type="delivery-timeframe" minOccurs="0" maxOccurs="1"/>
            <xs:element name="gift" type="gift-type" minOccurs="0" maxOccurs="1"/>
			<xs:element name="preorder-date" type="xs:date" minOccurs="0" maxOccurs="1"/>
            <xs:element name="reorder-items" type="reorder-type" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
	<xs:simpleType name="availability-type">
		<xs:annotation>
			<xs:documentation>3DS2: preOrderPurchaseInd
			01 = Merchandise available,
			02 = Future availability</xs:documentation>
		</xs:annotation>
        <xs:restriction base="xs:token">
            <xs:enumeration value="01"/>
            <xs:enumeration value="02"/>
        </xs:restriction>
    </xs:simpleType>
	<xs:simpleType name="reorder-type">
		<xs:annotation>
			<xs:documentation>3DS2: reorderItemsInd
			01 = First time ordered,
			02 = Reordered</xs:documentation>
		</xs:annotation>
        <xs:restriction base="xs:token">
            <xs:enumeration value="01"/>
            <xs:enumeration value="02"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="delivery-timeframe">
		<xs:annotation>
			<xs:documentation>3DS2: deliveryTimeframe
			01 = Electronic Delivery,
			02 = Same day shipping
			03 = Overnight shipping,
			04 = Two-day or more shipping</xs:documentation>
		</xs:annotation>
        <xs:restriction base="xs:token">
            <xs:enumeration value="01"/>
            <xs:enumeration value="02"/>
            <xs:enumeration value="03"/>
            <xs:enumeration value="04"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="gift-type">
        <xs:all>
            <xs:element name="amount" type="money" minOccurs="0" maxOccurs="1"/>
            <xs:element name="card-count" type="xs:int" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:simpleType name="iso-transaction-type">
		<xs:annotation>
			<xs:documentation>3DS2: transType
			01 = Goods/ Service Purchase,
			03 = Check Acceptance,
			10 = Account Funding,
			11 = Quasi-Cash Transaction,
			28 = Prepaid Activation and Load </xs:documentation>
		</xs:annotation>
        <xs:restriction base="xs:token">
            <xs:enumeration value="01"/>
            <xs:enumeration value="03"/>
            <xs:enumeration value="10"/>
            <xs:enumeration value="11"/>
            <xs:enumeration value="28"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="payment">
        <xs:all>
            <xs:element name="merchant-account-id" type="merchant-account-id" minOccurs="0" maxOccurs="1"/>
            <xs:element name="merchant-account-resolver-category" type="merchant-account-resolver-category"
                        minOccurs="0" maxOccurs="1"/>
            <xs:element name="transaction-id" type="uuid" minOccurs="0" maxOccurs="1"/>
            <xs:element name="request-id" type="request-id" minOccurs="0" maxOccurs="1"/>
            <xs:element name="transaction-type" type="transaction-type" minOccurs="0" maxOccurs="1"/>
			<xs:element name="iso-transaction-type" type="iso-transaction-type" minOccurs="0" maxOccurs="1"/>
            <xs:element name="transaction-state" type="transaction-state" minOccurs="0" maxOccurs="1"/>
            <xs:element name="completion-time-stamp" type="xs:dateTime" minOccurs="0" maxOccurs="1"/>
            <xs:element name="statuses" type="statuses" minOccurs="0" maxOccurs="1"/>
            <xs:element name="avs-code" type="xs:token" minOccurs="0" maxOccurs="1"/>
            <xs:element name="csc-code" type="xs:token" minOccurs="0" maxOccurs="1"/>
            <xs:element name="requested-amount" type="money" minOccurs="0" maxOccurs="1"/>
            <xs:element name="parent-transaction-id" type="uuid" minOccurs="0" maxOccurs="1"/>
            <xs:element name="parent-request-id" type="uuid" minOccurs="0" maxOccurs="1"/>
            <xs:element name="group-transaction-id" type="uuid" minOccurs="0" maxOccurs="1"/>
            <xs:element name="account-holder" type="account-holder" minOccurs="0" maxOccurs="1"/>
            <xs:element name="account-holder-requested-amount" type="money" minOccurs="0" maxOccurs="1"/>
            <xs:element name="account-holder-conversion-rate" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
            <xs:element name="shipping" type="shipping" minOccurs="0" maxOccurs="1"/>
            <xs:element name="loyalty-card" type="loyalty-card" minOccurs="0" maxOccurs="1"/>
            <xs:element name="hotel-industry" type="hotel-industry" minOccurs="0" maxOccurs="1"/>
            <xs:element name="card" type="card" minOccurs="0" maxOccurs="1"/>
            <xs:element name="card-data" type="card-data" minOccurs="0" maxOccurs="1"/>
            <xs:element name="card-token" type="card-token" minOccurs="0" maxOccurs="1"/>
            <xs:element name="cryptogram" type="cryptogram" maxOccurs="1" minOccurs="0"/>
            <xs:element name="ip-address" type="ip-address" minOccurs="0" maxOccurs="1"/>
            <xs:element name="order-number" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="channel" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="order-detail" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="order-items" type="order-items" minOccurs="0" maxOccurs="1"/>
            <xs:element name="descriptor" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="notifications" type="notifications" minOccurs="0" maxOccurs="1"/>
            <xs:element name="custom-fields" type="custom-fields" minOccurs="0" maxOccurs="1"/>
            <xs:element name="payment-methods" type="payment-methods" minOccurs="0" maxOccurs="1"/>
            <xs:element name="acquirer-reference-number" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="chargeback-id" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="chargeback-date" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="chargeback-retrieval-date" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="parent-transaction-amount" type="money" minOccurs="0" maxOccurs="1"/>
            <xs:element name="chargeback-conversion-rate" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
            <xs:element name="chargeback-reason-code" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="chargeback-provider-transaction-id" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="chargeback-provider-account-id" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="chargeback-provider-id" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <!-- xs:element type="xs:string" name="chargeback-status" minOccurs="0" maxOccurs="1"/ -->
            <xs:element name="chargeback-additional-info" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="authorization-code" type="xs:token" minOccurs="0" maxOccurs="1"/>
            <xs:element name="three-d" type="three-d" minOccurs="0" maxOccurs="1"/>
            <xs:element name="airline-industry" type="airline-industry" minOccurs="0" maxOccurs="1"/>
            <xs:element name="cruise-industry" type="cruise-industry" minOccurs="0" maxOccurs="1"/>
            <xs:element name="travel-industry" type="travel-industry" minOccurs="0" maxOccurs="1"/>
            <xs:element name="bank-account" type="bank-account" minOccurs="0" maxOccurs="1"/>
            <xs:element name="merchant-bank-account" type="bank-account" minOccurs="0" maxOccurs="1"/>
            <xs:element name="mandate" type="mandate" minOccurs="0" maxOccurs="1"/>
            <xs:element name="creditor-id" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="consumer-id" type="string50" minOccurs="0" maxOccurs="1"/>
            <xs:element name="api-id" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="api-transaction-id" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="redirect-url" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="processing-redirect-url" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="pending-redirect-url" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="cancel-redirect-url" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="fail-redirect-url" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="success-redirect-url" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="locale" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="psp-name" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="custom-css-url" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="aft-bai-type" type="aft-bai-type" minOccurs="0" maxOccurs="1"/>
            <!-- YYYY-MM-DD format-->
            <xs:element name="due-date" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="capture-date" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="expiration-date" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="initialization-date" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="hyperlink-expiration-time-stamp" type="xs:dateTime" minOccurs="0" maxOccurs="1"/>
            <xs:element name="files" type="files" minOccurs="0" maxOccurs="1"/>
            <xs:element name="invoice" type="invoice" minOccurs="0" maxOccurs="1"/>
            <xs:element name="entry-mode" type="entry-mode" minOccurs="0" maxOccurs="1"/>
            <xs:element name="periodic" type="periodic" minOccurs="0" maxOccurs="1"/>
            <xs:element name="wallet" type="wallet" minOccurs="0" maxOccurs="1"/>
            <xs:element name="country" type="country" minOccurs="0" maxOccurs="1"/>
            <xs:element name="settlement" type="settlement" minOccurs="0" maxOccurs="1"/>
            <xs:element name="batch" type="batch" minOccurs="0" maxOccurs="1"/>
            <xs:element name="consumer" type="consumer" minOccurs="0" maxOccurs="1"/>
            <xs:element name="avs" type="avs" minOccurs="0" maxOccurs="1"/>
            <xs:element name="audit" type="audit" minOccurs="0" maxOccurs="1"/>
            <xs:element name="provider-transaction-reference-id" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="risk-reference-id" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="card-bin-id" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="non-gambling-oct-type" type="non-gambling-oct-type" minOccurs="0" maxOccurs="1"/>
            <xs:element name="reversal-type" type="reversal-type" minOccurs="0" maxOccurs="1"/>
            <xs:element name="credit-sender-data" type="credit-sender-data" minOccurs="0" maxOccurs="1"/>
            <xs:element name="pan-bank" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="pan-country" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <!-- device element-->
            <xs:element name="device" type="device" minOccurs="0" maxOccurs="1"/>

            <!-- pos element-->
            <xs:element name="pos" type="pos" minOccurs="0" maxOccurs="1"/>
            <xs:element name="iso" type="iso" minOccurs="0" maxOccurs="1"/>
            <xs:element name="iso-recon" type="iso-recon" minOccurs="0" maxOccurs="1"/>

            <!-- voucher -->
            <xs:element name="voucher-id" type="voucher-card-id" minOccurs="0" maxOccurs="1"/>
            <xs:element name="voucher" type="voucher" minOccurs="0" maxOccurs="1"/>

            <xs:element name="instrument-country" type="country" minOccurs="0" maxOccurs="1"/>
            <!-- masterpass related fields -->
            <xs:element name="request-type" type="request-type" minOccurs="0" maxOccurs="1"/>
            <xs:element name="merchant-origin-url" type="url" minOccurs="0" maxOccurs="1"/>
            <xs:element name="customer-id" type="xs:string" minOccurs="0" maxOccurs="1"/>

            <!-- signature -->
            <xs:element name="signature" type="signature" minOccurs="0" maxOccurs="1"/>

            <xs:element name="sub-merchant-info" type="sub-merchant-info" minOccurs="0" maxOccurs="1"/>
            <xs:element name="one-time-password" type="xs:string" minOccurs="0" maxOccurs="1"/>

            <!--browser-->
            <xs:element name="browser" type="browser" minOccurs="0" maxOccurs="1"/>
            <xs:element name="additional-provider-data" type="additional-provider-data" minOccurs="0" maxOccurs="1"/>

            <!-- Bank MID -->
            <xs:element name="provider-account-id" type="xs:string" minOccurs="0" maxOccurs="1"/>

            <xs:element name="batch-number" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="additional-merchant-data" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="b2b" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
            <xs:element name="auto-capture" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
            <xs:element name="display-surcharge" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
            <xs:element name="payment-account-reference" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <!--onus-->
            <xs:element name="onus" type="onus" minOccurs="0" maxOccurs="1"/>

            <!-- surcharge / fee -->
            <xs:element name="surcharge" type="surcharge" minOccurs="0" maxOccurs="1"/>
            <xs:element name="shop" type="shop" minOccurs="0" maxOccurs="1"/>
            <xs:element name="installment-plan-options" type="installment-plan-options" minOccurs="0" maxOccurs="1"/>

			<!-- 3DS 2.0 risk-info -->
			<xs:element name="risk-info" type="risk-info" minOccurs="0" maxOccurs="1"/>

            <xs:element name="qr-code" type="xs:string" minOccurs="0" maxOccurs="1"/>
        </xs:all>
        <xs:attribute name="self" type="url" use="optional"/>
    </xs:complexType>
    <xs:element name="payment" type="payment"/>

    <xs:simpleType name="device-type">
        <xs:restriction base="xs:token">
            <xs:enumeration value="pc"/>
            <xs:enumeration value="mobile"/>
            <xs:enumeration value="tablet"/>
            <xs:enumeration value="other"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="encoding">
        <xs:restriction base="xs:string">
            <xs:enumeration value="base64"/>
            <xs:enumeration value="hex"/>
            <xs:enumeration value="none"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="device-os">
        <xs:restriction base="xs:token">
            <xs:enumeration value="windows"/>
            <xs:enumeration value="linux"/>
            <xs:enumeration value="android"/>
            <xs:enumeration value="ios"/>
            <xs:enumeration value="windows-mobile"/>
            <xs:enumeration value="other"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="credit-sender-data">
        <xs:all>
            <xs:element name="receiver-name" type="name" minOccurs="0" maxOccurs="1"/>
            <xs:element name="receiver-last-name" type="name" minOccurs="0" maxOccurs="1"/>
            <xs:element name="reference-number" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="sender-account-number" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="sender-name" type="name" minOccurs="0" maxOccurs="1"/>
            <xs:element name="sender-last-name" type="name" minOccurs="0" maxOccurs="1"/>
            <xs:element name="sender-address" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="sender-city" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="sender-country" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="sender-state" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="sender-postal-code" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="sender-funds-source" type="xs:string" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="shop">
        <xs:all>
            <xs:element name="system-name" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="system-version" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="plugin-name" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="plugin-version" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="integration-type" type="xs:string" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="installment-plan-options">
        <xs:all>
            <xs:element name="plan-type" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="payment-option" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="available-installment-plan-options" type="available-installment-plan-options" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="available-installment-plan-options">
        <xs:sequence>
             <xs:element name="installment-plan-option" type="installment-plan-option" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="installment-plan-option">
        <xs:all>
            <xs:element name="plan-id" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="first-payment-amount" type="money" minOccurs="0" maxOccurs="1"/>
            <xs:element name="monthly-payment-amount" type="money" minOccurs="0" maxOccurs="1"/>
            <xs:element name="total-payment-amount" type="money" minOccurs="0" maxOccurs="1"/>
            <xs:element name="tenure" type="integer4" minOccurs="0" maxOccurs="1"/>
            <xs:element name="tenure-unit" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="interest-rate" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
            <xs:element name="annual-interest-rate" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
            <xs:element name="management-fee" type="money" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>
</xs:schema>
Custom URL: