XSD Schema iDEAL Merchant-Acquirer (without syntax highlighting)

Interface Merchant – Acquirer

<?xml version="1.0" encoding="UTF-8"?>
<!-- iDEAL Messages version 3.3.1: interface Merchant/Acquirer -->
<!-- Copyright © Currence iDEAL B.V. -->
<xs:schema
    xmlns:ds="http://www.w3.org/2000/09/xmldsig#" targetNamespace="http://www.idealdesk.com/ideal/messages/mer-acq/3.3.1" elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>
    <xs:annotation>
        <xs:documentation>elements defined</xs:documentation>
    </xs:annotation>
    <xs:element name="DirectoryReq">
        <xs:annotation>
            <xs:documentation>Directory Request (A)</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="createDateTimestamp" type="iDEAL.dateTime"/>
                <xs:element name="Merchant">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="merchantID" type="Merchant.merchantID"/>
                            <xs:element name="subID" type="Merchant.subID"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element ref="ds:Signature"/>
            </xs:sequence>
            <xs:attributeGroup ref="MessageAttributes"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="DirectoryRes">
        <xs:annotation>
            <xs:documentation>Directory Response (A')</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="createDateTimestamp" type="iDEAL.dateTime"/>
                <xs:element name="Acquirer">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="acquirerID" type="Acquirer.acquirerID"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="Directory">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="directoryDateTimestamp" type="xs:dateTime"/>
                            <xs:element name="Country" maxOccurs="unbounded">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="countryNames" type="Country.countryNames"/>
                                        <xs:element name="Issuer" maxOccurs="unbounded">
                                            <xs:complexType>
                                                <xs:sequence>
                                                    <xs:element name="issuerID" type="Issuer.issuerID"/>
                                                    <xs:element name="issuerName" type="Issuer.issuerName"/>
                                                </xs:sequence>
                                            </xs:complexType>
                                        </xs:element>
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element ref="ds:Signature"/>
            </xs:sequence>
            <xs:attributeGroup ref="MessageAttributes"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="AcquirerTrxReq">
        <xs:annotation>
            <xs:documentation>Acquirer Transaction Request (B)</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="createDateTimestamp" type="iDEAL.dateTime"/>
                <xs:element name="Issuer">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="issuerID" type="Issuer.issuerID"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="Merchant">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="merchantID" type="Merchant.merchantID"/>
                            <xs:element name="subID" type="Merchant.subID"/>
                            <xs:element name="merchantReturnURL" type="iDEAL.url"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="Transaction">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="purchaseID" type="Transaction.purchaseID"/>
                            <xs:element name="amount" type="Transaction.amount"/>
                            <xs:element name="currency" type="Transaction.currency"/>
                            <xs:element name="expirationPeriod" type="Transaction.expirationPeriod" minOccurs="0"/>
                            <xs:element name="language" type="Transaction.language"/>
                            <xs:element name="description" type="Transaction.description"/>
                            <xs:element name="entranceCode" type="Transaction.entranceCode"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element ref="ds:Signature"/>
            </xs:sequence>
            <xs:attributeGroup ref="MessageAttributes"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="AcquirerTrxRes">
        <xs:annotation>
            <xs:documentation>Acquirer Transaction Response (B')</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="createDateTimestamp" type="iDEAL.dateTime"/>
                <xs:element name="Acquirer">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="acquirerID" type="Acquirer.acquirerID"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="Issuer">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="issuerAuthenticationURL" type="Issuer.issuerAuthenticationURL"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="Transaction">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="transactionID" type="Transaction.transactionID"/>
                            <xs:element name="transactionCreateDateTimestamp" type="iDEAL.dateTime"/>
                            <xs:element name="purchaseID" type="Transaction.purchaseID"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element ref="ds:Signature"/>
            </xs:sequence>
            <xs:attributeGroup ref="MessageAttributes"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="AcquirerStatusReq">
        <xs:annotation>
            <xs:documentation>Acquirer Status Request (F)</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="createDateTimestamp" type="iDEAL.dateTime"/>
                <xs:element name="Merchant">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="merchantID" type="Merchant.merchantID"/>
                            <xs:element name="subID" type="Merchant.subID"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="Transaction">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="transactionID" type="Transaction.transactionID"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element ref="ds:Signature"/>
            </xs:sequence>
            <xs:attributeGroup ref="MessageAttributes"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="AcquirerStatusRes">
        <xs:annotation>
            <xs:documentation>Acquirer Status Response (F')</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="createDateTimestamp" type="iDEAL.dateTime"/>
                <xs:element name="Acquirer">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="acquirerID" type="Acquirer.acquirerID"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="Transaction">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="transactionID" type="Transaction.transactionID"/>
                            <xs:element name="status" type="Transaction.status"/>
                            <xs:element name="statusDateTimestamp" type="iDEAL.dateTime" minOccurs="0"/>
                            <xs:sequence minOccurs="0">
                                <xs:element name="consumerName" type="Transaction.consumerName" minOccurs="0"/>
                                <xs:element name="consumerIBAN" type="Transaction.consumerIBAN" minOccurs="0"/>
                                <xs:element name="consumerBIC" type="Transaction.consumerBIC" minOccurs="0"/>
                                <xs:element name="amount" type="Transaction.amount"/>
                                <xs:element name="currency" type="Transaction.currency"/>
                            </xs:sequence>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element ref="ds:Signature"/>
            </xs:sequence>
            <xs:attributeGroup ref="MessageAttributes"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="AcquirerErrorRes">
        <xs:annotation>
            <xs:documentation>Acquirer Error Response (X')</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="createDateTimestamp" type="xs:dateTime"/>
                <xs:element name="Error">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="errorCode" type="Error.errorCode"/>
                            <xs:element name="errorMessage" type="Error.errorMessage"/>
                            <xs:element name="errorDetail" type="Error.errorDetail" minOccurs="0"/>
                            <xs:element name="suggestedAction" type="Error.suggestedAction" minOccurs="0"/>
                            <xs:element name="consumerMessage" type="Error.consumerMessage" minOccurs="0"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element ref="ds:Signature"/>
            </xs:sequence>
            <xs:attributeGroup ref="MessageAttributes"/>
        </xs:complexType>
    </xs:element>
    <xs:annotation>
        <xs:documentation>simpleTypes defined</xs:documentation>
    </xs:annotation>
    <xs:simpleType name="Acquirer.acquirerID">
        <xs:restriction base="xs:token">
            <xs:length value="4" fixed="true"/>
            <xs:pattern value="[0-9]+"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="Country.countryNames">
        <xs:restriction base="xs:token">
            <xs:minLength value="1"/>
            <xs:maxLength value="128"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="Error.consumerMessage">
        <xs:restriction base="xs:string">
            <xs:maxLength value="512" fixed="true"/>
            <xs:minLength value="1" fixed="true"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="Error.errorCode">
        <xs:restriction base="xs:token">
            <xs:length value="6" fixed="true"/>
            <xs:pattern value="[A-Z]{2}[0-9]{4}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="Error.errorDetail">
        <xs:restriction base="xs:string">
            <xs:maxLength value="256" fixed="true"/>
            <xs:minLength value="1" fixed="true"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="Error.errorMessage">
        <xs:restriction base="xs:string">
            <xs:minLength value="1"/>
            <xs:maxLength value="128"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="Error.suggestedAction">
        <xs:restriction base="xs:string">
            <xs:maxLength value="512" fixed="true"/>
            <xs:minLength value="1" fixed="true"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="Issuer.issuerAuthenticationURL">
        <xs:restriction base="iDEAL.url"/>
    </xs:simpleType>
    <xs:simpleType name="Issuer.issuerID">
        <xs:restriction base="iDEAL.BIC"/>
    </xs:simpleType>
    <xs:simpleType name="Issuer.issuerName">
        <xs:restriction base="xs:token">
            <xs:maxLength value="35" fixed="true"/>
            <xs:minLength value="1" fixed="true"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="Merchant.merchantID">
        <xs:restriction base="xs:token">
            <xs:length value="9" fixed="true"/>
            <xs:pattern value="[0-9]+"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="Merchant.merchantReturnURL">
        <xs:restriction base="iDEAL.url"/>
    </xs:simpleType>
    <xs:simpleType name="Merchant.subID">
        <xs:restriction base="xs:nonNegativeInteger">
            <xs:maxInclusive value="999999" fixed="true"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="Transaction.amount">
        <xs:restriction base="xs:decimal">
            <xs:totalDigits value="12"/>
            <xs:fractionDigits value="2"/>
            <xs:minExclusive value="0"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="Transaction.consumerBIC">
        <xs:restriction base="iDEAL.BIC"/>
    </xs:simpleType>
    <xs:simpleType name="Transaction.consumerIBAN">
        <xs:restriction base="iDEAL.IBAN"/>
    </xs:simpleType>
    <xs:simpleType name="Transaction.consumerName">
        <xs:restriction base="xs:token">
            <xs:minLength value="1"/>
            <xs:maxLength value="70"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="Transaction.currency">
        <xs:restriction base="xs:token">
            <xs:length value="3" fixed="true"/>
            <xs:pattern value="EUR"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="Transaction.description">
        <xs:restriction base="xs:token">
            <xs:minLength value="1" fixed="true"/>
            <xs:maxLength value="35" fixed="true"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="Transaction.entranceCode">
        <xs:restriction base="xs:token">
            <xs:minLength value="1" fixed="true"/>
            <xs:maxLength value="40" fixed="true"/>
            <xs:pattern value="[a-zA-Z0-9]+"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="Transaction.expirationPeriod">
        <xs:restriction base="xs:duration">
            <xs:minInclusive value="PT1M" fixed="true"/>
            <xs:maxInclusive value="PT1H" fixed="true"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="Transaction.language">
        <xs:restriction base="iDEAL.language"/>
    </xs:simpleType>
    <xs:simpleType name="Transaction.purchaseID">
        <xs:restriction base="xs:token">
            <xs:minLength value="1"/>
            <xs:maxLength value="35"/>
            <xs:pattern value="[a-zA-Z0-9]+"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="Transaction.status">
        <xs:restriction base="xs:token">
            <xs:pattern value="Open|Success|Failure|Expired|Cancelled"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="Transaction.transactionID">
        <xs:restriction base="xs:token">
            <xs:length value="16" fixed="true"/>
            <xs:pattern value="[0-9]+"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:annotation>
        <xs:documentation>basic simpleTypes defined</xs:documentation>
    </xs:annotation>
    <xs:simpleType name="iDEAL.BIC">
        <xs:restriction base="xs:token">
            <xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="iDEAL.IBAN">
        <xs:restriction base="xs:token">
            <xs:pattern value="[a-zA-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="iDEAL.dateTime">
        <xs:restriction base="xs:dateTime">
            <xs:pattern value=".+Z"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="iDEAL.language">
        <xs:restriction base="xs:token">
            <xs:length value="2" fixed="true"/>
            <xs:pattern value="[a-z]+"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="iDEAL.url">
        <xs:restriction base="xs:anyURI">
            <xs:maxLength value="512"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="iDEAL.version">
        <xs:restriction base="xs:string">
            <xs:pattern value="3\.3\.1"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:annotation>
        <xs:documentation>attributeGroups defined</xs:documentation>
    </xs:annotation>
    <xs:attributeGroup name="MessageAttributes">
        <xs:annotation>
            <xs:documentation>attributes of each iDEAL message</xs:documentation>
        </xs:annotation>
        <xs:attribute name="version" type="iDEAL.version" use="required"/>
    </xs:attributeGroup>
</xs:schema>

Copyright © Currence iDEAL B.V. All rights reserved.