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

Download the XSD file: 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">
    <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 value="1"/>
            <xs:maxInclusive value="4"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="integer96">
        <xs:restriction base="xs:int">
            <xs:minInclusive value="1"/>
            <xs:maxInclusive value="96"/>
        </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="evoucher"/>
            <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:enumeration value="unknown"/>
        </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="account-get"/>
            <xs:enumeration value="account-update"/>
            <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-authorization-only"/>
            <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:enumeration value="cutover"/>
            <xs:enumeration value="reversal-final-authorization"/>
            <xs:enumeration value="reversal-preauthorization"/>
            <xs:enumeration value="reversal-void-capt-final-auth"/>
            <xs:enumeration value="reversal-void-capt-preauth"/>
            <xs:enumeration value="unknown"/>
        </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: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="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="klarna-finance"/>
            <xs:enumeration value="klarna-debit"/>
            <xs:enumeration value="klarna-paylater"/>
            <xs:enumeration value="klarna-transfer"/>
            <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="payright"/>
            <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:enumeration value="plusdebit"/>
            <xs:enumeration value="unknown"/>
        </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})(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="string32">
        <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"/>
            </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"/>
            <xs:element name="level" type="xs:string" minOccurs="0"/>
            <xs:element name="unit" type="xs:string" minOccurs="0"/>
            <xs:element name="street1" type="xs:string"/>
            <xs:element name="street2" type="xs:string" minOccurs="0"/>
                        <xs:element name="street3" type="xs:string" minOccurs="0"/>
            <xs:element name="city" type="xs:string"/>
            <xs:element name="state" type="xs:string" minOccurs="0"/>
            <xs:element name="country" type="country"/>
            <xs:element name="postal-code" type="xs:string" minOccurs="0"/>
            <xs:element name="house-extension" type="xs:string" minOccurs="0"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="account-holder">
        <xs:all>
            <xs:element name="first-name" type="name" minOccurs="0"/>
            <xs:element name="last-name" type="name" minOccurs="0"/>
            <xs:element name="email" type="email" minOccurs="0"/>
            <xs:element name="gender" type="gender" minOccurs="0"/>
            <xs:element name="date-of-birth" type="xs:string" minOccurs="0"/>
            <xs:element name="phone" type="xs:string" minOccurs="0"/>
            <xs:element name="mobile-phone" type="xs:string" minOccurs="0"/>
            <xs:element name="phone-country-code" type="xs:string" minOccurs="0"/>
            <xs:element name="work-phone" type="xs:string" minOccurs="0"/>
            <xs:element name="address" type="address" minOccurs="0"/>
            <xs:element name="merchant-crm-id" type="xs:string" minOccurs="0"/>
            <xs:element name="social-security-number" type="xs:string" minOccurs="0"/>
            <xs:element name="tax-number" type="xs:string" minOccurs="0"/>
            <xs:element name="account-info" type="account-info" minOccurs="0"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="account-info">
        <xs:all>
            <xs:element name="authentication-method" type="authentication-type" minOccurs="0"/>
            <xs:element name="authentication-timestamp" type="xs:dateTime" minOccurs="0"/>
            <xs:element name="challenge-indicator" type="challenge-type" minOccurs="0"/>
            <xs:element name="creation-date" type="xs:date" minOccurs="0"/>
            <xs:element name="update-date" type="xs:date" minOccurs="0"/>
            <xs:element name="password-change-date" type="xs:date" minOccurs="0"/>
            <xs:element name="shipping-address-first-use" type="xs:date" minOccurs="0"/>
            <xs:element name="transactions-last-day" type="xs:int" minOccurs="0"/>
            <xs:element name="transactions-last-year" type="xs:int" minOccurs="0"/>
            <xs:element name="card-transactions-last-day" type="xs:int" minOccurs="0"/>
            <xs:element name="purchases-last-six-months" type="xs:int" minOccurs="0"/>
            <xs:element name="suspicious-activity" type="xs:boolean" minOccurs="0"/>
            <xs:element name="card-creation-date" type="xs:date" minOccurs="0"/>
        </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"/>
            <xs:element name="last-name" type="name"/>
            <xs:element name="email" type="email" minOccurs="0"/>
            <xs:element name="gender" type="gender" minOccurs="0"/>
            <!-- DD-MM-YYYY format-->
            <xs:element name="date-of-birth" type="xs:string" minOccurs="0"/>
            <xs:element name="phone" type="xs:string" minOccurs="0"/>
            <xs:element name="address" type="address" minOccurs="0"/>
            <xs:element name="merchant-crm-id" type="xs:string" minOccurs="0"/>
            <xs:element name="social-security-number" type="xs:string" minOccurs="0"/>
            <xs:element name="tax-number" type="xs:string" minOccurs="0"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="shipping">
        <xs:all>
            <xs:element name="first-name" type="name"/>
            <xs:element name="last-name" type="name"/>
            <xs:element name="phone" type="xs:string" minOccurs="0"/>
            <xs:element name="address" type="address"/>
            <xs:element name="email" type="email" minOccurs="0"/>
            <xs:element name="shipping-method" type="shipping-method" minOccurs="0"/>
            <xs:element name="tracking-number" type="xs:string" minOccurs="0"/>
            <xs:element name="tracking-url" type="xs:string" minOccurs="0"/>
            <xs:element name="shipping-company" type="xs:string" minOccurs="0"/>
            <xs:element name="return-tracking-number" type="xs:string" minOccurs="0"/>
            <xs:element name="return-tracking-url" type="xs:string" minOccurs="0"/>
            <xs:element name="return-shipping-company" type="xs:string" minOccurs="0"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="loyalty-card">
        <xs:all>
            <xs:element name="account-number" type="account-number" minOccurs="0"/>
            <xs:element name="personal-identification-number" type="personal-identification-number" minOccurs="0"
                       />
            <xs:element name="promotion-code" type="promotion-code" minOccurs="0"/>
            <!-- YYYY-DD-MM format-->
            <xs:element name="activity-date" type="xs:string" minOccurs="0"/>
            <xs:element name="user-id" type="xs:string" minOccurs="0" />
            <xs:element name="card-id" type="xs:string" minOccurs="0" />
            <xs:element name="product-code" 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:element name="advanced-deposit" type="money" minOccurs="0"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="auto-rental-industry">
        <xs:all>
                <xs:element name="agreement-number" type="xs:string"/>
                <xs:element name="renter-name" type="xs:string"/>
                <xs:element name="vehicle-id" type="xs:string" minOccurs="0"/>
                <xs:element name="vehicle-class" type="xs:string" minOccurs="0"/>
                <xs:element name="driver-id" type="xs:string" minOccurs="0"/>
                <xs:element name="pickup-locn-name" type="xs:string" minOccurs="0"/>
                <xs:element name="pickup-city-name" type="xs:string"/>
                <xs:element name="pickup-region-code" type="xs:string"/>
                <xs:element name="pickup-country-code" type="xs:string"/>
                <xs:element name="pickup-date-time" type="xs:dateTime"/>
                <xs:element name="return-locn-name" type="xs:string" minOccurs="0"/>
                <xs:element name="return-city-name" type="xs:string"/>
                <xs:element name="return-region-code" type="xs:string"/>
                <xs:element name="return-country-code" type="xs:string"/>
                <xs:element name="return-date-time" type="xs:date"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="communication-industry">
        <xs:all>
                <xs:element name="call-from-date-time" type="xs:dateTime"/>
                   <!-- xs:element name="call-duration-time" type="xs:string"/ -->
                <xs:element name="call-from-locn-name" type="xs:string"/>
                <xs:element name="call-from-region-code" type="xs:string" minOccurs="0"/>
                <xs:element name="call-from-country-code" type="xs:string" minOccurs="0"/>
                <xs:element name="call-from-phone-number" type="xs:string"/>
                <xs:element name="call-to-date-time" type="xs:dateTime"/>
                <xs:element name="call-to-locn-name" type="xs:string"/>
                <xs:element name="call-to-region-code" type="xs:string" minOccurs="0"/>
                <xs:element name="call-to-country-code" type="xs:string" minOccurs="0"/>
                <xs:element name="call-to-phone-number" type="xs:string"/>
                <xs:element name="phone-card-id" type="xs:string" minOccurs="0"/>
                <xs:element name="service-description" type="xs:string" minOccurs="0"/>
                <xs:element name="billing-period" type="xs:string" minOccurs="0"/>
                <xs:element name="call-type-code" type="xs:string" minOccurs="0"/>
                <xs:element name="rate-class-code" type="xs:string" minOccurs="0"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="entertainment-industry">
        <xs:all>
            <xs:element name="event-name" type="xs:string" minOccurs="0"/>
                <xs:element name="event-date" type="xs:date"/>
                <xs:element name="event-locn-name" type="xs:string" minOccurs="0"/>
                <xs:element name="event-region-code" type="xs:string" minOccurs="0"/>
                <xs:element name="event-country-code" type="xs:string" minOccurs="0"/>
                <xs:element name="event-ticket-price" type="money" minOccurs="0"/>
                <xs:element name="event-ticket-cnt" type="xs:int" minOccurs="0"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="insurance-industry">
        <xs:all>
            <xs:element name="policy-number" type="xs:string"/>
                <xs:element name="coverage-start-date" type="xs:date"/>
                <xs:element name="coverage-end-date" type="xs:date"/>
                <xs:element name="policy-premium-frequency" type="xs:string" minOccurs="0"/>
                <xs:element name="additional-policy-number" type="xs:string" minOccurs="0"/>
                <xs:element name="policy-type" type="xs:string"/>
                <xs:element name="insured-name" type="xs:string" minOccurs="0"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="cps-industry">
        <xs:all>
            <xs:element name="requester-name" type="xs:string" minOccurs="0"/>
                <xs:element name="order-items" type="order-items" minOccurs="0"/>
                <xs:element name="cardmember-reference-number" type="xs:string" minOccurs="0"/>
                <xs:element name="ship-to-postal-code" type="xs:string" />
                <xs:element name="ship-to-country-code" type="xs:string" />
                <xs:element name="total-tax-amout" type="money" minOccurs="0"/>
                <xs:element name="tax-type-code" type="xs:string" 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"/>
            <xs:element name="expiration-month" type="month" nillable="true"/>
            <xs:element name="expiration-year" type="year" nillable="true"/>
            <xs:element name="issue-number" type="xs:short" minOccurs="0"/>
            <xs:element name="start-month" type="month" minOccurs="0"/>
            <xs:element name="start-year" type="year" minOccurs="0"/>
            <xs:element name="card-security-code" type="card-security-code" minOccurs="0"/>
            <xs:element name="card-type" type="card-type"/>
            <xs:element name="account-type" type="account-type" minOccurs="0"/>
            <xs:element name="card-last-four" type="xs:token" minOccurs="0"/>
            <xs:element name="track-1" type="xs:string" minOccurs="0"/>
            <xs:element name="track-2" type="xs:string" minOccurs="0"/>
            <xs:element name="pin-data" type="xs:string" minOccurs="0"/>
            <!-- pin-data should be replaced with cardPin - KIV and to be removed -->
            <xs:element name="card-emv" type="card-emv" minOccurs="0"/>
            <xs:element name="card-pin" type="card-pin" minOccurs="0"/>
            <xs:element name="card-raw" type="card-raw" minOccurs="0"/>
            <xs:element name="card-token" type="card-token" minOccurs="0"/>
            <xs:element name="merchant-tokenization-flag" type="xs:boolean" minOccurs="0"/>
            <xs:element name="customer-reference-id" type="string32" minOccurs="0"/>
        </xs:all>
        <xs:attribute name="selection" type="card-type-selection" use="optional"/>
    </xs:complexType>
    <xs:simpleType name="card-type-selection">
        <xs:annotation>
            <xs:documentation>Card type selection attribute. Supported values:
                'default',
                'cardholder'.
                The default value is 'default' if not provided.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:token">
            <xs:enumeration value="default"/>
            <xs:enumeration value="cardholder"/>
        </xs:restriction>
    </xs:simpleType>
        <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:simpleType name="icc-data-format-type">
        <xs:annotation>
            <xs:documentation>ICC Data Format. Supported values:
                'emvlab',
                'gicc'.
                The default value is 'emvlab' if not provided.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:token">
            <xs:enumeration value="emvlab"/>
            <xs:enumeration value="gicc"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="card-emv">
        <xs:all>
            <xs:element name="request-icc-data" type="xs:string" minOccurs="0"/>
            <xs:element name="request-icc-data-encoding" type="xs:string" minOccurs="0"/>
            <xs:element name="request-icc-data-format" type="icc-data-format-type" minOccurs="0" default="emvlab"/>
            <xs:element name="response-icc-data" type="xs:string" minOccurs="0"/>
            <xs:element name="response-icc-data-encoding" type="xs:string" minOccurs="0"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="card-pin">
        <xs:all>
            <xs:element name="data" type="xs:string" minOccurs="0"/>
            <xs:element name="encoding" type="xs:string" minOccurs="0"/>
            <xs:element name="format" type="xs:string" minOccurs="0"/>
            <xs:element name="encryption-context" type="encryption-context" minOccurs="0"/>
            <xs:element name="encryption-version" type="xs:string" minOccurs="0"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="card-raw">
        <xs:all>
            <xs:element name="data" type="xs:string" minOccurs="0"/>
            <xs:element name="encoding" type="xs:string" minOccurs="0"/>
            <xs:element name="format" type="xs:string" minOccurs="0"/>
            <xs:element name="encryption-context" type="encryption-context" minOccurs="0"/>
            <xs:element name="encryption-version" type="xs:string" minOccurs="0"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="encryption-context">
        <xs:all>
            <xs:element name="value" type="xs:string" minOccurs="0"/>
            <xs:element name="version" type="xs:string" minOccurs="0"/>
            <xs:element name="algorithm" type="xs:string" minOccurs="0"/>
            <xs:element name="parameter" type="xs:string" minOccurs="0"/>
            <xs:element name="padding" type="xs:string" minOccurs="0"/>
            <xs:element name="generation" type="xs:string" minOccurs="0"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="card-data">
        <xs:all>
            <xs:element name="issuer-name" type="xs:string" minOccurs="0"/>
            <xs:element name="cc-category" type="xs:string" minOccurs="0"/>
            <xs:element name="cc-category-ext" type="xs:string" minOccurs="0"/>
            <xs:element name="cc-product-id" type="xs:string" minOccurs="0"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="card-token">
        <xs:all>
            <xs:element name="token-id" type="uuid" minOccurs="0"/>
            <xs:element name="token-ext-id" type="token-ext-id" minOccurs="0"/>
            <xs:element name="masked-account-number" type="xs:string" minOccurs="0"/>
            <xs:element name="alias" type="xs:string" minOccurs="0"/>
            <xs:element name="recurring-cvc-mandatory" type="xs:boolean" minOccurs="0"/>
        </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"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="cryptogram">
        <xs:all>
            <xs:element name="cryptogram-type" type="cryptogram-type"/>
            <xs:element name="cryptogram-value" type="xs:string"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="notification">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="transaction-state" type="transaction-state"/>
                <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="99"/>
        </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="99"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="card-types">
        <xs:sequence>
            <xs:element name="card-type" type="card-type" minOccurs="0" maxOccurs="99"/>
        </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="99"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="payment-method">
        <xs:sequence>
            <xs:element name="card-types" type="card-types" minOccurs="0"/>
            <xs:element name="payload" type="payload" minOccurs="0"/>
        </xs:sequence>
        <xs:attribute name="url" type="xs:string"/>
        <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="99"/>
        </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"/>
                <xs:attribute name="provider-code" type="xs:string"/>
                <xs:attribute name="provider-message" type="xs:string"/>
                <xs:attribute name="field" type="xs:string"/>
                <xs:attribute name="detail" type="xs:string"/>
                <xs:attribute name="acquirer-response-code" type="xs:string"/>
                <xs:attribute name="au-pe-code" type="xs:string"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="statuses">
        <xs:sequence>
            <xs:element name="status" type="status" maxOccurs="99"/>
        </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:enumeration value="physical"/>
            <xs:enumeration value="sales_tax"/>
            <xs:enumeration value="digital"/>
            <xs:enumeration value="gift_card"/>
            <xs:enumeration value="store_credit"/>
        </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"/>

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

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

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

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

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

            <xs:element name="cardholder-authentication-status" type="xs:string" minOccurs="0">
                <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"/>
            <xs:element name="server-transaction-id" type="xs:string" minOccurs="0"/>
            <xs:element name="version_requested" type="xs:string" minOccurs="0"/>
            <xs:element name="version" type="xs:string" minOccurs="0"/>
            <xs:element name="ds-transaction-id" type="xs:string" minOccurs="0"/>
            <xs:element name="no-challenge-requested" type="no-challenge-requested" minOccurs="0"/>
            <xs:element name="frictionless" type="xs:string" minOccurs="0">
                <xs:annotation>
                    <xs:documentation xml:lang="en">Possible values are Y, N.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:all>
    </xs:complexType>
    <xs:simpleType name="no-challenge-requested">
        <xs:restriction base="xs:string">
            <xs:enumeration value="low-fraud"/>
            <xs:enumeration value="low-value"/>
            <xs:enumeration value="strong-customer-authentication"/>
            <xs:enumeration value="trusted-merchant"/>
            <xs:enumeration value="corporate-payment"/>
        </xs:restriction>
    </xs:simpleType>
        <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"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="browser">
        <xs:all>
            <xs:element name="accept" type="string2048" minOccurs="0"/>
            <xs:element name="user-agent" type="string256" minOccurs="0"/>
            <xs:element name="ip-address" type="ip-address" minOccurs="0"/>

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

            <xs:element name="headers" type="headers" minOccurs="0"/>
            <xs:element name="cookies" type="cookies" minOccurs="0"/>
            <xs:element name="challenge-window-size" type="window-size" minOccurs="0"/>
            <xs:element name="color-depth" type="xs:int" minOccurs="0"/>
            <xs:element name="java-enabled" type="xs:boolean" minOccurs="0"/>
            <xs:element name="language" type="xs:string" minOccurs="0"/>
        </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="99"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="cookie">
        <xs:all>
            <xs:element name="name" type="xs:string"/>
            <xs:element name="value" type="xs:string"/>
            <xs:element name="domain" type="xs:string" minOccurs="0"/>
            <xs:element name="path" type="xs:string" minOccurs="0"/>
            <xs:element name="max-age" type="xs:long" minOccurs="0"/>
            <xs:element name="secure" type="xs:boolean" minOccurs="0"/>
            <xs:element name="http-only" type="xs:boolean" minOccurs="0"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="headers">
        <xs:sequence>
            <xs:element name="header" type="header" minOccurs="0" maxOccurs="99"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="header">
        <xs:all>
            <xs:element name="name" type="xs:string"/>
            <xs:element name="value" type="xs:string"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="segment">
        <xs:all>
            <xs:element name="carrier-code" type="xs:string"/>
            <xs:element name="departure-airport-code" type="xs:string"/>
            <xs:element name="departure-city-code" type="xs:string"/>
            <xs:element name="arrival-airport-code" type="xs:string"/>
            <xs:element name="arrival-city-code" type="xs:string"/>
            <xs:element name="departure-date" type="xs:date"/>
            <xs:element name="arrival-date" type="xs:date"/>
            <xs:element name="flight-number" type="xs:string" minOccurs="0"/>
            <xs:element name="fare-class" type="xs:string" minOccurs="0"/>
            <xs:element name="fare-basis" type="xs:string" minOccurs="0"/>
            <xs:element name="stop-over-code" type="zero-or-one" minOccurs="0"/>
            <xs:element name="tax-amount" type="money" minOccurs="0"/>
        </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"/>
            <xs:element name="origin-location" type="location" minOccurs="0"/>
            <xs:element name="destination-location" type="location" minOccurs="0"/>
            <xs:element name="valid-from" type="xs:dateTime" minOccurs="0"/>
            <xs:element name="valid-until" type="xs:dateTime" minOccurs="0"/>
            <xs:element name="transferable" type="xs:boolean" minOccurs="0"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="location">
        <xs:all>
            <xs:element name="name" type="xs:string" minOccurs="0"/>
            <xs:element name="address" type="address" minOccurs="0"/>
        </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"/>
            <xs:element name="branch-city" type="xs:string" minOccurs="0"/>
            <xs:element name="branch-state" type="xs:string" minOccurs="0"/>
            <xs:element name="branch-address" type="xs:string" minOccurs="0"/>
            <xs:element name="iban" type="xs:string" minOccurs="0"/>
            <xs:element name="bic" type="xs:string" minOccurs="0"/>
            <xs:element name="account-number" type="xs:string" minOccurs="0"/>
            <xs:element name="bank-code" type="xs:string" minOccurs="0"/>

            <!-- boleto refunding fields -->
            <xs:element name="type" type="bank-account-type" minOccurs="0"/>
            <xs:element name="agency-number" type="xs:string" minOccurs="0"/>
            <xs:element name="agency-check-number" type="xs:string" minOccurs="0"/>
            <xs:element name="account-check-number" type="xs:string" minOccurs="0"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="mandate">
        <xs:all>
            <xs:element name="mandate-id" type="xs:string" minOccurs="0"/>
            <!-- YYYY-MM-DD format--><!--http://www.w3.org/TR/xmlschema-2/#dateTime-order-->
            <xs:element name="signed-date" type="xs:string" minOccurs="0"/>
            <xs:element name="signed-city" type="xs:string" minOccurs="0"/>
            <!-- base64 encoded image-->
            <xs:element name="signature-image" type="xs:string" minOccurs="0"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="invoice">
        <xs:all>
            <xs:element name="invoice-number" type="xs:string" minOccurs="0"/>
            <!-- YYYY-MM-DD format--><!--http://www.w3.org/TR/xmlschema-2/#dateTime-order-->
            <xs:element name="invoice-date" type="xs:string" minOccurs="0"/>
            <xs:element name="invoice-url" type="xs:string" minOccurs="0"/>
            <xs:element name="delivery-method" type="delivery-method" minOccurs="0"/>
        </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="99"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="file">
        <xs:all>
            <xs:element name="content" type="xs:string" minOccurs="0"/>
            <xs:element name="type-id" type="xs:string" minOccurs="0"/>
            <xs:element name="name" type="xs:string" minOccurs="0"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="onus">
        <xs:all>
            <xs:element name="provider-acquirer-code" type="xs:string" minOccurs="0"/>
            <xs:element name="provider-acquirer-name" type="xs:string" minOccurs="0"/>
        </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"/>
            <xs:element name="program-id" type="xs:string" minOccurs="0"/>
            <xs:element name="plan-code" type="xs:string" minOccurs="0"/>
            <xs:element name="plan-type" type="xs:string" minOccurs="0"/>
            <xs:element name="first-payment-amount" type="money" minOccurs="0"/>
            <xs:element name="monthly-payment-amount" type="money" minOccurs="0"/>
            <xs:element name="last-payment-amount" type="money" minOccurs="0"/>
            <xs:element name="total-payment-amount" type="money" minOccurs="0"/>
            <xs:element name="tenure" type="integer96" minOccurs="0"/>
            <xs:element name="tenure-unit" type="xs:string" minOccurs="0"/>
            <xs:element name="interest-rate" type="xs:decimal" minOccurs="0"/>
            <xs:element name="annual-interest-rate" type="xs:decimal" minOccurs="0"/>
            <xs:element name="acquirer-code" type="xs:string" minOccurs="0"/>
            <xs:element name="interest-payer" type="string1" minOccurs="0"/>
            <xs:element name="management-fee" type="money" minOccurs="0"/>
            <xs:element name="interest-type" type="xs:int" minOccurs="0"/>
            <xs:element name="interest-mode" type="xs:string" minOccurs="0"/>
        </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"/>
            <xs:element name="sequence-type" type="sequence-type" minOccurs="0"/>
            <xs:element name="number-of-installments" type="integer4" minOccurs="0"/>
                        <!-- 3DS 2.0 -->
            <!-- YYYY-MM-DD format-->
            <xs:element name="recurring-expire-date" type="xs:date" minOccurs="0"/>
            <xs:element name="installment-plan" type="installment-plan" minOccurs="0"/>
            <xs:element name="recurring-frequency" type="xs:int" minOccurs="0"/>
        </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"/>
            <xs:element name="merchant-id" type="xs:string" minOccurs="0"/>
            <xs:element name="request-token" type="xs:string" minOccurs="0"/>
            <xs:element name="pair-token" type="xs:string" minOccurs="0"/>
            <xs:element name="card-id" type="xs:string" minOccurs="0"/>
            <xs:element name="address-id" type="xs:string" minOccurs="0"/>
            <xs:element name="provider-ref" type="xs:string" minOccurs="0"/>
            <xs:element name="provider-transaction-id" type="xs:string" minOccurs="0"/>
            <xs:element name="wallet-data" type="xs:string" minOccurs="0"/>
            <xs:element name="type" type="xs:string" minOccurs="0"/>
            <xs:element name="indicator" type="xs:string" minOccurs="0"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="settlement">
        <xs:all>
            <xs:element name="gross-amount" type="xs:decimal"/>
            <xs:element name="currency" type="currency"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="batch">
        <xs:all>
            <xs:element name="file-name" type="xs:string" minOccurs="0"/>
            <xs:element name="record-number" type="xs:string" minOccurs="0"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="pos">
        <xs:all>
            <xs:element name="merchant-id" type="xs:string" minOccurs="0"/>
            <xs:element name="terminal-id" type="xs:string" minOccurs="0"/>
        </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"/>
            <xs:element name="description" type="xs:string" minOccurs="0"/>
            <xs:element name="article-number" type="xs:string" minOccurs="0"/>
            <xs:element name="amount" type="money"/>
            <xs:element name="tax-amount" type="money" minOccurs="0"/>
            <xs:element name="tax-rate" type="xs:decimal" minOccurs="0"/>
            <xs:element name="quantity" type="xs:short"/>
            <xs:element name="type" type="order-item-type" minOccurs="0"/>
            <xs:element name="discount" type="xs:decimal" minOccurs="0"/>
            <xs:element name="product-url" type="xs:string" minOccurs="0"/>
            <xs:element name="category-path" type="xs:string" minOccurs="0"/>
            <xs:element name="brand" type="xs:string" minOccurs="0"/>
            <xs:element name="global-trade-item-number" type="xs:string" minOccurs="0"/>
            <xs:element name="manufacturer-part-number" type="xs:string" minOccurs="0"/>
            <xs:element name="image-url" type="xs:string" minOccurs="0"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="order-items">
        <xs:sequence>
            <xs:element name="order-item" type="order-item" maxOccurs="99"/>
        </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="99"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="iso">
        <xs:all>
            <xs:element name="merchant-id" type="xs:string" minOccurs="0"/>
            <xs:element name="terminal-id" type="xs:string" minOccurs="0"/>
            <xs:element name="bank-terminal-id" type="xs:string" minOccurs="0"/>
            <xs:element name="response-code" type="xs:string" minOccurs="0"/>
            <xs:element name="approval-code" type="xs:string" minOccurs="0"/>
            <xs:element name="retrieval-reference-number" type="xs:string" minOccurs="0"/>
            <xs:element name="invoice-number" type="xs:string" minOccurs="0"/>

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

            <xs:element name="transmission-date-time" type="xs:string" minOccurs="0"/>
            <xs:element name="network-management-info-code" type="xs:string" minOccurs="0"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="iso-recon">
        <xs:all>
            <xs:element name="captured-sale-count" type="xs:string" minOccurs="0"/>
            <xs:element name="captured-sale-amount" type="xs:string" minOccurs="0"/>
            <xs:element name="captured-refund-count" type="xs:string" minOccurs="0"/>
            <xs:element name="captured-refund-amount" type="xs:string" minOccurs="0"/>
            <xs:element name="authorized-sale-count" type="xs:string" minOccurs="0"/>
            <xs:element name="authorized-sale-amount" type="xs:string" minOccurs="0"/>
            <xs:element name="authorized-refund-count" type="xs:string" minOccurs="0"/>
            <xs:element name="authorized-refund-amount" type="xs:string" minOccurs="0"/>
            <xs:element name="response-text" type="xs:string" minOccurs="0"/>
            <xs:element name="number-of-reversal" type="xs:string" minOccurs="0"/>
            <xs:element name="number-of-adjustment" type="xs:string" minOccurs="0"/>
            <xs:element name="number-of-roc" type="xs:string" minOccurs="0"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="device">
        <xs:all>
            <xs:element name="fingerprint" type="xs:string" minOccurs="0"/>
            <xs:element name="policy-score" type="xs:int" minOccurs="0"/>
            <xs:element name="type" type="device-type" minOccurs="0"/>
            <xs:element name="operating-system" type="device-os" minOccurs="0"/>
            <xs:element name="render-options" type="render-options" minOccurs="0"/>
            <xs:element name="sdk" type="sdk-type" minOccurs="0"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="render-options">
        <xs:all>
            <xs:element name="interface" type="render-type" minOccurs="0"/>
            <xs:element name="ui-type" type="ui-type" minOccurs="0"/>
        </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" />
            <xs:element name="application-id" type="xs:string" minOccurs="0" />
            <xs:element name="encrypted-data" type="xs:string" minOccurs="0" />
            <xs:element name="public-key" type="xs:string" minOccurs="0" />
            <xs:element name="reference-number" type="xs:string" minOccurs="0" />
            <xs:element name="transaction-id" type="xs:string" minOccurs="0" />
        </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"/>
            <xs:element name="voucher-brand-id" type="xs:string" minOccurs="0"/>
            <xs:element name="voucher-token-id" type="xs:string" minOccurs="0"/>
            <xs:element name="voucher-description" type="xs:string" minOccurs="0"/>
            <xs:element name="voucher-serial-number" type="xs:string" minOccurs="0"/>
            <xs:element name="voucher-alternative-amount" type="alternative-amount" minOccurs="0"/>
            <xs:element name="voucher-type" type="xs:string" minOccurs="0"/>
            <xs:element name="voucher-instant-activation" type="xs:boolean" minOccurs="0" />
            <xs:element name="voucher-state" type="xs:string" minOccurs="0" />
            <xs:element name="voucher-amount" type="money" minOccurs="0"/>
            <xs:element name="voucher-expiration-date" type="xs:dateTime" minOccurs="0"/>
        </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"/>
            <xs:element name="signature-value" type="xs:string" minOccurs="0"/>
            <xs:element name="signature-encoding" type="xs:string" minOccurs="0"/>
            <xs:element name="receipt-data" type="xs:string" minOccurs="0"/>
            <xs:element name="system-trace-number" type="xs:string" minOccurs="0"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="avs">
        <xs:all>
            <xs:element name="result-code" type="xs:string" minOccurs="0"/>
            <xs:element name="result-message" type="xs:string" minOccurs="0"/>
            <xs:element name="provider-result-code" type="xs:string" minOccurs="0"/>
            <xs:element name="provider-result-message" type="xs:string" minOccurs="0"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="additional-provider-data">
        <xs:sequence>
            <xs:element name="provider-data" type="provider-data" minOccurs="0" maxOccurs="99"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="provider-data">
        <xs:all>
            <xs:element name="request" type="xs:string" minOccurs="0"/>
            <xs:element name="response" type="xs:string" minOccurs="0"/>
            <xs:element name="consumer-receipt" minOccurs="0">
                <xs:complexType>
                    <xs:simpleContent>
                        <xs:extension base="xs:string">
                            <xs:attribute name="encoding" type="encoding" default="base64"/>
                            <xs:attribute name="format" 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:all>
        <xs:attribute name="provider-id" type="xs:string"/>
        <xs:attribute name="provider-transaction-id" type="xs:string"/>
    </xs:complexType>
    <xs:complexType name="audit">
        <xs:all>
            <xs:element name="request-source" type="xs:string" minOccurs="0"/>
            <xs:element name="user" type="xs:string" minOccurs="0"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="surcharge">
        <xs:all>
            <xs:element name="surcharge-amount" type="money" minOccurs="0"/>
            <xs:element name="original-requested-amount" type="money" minOccurs="0"/>
        </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"/>
            <xs:element name="delivery-mail" type="xs:string" minOccurs="0"/>
            <xs:element name="delivery-timeframe" type="delivery-timeframe" minOccurs="0"/>
            <xs:element name="gift-cards" type="gift-card-type" minOccurs="0"/>
            <xs:element name="preorder-date" type="xs:date" minOccurs="0"/>
            <xs:element name="reorder-items" type="reorder-type" minOccurs="0"/>
        </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-card-type">
        <xs:sequence>
            <xs:element name="gift-card" type="gift-type" maxOccurs="10"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="gift-type">
        <xs:all>
            <xs:element name="amount" type="money"/>
        </xs:all>
        <xs:attribute name="id" type="xs:string" use="required"/>
    </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"/>
            <xs:element name="merchant-account-resolver-category" type="string32"
                        minOccurs="0"/>
            <xs:element name="transaction-id" type="uuid" minOccurs="0"/>
            <xs:element name="request-id" type="request-id" minOccurs="0"/>
            <xs:element name="transaction-type" type="transaction-type" minOccurs="0"/>
                        <xs:element name="iso-transaction-type" type="iso-transaction-type" minOccurs="0"/>
            <xs:element name="transaction-state" type="transaction-state" minOccurs="0"/>
            <xs:element name="completion-time-stamp" type="xs:dateTime" minOccurs="0"/>
            <xs:element name="statuses" type="statuses" minOccurs="0"/>
            <xs:element name="avs-code" type="xs:token" minOccurs="0"/>
            <xs:element name="csc-code" type="xs:token" minOccurs="0"/>
            <xs:element name="requested-amount" type="money" minOccurs="0"/>
            <xs:element name="parent-transaction-id" type="uuid" minOccurs="0"/>
            <xs:element name="parent-request-id" type="uuid" minOccurs="0"/>
            <xs:element name="group-transaction-id" type="uuid" minOccurs="0"/>
            <xs:element name="account-holder" type="account-holder" minOccurs="0"/>
            <xs:element name="account-holder-requested-amount" type="money" minOccurs="0"/>
            <xs:element name="account-holder-conversion-rate" type="xs:decimal" minOccurs="0"/>
            <xs:element name="shipping" type="shipping" minOccurs="0"/>
            <xs:element name="loyalty-card" type="loyalty-card" minOccurs="0"/>
            <xs:element name="hotel-industry" type="hotel-industry" minOccurs="0"/>
            <xs:element name="card" type="card" minOccurs="0"/>
            <xs:element name="card-data" type="card-data" minOccurs="0"/>
            <xs:element name="card-token" type="card-token" minOccurs="0"/>
            <xs:element name="cryptogram" type="cryptogram" minOccurs="0"/>
            <xs:element name="ip-address" type="ip-address" minOccurs="0"/>
            <xs:element name="order-number" type="xs:string" minOccurs="0"/>
            <xs:element name="channel" type="xs:string" minOccurs="0"/>
            <xs:element name="order-detail" type="xs:string" minOccurs="0"/>
            <xs:element name="order-items" type="order-items" minOccurs="0"/>
            <xs:element name="descriptor" type="xs:string" minOccurs="0"/>
            <xs:element name="notifications" type="notifications" minOccurs="0"/>
            <xs:element name="custom-fields" type="custom-fields" minOccurs="0"/>
            <xs:element name="payment-methods" type="payment-methods" minOccurs="0"/>
            <xs:element name="acquirer-reference-number" type=