Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Interface Merchant – Acquirer

Code Block
languagexml
<?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>

...