XSD Schema iDEAL Merchant-Acquirer
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="http://www.idealdesk.com/ideal/messages/mer-acq/3.3.1"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
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.