Codebase list hbci4java / 1a2263f
Update upstream source from tag 'upstream/3.0.19+dfsg' Update to upstream version '3.0.19+dfsg' with Debian dir 24a0c1dd531accde1a2258b508165ad7464f6cc4 Jochen Sprickerhof 5 years ago
140 changed file(s) with 17910 addition(s) and 2899 deletion(s). Raw diff Collapse all Expand all
22 <modelVersion>4.0.0</modelVersion>
33 <groupId>com.github.hbci4j</groupId>
44 <artifactId>hbci4j-core</artifactId>
5 <version>3.0.17</version>
5 <version>3.0.19</version>
66 <packaging>jar</packaging>
77 <name>${project.artifactId}</name>
88 <description>HBCI4j - Home Banking Computer Interface for Java</description>
3030 <url>scm:git:git@github.com:hbci4j/hbci4java.git</url>
3131 <connection>scm:git:git@github.com:hbci4j/hbci4java.git</connection>
3232 <developerConnection>scm:git:git@github.com:hbci4j/hbci4java.git</developerConnection>
33 <tag>hbci4j-core-3.0.17</tag>
33 <tag>hbci4j-core-3.0.19</tag>
3434 </scm>
3535 <properties>
3636 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
7070 <artifactId>maven-jaxb2-plugin</artifactId>
7171 <version>${maven-jaxb2-plugin.version}</version>
7272 <executions>
73
74 <!--
75 CAMT: Offizieller Download der Schema-Datei von https://www.iso20022.org/payments_messages.page
76 Vorherige Versionen von https://www.iso20022.org/message_archive.page#sixth_b2c
77 -->
78 <execution>
79 <id>camt.052.001.07</id>
80 <goals>
81 <goal>generate</goal>
82 </goals>
83 <configuration>
84 <schemaIncludes>
85 <include>camt.052.001.07.xsd</include>
86 </schemaIncludes>
87 <generatePackage>org.kapott.hbci.sepa.jaxb.camt_052_001_07</generatePackage>
88 <produces>org/kapott/hbci/sepa/jaxb/camt_052_001_07/*.java</produces>
89 </configuration>
90 </execution>
91 <execution>
92 <id>camt.052.001.06</id>
93 <goals>
94 <goal>generate</goal>
95 </goals>
96 <configuration>
97 <schemaIncludes>
98 <include>camt.052.001.06.xsd</include>
99 </schemaIncludes>
100 <generatePackage>org.kapott.hbci.sepa.jaxb.camt_052_001_06</generatePackage>
101 <produces>org/kapott/hbci/sepa/jaxb/camt_052_001_06/*.java</produces>
102 </configuration>
103 </execution>
104 <execution>
105 <id>camt.052.001.05</id>
106 <goals>
107 <goal>generate</goal>
108 </goals>
109 <configuration>
110 <schemaIncludes>
111 <include>camt.052.001.05.xsd</include>
112 </schemaIncludes>
113 <generatePackage>org.kapott.hbci.sepa.jaxb.camt_052_001_05</generatePackage>
114 <produces>org/kapott/hbci/sepa/jaxb/camt_052_001_05/*.java</produces>
115 </configuration>
116 </execution>
117 <execution>
118 <id>camt.052.001.04</id>
119 <goals>
120 <goal>generate</goal>
121 </goals>
122 <configuration>
123 <schemaIncludes>
124 <include>camt.052.001.04.xsd</include>
125 </schemaIncludes>
126 <generatePackage>org.kapott.hbci.sepa.jaxb.camt_052_001_04</generatePackage>
127 <produces>org/kapott/hbci/sepa/jaxb/camt_052_001_04/*.java</produces>
128 </configuration>
129 </execution>
130 <execution>
131 <id>camt.052.001.03</id>
132 <goals>
133 <goal>generate</goal>
134 </goals>
135 <configuration>
136 <schemaIncludes>
137 <include>camt.052.001.03.xsd</include>
138 </schemaIncludes>
139 <generatePackage>org.kapott.hbci.sepa.jaxb.camt_052_001_03</generatePackage>
140 <produces>org/kapott/hbci/sepa/jaxb/camt_052_001_03/*.java</produces>
141 </configuration>
142 </execution>
143 <execution>
144 <id>camt.052.001.02</id>
145 <goals>
146 <goal>generate</goal>
147 </goals>
148 <configuration>
149 <schemaIncludes>
150 <include>camt.052.001.02.xsd</include>
151 </schemaIncludes>
152 <generatePackage>org.kapott.hbci.sepa.jaxb.camt_052_001_02</generatePackage>
153 <produces>org/kapott/hbci/sepa/jaxb/camt_052_001_02/*.java</produces>
154 </configuration>
155 </execution>
156 <execution>
157 <id>camt.052.001.01</id>
158 <goals>
159 <goal>generate</goal>
160 </goals>
161 <configuration>
162 <schemaIncludes>
163 <include>camt.052.001.01.xsd</include>
164 </schemaIncludes>
165 <generatePackage>org.kapott.hbci.sepa.jaxb.camt_052_001_01</generatePackage>
166 <produces>org/kapott/hbci/sepa/jaxb/camt_052_001_01/*.java</produces>
167 </configuration>
168 </execution>
169
170 <!--
171 PAIN: Offizieller Download der Schema-Dateien und vorherigen Versionen
172 von http://www.ebics.de/spezifikation/dfue-abkommen-anlage-3-formatstandards/
173 -->
73174 <execution>
74175 <id>pain.001.001.02</id>
75176 <goals>
285386 <artifactId>maven-surefire-plugin</artifactId>
286387 <version>${maven-surefire-plugin.version}</version>
287388 <configuration>
288 <skipTests>true</skipTests>
389 <skipTests>false</skipTests>
289390 </configuration>
290391 </plugin>
291392 <plugin>
0 # [![Build Status](https://travis-ci.org/willuhn/hbci4java.svg?branch=master)](https://travis-ci.org/willuhn/hbci4java) HBCI4Java
1
20 ## Vorab
31
42 Dies ist ein aktuell gepflegter Fork von [HBCI4Java](http://hbci4java.kapott.org/),
1917 - Die Unterstützung der neuen TAN-Verfahren (smsTAN, photoTAN, chipTAN - incl. Implementierung des HHD-Standards mit Flicker-Code)
2018 - Unterstützung von PC/SC-Kartenlesern via javax.smartcardio API
2119 - Eine aktuelle Bankenliste (mit BLZ, Server-Adresse, HBCI-Version,...)
22 - Unterstützung für alle aktuellen SEPA-PAIN-Versionen
23 - Unterstützung für SEPA-Überweisungen und -Lastschriften (jeweils Einzel- und Sammelaufträge) sowie SEPA-Daueraufträge
20 - Support für alle aktuellen SEPA-PAIN-Versionen
21 - SEPA-Überweisungen und -Lastschriften (jeweils Einzel- und Sammelaufträge) sowie SEPA-Daueraufträge
22 - Abruf des elektronischen Kontoauszuges (HKEKA und HKEKP)
23 - Unterstützung für chipTAN USB
24 - Abruf von Umsätzen im CAMT-Format (HKCAZ)
2425
2526 ## Lizenz
2627
4243 <dependency>
4344 <groupId>com.github.hbci4j</groupId>
4445 <artifactId>hbci4j-core</artifactId>
45 <version>3.0.15</version>
4646 </dependency>
4747 ```
4848
6161 Du benötigst:
6262
6363 - GIT (https://git-scm.com/)
64 - Java SDK 7 oder höher (http://www.oracle.com/technetwork/java/javase/downloads/index.html)
65 - Apache Maven (https://maven.apache.org/)
64 - Java SDK 8 oder höher (http://www.oracle.com/technetwork/java/javase/downloads/index.html)
65 - Apache Maven 3.3.9 oder höher (https://maven.apache.org/)
6666
6767 Öffne ein Terminal-Fenster und checke den Quellcode per GIT aus:
6868
8989
9090
9191 ## Unit-Tests
92 Im Ordner "src/main/test/" befinden sich einige JUnit-Tests. Viele davon erfordern jedoch das Vorhandensein spezieller Testumgebungen (Zugang zu Bank-Servern) bzw. vorkonfigurierte Bankzugänge. Die Tests können daher leider nicht automatisiert im Zuge der Erstellung von Deployment-Artefakten ausgeführt werden sondern nur manuell und selektiv.
92 Im Ordner "src/main/test/" befinden sich einige JUnit-Tests. Einige davon erfordern jedoch das Vorhandensein spezieller Testumgebungen (Vorhandensein von Bankzugängen oder Chipkartenleser). Diese Tests werden im Zuge der Erstellung von Deployment-Artefakten nur dann ausgeführt, wenn die entsprechenden System-Properties "test.online=true" und "test.chipcard=true" aktiv sind. Die Tests zur Ausführung von HBCI-Geschäftsvorfällen benötigen jedoch weitere Daten (Empfängerkonto, Betrag, Verwendungszweck, usw.). Wenn du diese Tests ausführen möchtest, schaue dir den Quellcode der entsprechenden Tests an.
9393
9494 ## Beispiel-Code
9595
55 import org.kapott.hbci.GV_Result.AbstractGVRLastSEPA;
66 import org.kapott.hbci.manager.HBCIHandler;
77 import org.kapott.hbci.manager.LogFilter;
8 import org.kapott.hbci.sepa.PainVersion;
9 import org.kapott.hbci.sepa.PainVersion.Type;
8 import org.kapott.hbci.sepa.SepaVersion;
9 import org.kapott.hbci.sepa.SepaVersion.Type;
1010 import org.kapott.hbci.status.HBCIMsgStatus;
1111
1212 /**
1414 */
1515 public abstract class AbstractGVLastSEPA extends AbstractSEPAGV
1616 {
17 private final static PainVersion DEFAULT = PainVersion.PAIN_008_001_01;
17 private final static SepaVersion DEFAULT = SepaVersion.PAIN_008_001_01;
1818
1919 /**
2020 * @see org.kapott.hbci.GV.AbstractSEPAGV#getDefaultPainVersion()
2121 */
2222 @Override
23 protected PainVersion getDefaultPainVersion()
23 protected SepaVersion getDefaultPainVersion()
2424 {
2525 return DEFAULT;
2626 }
1616 import org.kapott.hbci.manager.HBCIHandler;
1717 import org.kapott.hbci.manager.HBCIUtils;
1818 import org.kapott.hbci.manager.HBCIUtilsInternal;
19 import org.kapott.hbci.sepa.PainVersion;
20 import org.kapott.hbci.sepa.PainVersion.Type;
19 import org.kapott.hbci.sepa.SepaVersion;
20 import org.kapott.hbci.sepa.SepaVersion.Type;
2121
2222 /**
2323 * Abstrakte Basis-Klasse fuer JAXB-basierte SEPA-Jobs.
3333 public final static String ENDTOEND_ID_NOTPROVIDED = "NOTPROVIDED";
3434
3535 protected final Properties sepaParams = new Properties();
36 private PainVersion pain = null;
36 private SepaVersion pain = null;
3737 private ISEPAGenerator generator = null;
3838
3939 /**
4141 * wenn von der Bank keine geliefert wurden.
4242 * @return Default-Pain-Version.
4343 */
44 protected abstract PainVersion getDefaultPainVersion();
44 protected abstract SepaVersion getDefaultPainVersion();
4545
4646 /**
4747 * Liefert den PAIN-Type.
8181 * gesucht werden soll.
8282 * @return die ermittelte PAIN-Version.
8383 */
84 private PainVersion determinePainVersion(HBCIHandler handler, String gvName)
84 private SepaVersion determinePainVersion(HBCIHandler handler, String gvName)
8585 {
8686 // Schritt 1: Wir holen uns die globale maximale PAIN-Version
87 PainVersion globalVersion = this.determinePainVersionInternal(handler,GVSEPAInfo.getLowlevelName());
87 SepaVersion globalVersion = this.determinePainVersionInternal(handler,GVSEPAInfo.getLowlevelName());
8888
8989 // Schritt 2: Die des Geschaeftsvorfalls - fuer den Fall, dass die Bank
9090 // dort weitere Einschraenkungen hinterlegt hat
91 PainVersion jobVersion = this.determinePainVersionInternal(handler,gvName);
91 SepaVersion jobVersion = this.determinePainVersionInternal(handler,gvName);
9292
9393 // Wir haben gar keine PAIN-Version gefunden
9494 if (globalVersion == null && jobVersion == null)
9595 {
96 PainVersion def = this.getDefaultPainVersion();
96 SepaVersion def = this.getDefaultPainVersion();
9797 HBCIUtils.log("unable to determine matching pain version, using default: " + def,HBCIUtils.LOG_WARN);
9898 return def;
9999 }
120120 * gesucht werden soll.
121121 * @return die ermittelte PAIN-Version oder NULL wenn keine ermittelt werden konnte.
122122 */
123 private PainVersion determinePainVersionInternal(HBCIHandler handler, final String gvName)
123 private SepaVersion determinePainVersionInternal(HBCIHandler handler, final String gvName)
124124 {
125125 HBCIUtils.log("searching for supported pain versions for GV " + gvName,HBCIUtils.LOG_DEBUG);
126126
130130 return null;
131131 }
132132
133 List<PainVersion> found = new ArrayList<PainVersion>();
133 List<SepaVersion> found = new ArrayList<SepaVersion>();
134134
135135 // GV-Restrictions laden und darüber iterieren
136136 Properties props = handler.getLowlevelJobRestrictions(gvName);
146146 String urn = props.getProperty(key);
147147 try
148148 {
149 PainVersion version = PainVersion.byURN(urn);
149 SepaVersion version = SepaVersion.byURN(urn);
150150 if (version.getType() == this.getPainType())
151151 {
152152 if (!version.isSupported(this.getPainJobName()))
162162 // noetig, da das "PainVersion.byURN" (siehe oben) ohnehin bereits
163163 // macht - wenn wir die PAIN-Version kennen, nehmen wir gleich die
164164 // eigene Instanz. Siehe auch
165 // TestPainVersion#test011 bzw. http://www.onlinebanking-forum.de/phpBB2/viewtopic.php?p=95160#95160
165 // TestSepaVersion#test011 bzw. http://www.onlinebanking-forum.de/phpBB2/viewtopic.php?p=95160#95160
166166 HBCIUtils.log(" found " + version,HBCIUtils.LOG_DEBUG);
167167 found.add(version);
168168 }
174174 }
175175 }
176176
177 return PainVersion.findGreatest(found);
177 return SepaVersion.findGreatest(found);
178178 }
179179
180180 /**
270270 * Liefert den zu verwendenden PAIN-Version fuer die HBCI-Nachricht.
271271 * @return der zu verwendende PAIN-Version fuer die HBCI-Nachricht.
272272 */
273 protected PainVersion getPainVersion()
273 protected SepaVersion getPainVersion()
274274 {
275275 return this.pain;
276276 }
88 import org.kapott.hbci.manager.HBCIHandler;
99 import org.kapott.hbci.manager.HBCIUtilsInternal;
1010 import org.kapott.hbci.manager.LogFilter;
11 import org.kapott.hbci.sepa.PainVersion;
12 import org.kapott.hbci.sepa.PainVersion.Type;
11 import org.kapott.hbci.sepa.SepaVersion;
12 import org.kapott.hbci.sepa.SepaVersion.Type;
1313 import org.kapott.hbci.status.HBCIMsgStatus;
1414
15 /**
16 * Geschaeftsvorfall zum Loeschen von SEPA-Dauerauftraegen.
17 */
1518 public class GVDauerSEPADel extends AbstractSEPAGV {
1619
17 private final static PainVersion DEFAULT = PainVersion.PAIN_001_001_02;
20 private final static SepaVersion DEFAULT = SepaVersion.PAIN_001_001_02;
1821
1922 /**
2023 * @see org.kapott.hbci.GV.AbstractSEPAGV#getDefaultPainVersion()
2124 */
2225 @Override
23 protected PainVersion getDefaultPainVersion()
26 protected SepaVersion getDefaultPainVersion()
2427 {
2528 return DEFAULT;
2629 }
4346 return "DauerSEPADel";
4447 }
4548
49 /**
50 * ct.
51 * @param handler
52 */
4653 public GVDauerSEPADel(HBCIHandler handler) {
4754 super(handler,getLowlevelName(), new GVRDauerEdit());
4855
9097
9198 }
9299
100 /**
101 * @see org.kapott.hbci.GV.HBCIJobImpl#setParam(java.lang.String, java.lang.String)
102 */
93103 public void setParam(String paramName,String value)
94104 {
95105 Properties res=getJobRestrictions();
161171 super.setParam(paramName,value);
162172 }
163173
174 /**
175 * @see org.kapott.hbci.GV.HBCIJobImpl#extractResults(org.kapott.hbci.status.HBCIMsgStatus, java.lang.String, int)
176 */
164177 protected void extractResults(HBCIMsgStatus msgstatus,String header,int idx)
165178 {
166179 Properties result=msgstatus.getData();
182195 }
183196 }
184197
198 /**
199 * @see org.kapott.hbci.GV.AbstractSEPAGV#getPainJobName()
200 */
185201 public String getPainJobName() {
186202 return "UebSEPA";
187203 }
88 import org.kapott.hbci.manager.HBCIHandler;
99 import org.kapott.hbci.manager.HBCIUtilsInternal;
1010 import org.kapott.hbci.manager.LogFilter;
11 import org.kapott.hbci.sepa.PainVersion;
12 import org.kapott.hbci.sepa.PainVersion.Type;
11 import org.kapott.hbci.sepa.SepaVersion;
12 import org.kapott.hbci.sepa.SepaVersion.Type;
1313 import org.kapott.hbci.status.HBCIMsgStatus;
1414
15 /**
16 * Geschaeftsvorfall zum Bearbeiten eines SEPA-Dauerauftrages.
17 */
1518 public class GVDauerSEPAEdit extends AbstractSEPAGV {
1619
17 private final static PainVersion DEFAULT = PainVersion.PAIN_001_001_02;
20 private final static SepaVersion DEFAULT = SepaVersion.PAIN_001_001_02;
1821
1922 /**
2023 * @see org.kapott.hbci.GV.AbstractSEPAGV#getDefaultPainVersion()
2124 */
2225 @Override
23 protected PainVersion getDefaultPainVersion()
26 protected SepaVersion getDefaultPainVersion()
2427 {
2528 return DEFAULT;
2629 }
2323 import java.io.ByteArrayInputStream;
2424 import java.util.ArrayList;
2525 import java.util.Enumeration;
26 import java.util.List;
2627 import java.util.Properties;
2728
2829 import org.kapott.hbci.GV.parsers.ISEPAParser;
3334 import org.kapott.hbci.manager.HBCIHandler;
3435 import org.kapott.hbci.manager.HBCIUtils;
3536 import org.kapott.hbci.manager.LogFilter;
36 import org.kapott.hbci.sepa.PainVersion;
37 import org.kapott.hbci.sepa.PainVersion.Type;
37 import org.kapott.hbci.sepa.SepaVersion;
38 import org.kapott.hbci.sepa.SepaVersion.Type;
3839 import org.kapott.hbci.status.HBCIMsgStatus;
3940 import org.kapott.hbci.structures.Konto;
4041 import org.kapott.hbci.structures.Value;
4142
43 /**
44 * Geschaeftsvorfall zum Abrufen der Liste der SEPA-Dauerauftraege.
45 */
4246 public final class GVDauerSEPAList extends AbstractSEPAGV
4347 {
44 private final static PainVersion DEFAULT = PainVersion.PAIN_001_001_02;
48 private final static SepaVersion DEFAULT = SepaVersion.PAIN_001_001_02;
4549
4650 /**
4751 * @see org.kapott.hbci.GV.AbstractSEPAGV#getDefaultPainVersion()
4852 */
4953 @Override
50 protected PainVersion getDefaultPainVersion()
54 protected SepaVersion getDefaultPainVersion()
5155 {
5256 return DEFAULT;
5357 }
114118
115119 final String sepadescr = result.getProperty(header+".sepadescr");
116120 final String pain = result.getProperty(header+".sepapain");
117 final PainVersion version = PainVersion.choose(sepadescr,pain);
118
119 ISEPAParser parser = SEPAParserFactory.get(version);
120 ArrayList<Properties> sepaResults = new ArrayList<Properties>();
121 final SepaVersion version = SepaVersion.choose(sepadescr,pain);
122
123 ISEPAParser<List<Properties>> parser = SEPAParserFactory.get(version);
124 List<Properties> sepaResults = new ArrayList<Properties>();
121125 try
122126 {
123127 // Encoding siehe GVTermUebSEPAList
124128 HBCIUtils.log(" parsing sepa data: " + pain,HBCIUtils.LOG_DEBUG2);
125 parser.parse(new ByteArrayInputStream(pain.getBytes(Comm.ENCODING)), sepaResults);
129 parser.parse(new ByteArrayInputStream(pain.getBytes(Comm.ENCODING)),sepaResults);
126130 HBCIUtils.log(" parsed sepa data, entries: " + sepaResults.size(),HBCIUtils.LOG_INFO);
127131 }
128132 catch (Exception e)
88 import org.kapott.hbci.manager.HBCIHandler;
99 import org.kapott.hbci.manager.HBCIUtilsInternal;
1010 import org.kapott.hbci.manager.LogFilter;
11 import org.kapott.hbci.sepa.PainVersion;
12 import org.kapott.hbci.sepa.PainVersion.Type;
11 import org.kapott.hbci.sepa.SepaVersion;
12 import org.kapott.hbci.sepa.SepaVersion.Type;
1313 import org.kapott.hbci.status.HBCIMsgStatus;
1414
15 /**
16 * Geschaeftsvorfall zum Anlegen eines neuen SEPA-Dauerauftrages.
17 */
1518 public class GVDauerSEPANew extends AbstractSEPAGV {
1619
17 private final static PainVersion DEFAULT = PainVersion.PAIN_001_001_02;
20 private final static SepaVersion DEFAULT = SepaVersion.PAIN_001_001_02;
1821
1922 /**
2023 * @see org.kapott.hbci.GV.AbstractSEPAGV#getDefaultPainVersion()
2124 */
2225 @Override
23 protected PainVersion getDefaultPainVersion()
26 protected SepaVersion getDefaultPainVersion()
2427 {
2528 return DEFAULT;
2629 }
4346 return "DauerSEPANew";
4447 }
4548
49 /**
50 * ct.
51 * @param handler
52 */
4653 public GVDauerSEPANew(HBCIHandler handler) {
4754 super(handler,getLowlevelName(), new GVRDauerNew());
4855
8794 addConstraint("lastdate","DauerDetails.lastdate","", LogFilter.FILTER_NONE);
8895 }
8996
97 /**
98 * @see org.kapott.hbci.GV.HBCIJobImpl#setParam(java.lang.String, java.lang.String)
99 */
90100 public void setParam(String paramName,String value)
91101 {
92102 Properties res=getJobRestrictions();
178188 }
179189 }
180190
191 /**
192 * @see org.kapott.hbci.GV.AbstractSEPAGV#getPainJobName()
193 */
181194 public String getPainJobName() {
182195 return "UebSEPA";
183196 }
2525
2626 import org.kapott.hbci.GV_Result.GVRKUms;
2727 import org.kapott.hbci.manager.HBCIHandler;
28 import org.kapott.hbci.manager.HBCIUtils;
2829 import org.kapott.hbci.manager.LogFilter;
2930 import org.kapott.hbci.status.HBCIMsgStatus;
3031 import org.kapott.hbci.swift.Swift;
3132
32 public class GVKUmsAll
33 extends HBCIJobImpl
33 /**
34 * Implementierung des Geschaeftsvorfalls zum Abruf von Umsaetzen mit Angabe des Zeitraums (HKKAZ).
35 */
36 public class GVKUmsAll extends HBCIJobImpl
3437 {
38 /**
39 * @return der Lowlevelname.
40 */
3541 public static String getLowlevelName()
3642 {
3743 return "KUmsZeit";
3844 }
3945
46 /**
47 * ct.
48 * @param handler
49 * @param name
50 */
4051 public GVKUmsAll(HBCIHandler handler,String name)
4152 {
4253 super(handler, name, new GVRKUms());
4354 }
4455
56 /**
57 * ct.
58 * @param handler
59 */
4560 public GVKUmsAll(HBCIHandler handler)
4661 {
4762 this(handler,getLowlevelName());
4863
49 addConstraint("my.country","KTV.KIK.country","DE", LogFilter.FILTER_NONE);
50 addConstraint("my.blz","KTV.KIK.blz",null, LogFilter.FILTER_MOST);
51 addConstraint("my.number","KTV.number",null, LogFilter.FILTER_IDS);
52 addConstraint("my.subnumber","KTV.subnumber","", LogFilter.FILTER_MOST);
64
65 boolean sepa = false;
66 try
67 {
68 // Siehe auch GVKontoauszug/HKEKA. Die einzige Aenderung war die Umstellung
69 // der Bankverbindungsart von ktv auf kti (wegen IBAN-Support).
70 // Bei HKKAZ ist das ab Segment-Version 7 der Fall.
71 sepa = Integer.parseInt(this.getSegVersion()) >= 7;
72 }
73 catch (Exception e)
74 {
75 HBCIUtils.log(e);
76 }
77
78 // Dennoch kann es sein, dass die nationale Bankverbindung auch bei der
79 // SEPA-Variante noch mitgeschickt wird, wenn die Bank das zulaesst.
80 // (Es scheint auch Banken zu geben, die das in dem Fall nicht nur
81 // zulassen sondern erwarten).
82 boolean nat = this.canNationalAcc(handler);
83
84 if (sepa)
85 {
86 addConstraint("my.bic", "KTV.bic", null, LogFilter.FILTER_MOST);
87 addConstraint("my.iban", "KTV.iban", null, LogFilter.FILTER_IDS);
88 }
89
90 if (nat || !sepa)
91 {
92 addConstraint("my.country","KTV.KIK.country","DE", LogFilter.FILTER_NONE);
93 addConstraint("my.blz","KTV.KIK.blz",null, LogFilter.FILTER_MOST);
94 addConstraint("my.number","KTV.number",null, LogFilter.FILTER_IDS);
95 addConstraint("my.subnumber","KTV.subnumber","", LogFilter.FILTER_MOST);
96 }
97
5398 //currency wird in neueren Versionen nicht mehr benötigt, constraint liefert unnötige Warnung
5499 //im Prinzip müsste es möglich sein, die constraints versionsabhängig zu definieren
55100 //addConstraint("my.curr","curr","EUR", LogFilter.FILTER_NONE);
81126 jobResult.storeResult("notbooked",result.getProperty(header+".notbooked"));
82127 }
83128
129 /**
130 * @see org.kapott.hbci.GV.HBCIJobImpl#verifyConstraints()
131 */
84132 public void verifyConstraints()
85133 {
86134 super.verifyConstraints();
0 /**********************************************************************
1 *
2 * Copyright (c) by Olaf Willuhn
3 * All rights reserved
4 * LGPL
5 *
6 **********************************************************************/
7
8 package org.kapott.hbci.GV;
9
10
11 import java.io.ByteArrayInputStream;
12 import java.util.Calendar;
13 import java.util.Properties;
14
15 import org.kapott.hbci.GV.parsers.ISEPAParser;
16 import org.kapott.hbci.GV.parsers.SEPAParserFactory;
17 import org.kapott.hbci.GV_Result.GVRKUms;
18 import org.kapott.hbci.comm.Comm;
19 import org.kapott.hbci.exceptions.HBCI_Exception;
20 import org.kapott.hbci.manager.HBCIHandler;
21 import org.kapott.hbci.manager.HBCIUtils;
22 import org.kapott.hbci.manager.HBCIUtilsInternal;
23 import org.kapott.hbci.manager.LogFilter;
24 import org.kapott.hbci.sepa.SepaVersion;
25 import org.kapott.hbci.sepa.SepaVersion.Type;
26 import org.kapott.hbci.status.HBCIMsgStatus;
27
28 /**
29 * Implementierung des Geschaeftsvorfalls zum Abruf von Umsaetzen mit Angabe des Zeitraums im CAMT-Format (HKCAZ).
30 */
31 public class GVKUmsAllCamt extends AbstractSEPAGV
32 {
33 /**
34 * @return der Lowlevelname.
35 */
36 public static String getLowlevelName()
37 {
38 return "KUmsZeitCamt";
39 }
40
41 /**
42 * ct.
43 * @param handler
44 * @param name
45 */
46 public GVKUmsAllCamt(HBCIHandler handler,String name)
47 {
48 super(handler, name, new GVRKUms());
49 }
50
51 /**
52 * @see org.kapott.hbci.GV.AbstractSEPAGV#getDefaultPainVersion()
53 */
54 @Override
55 protected SepaVersion getDefaultPainVersion()
56 {
57 return SepaVersion.CAMT_052_001_01;
58 }
59
60 /**
61 * @see org.kapott.hbci.GV.AbstractSEPAGV#getPainType()
62 */
63 @Override
64 protected Type getPainType()
65 {
66 return Type.CAMT_052;
67 }
68
69 /**
70 * ct.
71 * @param handler
72 */
73 public GVKUmsAllCamt(HBCIHandler handler)
74 {
75 this(handler,getLowlevelName());
76
77 addConstraint("my.bic", "KTV.bic", null, LogFilter.FILTER_MOST);
78 addConstraint("my.iban", "KTV.iban", null, LogFilter.FILTER_IDS);
79
80 if (this.canNationalAcc(handler))
81 {
82 addConstraint("my.country","KTV.KIK.country","DE", LogFilter.FILTER_NONE);
83 addConstraint("my.blz","KTV.KIK.blz",null, LogFilter.FILTER_MOST);
84 addConstraint("my.number","KTV.number",null, LogFilter.FILTER_IDS);
85 addConstraint("my.subnumber","KTV.subnumber","", LogFilter.FILTER_MOST);
86 }
87
88 // Das DE erlaubt zwar, dass wir alle CAMT-Versionen mitschicken,
89 // die wir unterstuetzen. Einige Banken (u.a. die Sparkassen) kommen
90 // damit aber nicht klar. Deswegen schicken wir immer genau eine Version
91 // mit. Und zwar genau die hoechste, die die Bank in den GV-spezifischen BPD
92 // mitgeteilt hat
93 addConstraint("suppformat","formats.suppformat",this.getPainVersion().getURN(),LogFilter.FILTER_NONE);
94 addConstraint("dummy","allaccounts","N", LogFilter.FILTER_NONE);
95
96 addConstraint("startdate","startdate",this.getStartdate(), LogFilter.FILTER_NONE);
97 addConstraint("enddate","enddate","", LogFilter.FILTER_NONE);
98 addConstraint("maxentries","maxentries","", LogFilter.FILTER_NONE);
99 addConstraint( "offset", "offset", "", LogFilter.FILTER_NONE );
100 }
101
102 /**
103 * Liefert das fruehest moegliche Startdatum fuer den Abruf der Umsaetze.
104 * Im Gegensatz zur alten MT940-Version ist es jetzt bei CAMT offensichtlich
105 * so, dass man (zumindest bei einigen Banken) nicht mehr pauschal das Start-Datum
106 * weglassen kann und die Bank dann alles an Daten liefert. Zumindest bei der
107 * Sparkasse kam dann die Fehlermeldung "9010:Abfrage uebersteigt gueltigen Zeitraum".
108 * Also muessen wir - falls kein Startdatum angegeben ist (daher als Default-Wert)
109 * selbst anhand der BPD herausfinden, was das Limit ist und dieses als Default-Wert
110 * verwenden.
111 * @return das fruehest moegliche Startdatum fuer den Abruf der Umsaetze.
112 */
113 private String getStartdate()
114 {
115 Properties bpd = this.getJobRestrictions();
116 String days = bpd.getProperty("timerange");
117
118 String date = "";
119 if (days != null && days.length() > 0 && days.matches("[0-9]{1,4}"))
120 {
121 Calendar cal = Calendar.getInstance();
122 cal.add(Calendar.DATE,-Integer.parseInt(days));
123 date = HBCIUtils.date2StringISO(cal.getTime());
124 }
125 HBCIUtils.log("earliest start date according to BPD: " + (date != null && date.length() > 0 ? date : "<none>"),HBCIUtils.LOG_INFO);
126 return date;
127 }
128
129 /**
130 * @see org.kapott.hbci.GV.HBCIJobImpl#extractResults(org.kapott.hbci.status.HBCIMsgStatus, java.lang.String, int)
131 */
132 protected void extractResults(HBCIMsgStatus msgstatus,String header,int idx)
133 {
134 Properties data = msgstatus.getData();
135 GVRKUms result = (GVRKUms) jobResult;
136 final String format = data.getProperty(header+".format");
137
138 for (int i=0;;i++)
139 {
140 final String booked = data.getProperty(header+".booked."+HBCIUtilsInternal.withCounter("message",i));
141 if (booked == null)
142 break;
143
144 try
145 {
146 // Im Prinzip wuerde es reichen, die verwendete CAMT-Version einmalig anhand
147 // des uebergebenen camt-Deskriptors in "format" zu ermitteln. Aber es gibt
148 // tatsaechlich Banken, die in der HBCI-Nachricht eine andere Version angeben,
149 // als sie tatsaechlich senden. Siehe https://www.willuhn.de/bugzilla/show_bug.cgi?id=1806
150 // Das betraf PAIN-Messages. Ich weiss nicht, ob das bei CAMT auch vorkommt.
151 // Ich gehe aber auf Nummer sicher.
152 final SepaVersion version = SepaVersion.choose(format,booked);
153 ISEPAParser<GVRKUms> parser = SEPAParserFactory.get(version);
154
155 HBCIUtils.log(" parsing camt data: " + booked,HBCIUtils.LOG_DEBUG2);
156 parser.parse(new ByteArrayInputStream(booked.getBytes(Comm.ENCODING)),result);
157 HBCIUtils.log(" parsed camt data, entries: " + result.getFlatData().size(),HBCIUtils.LOG_INFO);
158 }
159 catch (Exception e)
160 {
161 HBCIUtils.log(" unable to parse camt data: " + e.getMessage(),HBCIUtils.LOG_ERR);
162 throw new HBCI_Exception("Error parsing CAMT document",e);
163 }
164 }
165
166 final String notbooked = data.getProperty(header+".notbooked");
167 if (notbooked != null)
168 {
169 try
170 {
171 final SepaVersion version = SepaVersion.choose(format,notbooked);
172 ISEPAParser<GVRKUms> parser = SEPAParserFactory.get(version);
173
174 HBCIUtils.log(" parsing unbooked camt data: " + notbooked,HBCIUtils.LOG_DEBUG2);
175 parser.parse(new ByteArrayInputStream(notbooked.getBytes(Comm.ENCODING)),result);
176 HBCIUtils.log(" parsed unbooked camt data, entries: " + result.getFlatDataUnbooked().size(),HBCIUtils.LOG_INFO);
177 }
178 catch (Exception e)
179 {
180 HBCIUtils.log(" unable to parse unbooked camt data: " + e.getMessage(),HBCIUtils.LOG_ERR);
181 throw new HBCI_Exception("Error parsing CAMT document",e);
182 }
183 }
184 }
185
186 /**
187 * @see org.kapott.hbci.GV.HBCIJobImpl#verifyConstraints()
188 */
189 public void verifyConstraints()
190 {
191 super.verifyConstraints();
192 checkAccountCRC("my");
193 }
194 }
2121 package org.kapott.hbci.GV;
2222
2323 import org.kapott.hbci.manager.HBCIHandler;
24 import org.kapott.hbci.manager.HBCIUtils;
2425 import org.kapott.hbci.manager.LogFilter;
2526
26 public final class GVKUmsNew
27 extends GVKUmsAll
27 /**
28 * Implementierung des Geschaeftsvorfalls zum Abruf von neuen Umsaetzen (HKKAN).
29 */
30 public final class GVKUmsNew extends GVKUmsAll
2831 {
32 /**
33 * @return der Lowlevelname.
34 */
2935 public static String getLowlevelName()
3036 {
3137 return "KUmsNew";
3238 }
3339
40 /**
41 * ct.
42 * @param handler
43 */
3444 public GVKUmsNew(HBCIHandler handler)
3545 {
3646 super(handler,getLowlevelName());
3747
38 addConstraint("my.country","KTV.KIK.country","DE", LogFilter.FILTER_NONE);
39 addConstraint("my.blz","KTV.KIK.blz",null, LogFilter.FILTER_MOST);
40 addConstraint("my.number","KTV.number",null, LogFilter.FILTER_IDS);
41 addConstraint("my.subnumber","KTV.subnumber","", LogFilter.FILTER_MOST);
48 boolean sepa = false;
49 try
50 {
51 // Siehe auch GVKontoauszug/HKEKA. Die einzige Aenderung war die Umstellung
52 // der Bankverbindungsart von ktv auf kti (wegen IBAN-Support).
53 // Bei HKKAN ist das ab Segment-Version 7 der Fall.
54 sepa = Integer.parseInt(this.getSegVersion()) >= 7;
55 }
56 catch (Exception e)
57 {
58 HBCIUtils.log(e);
59 }
60
61 // Dennoch kann es sein, dass die nationale Bankverbindung auch bei der
62 // SEPA-Variante noch mitgeschickt wird, wenn die Bank das zulaesst.
63 // (Es scheint auch Banken zu geben, die das in dem Fall nicht nur
64 // zulassen sondern erwarten).
65 boolean nat = this.canNationalAcc(handler);
66
67 if (sepa)
68 {
69 addConstraint("my.bic", "KTV.bic", null, LogFilter.FILTER_MOST);
70 addConstraint("my.iban", "KTV.iban", null, LogFilter.FILTER_IDS);
71 }
72
73 if (nat || !sepa)
74 {
75 addConstraint("my.country","KTV.KIK.country","DE", LogFilter.FILTER_NONE);
76 addConstraint("my.blz","KTV.KIK.blz",null, LogFilter.FILTER_MOST);
77 addConstraint("my.number","KTV.number",null, LogFilter.FILTER_IDS);
78 addConstraint("my.subnumber","KTV.subnumber","", LogFilter.FILTER_MOST);
79 }
80
4281 addConstraint("my.curr","curr","EUR", LogFilter.FILTER_NONE);
4382 addConstraint("maxentries","maxentries","", LogFilter.FILTER_NONE);
4483 addConstraint("dummyall","allaccounts","N", LogFilter.FILTER_NONE);
4584 }
85
86
87 /**
88 * @see org.kapott.hbci.GV.HBCIJobImpl#verifyConstraints()
89 */
90 public void verifyConstraints()
91 {
92 super.verifyConstraints();
93 checkAccountCRC("my");
94 }
4695 }
2626 import org.kapott.hbci.GV_Result.GVRTermUeb;
2727 import org.kapott.hbci.manager.HBCIHandler;
2828 import org.kapott.hbci.manager.LogFilter;
29 import org.kapott.hbci.sepa.PainVersion;
30 import org.kapott.hbci.sepa.PainVersion.Type;
29 import org.kapott.hbci.sepa.SepaVersion;
30 import org.kapott.hbci.sepa.SepaVersion.Type;
3131 import org.kapott.hbci.status.HBCIMsgStatus;
3232
3333 /**
3535 */
3636 public class GVTermUebSEPA extends AbstractSEPAGV
3737 {
38 private final static PainVersion DEFAULT = PainVersion.PAIN_001_001_02;
38 private final static SepaVersion DEFAULT = SepaVersion.PAIN_001_001_02;
3939
4040 /**
4141 * @see org.kapott.hbci.GV.AbstractSEPAGV#getDefaultPainVersion()
4242 */
4343 @Override
44 protected PainVersion getDefaultPainVersion()
44 protected SepaVersion getDefaultPainVersion()
4545 {
4646 return DEFAULT;
4747 }
22 import org.kapott.hbci.GV_Result.HBCIJobResultImpl;
33 import org.kapott.hbci.manager.HBCIHandler;
44 import org.kapott.hbci.manager.LogFilter;
5 import org.kapott.hbci.sepa.PainVersion;
6 import org.kapott.hbci.sepa.PainVersion.Type;
5 import org.kapott.hbci.sepa.SepaVersion;
6 import org.kapott.hbci.sepa.SepaVersion.Type;
77
88 /**
99 * Implementierung des HBCI-Jobs fuer die Löschung einer SEPA-Terminüberweisung.
1010 */
1111 public class GVTermUebSEPADel extends AbstractSEPAGV
1212 {
13 private final static PainVersion DEFAULT = PainVersion.PAIN_001_001_02;
13 private final static SepaVersion DEFAULT = SepaVersion.PAIN_001_001_02;
1414
1515 /**
1616 * @see org.kapott.hbci.GV.AbstractSEPAGV#getDefaultPainVersion()
1717 */
1818 @Override
19 protected PainVersion getDefaultPainVersion()
19 protected SepaVersion getDefaultPainVersion()
2020 {
2121 return DEFAULT;
2222 }
55 import org.kapott.hbci.GV_Result.GVRTermUebEdit;
66 import org.kapott.hbci.manager.HBCIHandler;
77 import org.kapott.hbci.manager.LogFilter;
8 import org.kapott.hbci.sepa.PainVersion;
9 import org.kapott.hbci.sepa.PainVersion.Type;
8 import org.kapott.hbci.sepa.SepaVersion;
9 import org.kapott.hbci.sepa.SepaVersion.Type;
1010 import org.kapott.hbci.status.HBCIMsgStatus;
1111
12 /**
13 * Geschaeftsvorfall zum Bearbeiten einer SEPA-Termin-Ueberweisung.
14 */
1215 public class GVTermUebSEPAEdit extends AbstractSEPAGV
1316 {
14 private final static PainVersion DEFAULT = PainVersion.PAIN_001_001_02;
17 private final static SepaVersion DEFAULT = SepaVersion.PAIN_001_001_02;
1518
1619 /**
1720 * @see org.kapott.hbci.GV.AbstractSEPAGV#getDefaultPainVersion()
1821 */
1922 @Override
20 protected PainVersion getDefaultPainVersion()
23 protected SepaVersion getDefaultPainVersion()
2124 {
2225 return DEFAULT;
2326 }
2323 import java.io.ByteArrayInputStream;
2424 import java.util.ArrayList;
2525 import java.util.Enumeration;
26 import java.util.List;
2627 import java.util.Properties;
2728
2829 import org.kapott.hbci.GV.parsers.ISEPAParser;
3334 import org.kapott.hbci.manager.HBCIHandler;
3435 import org.kapott.hbci.manager.HBCIUtils;
3536 import org.kapott.hbci.manager.LogFilter;
36 import org.kapott.hbci.sepa.PainVersion;
37 import org.kapott.hbci.sepa.PainVersion.Type;
37 import org.kapott.hbci.sepa.SepaVersion;
38 import org.kapott.hbci.sepa.SepaVersion.Type;
3839 import org.kapott.hbci.status.HBCIMsgStatus;
3940 import org.kapott.hbci.structures.Konto;
4041 import org.kapott.hbci.structures.Value;
4142
4243 public final class GVTermUebSEPAList extends AbstractSEPAGV
4344 {
44 private final static PainVersion DEFAULT = PainVersion.PAIN_001_001_02;
45 private final static SepaVersion DEFAULT = SepaVersion.PAIN_001_001_02;
4546
4647 /**
4748 * @see org.kapott.hbci.GV.AbstractSEPAGV#getDefaultPainVersion()
4849 */
4950 @Override
50 protected PainVersion getDefaultPainVersion()
51 protected SepaVersion getDefaultPainVersion()
5152 {
5253 return DEFAULT;
5354 }
105106
106107 final String sepadescr = result.getProperty(header+".sepadescr");
107108 final String pain = result.getProperty(header+".sepapain");
108 final PainVersion version = PainVersion.choose(sepadescr,pain);
109 final SepaVersion version = SepaVersion.choose(sepadescr,pain);
109110
110 ISEPAParser parser = SEPAParserFactory.get(version);
111 ArrayList<Properties> sepaResults = new ArrayList<Properties>();
111 ISEPAParser<List<Properties>> parser = SEPAParserFactory.get(version);
112 List<Properties> sepaResults = new ArrayList<Properties>();
112113 try
113114 {
114115 // Wir duerfen das hier nicht als UTF-8 interpretieren (das war vorher hier das Fall),
121122 // beim Empfang vom Server kamen, wenn der XML-Parser sie kriegt. Er macht dann die Conversion Byte->String
122123 // korrekt basierend auf dem im XML angegebenen Header.
123124 // Siehe auch AbstractSEPAGenerator#marshal
124 parser.parse(new ByteArrayInputStream(pain.getBytes(Comm.ENCODING)), sepaResults);
125 parser.parse(new ByteArrayInputStream(pain.getBytes(Comm.ENCODING)),sepaResults);
125126 }
126127 catch(Exception e)
127128 {
2222
2323 import org.kapott.hbci.manager.HBCIHandler;
2424 import org.kapott.hbci.manager.LogFilter;
25 import org.kapott.hbci.sepa.PainVersion;
26 import org.kapott.hbci.sepa.PainVersion.Type;
25 import org.kapott.hbci.sepa.SepaVersion;
26 import org.kapott.hbci.sepa.SepaVersion.Type;
2727
2828 /**
2929 * Job-Implementierung fuer SEPA-Ueberweisungen.
3030 */
3131 public class GVUebSEPA extends AbstractSEPAGV
3232 {
33 private final static PainVersion DEFAULT = PainVersion.PAIN_001_001_02;
33 private final static SepaVersion DEFAULT = SepaVersion.PAIN_001_001_02;
3434
3535 /**
3636 * @see org.kapott.hbci.GV.AbstractSEPAGV#getDefaultPainVersion()
3737 */
3838 @Override
39 protected PainVersion getDefaultPainVersion()
39 protected SepaVersion getDefaultPainVersion()
4040 {
4141 return DEFAULT;
4242 }
2222
2323 import org.kapott.hbci.manager.HBCIHandler;
2424 import org.kapott.hbci.manager.LogFilter;
25 import org.kapott.hbci.sepa.PainVersion;
26 import org.kapott.hbci.sepa.PainVersion.Type;
25 import org.kapott.hbci.sepa.SepaVersion;
26 import org.kapott.hbci.sepa.SepaVersion.Type;
2727
2828 /**
2929 * Job-Implementierung fuer SEPA-Umbuchungen.
3030 */
3131 public class GVUmbSEPA extends AbstractSEPAGV
3232 {
33 private final static PainVersion DEFAULT = PainVersion.PAIN_001_001_02;
33 private final static SepaVersion DEFAULT = SepaVersion.PAIN_001_001_02;
3434
3535 /**
3636 * @see org.kapott.hbci.GV.AbstractSEPAGV#getDefaultPainVersion()
3737 */
3838 @Override
39 protected PainVersion getDefaultPainVersion()
39 protected SepaVersion getDefaultPainVersion()
4040 {
4141 return DEFAULT;
4242 }
6464 format = DATE_FORMAT;
6565
6666 SimpleDateFormat df = new SimpleDateFormat(format);
67 return df.format(cal.toGregorianCalendar().getTime());
67 return df.format(toDate(cal));
68 }
69
70 /**
71 * Liefert ein Date-Objekt fuer den Kalender.
72 * @param cal der Kalender.
73 * @return das Date-Objekt.
74 */
75 public static Date toDate(XMLGregorianCalendar cal)
76 {
77 if (cal == null)
78 return null;
79
80 return cal.toGregorianCalendar().getTime();
6881 }
6982
7083 /**
1414 import javax.xml.validation.SchemaFactory;
1515
1616 import org.kapott.hbci.exceptions.HBCI_Exception;
17 import org.kapott.hbci.sepa.PainVersion;
17 import org.kapott.hbci.sepa.SepaVersion;
1818
1919 /**
2020 * Abstrakte Basis-Implementierung der SEPA-Generatoren.
4848 if (System.getProperty("sepa.pain.formatted","false").equalsIgnoreCase("true"))
4949 marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
5050
51 PainVersion version = this.getPainVersion();
51 SepaVersion version = this.getPainVersion();
5252 if (version != null)
5353 {
5454 String schemaLocation = version.getSchemaLocation();
9696 * @see org.kapott.hbci.GV.generators.ISEPAGenerator#getPainVersion()
9797 */
9898 @Override
99 public PainVersion getPainVersion()
99 public SepaVersion getPainVersion()
100100 {
101101 return null;
102102 }
66
77 import org.kapott.hbci.GV.AbstractSEPAGV;
88 import org.kapott.hbci.GV.SepaUtil;
9 import org.kapott.hbci.sepa.PainVersion;
9 import org.kapott.hbci.sepa.SepaVersion;
1010 import org.kapott.hbci.sepa.jaxb.pain_008_001_01.AccountIdentification2;
1111 import org.kapott.hbci.sepa.jaxb.pain_008_001_01.AmendmentInformationDetails4;
1212 import org.kapott.hbci.sepa.jaxb.pain_008_001_01.CashAccount8;
5151 * @see org.kapott.hbci.GV.generators.AbstractSEPAGenerator#getPainVersion()
5252 */
5353 @Override
54 public PainVersion getPainVersion()
54 public SepaVersion getPainVersion()
5555 {
56 return PainVersion.PAIN_008_001_01;
56 return SepaVersion.PAIN_008_001_01;
5757 }
5858
5959 /**
66
77 import org.kapott.hbci.GV.AbstractSEPAGV;
88 import org.kapott.hbci.GV.SepaUtil;
9 import org.kapott.hbci.sepa.PainVersion;
9 import org.kapott.hbci.sepa.SepaVersion;
1010 import org.kapott.hbci.sepa.jaxb.pain_008_001_02.AccountIdentificationSEPA;
1111 import org.kapott.hbci.sepa.jaxb.pain_008_001_02.AccountIdentificationSEPAMandate;
1212 import org.kapott.hbci.sepa.jaxb.pain_008_001_02.ActiveOrHistoricCurrencyAndAmountSEPA;
5858 * @see org.kapott.hbci.GV.generators.AbstractSEPAGenerator#getPainVersion()
5959 */
6060 @Override
61 public PainVersion getPainVersion()
61 public SepaVersion getPainVersion()
6262 {
63 return PainVersion.PAIN_008_001_02;
63 return SepaVersion.PAIN_008_001_02;
6464 }
6565
6666 /**
77 import org.kapott.hbci.GV.AbstractSEPAGV;
88 import org.kapott.hbci.GV.SepaUtil;
99 import org.kapott.hbci.exceptions.HBCI_Exception;
10 import org.kapott.hbci.sepa.PainVersion;
10 import org.kapott.hbci.sepa.SepaVersion;
1111 import org.kapott.hbci.sepa.jaxb.pain_008_002_01.AccountIdentificationSDD;
1212 import org.kapott.hbci.sepa.jaxb.pain_008_002_01.AmendmentInformationDetailsSDD;
1313 import org.kapott.hbci.sepa.jaxb.pain_008_002_01.BranchAndFinancialInstitutionIdentificationSDD1;
5959 * @see org.kapott.hbci.GV.generators.AbstractSEPAGenerator#getPainVersion()
6060 */
6161 @Override
62 public PainVersion getPainVersion()
62 public SepaVersion getPainVersion()
6363 {
64 return PainVersion.PAIN_008_002_01;
64 return SepaVersion.PAIN_008_002_01;
6565 }
6666
6767 /**
77 import org.kapott.hbci.GV.AbstractSEPAGV;
88 import org.kapott.hbci.GV.SepaUtil;
99 import org.kapott.hbci.exceptions.HBCI_Exception;
10 import org.kapott.hbci.sepa.PainVersion;
10 import org.kapott.hbci.sepa.SepaVersion;
11 import org.kapott.hbci.sepa.SepaVersion;
1112 import org.kapott.hbci.sepa.jaxb.pain_008_002_02.AccountIdentificationSEPA;
1213 import org.kapott.hbci.sepa.jaxb.pain_008_002_02.ActiveOrHistoricCurrencyAndAmountSEPA;
1314 import org.kapott.hbci.sepa.jaxb.pain_008_002_02.ActiveOrHistoricCurrencyCodeEUR;
5960 * @see org.kapott.hbci.GV.generators.AbstractSEPAGenerator#getPainVersion()
6061 */
6162 @Override
62 public PainVersion getPainVersion()
63 public SepaVersion getPainVersion()
6364 {
64 return PainVersion.PAIN_008_002_02;
65 return SepaVersion.PAIN_008_002_02;
6566 }
6667
6768 /**
66
77 import org.kapott.hbci.GV.AbstractSEPAGV;
88 import org.kapott.hbci.GV.SepaUtil;
9 import org.kapott.hbci.sepa.PainVersion;
9 import org.kapott.hbci.sepa.SepaVersion;
1010 import org.kapott.hbci.sepa.jaxb.pain_008_003_02.AccountIdentificationSEPA;
1111 import org.kapott.hbci.sepa.jaxb.pain_008_003_02.ActiveOrHistoricCurrencyAndAmountSEPA;
1212 import org.kapott.hbci.sepa.jaxb.pain_008_003_02.ActiveOrHistoricCurrencyCodeEUR;
5858 * @see org.kapott.hbci.GV.generators.AbstractSEPAGenerator#getPainVersion()
5959 */
6060 @Override
61 public PainVersion getPainVersion()
61 public SepaVersion getPainVersion()
6262 {
63 return PainVersion.PAIN_008_003_02;
63 return SepaVersion.PAIN_008_003_02;
6464 }
6565
6666 /**
66
77 import org.kapott.hbci.GV.AbstractSEPAGV;
88 import org.kapott.hbci.GV.SepaUtil;
9 import org.kapott.hbci.sepa.PainVersion;
9 import org.kapott.hbci.sepa.SepaVersion;
1010 import org.kapott.hbci.sepa.jaxb.pain_001_001_02.AccountIdentification2;
1111 import org.kapott.hbci.sepa.jaxb.pain_001_001_02.AmountType3;
1212 import org.kapott.hbci.sepa.jaxb.pain_001_001_02.CashAccount8;
4141 * @see org.kapott.hbci.GV.generators.AbstractSEPAGenerator#getPainVersion()
4242 */
4343 @Override
44 public PainVersion getPainVersion()
44 public SepaVersion getPainVersion()
4545 {
46 return PainVersion.PAIN_001_001_02;
46 return SepaVersion.PAIN_001_001_02;
4747 }
4848
4949 /**
77
88 import org.kapott.hbci.GV.AbstractSEPAGV;
99 import org.kapott.hbci.GV.SepaUtil;
10 import org.kapott.hbci.sepa.PainVersion;
10 import org.kapott.hbci.sepa.SepaVersion;
1111 import org.kapott.hbci.sepa.jaxb.pain_001_001_03.AccountIdentificationSEPA;
1212 import org.kapott.hbci.sepa.jaxb.pain_001_001_03.ActiveOrHistoricCurrencyAndAmountSEPA;
1313 import org.kapott.hbci.sepa.jaxb.pain_001_001_03.ActiveOrHistoricCurrencyCodeEUR;
4545 * @see org.kapott.hbci.GV.generators.AbstractSEPAGenerator#getPainVersion()
4646 */
4747 @Override
48 public PainVersion getPainVersion()
48 public SepaVersion getPainVersion()
4949 {
50 return PainVersion.PAIN_001_001_03;
50 return SepaVersion.PAIN_001_001_03;
5151 }
5252
5353 /**
66
77 import org.kapott.hbci.GV.AbstractSEPAGV;
88 import org.kapott.hbci.GV.SepaUtil;
9 import org.kapott.hbci.sepa.PainVersion;
9 import org.kapott.hbci.sepa.SepaVersion;
1010 import org.kapott.hbci.sepa.jaxb.pain_001_002_02.AccountIdentificationSCT;
1111 import org.kapott.hbci.sepa.jaxb.pain_001_002_02.AmountTypeSCT;
1212 import org.kapott.hbci.sepa.jaxb.pain_001_002_02.BranchAndFinancialInstitutionIdentificationSCT;
4343 * @see org.kapott.hbci.GV.generators.AbstractSEPAGenerator#getPainVersion()
4444 */
4545 @Override
46 public PainVersion getPainVersion()
46 public SepaVersion getPainVersion()
4747 {
48 return PainVersion.PAIN_001_002_02;
48 return SepaVersion.PAIN_001_002_02;
4949 }
5050
5151 /**
66
77 import org.kapott.hbci.GV.AbstractSEPAGV;
88 import org.kapott.hbci.GV.SepaUtil;
9 import org.kapott.hbci.sepa.PainVersion;
9 import org.kapott.hbci.sepa.SepaVersion;
1010 import org.kapott.hbci.sepa.jaxb.pain_001_002_03.AccountIdentificationSEPA;
1111 import org.kapott.hbci.sepa.jaxb.pain_001_002_03.ActiveOrHistoricCurrencyAndAmountSEPA;
1212 import org.kapott.hbci.sepa.jaxb.pain_001_002_03.ActiveOrHistoricCurrencyCodeEUR;
4141 * @see org.kapott.hbci.GV.generators.AbstractSEPAGenerator#getPainVersion()
4242 */
4343 @Override
44 public PainVersion getPainVersion()
44 public SepaVersion getPainVersion()
4545 {
46 return PainVersion.PAIN_001_002_03;
46 return SepaVersion.PAIN_001_002_03;
4747 }
4848
4949 /**
77
88 import org.kapott.hbci.GV.AbstractSEPAGV;
99 import org.kapott.hbci.GV.SepaUtil;
10 import org.kapott.hbci.sepa.PainVersion;
10 import org.kapott.hbci.sepa.SepaVersion;
1111 import org.kapott.hbci.sepa.jaxb.pain_001_003_03.AccountIdentificationSEPA;
1212 import org.kapott.hbci.sepa.jaxb.pain_001_003_03.ActiveOrHistoricCurrencyAndAmountSEPA;
1313 import org.kapott.hbci.sepa.jaxb.pain_001_003_03.ActiveOrHistoricCurrencyCodeEUR;
4545 * @see org.kapott.hbci.GV.generators.AbstractSEPAGenerator#getPainVersion()
4646 */
4747 @Override
48 public PainVersion getPainVersion()
48 public SepaVersion getPainVersion()
4949 {
50 return PainVersion.PAIN_001_003_03;
50 return SepaVersion.PAIN_001_003_03;
5151 }
5252
5353 /**
44 import java.io.OutputStream;
55 import java.util.Properties;
66
7 import org.kapott.hbci.sepa.PainVersion;
7 import org.kapott.hbci.sepa.SepaVersion;
88
99 /**
1010 * Basis-Interface fuer alle SEPA-Job-Generatoren.
3737 public void generate(Properties sepaParams, OutputStream os, boolean validate) throws Exception;
3838
3939 /**
40 * Liefert die PAIN-Version des Generators.
40 * Liefert die SEPA-Version des Generators.
4141 * Wenn die Methode implementiert wurde und eine "vollqualifizierte"
42 * Pain-Version zurueckliefert, in der sowohl URN als auch FILE gesetzt sind,
42 * SEPA-Version zurueckliefert, in der sowohl URN als auch FILE gesetzt sind,
4343 * dann wird die Schema-Location dem Marshaller mittels "Marshaller.JAXB_SCHEMA_LOCATION"
4444 * uebergeben, was bewirkt, dass im Root-Element das Attribute
4545 * "xsi:schemaLocation" gesetzt wird. Ausserdem kann dann die Schema-Validierung
4747 * @return die zu deklarierende Schema-Location oder NULL, falls nichts
4848 * angegeben werden soll.
4949 */
50 public PainVersion getPainVersion();
50 public SepaVersion getPainVersion();
5151
5252 }
44 import org.kapott.hbci.GV.AbstractSEPAGV;
55 import org.kapott.hbci.GV.HBCIJob;
66 import org.kapott.hbci.exceptions.InvalidUserDataException;
7 import org.kapott.hbci.sepa.PainVersion;
7 import org.kapott.hbci.sepa.SepaVersion;
88
99 /**
1010 * Factory zum Ermitteln des passenden Pain-Generators fuer den angegebenen Job.
2727 * @throws InstantiationException
2828 * @throws ClassNotFoundException
2929 */
30 public static ISEPAGenerator get(HBCIJob job, PainVersion version) throws ClassNotFoundException, InstantiationException, IllegalAccessException
30 public static ISEPAGenerator get(HBCIJob job, SepaVersion version) throws ClassNotFoundException, InstantiationException, IllegalAccessException
3131 {
3232 String jobname = ((AbstractSEPAGV)job).getPainJobName(); // referenzierter pain-Geschäftsvorfall
3333 return get(jobname,version);
4242 * @throws IllegalAccessException
4343 * @throws InstantiationException
4444 */
45 public static ISEPAGenerator get(String jobname, PainVersion version) throws ClassNotFoundException, InstantiationException, IllegalAccessException
45 public static ISEPAGenerator get(String jobname, SepaVersion version) throws ClassNotFoundException, InstantiationException, IllegalAccessException
4646 {
47 if (!version.isSupported(jobname))
48 throw new InvalidUserDataException("PAIN version is not supported: " + version);
47 if (!version.canGenerate(jobname))
48 throw new InvalidUserDataException("SEPA version is not supported: " + version);
4949
5050 String className = version.getGeneratorClass(jobname);
5151 LOG.fine("trying to init SEPA creator: " + className);
66
77 /**
88 * Abstrakte Basis-Klasse der SEPA PAIN-Parser.
9 * @param <T> der konkrete Typ.
910 */
10 public abstract class AbstractSepaParser implements ISEPAParser
11 public abstract class AbstractSepaParser<T> implements ISEPAParser<T>
1112 {
1213 /**
1314 * Speichert den Wert in den Properties.
00 package org.kapott.hbci.GV.parsers;
11
22 import java.io.InputStream;
3 import java.util.List;
4 import java.util.Properties;
53
64 /**
75 * Basis-Interface der SEPA-XML Parser.
6 * @param <T> Die konkrete Struktur, in die die Daten geparst werden.
87 */
9 public interface ISEPAParser
8 public interface ISEPAParser<T>
109 {
1110 /**
1211 * Enums fuer die verwendeten Schluessel-Namen in den Properties.
1312 */
13 @SuppressWarnings("javadoc")
1414 public static enum Names
1515 {
1616 SRC_NAME("src.name"),
6363 /**
6464 * Parst SEPA-XML-Daten aus dem Stream und schreib die Ergebnisse in die Liste von Properties-Objekten.
6565 * @param xml der Stream mit den XML-Daten.
66 * @param target Die Liste mit Properties. Pro Geschaeftsvorfall wird ein Properties-Objekt eingefuegt.
66 * @param target das Zielobjekt, in das die Daten gelesen werden.
6767 */
68 public void parse(InputStream xml, List<Properties> target);
68 public void parse(InputStream xml, T target);
6969 }
0 /**********************************************************************
1 *
2 * Copyright (c) 2018 Olaf Willuhn
3 * All rights reserved.
4 *
5 * This software is copyrighted work licensed under the terms of the
6 * Jameica License. Please consult the file "LICENSE" for details.
7 *
8 **********************************************************************/
9
10 package org.kapott.hbci.GV.parsers;
11
12 import java.io.InputStream;
13 import java.math.BigDecimal;
14 import java.util.Date;
15 import java.util.List;
16
17 import javax.xml.bind.JAXB;
18
19 import org.kapott.hbci.GV.SepaUtil;
20 import org.kapott.hbci.GV_Result.GVRKUms;
21 import org.kapott.hbci.GV_Result.GVRKUms.BTag;
22 import org.kapott.hbci.GV_Result.GVRKUms.UmsLine;
23 import org.kapott.hbci.manager.HBCIUtils;
24 import org.kapott.hbci.sepa.jaxb.camt_052_001_01.AccountIdentification3Choice;
25 import org.kapott.hbci.sepa.jaxb.camt_052_001_01.AccountReport9;
26 import org.kapott.hbci.sepa.jaxb.camt_052_001_01.BalanceType8Code;
27 import org.kapott.hbci.sepa.jaxb.camt_052_001_01.BankToCustomerAccountReportV01;
28 import org.kapott.hbci.sepa.jaxb.camt_052_001_01.BankTransactionCodeStructure1;
29 import org.kapott.hbci.sepa.jaxb.camt_052_001_01.BranchAndFinancialInstitutionIdentification3;
30 import org.kapott.hbci.sepa.jaxb.camt_052_001_01.CashAccount13;
31 import org.kapott.hbci.sepa.jaxb.camt_052_001_01.CashAccount7;
32 import org.kapott.hbci.sepa.jaxb.camt_052_001_01.CashBalance1;
33 import org.kapott.hbci.sepa.jaxb.camt_052_001_01.CreditDebitCode;
34 import org.kapott.hbci.sepa.jaxb.camt_052_001_01.CurrencyAndAmount;
35 import org.kapott.hbci.sepa.jaxb.camt_052_001_01.DateAndDateTimeChoice;
36 import org.kapott.hbci.sepa.jaxb.camt_052_001_01.Document;
37 import org.kapott.hbci.sepa.jaxb.camt_052_001_01.EntryTransaction1;
38 import org.kapott.hbci.sepa.jaxb.camt_052_001_01.FinancialInstitutionIdentification5Choice;
39 import org.kapott.hbci.sepa.jaxb.camt_052_001_01.PartyIdentification8;
40 import org.kapott.hbci.sepa.jaxb.camt_052_001_01.Purpose1Choice;
41 import org.kapott.hbci.sepa.jaxb.camt_052_001_01.ReportEntry1;
42 import org.kapott.hbci.sepa.jaxb.camt_052_001_01.TransactionAgents1;
43 import org.kapott.hbci.sepa.jaxb.camt_052_001_01.TransactionParty1;
44 import org.kapott.hbci.sepa.jaxb.camt_052_001_01.TransactionReferences1;
45 import org.kapott.hbci.structures.Konto;
46 import org.kapott.hbci.structures.Saldo;
47 import org.kapott.hbci.structures.Value;
48
49 /**
50 * Parser zum Lesen von Umsaetzen im CAMT.052 Format in Version 001.01.
51 */
52 public class ParseCamt05200101 implements ISEPAParser<GVRKUms>
53 {
54 /**
55 * @see org.kapott.hbci.GV.parsers.ISEPAParser#parse(java.io.InputStream, java.lang.Object)
56 */
57 @Override
58 public void parse(InputStream xml, GVRKUms result)
59 {
60
61 Document doc = JAXB.unmarshal(xml, Document.class);
62 BankToCustomerAccountReportV01 container = doc.getBkToCstmrAcctRptV01();
63
64 // Dokument leer
65 if (container == null)
66 {
67 HBCIUtils.log("camt document empty",HBCIUtils.LOG_WARN);
68 return;
69 }
70
71 // Enthaelt per Definition genau einen Report von einem Buchungstag
72 List<AccountReport9> reports = container.getRpt();
73 if (reports == null || reports.size() == 0)
74 {
75 HBCIUtils.log("camt document empty",HBCIUtils.LOG_WARN);
76 return;
77 }
78
79 // Per Definition enthaelt die Datei beim CAMT-Abruf zwar genau einen Buchungstag.
80 // Da wir aber eine passende Datenstruktur haben, lesen wir mehr ein, falls
81 // mehr vorhanden sind. Dann koennen wird den Parser spaeter auch nutzen,
82 // um CAMT-Dateien aus anderen Quellen zu lesen.
83 for (AccountReport9 report:reports)
84 {
85 ////////////////////////////////////////////////////////////////////
86 // Kopf des Buchungstages
87 BTag tag = this.createDay(report);
88 result.getDataPerDay().add(tag);
89 //
90 ////////////////////////////////////////////////////////////////////
91
92 ////////////////////////////////////////////////////////////////////
93 // Die einzelnen Buchungen
94 BigDecimal saldo = tag.start != null && tag.start.value != null ? tag.start.value.getBigDecimalValue() : BigDecimal.ZERO;
95
96 for (ReportEntry1 entry:report.getNtry())
97 {
98 UmsLine line = this.createLine(entry,saldo);
99 if (line != null)
100 {
101 tag.lines.add(line);
102
103 // Saldo fortschreiben
104 saldo = line.saldo.value.getBigDecimalValue();
105 }
106 }
107 //
108 ////////////////////////////////////////////////////////////////////
109 }
110 }
111
112 /**
113 * Erzeugt eine einzelne Umsatzbuchung.
114 * @param entry der Entry aus der CAMT-Datei.
115 * @param der aktuelle Saldo vor dieser Buchung.
116 * @return die Umsatzbuchung.
117 */
118 private UmsLine createLine(ReportEntry1 entry, BigDecimal currSaldo)
119 {
120 UmsLine line = new UmsLine();
121 line.isSepa = true;
122 line.isCamt = true;
123 line.other = new Konto();
124
125 List<EntryTransaction1> txList = entry.getTxDtls();
126 if (txList.size() == 0)
127 return null;
128
129 // Checken, ob es Soll- oder Habenbuchung ist
130 boolean haben = entry.getCdtDbtInd() != null && entry.getCdtDbtInd() == CreditDebitCode.CRDT;
131
132 // ditto
133 EntryTransaction1 tx = txList.get(0);
134
135 ////////////////////////////////////////////////////////////////////////
136 // Buchungs-ID
137 TransactionReferences1 ref = tx.getRefs();
138 line.id = ref.getPrtry() != null ? ref.getPrtry().getRef() : null;
139 ////////////////////////////////////////////////////////////////////////
140
141 ////////////////////////////////////////////////////////////////////////
142 // Gegenkonto: IBAN + Name
143 TransactionParty1 other = tx.getRltdPties();
144 if (other != null)
145 {
146 CashAccount7 acc = haben ? other.getDbtrAcct() : other.getCdtrAcct();
147 AccountIdentification3Choice id = acc != null ? other.getDbtrAcct().getId() : null;
148 line.other.iban = id != null ? id.getIBAN() : null;
149
150 PartyIdentification8 name = haben ? other.getDbtr() : other.getCdtr();
151 line.other.name = name != null ? name.getNm() : null;
152 }
153 //
154 ////////////////////////////////////////////////////////////////////////
155
156 ////////////////////////////////////////////////////////////////////////
157 // Gegenkonto: BIC
158 TransactionAgents1 banks = tx.getRltdAgts();
159 if (banks != null)
160 {
161 BranchAndFinancialInstitutionIdentification3 bank = haben ? banks.getDbtrAgt() : banks.getCdtrAgt();
162 FinancialInstitutionIdentification5Choice bic = bank != null ? bank.getFinInstnId() : null;
163 line.other.bic = bank != null ? bic.getBIC() : null;
164 }
165 //
166 ////////////////////////////////////////////////////////////////////////
167
168 ////////////////////////////////////////////////////////////////////////
169 // Verwendungszweck
170 List<String> usages = tx.getRmtInf() != null ? tx.getRmtInf().getUstrd() : null;
171 if (usages != null && usages.size() > 0)
172 line.usage.addAll(usages);
173 //
174 ////////////////////////////////////////////////////////////////////////
175
176 ////////////////////////////////////////////////////////////////////////
177 // Betrag
178 CurrencyAndAmount amt = entry.getAmt();
179 BigDecimal bd = amt.getValue() != null ? amt.getValue() : BigDecimal.ZERO;
180 line.value = new Value(haben ? bd : BigDecimal.ZERO.subtract(bd)); // Negativ-Betrag bei Soll-Buchung
181 line.value.setCurr(amt.getCcy());
182 //
183 ////////////////////////////////////////////////////////////////////////
184
185 ////////////////////////////////////////////////////////////////////////
186 // Storno-Kennzeichen
187 // Laut Spezifikation kehrt sich bei Stornobuchungen im Gegensatz zu MT940
188 // nicht das Vorzeichen um. Der Betrag bleibt also gleich
189 line.isStorno = entry.isRvslInd() != null ? entry.isRvslInd().booleanValue() : false;
190 //
191 ////////////////////////////////////////////////////////////////////////
192
193
194 ////////////////////////////////////////////////////////////////////////
195 // Buchungs- und Valuta-Datum
196 DateAndDateTimeChoice bdate = entry.getBookgDt();
197 line.bdate = bdate != null ? SepaUtil.toDate(bdate.getDt()) : null;
198
199 DateAndDateTimeChoice vdate = entry.getValDt();
200 line.valuta = vdate != null ? SepaUtil.toDate(vdate.getDt()) : null;
201
202 // Wenn einer von beiden Werten fehlt, uebernehmen wir dort den jeweils anderen
203 if (line.bdate == null) line.bdate = line.valuta;
204 if (line.valuta == null) line.valuta = line.bdate;
205 //
206 ////////////////////////////////////////////////////////////////////////
207
208 ////////////////////////////////////////////////////////////////////////
209 // Saldo
210 line.saldo = new Saldo();
211 line.saldo.value = new Value(currSaldo.add(line.value.getBigDecimalValue()));
212 line.saldo.value.setCurr(line.value.getCurr());
213 line.saldo.timestamp = line.bdate;
214 //
215 ////////////////////////////////////////////////////////////////////////
216
217 ////////////////////////////////////////////////////////////////////////
218 // Art und Kundenreferenz
219 line.text = entry.getAddtlNtryInf();
220 line.customerref = entry.getAcctSvcrRef();
221 //
222 ////////////////////////////////////////////////////////////////////////
223
224 ////////////////////////////////////////////////////////////////////////
225 // Primanota, GV-Code und GV-Code-Ergaenzung
226 // Ich weiss nicht, ob das bei allen Banken so codiert ist.
227 // Bei der Sparkasse ist es jedenfalls so.
228 BankTransactionCodeStructure1 b = tx.getBkTxCd();
229 String code = (b != null && b.getPrtry() != null) ? b.getPrtry().getCd() : null;
230 if (code != null && code.contains("+"))
231 {
232 String[] parts = code.split("\\+");
233 if (parts.length == 4)
234 {
235 line.gvcode = parts[1];
236 line.primanota = parts[2];
237 line.addkey = parts[3];
238 }
239 }
240 //
241 ////////////////////////////////////////////////////////////////////////
242
243 ////////////////////////////////////////////////////////////////////////
244 // Purpose-Code
245 Purpose1Choice purp = tx.getPurp();
246 line.purposecode = purp != null ? purp.getCd() : null;
247 //
248 ////////////////////////////////////////////////////////////////////////
249
250 return line;
251 }
252
253
254 /**
255 * Erzeugt einen neuen Buchungstag.
256 * @param report der Report.
257 * @return der erzeugte Buchungstag.
258 */
259 private BTag createDay(AccountReport9 report)
260 {
261 BTag tag = new BTag();
262 tag.start = new Saldo();
263 tag.end = new Saldo();
264 tag.starttype = 'F';
265 tag.endtype = 'F';
266
267 ////////////////////////////////////////////////////////////////
268 // Start- un End-Saldo ermitteln
269 final long day = 24 * 60 * 60 * 1000L;
270 for (CashBalance1 bal:report.getBal())
271 {
272 BalanceType8Code code = bal.getTp().getCd();
273
274 // Schluss-Saldo vom Vortag.
275 if (code == BalanceType8Code.PRCD)
276 {
277 tag.start.value = new Value(bal.getAmt().getValue());
278 tag.start.value.setCurr(bal.getAmt().getCcy());
279
280 // Wir erhoehen noch das Datum um einen Tag, damit aus dem
281 // Schlusssaldo des Vortages der Startsaldo des aktuellen Tages wird.
282 tag.start.timestamp = new Date(SepaUtil.toDate(bal.getDt().getDt()).getTime() + day);
283 }
284
285 // End-Saldo
286 else if (code == BalanceType8Code.CLBD)
287 {
288 tag.end.value = new Value(bal.getAmt().getValue());
289 tag.end.value.setCurr(bal.getAmt().getCcy());
290 tag.end.timestamp = SepaUtil.toDate(bal.getDt().getDt());
291 }
292 }
293 //
294 ////////////////////////////////////////////////////////////////
295
296 ////////////////////////////////////////////////////////////////
297 // Das eigene Konto ermitteln
298 CashAccount13 acc = report.getAcct();
299 tag.my = new Konto();
300 tag.my.iban = acc.getId().getIBAN();
301 tag.my.curr = acc.getCcy();
302 tag.my.bic = acc.getSvcr().getFinInstnId().getBIC();
303 ////////////////////////////////////////////////////////////////
304
305 return tag;
306 }
307 }
308
309
0 /**********************************************************************
1 *
2 * Copyright (c) 2018 Olaf Willuhn
3 * All rights reserved.
4 *
5 * This software is copyrighted work licensed under the terms of the
6 * Jameica License. Please consult the file "LICENSE" for details.
7 *
8 **********************************************************************/
9
10 package org.kapott.hbci.GV.parsers;
11
12 import java.io.InputStream;
13 import java.math.BigDecimal;
14 import java.util.Date;
15 import java.util.List;
16
17 import javax.xml.bind.JAXB;
18
19 import org.kapott.hbci.GV.SepaUtil;
20 import org.kapott.hbci.GV_Result.GVRKUms;
21 import org.kapott.hbci.GV_Result.GVRKUms.BTag;
22 import org.kapott.hbci.GV_Result.GVRKUms.UmsLine;
23 import org.kapott.hbci.manager.HBCIUtils;
24 import org.kapott.hbci.sepa.jaxb.camt_052_001_02.AccountIdentification4Choice;
25 import org.kapott.hbci.sepa.jaxb.camt_052_001_02.AccountReport11;
26 import org.kapott.hbci.sepa.jaxb.camt_052_001_02.ActiveOrHistoricCurrencyAndAmount;
27 import org.kapott.hbci.sepa.jaxb.camt_052_001_02.BalanceType12Code;
28 import org.kapott.hbci.sepa.jaxb.camt_052_001_02.BankToCustomerAccountReportV02;
29 import org.kapott.hbci.sepa.jaxb.camt_052_001_02.BankTransactionCodeStructure4;
30 import org.kapott.hbci.sepa.jaxb.camt_052_001_02.BranchAndFinancialInstitutionIdentification4;
31 import org.kapott.hbci.sepa.jaxb.camt_052_001_02.CashAccount16;
32 import org.kapott.hbci.sepa.jaxb.camt_052_001_02.CashAccount20;
33 import org.kapott.hbci.sepa.jaxb.camt_052_001_02.CashBalance3;
34 import org.kapott.hbci.sepa.jaxb.camt_052_001_02.CreditDebitCode;
35 import org.kapott.hbci.sepa.jaxb.camt_052_001_02.DateAndDateTimeChoice;
36 import org.kapott.hbci.sepa.jaxb.camt_052_001_02.Document;
37 import org.kapott.hbci.sepa.jaxb.camt_052_001_02.EntryDetails1;
38 import org.kapott.hbci.sepa.jaxb.camt_052_001_02.EntryTransaction2;
39 import org.kapott.hbci.sepa.jaxb.camt_052_001_02.FinancialInstitutionIdentification7;
40 import org.kapott.hbci.sepa.jaxb.camt_052_001_02.PartyIdentification32;
41 import org.kapott.hbci.sepa.jaxb.camt_052_001_02.Purpose2Choice;
42 import org.kapott.hbci.sepa.jaxb.camt_052_001_02.ReportEntry2;
43 import org.kapott.hbci.sepa.jaxb.camt_052_001_02.TransactionAgents2;
44 import org.kapott.hbci.sepa.jaxb.camt_052_001_02.TransactionParty2;
45 import org.kapott.hbci.sepa.jaxb.camt_052_001_02.TransactionReferences2;
46 import org.kapott.hbci.structures.Konto;
47 import org.kapott.hbci.structures.Saldo;
48 import org.kapott.hbci.structures.Value;
49
50 /**
51 * Parser zum Lesen von Umsaetzen im CAMT.052 Format in Version 001.02.
52 */
53 public class ParseCamt05200102 implements ISEPAParser<GVRKUms>
54 {
55 /**
56 * @see org.kapott.hbci.GV.parsers.ISEPAParser#parse(java.io.InputStream, java.lang.Object)
57 */
58 @Override
59 public void parse(InputStream xml, GVRKUms result)
60 {
61
62 Document doc = JAXB.unmarshal(xml, Document.class);
63 BankToCustomerAccountReportV02 container = doc.getBkToCstmrAcctRpt();
64
65 // Dokument leer
66 if (container == null)
67 {
68 HBCIUtils.log("camt document empty",HBCIUtils.LOG_WARN);
69 return;
70 }
71
72 // Enthaelt per Definition genau einen Report von einem Buchungstag
73 List<AccountReport11> reports = container.getRpt();
74 if (reports == null || reports.size() == 0)
75 {
76 HBCIUtils.log("camt document empty",HBCIUtils.LOG_WARN);
77 return;
78 }
79
80 // Per Definition enthaelt die Datei beim CAMT-Abruf zwar genau einen Buchungstag.
81 // Da wir aber eine passende Datenstruktur haben, lesen wir mehr ein, falls
82 // mehr vorhanden sind. Dann koennen wird den Parser spaeter auch nutzen,
83 // um CAMT-Dateien aus anderen Quellen zu lesen.
84 for (AccountReport11 report:reports)
85 {
86 ////////////////////////////////////////////////////////////////////
87 // Kopf des Buchungstages
88 BTag tag = this.createDay(report);
89 result.getDataPerDay().add(tag);
90 //
91 ////////////////////////////////////////////////////////////////////
92
93 ////////////////////////////////////////////////////////////////////
94 // Die einzelnen Buchungen
95 BigDecimal saldo = tag.start != null && tag.start.value != null ? tag.start.value.getBigDecimalValue() : BigDecimal.ZERO;
96
97 for (ReportEntry2 entry:report.getNtry())
98 {
99 UmsLine line = this.createLine(entry,saldo);
100 if (line != null)
101 {
102 tag.lines.add(line);
103
104 // Saldo fortschreiben
105 saldo = line.saldo.value.getBigDecimalValue();
106 }
107 }
108 //
109 ////////////////////////////////////////////////////////////////////
110 }
111 }
112
113 /**
114 * Erzeugt eine einzelne Umsatzbuchung.
115 * @param entry der Entry aus der CAMT-Datei.
116 * @param der aktuelle Saldo vor dieser Buchung.
117 * @return die Umsatzbuchung.
118 */
119 private UmsLine createLine(ReportEntry2 entry, BigDecimal currSaldo)
120 {
121 UmsLine line = new UmsLine();
122 line.isSepa = true;
123 line.isCamt = true;
124 line.other = new Konto();
125
126 List<EntryDetails1> details = entry.getNtryDtls();
127 if (details.size() == 0)
128 return null;
129
130 // Das Schema sieht zwar mehrere Detail-Elemente vor, ich wuesste
131 // aber ohnehin nicht, wie man das sinnvoll mappen koennte
132 EntryDetails1 detail = details.get(0);
133
134 List<EntryTransaction2> txList = detail.getTxDtls();
135 if (txList.size() == 0)
136 return null;
137
138 // Checken, ob es Soll- oder Habenbuchung ist
139 boolean haben = entry.getCdtDbtInd() != null && entry.getCdtDbtInd() == CreditDebitCode.CRDT;
140
141 // ditto
142 EntryTransaction2 tx = txList.get(0);
143
144 ////////////////////////////////////////////////////////////////////////
145 // Buchungs-ID
146 TransactionReferences2 ref = tx.getRefs();
147 line.id = ref.getPrtry() != null ? ref.getPrtry().getRef() : null;
148 ////////////////////////////////////////////////////////////////////////
149
150 ////////////////////////////////////////////////////////////////////////
151 // Gegenkonto: IBAN + Name
152 TransactionParty2 other = tx.getRltdPties();
153 if (other != null)
154 {
155 CashAccount16 acc = haben ? other.getDbtrAcct() : other.getCdtrAcct();
156 AccountIdentification4Choice id = acc != null ? other.getDbtrAcct().getId() : null;
157 line.other.iban = id != null ? id.getIBAN() : null;
158
159 PartyIdentification32 name = haben ? other.getDbtr() : other.getCdtr();
160 line.other.name = name != null ? name.getNm() : null;
161 }
162 //
163 ////////////////////////////////////////////////////////////////////////
164
165 ////////////////////////////////////////////////////////////////////////
166 // Gegenkonto: BIC
167 TransactionAgents2 banks = tx.getRltdAgts();
168 if (banks != null)
169 {
170 BranchAndFinancialInstitutionIdentification4 bank = haben ? banks.getDbtrAgt() : banks.getCdtrAgt();
171 FinancialInstitutionIdentification7 bic = bank != null ? bank.getFinInstnId() : null;
172 line.other.bic = bank != null ? bic.getBIC() : null;
173 }
174 //
175 ////////////////////////////////////////////////////////////////////////
176
177 ////////////////////////////////////////////////////////////////////////
178 // Verwendungszweck
179 List<String> usages = tx.getRmtInf() != null ? tx.getRmtInf().getUstrd() : null;
180 if (usages != null && usages.size() > 0)
181 line.usage.addAll(usages);
182 //
183 ////////////////////////////////////////////////////////////////////////
184
185 ////////////////////////////////////////////////////////////////////////
186 // Betrag
187 ActiveOrHistoricCurrencyAndAmount amt = entry.getAmt();
188 BigDecimal bd = amt.getValue() != null ? amt.getValue() : BigDecimal.ZERO;
189 line.value = new Value(haben ? bd : BigDecimal.ZERO.subtract(bd)); // Negativ-Betrag bei Soll-Buchung
190 line.value.setCurr(amt.getCcy());
191 //
192 ////////////////////////////////////////////////////////////////////////
193
194 ////////////////////////////////////////////////////////////////////////
195 // Storno-Kennzeichen
196 // Laut Spezifikation kehrt sich bei Stornobuchungen im Gegensatz zu MT940
197 // nicht das Vorzeichen um. Der Betrag bleibt also gleich
198 line.isStorno = entry.isRvslInd() != null ? entry.isRvslInd().booleanValue() : false;
199 //
200 ////////////////////////////////////////////////////////////////////////
201
202
203 ////////////////////////////////////////////////////////////////////////
204 // Buchungs- und Valuta-Datum
205 DateAndDateTimeChoice bdate = entry.getBookgDt();
206 line.bdate = bdate != null ? SepaUtil.toDate(bdate.getDt()) : null;
207
208 DateAndDateTimeChoice vdate = entry.getValDt();
209 line.valuta = vdate != null ? SepaUtil.toDate(vdate.getDt()) : null;
210
211 // Wenn einer von beiden Werten fehlt, uebernehmen wir dort den jeweils anderen
212 if (line.bdate == null) line.bdate = line.valuta;
213 if (line.valuta == null) line.valuta = line.bdate;
214 //
215 ////////////////////////////////////////////////////////////////////////
216
217 ////////////////////////////////////////////////////////////////////////
218 // Saldo
219 line.saldo = new Saldo();
220 line.saldo.value = new Value(currSaldo.add(line.value.getBigDecimalValue()));
221 line.saldo.value.setCurr(line.value.getCurr());
222 line.saldo.timestamp = line.bdate;
223 //
224 ////////////////////////////////////////////////////////////////////////
225
226 ////////////////////////////////////////////////////////////////////////
227 // Art und Kundenreferenz
228 line.text = entry.getAddtlNtryInf();
229 line.customerref = entry.getAcctSvcrRef();
230 //
231 ////////////////////////////////////////////////////////////////////////
232
233 ////////////////////////////////////////////////////////////////////////
234 // Primanota, GV-Code und GV-Code-Ergaenzung
235 // Ich weiss nicht, ob das bei allen Banken so codiert ist.
236 // Bei der Sparkasse ist es jedenfalls so.
237 BankTransactionCodeStructure4 b = tx.getBkTxCd();
238 String code = (b != null && b.getPrtry() != null) ? b.getPrtry().getCd() : null;
239 if (code != null && code.contains("+"))
240 {
241 String[] parts = code.split("\\+");
242 if (parts.length == 4)
243 {
244 line.gvcode = parts[1];
245 line.primanota = parts[2];
246 line.addkey = parts[3];
247 }
248 }
249 //
250 ////////////////////////////////////////////////////////////////////////
251
252 ////////////////////////////////////////////////////////////////////////
253 // Purpose-Code
254 Purpose2Choice purp = tx.getPurp();
255 line.purposecode = purp != null ? purp.getCd() : null;
256 //
257 ////////////////////////////////////////////////////////////////////////
258
259 return line;
260 }
261
262
263 /**
264 * Erzeugt einen neuen Buchungstag.
265 * @param report der Report.
266 * @return der erzeugte Buchungstag.
267 */
268 private BTag createDay(AccountReport11 report)
269 {
270 BTag tag = new BTag();
271 tag.start = new Saldo();
272 tag.end = new Saldo();
273 tag.starttype = 'F';
274 tag.endtype = 'F';
275
276 ////////////////////////////////////////////////////////////////
277 // Start- un End-Saldo ermitteln
278 final long day = 24 * 60 * 60 * 1000L;
279 for (CashBalance3 bal:report.getBal())
280 {
281 BalanceType12Code code = bal.getTp().getCdOrPrtry().getCd();
282
283 // Schluss-Saldo vom Vortag.
284 if (code == BalanceType12Code.PRCD)
285 {
286 tag.start.value = new Value(bal.getAmt().getValue());
287 tag.start.value.setCurr(bal.getAmt().getCcy());
288
289 // Wir erhoehen noch das Datum um einen Tag, damit aus dem
290 // Schlusssaldo des Vortages der Startsaldo des aktuellen Tages wird.
291 tag.start.timestamp = new Date(SepaUtil.toDate(bal.getDt().getDt()).getTime() + day);
292 }
293
294 // End-Saldo
295 else if (code == BalanceType12Code.CLBD)
296 {
297 tag.end.value = new Value(bal.getAmt().getValue());
298 tag.end.value.setCurr(bal.getAmt().getCcy());
299 tag.end.timestamp = SepaUtil.toDate(bal.getDt().getDt());
300 }
301 }
302 //
303 ////////////////////////////////////////////////////////////////
304
305 ////////////////////////////////////////////////////////////////
306 // Das eigene Konto ermitteln
307 CashAccount20 acc = report.getAcct();
308 tag.my = new Konto();
309 tag.my.iban = acc.getId().getIBAN();
310 tag.my.curr = acc.getCcy();
311 tag.my.bic = acc.getSvcr().getFinInstnId().getBIC();
312 ////////////////////////////////////////////////////////////////
313
314 return tag;
315 }
316 }
317
318
0 /**********************************************************************
1 *
2 * Copyright (c) 2018 Olaf Willuhn
3 * All rights reserved.
4 *
5 * This software is copyrighted work licensed under the terms of the
6 * Jameica License. Please consult the file "LICENSE" for details.
7 *
8 **********************************************************************/
9
10 package org.kapott.hbci.GV.parsers;
11
12 import java.io.InputStream;
13 import java.math.BigDecimal;
14 import java.util.Date;
15 import java.util.List;
16
17 import javax.xml.bind.JAXB;
18
19 import org.kapott.hbci.GV.SepaUtil;
20 import org.kapott.hbci.GV_Result.GVRKUms;
21 import org.kapott.hbci.GV_Result.GVRKUms.BTag;
22 import org.kapott.hbci.GV_Result.GVRKUms.UmsLine;
23 import org.kapott.hbci.manager.HBCIUtils;
24 import org.kapott.hbci.sepa.jaxb.camt_052_001_03.AccountIdentification4Choice;
25 import org.kapott.hbci.sepa.jaxb.camt_052_001_03.AccountReport12;
26 import org.kapott.hbci.sepa.jaxb.camt_052_001_03.ActiveOrHistoricCurrencyAndAmount;
27 import org.kapott.hbci.sepa.jaxb.camt_052_001_03.BalanceType12Code;
28 import org.kapott.hbci.sepa.jaxb.camt_052_001_03.BankToCustomerAccountReportV03;
29 import org.kapott.hbci.sepa.jaxb.camt_052_001_03.BankTransactionCodeStructure4;
30 import org.kapott.hbci.sepa.jaxb.camt_052_001_03.BranchAndFinancialInstitutionIdentification5;
31 import org.kapott.hbci.sepa.jaxb.camt_052_001_03.CashAccount24;
32 import org.kapott.hbci.sepa.jaxb.camt_052_001_03.CashAccount25;
33 import org.kapott.hbci.sepa.jaxb.camt_052_001_03.CashBalance3;
34 import org.kapott.hbci.sepa.jaxb.camt_052_001_03.CreditDebitCode;
35 import org.kapott.hbci.sepa.jaxb.camt_052_001_03.DateAndDateTimeChoice;
36 import org.kapott.hbci.sepa.jaxb.camt_052_001_03.Document;
37 import org.kapott.hbci.sepa.jaxb.camt_052_001_03.EntryDetails2;
38 import org.kapott.hbci.sepa.jaxb.camt_052_001_03.EntryTransaction3;
39 import org.kapott.hbci.sepa.jaxb.camt_052_001_03.FinancialInstitutionIdentification8;
40 import org.kapott.hbci.sepa.jaxb.camt_052_001_03.PartyIdentification43;
41 import org.kapott.hbci.sepa.jaxb.camt_052_001_03.Purpose2Choice;
42 import org.kapott.hbci.sepa.jaxb.camt_052_001_03.ReportEntry3;
43 import org.kapott.hbci.sepa.jaxb.camt_052_001_03.TransactionAgents3;
44 import org.kapott.hbci.sepa.jaxb.camt_052_001_03.TransactionParties3;
45 import org.kapott.hbci.sepa.jaxb.camt_052_001_03.TransactionReferences3;
46 import org.kapott.hbci.structures.Konto;
47 import org.kapott.hbci.structures.Saldo;
48 import org.kapott.hbci.structures.Value;
49
50 /**
51 * Parser zum Lesen von Umsaetzen im CAMT.052 Format in Version 001.03.
52 */
53 public class ParseCamt05200103 implements ISEPAParser<GVRKUms>
54 {
55 /**
56 * @see org.kapott.hbci.GV.parsers.ISEPAParser#parse(java.io.InputStream, java.lang.Object)
57 */
58 @Override
59 public void parse(InputStream xml, GVRKUms result)
60 {
61
62 Document doc = JAXB.unmarshal(xml, Document.class);
63 BankToCustomerAccountReportV03 container = doc.getBkToCstmrAcctRpt();
64
65 // Dokument leer
66 if (container == null)
67 {
68 HBCIUtils.log("camt document empty",HBCIUtils.LOG_WARN);
69 return;
70 }
71
72 // Enthaelt per Definition genau einen Report von einem Buchungstag
73 List<AccountReport12> reports = container.getRpt();
74 if (reports == null || reports.size() == 0)
75 {
76 HBCIUtils.log("camt document empty",HBCIUtils.LOG_WARN);
77 return;
78 }
79
80 // Per Definition enthaelt die Datei beim CAMT-Abruf zwar genau einen Buchungstag.
81 // Da wir aber eine passende Datenstruktur haben, lesen wir mehr ein, falls
82 // mehr vorhanden sind. Dann koennen wird den Parser spaeter auch nutzen,
83 // um CAMT-Dateien aus anderen Quellen zu lesen.
84 for (AccountReport12 report:reports)
85 {
86 ////////////////////////////////////////////////////////////////////
87 // Kopf des Buchungstages
88 BTag tag = this.createDay(report);
89 result.getDataPerDay().add(tag);
90 //
91 ////////////////////////////////////////////////////////////////////
92
93 ////////////////////////////////////////////////////////////////////
94 // Die einzelnen Buchungen
95 BigDecimal saldo = tag.start != null && tag.start.value != null ? tag.start.value.getBigDecimalValue() : BigDecimal.ZERO;
96
97 for (ReportEntry3 entry:report.getNtry())
98 {
99 UmsLine line = this.createLine(entry,saldo);
100 if (line != null)
101 {
102 tag.lines.add(line);
103
104 // Saldo fortschreiben
105 saldo = line.saldo.value.getBigDecimalValue();
106 }
107 }
108 //
109 ////////////////////////////////////////////////////////////////////
110 }
111 }
112
113 /**
114 * Erzeugt eine einzelne Umsatzbuchung.
115 * @param entry der Entry aus der CAMT-Datei.
116 * @param der aktuelle Saldo vor dieser Buchung.
117 * @return die Umsatzbuchung.
118 */
119 private UmsLine createLine(ReportEntry3 entry, BigDecimal currSaldo)
120 {
121 UmsLine line = new UmsLine();
122 line.isSepa = true;
123 line.isCamt = true;
124 line.other = new Konto();
125
126 List<EntryDetails2> details = entry.getNtryDtls();
127 if (details.size() == 0)
128 return null;
129
130 // Das Schema sieht zwar mehrere Detail-Elemente vor, ich wuesste
131 // aber ohnehin nicht, wie man das sinnvoll mappen koennte
132 EntryDetails2 detail = details.get(0);
133
134 List<EntryTransaction3> txList = detail.getTxDtls();
135 if (txList.size() == 0)
136 return null;
137
138 // Checken, ob es Soll- oder Habenbuchung ist
139 boolean haben = entry.getCdtDbtInd() != null && entry.getCdtDbtInd() == CreditDebitCode.CRDT;
140
141 // ditto
142 EntryTransaction3 tx = txList.get(0);
143
144 ////////////////////////////////////////////////////////////////////////
145 // Buchungs-ID
146 TransactionReferences3 ref = tx.getRefs();
147 line.id = ref.getPrtry() != null && ref.getPrtry().size() > 0 ? ref.getPrtry().get(0).getRef() : null;
148 ////////////////////////////////////////////////////////////////////////
149
150 ////////////////////////////////////////////////////////////////////////
151 // Gegenkonto: IBAN + Name
152 TransactionParties3 other = tx.getRltdPties();
153 if (other != null)
154 {
155 CashAccount24 acc = haben ? other.getDbtrAcct() : other.getCdtrAcct();
156 AccountIdentification4Choice id = acc != null ? other.getDbtrAcct().getId() : null;
157 line.other.iban = id != null ? id.getIBAN() : null;
158
159 PartyIdentification43 name = haben ? other.getDbtr() : other.getCdtr();
160 line.other.name = name != null ? name.getNm() : null;
161 }
162 //
163 ////////////////////////////////////////////////////////////////////////
164
165 ////////////////////////////////////////////////////////////////////////
166 // Gegenkonto: BIC
167 TransactionAgents3 banks = tx.getRltdAgts();
168 if (banks != null)
169 {
170 BranchAndFinancialInstitutionIdentification5 bank = haben ? banks.getDbtrAgt() : banks.getCdtrAgt();
171 FinancialInstitutionIdentification8 bic = bank != null ? bank.getFinInstnId() : null;
172 line.other.bic = bank != null ? bic.getBICFI() : null;
173 }
174 //
175 ////////////////////////////////////////////////////////////////////////
176
177 ////////////////////////////////////////////////////////////////////////
178 // Verwendungszweck
179 List<String> usages = tx.getRmtInf() != null ? tx.getRmtInf().getUstrd() : null;
180 if (usages != null && usages.size() > 0)
181 line.usage.addAll(usages);
182 //
183 ////////////////////////////////////////////////////////////////////////
184
185 ////////////////////////////////////////////////////////////////////////
186 // Betrag
187 ActiveOrHistoricCurrencyAndAmount amt = entry.getAmt();
188 BigDecimal bd = amt.getValue() != null ? amt.getValue() : BigDecimal.ZERO;
189 line.value = new Value(haben ? bd : BigDecimal.ZERO.subtract(bd)); // Negativ-Betrag bei Soll-Buchung
190 line.value.setCurr(amt.getCcy());
191 //
192 ////////////////////////////////////////////////////////////////////////
193
194 ////////////////////////////////////////////////////////////////////////
195 // Storno-Kennzeichen
196 // Laut Spezifikation kehrt sich bei Stornobuchungen im Gegensatz zu MT940
197 // nicht das Vorzeichen um. Der Betrag bleibt also gleich
198 line.isStorno = entry.isRvslInd() != null ? entry.isRvslInd().booleanValue() : false;
199 //
200 ////////////////////////////////////////////////////////////////////////
201
202
203 ////////////////////////////////////////////////////////////////////////
204 // Buchungs- und Valuta-Datum
205 DateAndDateTimeChoice bdate = entry.getBookgDt();
206 line.bdate = bdate != null ? SepaUtil.toDate(bdate.getDt()) : null;
207
208 DateAndDateTimeChoice vdate = entry.getValDt();
209 line.valuta = vdate != null ? SepaUtil.toDate(vdate.getDt()) : null;
210
211 // Wenn einer von beiden Werten fehlt, uebernehmen wir dort den jeweils anderen
212 if (line.bdate == null) line.bdate = line.valuta;
213 if (line.valuta == null) line.valuta = line.bdate;
214 //
215 ////////////////////////////////////////////////////////////////////////
216
217 ////////////////////////////////////////////////////////////////////////
218 // Saldo
219 line.saldo = new Saldo();
220 line.saldo.value = new Value(currSaldo.add(line.value.getBigDecimalValue()));
221 line.saldo.value.setCurr(line.value.getCurr());
222 line.saldo.timestamp = line.bdate;
223 //
224 ////////////////////////////////////////////////////////////////////////
225
226 ////////////////////////////////////////////////////////////////////////
227 // Art und Kundenreferenz
228 line.text = entry.getAddtlNtryInf();
229 line.customerref = entry.getAcctSvcrRef();
230 //
231 ////////////////////////////////////////////////////////////////////////
232
233 ////////////////////////////////////////////////////////////////////////
234 // Primanota, GV-Code und GV-Code-Ergaenzung
235 // Ich weiss nicht, ob das bei allen Banken so codiert ist.
236 // Bei der Sparkasse ist es jedenfalls so.
237 BankTransactionCodeStructure4 b = tx.getBkTxCd();
238 String code = (b != null && b.getPrtry() != null) ? b.getPrtry().getCd() : null;
239 if (code != null && code.contains("+"))
240 {
241 String[] parts = code.split("\\+");
242 if (parts.length == 4)
243 {
244 line.gvcode = parts[1];
245 line.primanota = parts[2];
246 line.addkey = parts[3];
247 }
248 }
249 //
250 ////////////////////////////////////////////////////////////////////////
251
252 ////////////////////////////////////////////////////////////////////////
253 // Purpose-Code
254 Purpose2Choice purp = tx.getPurp();
255 line.purposecode = purp != null ? purp.getCd() : null;
256 //
257 ////////////////////////////////////////////////////////////////////////
258
259 return line;
260 }
261
262
263 /**
264 * Erzeugt einen neuen Buchungstag.
265 * @param report der Report.
266 * @return der erzeugte Buchungstag.
267 */
268 private BTag createDay(AccountReport12 report)
269 {
270 BTag tag = new BTag();
271 tag.start = new Saldo();
272 tag.end = new Saldo();
273 tag.starttype = 'F';
274 tag.endtype = 'F';
275
276 ////////////////////////////////////////////////////////////////
277 // Start- un End-Saldo ermitteln
278 final long day = 24 * 60 * 60 * 1000L;
279 for (CashBalance3 bal:report.getBal())
280 {
281 BalanceType12Code code = bal.getTp().getCdOrPrtry().getCd();
282
283 // Schluss-Saldo vom Vortag
284 if (code == BalanceType12Code.PRCD)
285 {
286 tag.start.value = new Value(bal.getAmt().getValue());
287 tag.start.value.setCurr(bal.getAmt().getCcy());
288
289 // Wir erhoehen noch das Datum um einen Tag, damit aus dem
290 // Schlusssaldo des Vortages der Startsaldo des aktuellen Tages wird.
291 tag.start.timestamp = new Date(SepaUtil.toDate(bal.getDt().getDt()).getTime() + day);
292 }
293
294 // End-Saldo
295 else if (code == BalanceType12Code.CLBD)
296 {
297 tag.end.value = new Value(bal.getAmt().getValue());
298 tag.end.value.setCurr(bal.getAmt().getCcy());
299 tag.end.timestamp = SepaUtil.toDate(bal.getDt().getDt());
300 }
301 }
302 //
303 ////////////////////////////////////////////////////////////////
304
305 ////////////////////////////////////////////////////////////////
306 // Das eigene Konto ermitteln
307 CashAccount25 acc = report.getAcct();
308 tag.my = new Konto();
309 tag.my.iban = acc.getId().getIBAN();
310 tag.my.curr = acc.getCcy();
311 tag.my.bic = acc.getSvcr().getFinInstnId().getBICFI();
312 ////////////////////////////////////////////////////////////////
313
314 return tag;
315 }
316 }
317
318
0 /**********************************************************************
1 *
2 * Copyright (c) 2018 Olaf Willuhn
3 * All rights reserved.
4 *
5 * This software is copyrighted work licensed under the terms of the
6 * Jameica License. Please consult the file "LICENSE" for details.
7 *
8 **********************************************************************/
9
10 package org.kapott.hbci.GV.parsers;
11
12 import java.io.InputStream;
13 import java.math.BigDecimal;
14 import java.util.Date;
15 import java.util.List;
16
17 import javax.xml.bind.JAXB;
18
19 import org.kapott.hbci.GV.SepaUtil;
20 import org.kapott.hbci.GV_Result.GVRKUms;
21 import org.kapott.hbci.GV_Result.GVRKUms.BTag;
22 import org.kapott.hbci.GV_Result.GVRKUms.UmsLine;
23 import org.kapott.hbci.manager.HBCIUtils;
24 import org.kapott.hbci.sepa.jaxb.camt_052_001_04.AccountIdentification4Choice;
25 import org.kapott.hbci.sepa.jaxb.camt_052_001_04.AccountReport16;
26 import org.kapott.hbci.sepa.jaxb.camt_052_001_04.ActiveOrHistoricCurrencyAndAmount;
27 import org.kapott.hbci.sepa.jaxb.camt_052_001_04.BalanceType12Code;
28 import org.kapott.hbci.sepa.jaxb.camt_052_001_04.BankToCustomerAccountReportV04;
29 import org.kapott.hbci.sepa.jaxb.camt_052_001_04.BankTransactionCodeStructure4;
30 import org.kapott.hbci.sepa.jaxb.camt_052_001_04.BranchAndFinancialInstitutionIdentification5;
31 import org.kapott.hbci.sepa.jaxb.camt_052_001_04.CashAccount24;
32 import org.kapott.hbci.sepa.jaxb.camt_052_001_04.CashAccount25;
33 import org.kapott.hbci.sepa.jaxb.camt_052_001_04.CashBalance3;
34 import org.kapott.hbci.sepa.jaxb.camt_052_001_04.CreditDebitCode;
35 import org.kapott.hbci.sepa.jaxb.camt_052_001_04.DateAndDateTimeChoice;
36 import org.kapott.hbci.sepa.jaxb.camt_052_001_04.Document;
37 import org.kapott.hbci.sepa.jaxb.camt_052_001_04.EntryDetails3;
38 import org.kapott.hbci.sepa.jaxb.camt_052_001_04.EntryTransaction4;
39 import org.kapott.hbci.sepa.jaxb.camt_052_001_04.FinancialInstitutionIdentification8;
40 import org.kapott.hbci.sepa.jaxb.camt_052_001_04.PartyIdentification43;
41 import org.kapott.hbci.sepa.jaxb.camt_052_001_04.Purpose2Choice;
42 import org.kapott.hbci.sepa.jaxb.camt_052_001_04.ReportEntry4;
43 import org.kapott.hbci.sepa.jaxb.camt_052_001_04.TransactionAgents3;
44 import org.kapott.hbci.sepa.jaxb.camt_052_001_04.TransactionParties3;
45 import org.kapott.hbci.sepa.jaxb.camt_052_001_04.TransactionReferences3;
46 import org.kapott.hbci.structures.Konto;
47 import org.kapott.hbci.structures.Saldo;
48 import org.kapott.hbci.structures.Value;
49
50 /**
51 * Parser zum Lesen von Umsaetzen im CAMT.052 Format in Version 001.04.
52 */
53 public class ParseCamt05200104 implements ISEPAParser<GVRKUms>
54 {
55 /**
56 * @see org.kapott.hbci.GV.parsers.ISEPAParser#parse(java.io.InputStream, java.lang.Object)
57 */
58 @Override
59 public void parse(InputStream xml, GVRKUms result)
60 {
61
62 Document doc = JAXB.unmarshal(xml, Document.class);
63 BankToCustomerAccountReportV04 container = doc.getBkToCstmrAcctRpt();
64
65 // Dokument leer
66 if (container == null)
67 {
68 HBCIUtils.log("camt document empty",HBCIUtils.LOG_WARN);
69 return;
70 }
71
72 // Enthaelt per Definition genau einen Report von einem Buchungstag
73 List<AccountReport16> reports = container.getRpt();
74 if (reports == null || reports.size() == 0)
75 {
76 HBCIUtils.log("camt document empty",HBCIUtils.LOG_WARN);
77 return;
78 }
79
80 // Per Definition enthaelt die Datei beim CAMT-Abruf zwar genau einen Buchungstag.
81 // Da wir aber eine passende Datenstruktur haben, lesen wir mehr ein, falls
82 // mehr vorhanden sind. Dann koennen wird den Parser spaeter auch nutzen,
83 // um CAMT-Dateien aus anderen Quellen zu lesen.
84 for (AccountReport16 report:reports)
85 {
86 ////////////////////////////////////////////////////////////////////
87 // Kopf des Buchungstages
88 BTag tag = this.createDay(report);
89 result.getDataPerDay().add(tag);
90 //
91 ////////////////////////////////////////////////////////////////////
92
93 ////////////////////////////////////////////////////////////////////
94 // Die einzelnen Buchungen
95 BigDecimal saldo = tag.start != null && tag.start.value != null ? tag.start.value.getBigDecimalValue() : BigDecimal.ZERO;
96
97 for (ReportEntry4 entry:report.getNtry())
98 {
99 UmsLine line = this.createLine(entry,saldo);
100 if (line != null)
101 {
102 tag.lines.add(line);
103
104 // Saldo fortschreiben
105 saldo = line.saldo.value.getBigDecimalValue();
106 }
107 }
108 //
109 ////////////////////////////////////////////////////////////////////
110 }
111 }
112
113 /**
114 * Erzeugt eine einzelne Umsatzbuchung.
115 * @param entry der Entry aus der CAMT-Datei.
116 * @param der aktuelle Saldo vor dieser Buchung.
117 * @return die Umsatzbuchung.
118 */
119 private UmsLine createLine(ReportEntry4 entry, BigDecimal currSaldo)
120 {
121 UmsLine line = new UmsLine();
122 line.isSepa = true;
123 line.isCamt = true;
124 line.other = new Konto();
125
126 List<EntryDetails3> details = entry.getNtryDtls();
127 if (details.size() == 0)
128 return null;
129
130 // Das Schema sieht zwar mehrere Detail-Elemente vor, ich wuesste
131 // aber ohnehin nicht, wie man das sinnvoll mappen koennte
132 EntryDetails3 detail = details.get(0);
133
134 List<EntryTransaction4> txList = detail.getTxDtls();
135 if (txList.size() == 0)
136 return null;
137
138 // Checken, ob es Soll- oder Habenbuchung ist
139 boolean haben = entry.getCdtDbtInd() != null && entry.getCdtDbtInd() == CreditDebitCode.CRDT;
140
141 // ditto
142 EntryTransaction4 tx = txList.get(0);
143
144 ////////////////////////////////////////////////////////////////////////
145 // Buchungs-ID
146 TransactionReferences3 ref = tx.getRefs();
147 line.id = ref.getPrtry() != null && ref.getPrtry().size() > 0 ? ref.getPrtry().get(0).getRef() : null;
148 ////////////////////////////////////////////////////////////////////////
149
150 ////////////////////////////////////////////////////////////////////////
151 // Gegenkonto: IBAN + Name
152 TransactionParties3 other = tx.getRltdPties();
153 if (other != null)
154 {
155 CashAccount24 acc = haben ? other.getDbtrAcct() : other.getCdtrAcct();
156 AccountIdentification4Choice id = acc != null ? other.getDbtrAcct().getId() : null;
157 line.other.iban = id != null ? id.getIBAN() : null;
158
159 PartyIdentification43 name = haben ? other.getDbtr() : other.getCdtr();
160 line.other.name = name != null ? name.getNm() : null;
161 }
162 //
163 ////////////////////////////////////////////////////////////////////////
164
165 ////////////////////////////////////////////////////////////////////////
166 // Gegenkonto: BIC
167 TransactionAgents3 banks = tx.getRltdAgts();
168 if (banks != null)
169 {
170 BranchAndFinancialInstitutionIdentification5 bank = haben ? banks.getDbtrAgt() : banks.getCdtrAgt();
171 FinancialInstitutionIdentification8 bic = bank != null ? bank.getFinInstnId() : null;
172 line.other.bic = bank != null ? bic.getBICFI() : null;
173 }
174 //
175 ////////////////////////////////////////////////////////////////////////
176
177 ////////////////////////////////////////////////////////////////////////
178 // Verwendungszweck
179 List<String> usages = tx.getRmtInf() != null ? tx.getRmtInf().getUstrd() : null;
180 if (usages != null && usages.size() > 0)
181 line.usage.addAll(usages);
182 //
183 ////////////////////////////////////////////////////////////////////////
184
185 ////////////////////////////////////////////////////////////////////////
186 // Betrag
187 ActiveOrHistoricCurrencyAndAmount amt = entry.getAmt();
188 BigDecimal bd = amt.getValue() != null ? amt.getValue() : BigDecimal.ZERO;
189 line.value = new Value(haben ? bd : BigDecimal.ZERO.subtract(bd)); // Negativ-Betrag bei Soll-Buchung
190 line.value.setCurr(amt.getCcy());
191 //
192 ////////////////////////////////////////////////////////////////////////
193
194 ////////////////////////////////////////////////////////////////////////
195 // Storno-Kennzeichen
196 // Laut Spezifikation kehrt sich bei Stornobuchungen im Gegensatz zu MT940
197 // nicht das Vorzeichen um. Der Betrag bleibt also gleich
198 line.isStorno = entry.isRvslInd() != null ? entry.isRvslInd().booleanValue() : false;
199 //
200 ////////////////////////////////////////////////////////////////////////
201
202
203 ////////////////////////////////////////////////////////////////////////
204 // Buchungs- und Valuta-Datum
205 DateAndDateTimeChoice bdate = entry.getBookgDt();
206 line.bdate = bdate != null ? SepaUtil.toDate(bdate.getDt()) : null;
207
208 DateAndDateTimeChoice vdate = entry.getValDt();
209 line.valuta = vdate != null ? SepaUtil.toDate(vdate.getDt()) : null;
210
211 // Wenn einer von beiden Werten fehlt, uebernehmen wir dort den jeweils anderen
212 if (line.bdate == null) line.bdate = line.valuta;
213 if (line.valuta == null) line.valuta = line.bdate;
214 //
215 ////////////////////////////////////////////////////////////////////////
216
217 ////////////////////////////////////////////////////////////////////////
218 // Saldo
219 line.saldo = new Saldo();
220 line.saldo.value = new Value(currSaldo.add(line.value.getBigDecimalValue()));
221 line.saldo.value.setCurr(line.value.getCurr());
222 line.saldo.timestamp = line.bdate;
223 //
224 ////////////////////////////////////////////////////////////////////////
225
226 ////////////////////////////////////////////////////////////////////////
227 // Art und Kundenreferenz
228 line.text = entry.getAddtlNtryInf();
229 line.customerref = entry.getAcctSvcrRef();
230 //
231 ////////////////////////////////////////////////////////////////////////
232
233 ////////////////////////////////////////////////////////////////////////
234 // Primanota, GV-Code und GV-Code-Ergaenzung
235 // Ich weiss nicht, ob das bei allen Banken so codiert ist.
236 // Bei der Sparkasse ist es jedenfalls so.
237 BankTransactionCodeStructure4 b = tx.getBkTxCd();
238 String code = (b != null && b.getPrtry() != null) ? b.getPrtry().getCd() : null;
239 if (code != null && code.contains("+"))
240 {
241 String[] parts = code.split("\\+");
242 if (parts.length == 4)
243 {
244 line.gvcode = parts[1];
245 line.primanota = parts[2];
246 line.addkey = parts[3];
247 }
248 }
249 //
250 ////////////////////////////////////////////////////////////////////////
251
252 ////////////////////////////////////////////////////////////////////////
253 // Purpose-Code
254 Purpose2Choice purp = tx.getPurp();
255 line.purposecode = purp != null ? purp.getCd() : null;
256 //
257 ////////////////////////////////////////////////////////////////////////
258
259 return line;
260 }
261
262
263 /**
264 * Erzeugt einen neuen Buchungstag.
265 * @param report der Report.
266 * @return der erzeugte Buchungstag.
267 */
268 private BTag createDay(AccountReport16 report)
269 {
270 BTag tag = new BTag();
271 tag.start = new Saldo();
272 tag.end = new Saldo();
273 tag.starttype = 'F';
274 tag.endtype = 'F';
275
276 ////////////////////////////////////////////////////////////////
277 // Start- un End-Saldo ermitteln
278 final long day = 24 * 60 * 60 * 1000L;
279 for (CashBalance3 bal:report.getBal())
280 {
281 BalanceType12Code code = bal.getTp().getCdOrPrtry().getCd();
282
283 // Schluss-Saldo vom Vortag
284 if (code == BalanceType12Code.PRCD)
285 {
286 tag.start.value = new Value(bal.getAmt().getValue());
287 tag.start.value.setCurr(bal.getAmt().getCcy());
288
289 // Wir erhoehen noch das Datum um einen Tag, damit aus dem
290 // Schlusssaldo des Vortages der Startsaldo des aktuellen Tages wird.
291 tag.start.timestamp = new Date(SepaUtil.toDate(bal.getDt().getDt()).getTime() + day);
292 }
293
294 // End-Saldo
295 else if (code == BalanceType12Code.CLBD)
296 {
297 tag.end.value = new Value(bal.getAmt().getValue());
298 tag.end.value.setCurr(bal.getAmt().getCcy());
299 tag.end.timestamp = SepaUtil.toDate(bal.getDt().getDt());
300 }
301 }
302 //
303 ////////////////////////////////////////////////////////////////
304
305 ////////////////////////////////////////////////////////////////
306 // Das eigene Konto ermitteln
307 CashAccount25 acc = report.getAcct();
308 tag.my = new Konto();
309 tag.my.iban = acc.getId().getIBAN();
310 tag.my.curr = acc.getCcy();
311 tag.my.bic = acc.getSvcr().getFinInstnId().getBICFI();
312 ////////////////////////////////////////////////////////////////
313
314 return tag;
315 }
316 }
317
318
0 /**********************************************************************
1 *
2 * Copyright (c) 2018 Olaf Willuhn
3 * All rights reserved.
4 *
5 * This software is copyrighted work licensed under the terms of the
6 * Jameica License. Please consult the file "LICENSE" for details.
7 *
8 **********************************************************************/
9
10 package org.kapott.hbci.GV.parsers;
11
12 import java.io.InputStream;
13 import java.math.BigDecimal;
14 import java.util.Date;
15 import java.util.List;
16
17 import javax.xml.bind.JAXB;
18
19 import org.kapott.hbci.GV.SepaUtil;
20 import org.kapott.hbci.GV_Result.GVRKUms;
21 import org.kapott.hbci.GV_Result.GVRKUms.BTag;
22 import org.kapott.hbci.GV_Result.GVRKUms.UmsLine;
23 import org.kapott.hbci.manager.HBCIUtils;
24 import org.kapott.hbci.sepa.jaxb.camt_052_001_05.AccountIdentification4Choice;
25 import org.kapott.hbci.sepa.jaxb.camt_052_001_05.AccountReport18;
26 import org.kapott.hbci.sepa.jaxb.camt_052_001_05.ActiveOrHistoricCurrencyAndAmount;
27 import org.kapott.hbci.sepa.jaxb.camt_052_001_05.BalanceType12Code;
28 import org.kapott.hbci.sepa.jaxb.camt_052_001_05.BankToCustomerAccountReportV05;
29 import org.kapott.hbci.sepa.jaxb.camt_052_001_05.BankTransactionCodeStructure4;
30 import org.kapott.hbci.sepa.jaxb.camt_052_001_05.BranchAndFinancialInstitutionIdentification5;
31 import org.kapott.hbci.sepa.jaxb.camt_052_001_05.CashAccount24;
32 import org.kapott.hbci.sepa.jaxb.camt_052_001_05.CashAccount25;
33 import org.kapott.hbci.sepa.jaxb.camt_052_001_05.CashBalance3;
34 import org.kapott.hbci.sepa.jaxb.camt_052_001_05.CreditDebitCode;
35 import org.kapott.hbci.sepa.jaxb.camt_052_001_05.DateAndDateTimeChoice;
36 import org.kapott.hbci.sepa.jaxb.camt_052_001_05.Document;
37 import org.kapott.hbci.sepa.jaxb.camt_052_001_05.EntryDetails6;
38 import org.kapott.hbci.sepa.jaxb.camt_052_001_05.EntryTransaction7;
39 import org.kapott.hbci.sepa.jaxb.camt_052_001_05.FinancialInstitutionIdentification8;
40 import org.kapott.hbci.sepa.jaxb.camt_052_001_05.PartyIdentification43;
41 import org.kapott.hbci.sepa.jaxb.camt_052_001_05.Purpose2Choice;
42 import org.kapott.hbci.sepa.jaxb.camt_052_001_05.ReportEntry7;
43 import org.kapott.hbci.sepa.jaxb.camt_052_001_05.TransactionAgents3;
44 import org.kapott.hbci.sepa.jaxb.camt_052_001_05.TransactionParties3;
45 import org.kapott.hbci.sepa.jaxb.camt_052_001_05.TransactionReferences3;
46 import org.kapott.hbci.structures.Konto;
47 import org.kapott.hbci.structures.Saldo;
48 import org.kapott.hbci.structures.Value;
49
50 /**
51 * Parser zum Lesen von Umsaetzen im CAMT.052 Format in Version 001.05.
52 */
53 public class ParseCamt05200105 implements ISEPAParser<GVRKUms>
54 {
55 /**
56 * @see org.kapott.hbci.GV.parsers.ISEPAParser#parse(java.io.InputStream, java.lang.Object)
57 */
58 @Override
59 public void parse(InputStream xml, GVRKUms result)
60 {
61
62 Document doc = JAXB.unmarshal(xml, Document.class);
63 BankToCustomerAccountReportV05 container = doc.getBkToCstmrAcctRpt();
64
65 // Dokument leer
66 if (container == null)
67 {
68 HBCIUtils.log("camt document empty",HBCIUtils.LOG_WARN);
69 return;
70 }
71
72 // Enthaelt per Definition genau einen Report von einem Buchungstag
73 List<AccountReport18> reports = container.getRpt();
74 if (reports == null || reports.size() == 0)
75 {
76 HBCIUtils.log("camt document empty",HBCIUtils.LOG_WARN);
77 return;
78 }
79
80 // Per Definition enthaelt die Datei beim CAMT-Abruf zwar genau einen Buchungstag.
81 // Da wir aber eine passende Datenstruktur haben, lesen wir mehr ein, falls
82 // mehr vorhanden sind. Dann koennen wird den Parser spaeter auch nutzen,
83 // um CAMT-Dateien aus anderen Quellen zu lesen.
84 for (AccountReport18 report:reports)
85 {
86 ////////////////////////////////////////////////////////////////////
87 // Kopf des Buchungstages
88 BTag tag = this.createDay(report);
89 result.getDataPerDay().add(tag);
90 //
91 ////////////////////////////////////////////////////////////////////
92
93 ////////////////////////////////////////////////////////////////////
94 // Die einzelnen Buchungen
95 BigDecimal saldo = tag.start != null && tag.start.value != null ? tag.start.value.getBigDecimalValue() : BigDecimal.ZERO;
96
97 for (ReportEntry7 entry:report.getNtry())
98 {
99 UmsLine line = this.createLine(entry,saldo);
100 if (line != null)
101 {
102 tag.lines.add(line);
103
104 // Saldo fortschreiben
105 saldo = line.saldo.value.getBigDecimalValue();
106 }
107 }
108 //
109 ////////////////////////////////////////////////////////////////////
110 }
111 }
112
113 /**
114 * Erzeugt eine einzelne Umsatzbuchung.
115 * @param entry der Entry aus der CAMT-Datei.
116 * @param der aktuelle Saldo vor dieser Buchung.
117 * @return die Umsatzbuchung.
118 */
119 private UmsLine createLine(ReportEntry7 entry, BigDecimal currSaldo)
120 {
121 UmsLine line = new UmsLine();
122 line.isSepa = true;
123 line.isCamt = true;
124 line.other = new Konto();
125
126 List<EntryDetails6> details = entry.getNtryDtls();
127 if (details.size() == 0)
128 return null;
129
130 // Das Schema sieht zwar mehrere Detail-Elemente vor, ich wuesste
131 // aber ohnehin nicht, wie man das sinnvoll mappen koennte
132 EntryDetails6 detail = details.get(0);
133
134 List<EntryTransaction7> txList = detail.getTxDtls();
135 if (txList.size() == 0)
136 return null;
137
138 // Checken, ob es Soll- oder Habenbuchung ist
139 boolean haben = entry.getCdtDbtInd() != null && entry.getCdtDbtInd() == CreditDebitCode.CRDT;
140
141 // ditto
142 EntryTransaction7 tx = txList.get(0);
143
144 ////////////////////////////////////////////////////////////////////////
145 // Buchungs-ID
146 TransactionReferences3 ref = tx.getRefs();
147 line.id = ref.getPrtry() != null && ref.getPrtry().size() > 0 ? ref.getPrtry().get(0).getRef() : null;
148 ////////////////////////////////////////////////////////////////////////
149
150 ////////////////////////////////////////////////////////////////////////
151 // Gegenkonto: IBAN + Name
152 TransactionParties3 other = tx.getRltdPties();
153 if (other != null)
154 {
155 CashAccount24 acc = haben ? other.getDbtrAcct() : other.getCdtrAcct();
156 AccountIdentification4Choice id = acc != null ? other.getDbtrAcct().getId() : null;
157 line.other.iban = id != null ? id.getIBAN() : null;
158
159 PartyIdentification43 name = haben ? other.getDbtr() : other.getCdtr();
160 line.other.name = name != null ? name.getNm() : null;
161 }
162 //
163 ////////////////////////////////////////////////////////////////////////
164
165 ////////////////////////////////////////////////////////////////////////
166 // Gegenkonto: BIC
167 TransactionAgents3 banks = tx.getRltdAgts();
168 if (banks != null)
169 {
170 BranchAndFinancialInstitutionIdentification5 bank = haben ? banks.getDbtrAgt() : banks.getCdtrAgt();
171 FinancialInstitutionIdentification8 bic = bank != null ? bank.getFinInstnId() : null;
172 line.other.bic = bank != null ? bic.getBICFI() : null;
173 }
174 //
175 ////////////////////////////////////////////////////////////////////////
176
177 ////////////////////////////////////////////////////////////////////////
178 // Verwendungszweck
179 List<String> usages = tx.getRmtInf() != null ? tx.getRmtInf().getUstrd() : null;
180 if (usages != null && usages.size() > 0)
181 line.usage.addAll(usages);
182 //
183 ////////////////////////////////////////////////////////////////////////
184
185 ////////////////////////////////////////////////////////////////////////
186 // Betrag
187 ActiveOrHistoricCurrencyAndAmount amt = entry.getAmt();
188 BigDecimal bd = amt.getValue() != null ? amt.getValue() : BigDecimal.ZERO;
189 line.value = new Value(haben ? bd : BigDecimal.ZERO.subtract(bd)); // Negativ-Betrag bei Soll-Buchung
190 line.value.setCurr(amt.getCcy());
191 //
192 ////////////////////////////////////////////////////////////////////////
193
194 ////////////////////////////////////////////////////////////////////////
195 // Storno-Kennzeichen
196 // Laut Spezifikation kehrt sich bei Stornobuchungen im Gegensatz zu MT940
197 // nicht das Vorzeichen um. Der Betrag bleibt also gleich
198 line.isStorno = entry.isRvslInd() != null ? entry.isRvslInd().booleanValue() : false;
199 //
200 ////////////////////////////////////////////////////////////////////////
201
202
203 ////////////////////////////////////////////////////////////////////////
204 // Buchungs- und Valuta-Datum
205 DateAndDateTimeChoice bdate = entry.getBookgDt();
206 line.bdate = bdate != null ? SepaUtil.toDate(bdate.getDt()) : null;
207
208 DateAndDateTimeChoice vdate = entry.getValDt();
209 line.valuta = vdate != null ? SepaUtil.toDate(vdate.getDt()) : null;
210
211 // Wenn einer von beiden Werten fehlt, uebernehmen wir dort den jeweils anderen
212 if (line.bdate == null) line.bdate = line.valuta;
213 if (line.valuta == null) line.valuta = line.bdate;
214 //
215 ////////////////////////////////////////////////////////////////////////
216
217 ////////////////////////////////////////////////////////////////////////
218 // Saldo
219 line.saldo = new Saldo();
220 line.saldo.value = new Value(currSaldo.add(line.value.getBigDecimalValue()));
221 line.saldo.value.setCurr(line.value.getCurr());
222 line.saldo.timestamp = line.bdate;
223 //
224 ////////////////////////////////////////////////////////////////////////
225
226 ////////////////////////////////////////////////////////////////////////
227 // Art und Kundenreferenz
228 line.text = entry.getAddtlNtryInf();
229 line.customerref = entry.getAcctSvcrRef();
230 //
231 ////////////////////////////////////////////////////////////////////////
232
233 ////////////////////////////////////////////////////////////////////////
234 // Primanota, GV-Code und GV-Code-Ergaenzung
235 // Ich weiss nicht, ob das bei allen Banken so codiert ist.
236 // Bei der Sparkasse ist es jedenfalls so.
237 BankTransactionCodeStructure4 b = tx.getBkTxCd();
238 String code = (b != null && b.getPrtry() != null) ? b.getPrtry().getCd() : null;
239 if (code != null && code.contains("+"))
240 {
241 String[] parts = code.split("\\+");
242 if (parts.length == 4)
243 {
244 line.gvcode = parts[1];
245 line.primanota = parts[2];
246 line.addkey = parts[3];
247 }
248 }
249 //
250 ////////////////////////////////////////////////////////////////////////
251
252 ////////////////////////////////////////////////////////////////////////
253 // Purpose-Code
254 Purpose2Choice purp = tx.getPurp();
255 line.purposecode = purp != null ? purp.getCd() : null;
256 //
257 ////////////////////////////////////////////////////////////////////////
258
259 return line;
260 }
261
262
263 /**
264 * Erzeugt einen neuen Buchungstag.
265 * @param report der Report.
266 * @return der erzeugte Buchungstag.
267 */
268 private BTag createDay(AccountReport18 report)
269 {
270 BTag tag = new BTag();
271 tag.start = new Saldo();
272 tag.end = new Saldo();
273 tag.starttype = 'F';
274 tag.endtype = 'F';
275
276 ////////////////////////////////////////////////////////////////
277 // Start- un End-Saldo ermitteln
278 final long day = 24 * 60 * 60 * 1000L;
279 for (CashBalance3 bal:report.getBal())
280 {
281 BalanceType12Code code = bal.getTp().getCdOrPrtry().getCd();
282
283 // Schluss-Saldo vom Vortag
284 if (code == BalanceType12Code.PRCD)
285 {
286 tag.start.value = new Value(bal.getAmt().getValue());
287 tag.start.value.setCurr(bal.getAmt().getCcy());
288
289 // Wir erhoehen noch das Datum um einen Tag, damit aus dem
290 // Schlusssaldo des Vortages der Startsaldo des aktuellen Tages wird.
291 tag.start.timestamp = new Date(SepaUtil.toDate(bal.getDt().getDt()).getTime() + day);
292 }
293
294 // End-Saldo
295 else if (code == BalanceType12Code.CLBD)
296 {
297 tag.end.value = new Value(bal.getAmt().getValue());
298 tag.end.value.setCurr(bal.getAmt().getCcy());
299 tag.end.timestamp = SepaUtil.toDate(bal.getDt().getDt());
300 }
301 }
302 //
303 ////////////////////////////////////////////////////////////////
304
305 ////////////////////////////////////////////////////////////////
306 // Das eigene Konto ermitteln
307 CashAccount25 acc = report.getAcct();
308 tag.my = new Konto();
309 tag.my.iban = acc.getId().getIBAN();
310 tag.my.curr = acc.getCcy();
311 tag.my.bic = acc.getSvcr().getFinInstnId().getBICFI();
312 ////////////////////////////////////////////////////////////////
313
314 return tag;
315 }
316 }
317
318
0 /**********************************************************************
1 *
2 * Copyright (c) 2018 Olaf Willuhn
3 * All rights reserved.
4 *
5 * This software is copyrighted work licensed under the terms of the
6 * Jameica License. Please consult the file "LICENSE" for details.
7 *
8 **********************************************************************/
9
10 package org.kapott.hbci.GV.parsers;
11
12 import java.io.InputStream;
13 import java.math.BigDecimal;
14 import java.util.Date;
15 import java.util.List;
16
17 import javax.xml.bind.JAXB;
18
19 import org.kapott.hbci.GV.SepaUtil;
20 import org.kapott.hbci.GV_Result.GVRKUms;
21 import org.kapott.hbci.GV_Result.GVRKUms.BTag;
22 import org.kapott.hbci.GV_Result.GVRKUms.UmsLine;
23 import org.kapott.hbci.manager.HBCIUtils;
24 import org.kapott.hbci.sepa.jaxb.camt_052_001_06.AccountIdentification4Choice;
25 import org.kapott.hbci.sepa.jaxb.camt_052_001_06.AccountReport19;
26 import org.kapott.hbci.sepa.jaxb.camt_052_001_06.ActiveOrHistoricCurrencyAndAmount;
27 import org.kapott.hbci.sepa.jaxb.camt_052_001_06.BalanceType12Code;
28 import org.kapott.hbci.sepa.jaxb.camt_052_001_06.BankToCustomerAccountReportV06;
29 import org.kapott.hbci.sepa.jaxb.camt_052_001_06.BankTransactionCodeStructure4;
30 import org.kapott.hbci.sepa.jaxb.camt_052_001_06.BranchAndFinancialInstitutionIdentification5;
31 import org.kapott.hbci.sepa.jaxb.camt_052_001_06.CashAccount24;
32 import org.kapott.hbci.sepa.jaxb.camt_052_001_06.CashAccount25;
33 import org.kapott.hbci.sepa.jaxb.camt_052_001_06.CashBalance7;
34 import org.kapott.hbci.sepa.jaxb.camt_052_001_06.CreditDebitCode;
35 import org.kapott.hbci.sepa.jaxb.camt_052_001_06.DateAndDateTimeChoice;
36 import org.kapott.hbci.sepa.jaxb.camt_052_001_06.Document;
37 import org.kapott.hbci.sepa.jaxb.camt_052_001_06.EntryDetails7;
38 import org.kapott.hbci.sepa.jaxb.camt_052_001_06.EntryTransaction8;
39 import org.kapott.hbci.sepa.jaxb.camt_052_001_06.FinancialInstitutionIdentification8;
40 import org.kapott.hbci.sepa.jaxb.camt_052_001_06.PartyIdentification43;
41 import org.kapott.hbci.sepa.jaxb.camt_052_001_06.Purpose2Choice;
42 import org.kapott.hbci.sepa.jaxb.camt_052_001_06.ReportEntry8;
43 import org.kapott.hbci.sepa.jaxb.camt_052_001_06.TransactionAgents3;
44 import org.kapott.hbci.sepa.jaxb.camt_052_001_06.TransactionParties3;
45 import org.kapott.hbci.sepa.jaxb.camt_052_001_06.TransactionReferences3;
46 import org.kapott.hbci.structures.Konto;
47 import org.kapott.hbci.structures.Saldo;
48 import org.kapott.hbci.structures.Value;
49
50 /**
51 * Parser zum Lesen von Umsaetzen im CAMT.052 Format in Version 001.06.
52 */
53 public class ParseCamt05200106 implements ISEPAParser<GVRKUms>
54 {
55 /**
56 * @see org.kapott.hbci.GV.parsers.ISEPAParser#parse(java.io.InputStream, java.lang.Object)
57 */
58 @Override
59 public void parse(InputStream xml, GVRKUms result)
60 {
61
62 Document doc = JAXB.unmarshal(xml, Document.class);
63 BankToCustomerAccountReportV06 container = doc.getBkToCstmrAcctRpt();
64
65 // Dokument leer
66 if (container == null)
67 {
68 HBCIUtils.log("camt document empty",HBCIUtils.LOG_WARN);
69 return;
70 }
71
72 // Enthaelt per Definition genau einen Report von einem Buchungstag
73 List<AccountReport19> reports = container.getRpt();
74 if (reports == null || reports.size() == 0)
75 {
76 HBCIUtils.log("camt document empty",HBCIUtils.LOG_WARN);
77 return;
78 }
79
80 // Per Definition enthaelt die Datei beim CAMT-Abruf zwar genau einen Buchungstag.
81 // Da wir aber eine passende Datenstruktur haben, lesen wir mehr ein, falls
82 // mehr vorhanden sind. Dann koennen wird den Parser spaeter auch nutzen,
83 // um CAMT-Dateien aus anderen Quellen zu lesen.
84 for (AccountReport19 report:reports)
85 {
86 ////////////////////////////////////////////////////////////////////
87 // Kopf des Buchungstages
88 BTag tag = this.createDay(report);
89 result.getDataPerDay().add(tag);
90 //
91 ////////////////////////////////////////////////////////////////////
92
93 ////////////////////////////////////////////////////////////////////
94 // Die einzelnen Buchungen
95 BigDecimal saldo = tag.start != null && tag.start.value != null ? tag.start.value.getBigDecimalValue() : BigDecimal.ZERO;
96
97 for (ReportEntry8 entry:report.getNtry())
98 {
99 UmsLine line = this.createLine(entry,saldo);
100 if (line != null)
101 {
102 tag.lines.add(line);
103
104 // Saldo fortschreiben
105 saldo = line.saldo.value.getBigDecimalValue();
106 }
107 }
108 //
109 ////////////////////////////////////////////////////////////////////
110 }
111 }
112
113 /**
114 * Erzeugt eine einzelne Umsatzbuchung.
115 * @param entry der Entry aus der CAMT-Datei.
116 * @param der aktuelle Saldo vor dieser Buchung.
117 * @return die Umsatzbuchung.
118 */
119 private UmsLine createLine(ReportEntry8 entry, BigDecimal currSaldo)
120 {
121 UmsLine line = new UmsLine();
122 line.isSepa = true;
123 line.isCamt = true;
124 line.other = new Konto();
125
126 List<EntryDetails7> details = entry.getNtryDtls();
127 if (details.size() == 0)
128 return null;
129
130 // Das Schema sieht zwar mehrere Detail-Elemente vor, ich wuesste
131 // aber ohnehin nicht, wie man das sinnvoll mappen koennte
132 EntryDetails7 detail = details.get(0);
133
134 List<EntryTransaction8> txList = detail.getTxDtls();
135 if (txList.size() == 0)
136 return null;
137
138 // Checken, ob es Soll- oder Habenbuchung ist
139 boolean haben = entry.getCdtDbtInd() != null && entry.getCdtDbtInd() == CreditDebitCode.CRDT;
140
141 // ditto
142 EntryTransaction8 tx = txList.get(0);
143
144 ////////////////////////////////////////////////////////////////////////
145 // Buchungs-ID
146 TransactionReferences3 ref = tx.getRefs();
147 line.id = ref.getPrtry() != null && ref.getPrtry().size() > 0 ? ref.getPrtry().get(0).getRef() : null;
148 ////////////////////////////////////////////////////////////////////////
149
150 ////////////////////////////////////////////////////////////////////////
151 // Gegenkonto: IBAN + Name
152 TransactionParties3 other = tx.getRltdPties();
153 if (other != null)
154 {
155 CashAccount24 acc = haben ? other.getDbtrAcct() : other.getCdtrAcct();
156 AccountIdentification4Choice id = acc != null ? other.getDbtrAcct().getId() : null;
157 line.other.iban = id != null ? id.getIBAN() : null;
158
159 PartyIdentification43 name = haben ? other.getDbtr() : other.getCdtr();
160 line.other.name = name != null ? name.getNm() : null;
161 }
162 //
163 ////////////////////////////////////////////////////////////////////////
164
165 ////////////////////////////////////////////////////////////////////////
166 // Gegenkonto: BIC
167 TransactionAgents3 banks = tx.getRltdAgts();
168 if (banks != null)
169 {
170 BranchAndFinancialInstitutionIdentification5 bank = haben ? banks.getDbtrAgt() : banks.getCdtrAgt();
171 FinancialInstitutionIdentification8 bic = bank != null ? bank.getFinInstnId() : null;
172 line.other.bic = bank != null ? bic.getBICFI() : null;
173 }
174 //
175 ////////////////////////////////////////////////////////////////////////
176
177 ////////////////////////////////////////////////////////////////////////
178 // Verwendungszweck
179 List<String> usages = tx.getRmtInf() != null ? tx.getRmtInf().getUstrd() : null;
180 if (usages != null && usages.size() > 0)
181 line.usage.addAll(usages);
182 //
183 ////////////////////////////////////////////////////////////////////////
184
185 ////////////////////////////////////////////////////////////////////////
186 // Betrag
187 ActiveOrHistoricCurrencyAndAmount amt = entry.getAmt();
188 BigDecimal bd = amt.getValue() != null ? amt.getValue() : BigDecimal.ZERO;
189 line.value = new Value(haben ? bd : BigDecimal.ZERO.subtract(bd)); // Negativ-Betrag bei Soll-Buchung
190 line.value.setCurr(amt.getCcy());
191 //
192 ////////////////////////////////////////////////////////////////////////
193
194 ////////////////////////////////////////////////////////////////////////
195 // Storno-Kennzeichen
196 // Laut Spezifikation kehrt sich bei Stornobuchungen im Gegensatz zu MT940
197 // nicht das Vorzeichen um. Der Betrag bleibt also gleich
198 line.isStorno = entry.isRvslInd() != null ? entry.isRvslInd().booleanValue() : false;
199 //
200 ////////////////////////////////////////////////////////////////////////
201
202
203 ////////////////////////////////////////////////////////////////////////
204 // Buchungs- und Valuta-Datum
205 DateAndDateTimeChoice bdate = entry.getBookgDt();
206 line.bdate = bdate != null ? SepaUtil.toDate(bdate.getDt()) : null;
207
208 DateAndDateTimeChoice vdate = entry.getValDt();
209 line.valuta = vdate != null ? SepaUtil.toDate(vdate.getDt()) : null;
210
211 // Wenn einer von beiden Werten fehlt, uebernehmen wir dort den jeweils anderen
212 if (line.bdate == null) line.bdate = line.valuta;
213 if (line.valuta == null) line.valuta = line.bdate;
214 //
215 ////////////////////////////////////////////////////////////////////////
216
217 ////////////////////////////////////////////////////////////////////////
218 // Saldo
219 line.saldo = new Saldo();
220 line.saldo.value = new Value(currSaldo.add(line.value.getBigDecimalValue()));
221 line.saldo.value.setCurr(line.value.getCurr());
222 line.saldo.timestamp = line.bdate;
223 //
224 ////////////////////////////////////////////////////////////////////////
225
226 ////////////////////////////////////////////////////////////////////////
227 // Art und Kundenreferenz
228 line.text = entry.getAddtlNtryInf();
229 line.customerref = entry.getAcctSvcrRef();
230 //
231 ////////////////////////////////////////////////////////////////////////
232
233 ////////////////////////////////////////////////////////////////////////
234 // Primanota, GV-Code und GV-Code-Ergaenzung
235 // Ich weiss nicht, ob das bei allen Banken so codiert ist.
236 // Bei der Sparkasse ist es jedenfalls so.
237 BankTransactionCodeStructure4 b = tx.getBkTxCd();
238 String code = (b != null && b.getPrtry() != null) ? b.getPrtry().getCd() : null;
239 if (code != null && code.contains("+"))
240 {
241 String[] parts = code.split("\\+");
242 if (parts.length == 4)
243 {
244 line.gvcode = parts[1];
245 line.primanota = parts[2];
246 line.addkey = parts[3];
247 }
248 }
249 //
250 ////////////////////////////////////////////////////////////////////////
251
252 ////////////////////////////////////////////////////////////////////////
253 // Purpose-Code
254 Purpose2Choice purp = tx.getPurp();
255 line.purposecode = purp != null ? purp.getCd() : null;
256 //
257 ////////////////////////////////////////////////////////////////////////
258
259 return line;
260 }
261
262
263 /**
264 * Erzeugt einen neuen Buchungstag.
265 * @param report der Report.
266 * @return der erzeugte Buchungstag.
267 */
268 private BTag createDay(AccountReport19 report)
269 {
270 BTag tag = new BTag();
271 tag.start = new Saldo();
272 tag.end = new Saldo();
273 tag.starttype = 'F';
274 tag.endtype = 'F';
275
276 ////////////////////////////////////////////////////////////////
277 // Start- un End-Saldo ermitteln
278 final long day = 24 * 60 * 60 * 1000L;
279 for (CashBalance7 bal:report.getBal())
280 {
281 BalanceType12Code code = bal.getTp().getCdOrPrtry().getCd();
282
283 // Schluss-Saldo vom Vortag
284 if (code == BalanceType12Code.PRCD)
285 {
286 tag.start.value = new Value(bal.getAmt().getValue());
287 tag.start.value.setCurr(bal.getAmt().getCcy());
288
289 // Wir erhoehen noch das Datum um einen Tag, damit aus dem
290 // Schlusssaldo des Vortages der Startsaldo des aktuellen Tages wird.
291 tag.start.timestamp = new Date(SepaUtil.toDate(bal.getDt().getDt()).getTime() + day);
292 }
293
294 // End-Saldo
295 else if (code == BalanceType12Code.CLBD)
296 {
297 tag.end.value = new Value(bal.getAmt().getValue());
298 tag.end.value.setCurr(bal.getAmt().getCcy());
299 tag.end.timestamp = SepaUtil.toDate(bal.getDt().getDt());
300 }
301 }
302 //
303 ////////////////////////////////////////////////////////////////
304
305 ////////////////////////////////////////////////////////////////
306 // Das eigene Konto ermitteln
307 CashAccount25 acc = report.getAcct();
308 tag.my = new Konto();
309 tag.my.iban = acc.getId().getIBAN();
310 tag.my.curr = acc.getCcy();
311 tag.my.bic = acc.getSvcr().getFinInstnId().getBICFI();
312 ////////////////////////////////////////////////////////////////
313
314 return tag;
315 }
316 }
317
318
0 /**********************************************************************
1 *
2 * Copyright (c) 2018 Olaf Willuhn
3 * All rights reserved.
4 *
5 * This software is copyrighted work licensed under the terms of the
6 * Jameica License. Please consult the file "LICENSE" for details.
7 *
8 **********************************************************************/
9
10 package org.kapott.hbci.GV.parsers;
11
12 import java.io.InputStream;
13 import java.math.BigDecimal;
14 import java.util.Date;
15 import java.util.List;
16
17 import javax.xml.bind.JAXB;
18
19 import org.kapott.hbci.GV.SepaUtil;
20 import org.kapott.hbci.GV_Result.GVRKUms;
21 import org.kapott.hbci.GV_Result.GVRKUms.BTag;
22 import org.kapott.hbci.GV_Result.GVRKUms.UmsLine;
23 import org.kapott.hbci.manager.HBCIUtils;
24 import org.kapott.hbci.sepa.jaxb.camt_052_001_07.AccountIdentification4Choice;
25 import org.kapott.hbci.sepa.jaxb.camt_052_001_07.AccountReport22;
26 import org.kapott.hbci.sepa.jaxb.camt_052_001_07.ActiveOrHistoricCurrencyAndAmount;
27 import org.kapott.hbci.sepa.jaxb.camt_052_001_07.BankToCustomerAccountReportV07;
28 import org.kapott.hbci.sepa.jaxb.camt_052_001_07.BankTransactionCodeStructure4;
29 import org.kapott.hbci.sepa.jaxb.camt_052_001_07.BranchAndFinancialInstitutionIdentification5;
30 import org.kapott.hbci.sepa.jaxb.camt_052_001_07.CashAccount24;
31 import org.kapott.hbci.sepa.jaxb.camt_052_001_07.CashAccount36;
32 import org.kapott.hbci.sepa.jaxb.camt_052_001_07.CashBalance8;
33 import org.kapott.hbci.sepa.jaxb.camt_052_001_07.CreditDebitCode;
34 import org.kapott.hbci.sepa.jaxb.camt_052_001_07.DateAndDateTime2Choice;
35 import org.kapott.hbci.sepa.jaxb.camt_052_001_07.Document;
36 import org.kapott.hbci.sepa.jaxb.camt_052_001_07.EntryDetails8;
37 import org.kapott.hbci.sepa.jaxb.camt_052_001_07.EntryTransaction9;
38 import org.kapott.hbci.sepa.jaxb.camt_052_001_07.FinancialInstitutionIdentification8;
39 import org.kapott.hbci.sepa.jaxb.camt_052_001_07.Party35Choice;
40 import org.kapott.hbci.sepa.jaxb.camt_052_001_07.PartyIdentification125;
41 import org.kapott.hbci.sepa.jaxb.camt_052_001_07.Purpose2Choice;
42 import org.kapott.hbci.sepa.jaxb.camt_052_001_07.ReportEntry9;
43 import org.kapott.hbci.sepa.jaxb.camt_052_001_07.TransactionAgents4;
44 import org.kapott.hbci.sepa.jaxb.camt_052_001_07.TransactionParties4;
45 import org.kapott.hbci.sepa.jaxb.camt_052_001_07.TransactionReferences3;
46 import org.kapott.hbci.structures.Konto;
47 import org.kapott.hbci.structures.Saldo;
48 import org.kapott.hbci.structures.Value;
49
50 /**
51 * Parser zum Lesen von Umsaetzen im CAMT.052 Format in Version 001.07.
52 */
53 public class ParseCamt05200107 implements ISEPAParser<GVRKUms>
54 {
55 /**
56 * @see org.kapott.hbci.GV.parsers.ISEPAParser#parse(java.io.InputStream, java.lang.Object)
57 */
58 @Override
59 public void parse(InputStream xml, GVRKUms result)
60 {
61
62 Document doc = JAXB.unmarshal(xml, Document.class);
63 BankToCustomerAccountReportV07 container = doc.getBkToCstmrAcctRpt();
64
65 // Dokument leer
66 if (container == null)
67 {
68 HBCIUtils.log("camt document empty",HBCIUtils.LOG_WARN);
69 return;
70 }
71
72 // Enthaelt per Definition genau einen Report von einem Buchungstag
73 List<AccountReport22> reports = container.getRpt();
74 if (reports == null || reports.size() == 0)
75 {
76 HBCIUtils.log("camt document empty",HBCIUtils.LOG_WARN);
77 return;
78 }
79
80 // Per Definition enthaelt die Datei beim CAMT-Abruf zwar genau einen Buchungstag.
81 // Da wir aber eine passende Datenstruktur haben, lesen wir mehr ein, falls
82 // mehr vorhanden sind. Dann koennen wird den Parser spaeter auch nutzen,
83 // um CAMT-Dateien aus anderen Quellen zu lesen.
84 for (AccountReport22 report:reports)
85 {
86 ////////////////////////////////////////////////////////////////////
87 // Kopf des Buchungstages
88 BTag tag = this.createDay(report);
89 result.getDataPerDay().add(tag);
90 //
91 ////////////////////////////////////////////////////////////////////
92
93 ////////////////////////////////////////////////////////////////////
94 // Die einzelnen Buchungen
95 BigDecimal saldo = tag.start != null && tag.start.value != null ? tag.start.value.getBigDecimalValue() : BigDecimal.ZERO;
96
97 for (ReportEntry9 entry:report.getNtry())
98 {
99 UmsLine line = this.createLine(entry,saldo);
100 if (line != null)
101 {
102 tag.lines.add(line);
103
104 // Saldo fortschreiben
105 saldo = line.saldo.value.getBigDecimalValue();
106 }
107 }
108 //
109 ////////////////////////////////////////////////////////////////////
110 }
111 }
112
113 /**
114 * Erzeugt eine einzelne Umsatzbuchung.
115 * @param entry der Entry aus der CAMT-Datei.
116 * @param der aktuelle Saldo vor dieser Buchung.
117 * @return die Umsatzbuchung.
118 */
119 private UmsLine createLine(ReportEntry9 entry, BigDecimal currSaldo)
120 {
121 UmsLine line = new UmsLine();
122 line.isSepa = true;
123 line.isCamt = true;
124 line.other = new Konto();
125
126 List<EntryDetails8> details = entry.getNtryDtls();
127 if (details.size() == 0)
128 return null;
129
130 // Das Schema sieht zwar mehrere Detail-Elemente vor, ich wuesste
131 // aber ohnehin nicht, wie man das sinnvoll mappen koennte
132 EntryDetails8 detail = details.get(0);
133
134 List<EntryTransaction9> txList = detail.getTxDtls();
135 if (txList.size() == 0)
136 return null;
137
138 // Checken, ob es Soll- oder Habenbuchung ist
139 boolean haben = entry.getCdtDbtInd() != null && entry.getCdtDbtInd() == CreditDebitCode.CRDT;
140
141 // ditto
142 EntryTransaction9 tx = txList.get(0);
143
144 ////////////////////////////////////////////////////////////////////////
145 // Buchungs-ID
146 TransactionReferences3 ref = tx.getRefs();
147 line.id = ref.getPrtry() != null && ref.getPrtry().size() > 0 ? ref.getPrtry().get(0).getRef() : null;
148 ////////////////////////////////////////////////////////////////////////
149
150 ////////////////////////////////////////////////////////////////////////
151 // Gegenkonto: IBAN + Name
152 TransactionParties4 other = tx.getRltdPties();
153 if (other != null)
154 {
155 CashAccount24 acc = haben ? other.getDbtrAcct() : other.getCdtrAcct();
156 AccountIdentification4Choice id = acc != null ? other.getDbtrAcct().getId() : null;
157 line.other.iban = id != null ? id.getIBAN() : null;
158
159 Party35Choice party = haben ? other.getDbtr() : other.getCdtr();
160 PartyIdentification125 pi = party != null ? party.getPty() : null;
161 line.other.name = pi != null ? pi.getNm() : null;
162 }
163 //
164 ////////////////////////////////////////////////////////////////////////
165
166 ////////////////////////////////////////////////////////////////////////
167 // Gegenkonto: BIC
168 TransactionAgents4 banks = tx.getRltdAgts();
169 if (banks != null)
170 {
171 BranchAndFinancialInstitutionIdentification5 bank = haben ? banks.getDbtrAgt() : banks.getCdtrAgt();
172 FinancialInstitutionIdentification8 bic = bank != null ? bank.getFinInstnId() : null;
173 line.other.bic = bank != null ? bic.getBICFI() : null;
174 }
175 //
176 ////////////////////////////////////////////////////////////////////////
177
178 ////////////////////////////////////////////////////////////////////////
179 // Verwendungszweck
180 List<String> usages = tx.getRmtInf() != null ? tx.getRmtInf().getUstrd() : null;
181 if (usages != null && usages.size() > 0)
182 line.usage.addAll(usages);
183 //
184 ////////////////////////////////////////////////////////////////////////
185
186 ////////////////////////////////////////////////////////////////////////
187 // Betrag
188 ActiveOrHistoricCurrencyAndAmount amt = entry.getAmt();
189 BigDecimal bd = amt.getValue() != null ? amt.getValue() : BigDecimal.ZERO;
190 line.value = new Value(haben ? bd : BigDecimal.ZERO.subtract(bd)); // Negativ-Betrag bei Soll-Buchung
191 line.value.setCurr(amt.getCcy());
192 //
193 ////////////////////////////////////////////////////////////////////////
194
195 ////////////////////////////////////////////////////////////////////////
196 // Storno-Kennzeichen
197 // Laut Spezifikation kehrt sich bei Stornobuchungen im Gegensatz zu MT940
198 // nicht das Vorzeichen um. Der Betrag bleibt also gleich
199 line.isStorno = entry.isRvslInd() != null ? entry.isRvslInd().booleanValue() : false;
200 //
201 ////////////////////////////////////////////////////////////////////////
202
203
204 ////////////////////////////////////////////////////////////////////////
205 // Buchungs- und Valuta-Datum
206 DateAndDateTime2Choice bdate = entry.getBookgDt();
207 line.bdate = bdate != null ? SepaUtil.toDate(bdate.getDt()) : null;
208
209 DateAndDateTime2Choice vdate = entry.getValDt();
210 line.valuta = vdate != null ? SepaUtil.toDate(vdate.getDt()) : null;
211
212 // Wenn einer von beiden Werten fehlt, uebernehmen wir dort den jeweils anderen
213 if (line.bdate == null) line.bdate = line.valuta;
214 if (line.valuta == null) line.valuta = line.bdate;
215 //
216 ////////////////////////////////////////////////////////////////////////
217
218 ////////////////////////////////////////////////////////////////////////
219 // Saldo
220 line.saldo = new Saldo();
221 line.saldo.value = new Value(currSaldo.add(line.value.getBigDecimalValue()));
222 line.saldo.value.setCurr(line.value.getCurr());
223 line.saldo.timestamp = line.bdate;
224 //
225 ////////////////////////////////////////////////////////////////////////
226
227 ////////////////////////////////////////////////////////////////////////
228 // Art und Kundenreferenz
229 line.text = entry.getAddtlNtryInf();
230 line.customerref = entry.getAcctSvcrRef();
231 //
232 ////////////////////////////////////////////////////////////////////////
233
234 ////////////////////////////////////////////////////////////////////////
235 // Primanota, GV-Code und GV-Code-Ergaenzung
236 // Ich weiss nicht, ob das bei allen Banken so codiert ist.
237 // Bei der Sparkasse ist es jedenfalls so.
238 BankTransactionCodeStructure4 b = tx.getBkTxCd();
239 String code = (b != null && b.getPrtry() != null) ? b.getPrtry().getCd() : null;
240 if (code != null && code.contains("+"))
241 {
242 String[] parts = code.split("\\+");
243 if (parts.length == 4)
244 {
245 line.gvcode = parts[1];
246 line.primanota = parts[2];
247 line.addkey = parts[3];
248 }
249 }
250 //
251 ////////////////////////////////////////////////////////////////////////
252
253 ////////////////////////////////////////////////////////////////////////
254 // Purpose-Code
255 Purpose2Choice purp = tx.getPurp();
256 line.purposecode = purp != null ? purp.getCd() : null;
257 //
258 ////////////////////////////////////////////////////////////////////////
259
260 return line;
261 }
262
263
264 /**
265 * Erzeugt einen neuen Buchungstag.
266 * @param report der Report.
267 * @return der erzeugte Buchungstag.
268 */
269 private BTag createDay(AccountReport22 report)
270 {
271 BTag tag = new BTag();
272 tag.start = new Saldo();
273 tag.end = new Saldo();
274 tag.starttype = 'F';
275 tag.endtype = 'F';
276
277 ////////////////////////////////////////////////////////////////
278 // Start- un End-Saldo ermitteln
279 final long day = 24 * 60 * 60 * 1000L;
280 for (CashBalance8 bal:report.getBal())
281 {
282 String code = bal.getTp().getCdOrPrtry().getCd();
283
284 // Schluss-Saldo vom Vortag
285 if (code != null && code.equalsIgnoreCase("PRCD"))
286 {
287 tag.start.value = new Value(bal.getAmt().getValue());
288 tag.start.value.setCurr(bal.getAmt().getCcy());
289
290 // Wir erhoehen noch das Datum um einen Tag, damit aus dem
291 // Schlusssaldo des Vortages der Startsaldo des aktuellen Tages wird.
292 tag.start.timestamp = new Date(SepaUtil.toDate(bal.getDt().getDt()).getTime() + day);
293 }
294
295 // End-Saldo
296 if (code != null && code.equalsIgnoreCase("CLBD"))
297 {
298 tag.end.value = new Value(bal.getAmt().getValue());
299 tag.end.value.setCurr(bal.getAmt().getCcy());
300 tag.end.timestamp = SepaUtil.toDate(bal.getDt().getDt());
301 }
302 }
303 //
304 ////////////////////////////////////////////////////////////////
305
306 ////////////////////////////////////////////////////////////////
307 // Das eigene Konto ermitteln
308 CashAccount36 acc = report.getAcct();
309 tag.my = new Konto();
310 tag.my.iban = acc.getId().getIBAN();
311 tag.my.curr = acc.getCcy();
312 tag.my.bic = acc.getSvcr().getFinInstnId().getBICFI();
313 ////////////////////////////////////////////////////////////////
314
315 return tag;
316 }
317 }
318
319
1818 /**
1919 * Parser-Implementierung fuer Pain 001.001.02.
2020 */
21 public class ParsePain00100102 extends AbstractSepaParser
21 public class ParsePain00100102 extends AbstractSepaParser<List<Properties>>
2222 {
23
2423 /**
25 * @see org.kapott.hbci.GV.parsers.ISEPAParser#parse(java.io.InputStream, java.util.List)
24 * @see org.kapott.hbci.GV.parsers.ISEPAParser#parse(java.io.InputStream, java.lang.Object)
2625 */
27 public void parse(InputStream xml, List<Properties> sepaResults)
26 public void parse(InputStream xml, List<Properties> sepaResults)
2827 {
29
3028 Document doc = JAXB.unmarshal(xml, Document.class);
3129 Pain00100102 pain = doc.getPain00100102();
3230
1919 /**
2020 * Parser-Implementierung fuer Pain 001.001.03.
2121 */
22 public class ParsePain00100103 extends AbstractSepaParser
22 public class ParsePain00100103 extends AbstractSepaParser<List<Properties>>
2323 {
24
2524 /**
26 * @see org.kapott.hbci.GV.parsers.ISEPAParser#parse(java.io.InputStream, java.util.List)
25 * @see org.kapott.hbci.GV.parsers.ISEPAParser#parse(java.io.InputStream, java.lang.Object)
2726 */
2827 public void parse(InputStream xml, List<Properties> sepaResults)
2928 {
30
3129 Document doc = JAXB.unmarshal(xml, Document.class);
3230 CustomerCreditTransferInitiationV03 pain = doc.getCstmrCdtTrfInitn();
3331
1919 /**
2020 * Parser-Implementierung fuer Pain 001.002.02.
2121 */
22 public class ParsePain00100202 extends AbstractSepaParser
22 public class ParsePain00100202 extends AbstractSepaParser<List<Properties>>
2323 {
24
2524 /**
26 * @see org.kapott.hbci.GV.parsers.ISEPAParser#parse(java.io.InputStream, java.util.List)
25 * @see org.kapott.hbci.GV.parsers.ISEPAParser#parse(java.io.InputStream, java.lang.Object)
2726 */
2827 public void parse(InputStream xml, List<Properties> sepaResults)
2928 {
30
3129 Document doc = JAXB.unmarshal(xml, Document.class);
3230
3331 //Payment Information
1919 /**
2020 * Parser-Implementierung fuer Pain 001.002.03.
2121 */
22 public class ParsePain00100203 extends AbstractSepaParser
22 public class ParsePain00100203 extends AbstractSepaParser<List<Properties>>
2323 {
24
2524 /**
26 * @see org.kapott.hbci.GV.parsers.ISEPAParser#parse(java.io.InputStream, java.util.List)
25 * @see org.kapott.hbci.GV.parsers.ISEPAParser#parse(java.io.InputStream, java.lang.Object)
2726 */
2827 public void parse(InputStream xml, List<Properties> sepaResults)
2928 {
30
3129 Document doc = JAXB.unmarshal(xml, Document.class);
3230 CustomerCreditTransferInitiationV03 pain = doc.getCstmrCdtTrfInitn();
3331
1919 /**
2020 * Parser-Implementierung fuer Pain 001.003.03.
2121 */
22 public class ParsePain00100303 extends AbstractSepaParser
22 public class ParsePain00100303 extends AbstractSepaParser<List<Properties>>
2323 {
24
2524 /**
26 * @see org.kapott.hbci.GV.parsers.ISEPAParser#parse(java.io.InputStream, java.util.List)
25 * @see org.kapott.hbci.GV.parsers.ISEPAParser#parse(java.io.InputStream, java.lang.Object)
2726 */
2827 public void parse(InputStream xml, List<Properties> sepaResults)
2928 {
30
3129 Document doc = JAXB.unmarshal(xml, Document.class);
3230 CustomerCreditTransferInitiationV03 pain = doc.getCstmrCdtTrfInitn();
3331
1616 /**
1717 * Parser-Implementierung fuer Pain 008.001.01.
1818 */
19 public class ParsePain00800101 extends AbstractSepaParser
19 public class ParsePain00800101 extends AbstractSepaParser<List<Properties>>
2020 {
21
2221 /**
23 * @see org.kapott.hbci.GV.parsers.ISEPAParser#parse(java.io.InputStream, java.util.List)
22 * @see org.kapott.hbci.GV.parsers.ISEPAParser#parse(java.io.InputStream, java.lang.Object)
2423 */
2524 public void parse(InputStream xml, List<Properties> sepaResults)
2625 {
27
2826 Document doc = JAXB.unmarshal(xml, Document.class);
2927 Pain00800101 pain = doc.getPain00800101();
28
29 if (pain == null)
30 return;
3031
3132 PaymentInstructionInformation5 pmtInf = pain.getPmtInf();
3233
1717 /**
1818 * Parser-Implementierung fuer Pain 008.001.02.
1919 */
20 public class ParsePain00800102 extends AbstractSepaParser
20 public class ParsePain00800102 extends AbstractSepaParser<List<Properties>>
2121 {
22
2322 /**
24 * @see org.kapott.hbci.GV.parsers.ISEPAParser#parse(java.io.InputStream, java.util.List)
23 * @see org.kapott.hbci.GV.parsers.ISEPAParser#parse(java.io.InputStream, java.lang.Object)
2524 */
2625 public void parse(InputStream xml, List<Properties> sepaResults)
2726 {
28
2927 Document doc = JAXB.unmarshal(xml, Document.class);
3028 CustomerDirectDebitInitiationV02 pain = doc.getCstmrDrctDbtInitn();
29
30 if (pain == null)
31 return;
3132
3233 List<PaymentInstructionInformationSDD> pmtInfs = pain.getPmtInf();
3334
1717 /**
1818 * Parser-Implementierung fuer Pain 008.002.01.
1919 */
20 public class ParsePain00800201 extends AbstractSepaParser
20 public class ParsePain00800201 extends AbstractSepaParser<List<Properties>>
2121 {
22
2322 /**
24 * @see org.kapott.hbci.GV.parsers.ISEPAParser#parse(java.io.InputStream, java.util.List)
23 * @see org.kapott.hbci.GV.parsers.ISEPAParser#parse(java.io.InputStream, java.lang.Object)
2524 */
2625 public void parse(InputStream xml, List<Properties> sepaResults)
2726 {
28
2927 Document doc = JAXB.unmarshal(xml, Document.class);
3028 Pain00800101 pain = doc.getPain00800101();
29
30 if (pain == null)
31 return;
3132
3233 List<PaymentInstructionInformationSDD> pmtInfs = pain.getPmtInf();
3334
1717 /**
1818 * Parser-Implementierung fuer Pain 008.002.02.
1919 */
20 public class ParsePain00800202 extends AbstractSepaParser
20 public class ParsePain00800202 extends AbstractSepaParser<List<Properties>>
2121 {
22
2322 /**
24 * @see org.kapott.hbci.GV.parsers.ISEPAParser#parse(java.io.InputStream, java.util.List)
23 * @see org.kapott.hbci.GV.parsers.ISEPAParser#parse(java.io.InputStream, java.lang.Object)
2524 */
2625 public void parse(InputStream xml, List<Properties> sepaResults)
2726 {
28
2927 Document doc = JAXB.unmarshal(xml, Document.class);
3028 CustomerDirectDebitInitiationV02 pain = doc.getCstmrDrctDbtInitn();
29
30 if (pain == null)
31 return;
3132
3233 List<PaymentInstructionInformationSDD> pmtInfs = pain.getPmtInf();
3334
1717 /**
1818 * Parser-Implementierung fuer Pain 008.003.02.
1919 */
20 public class ParsePain00800302 extends AbstractSepaParser
20 public class ParsePain00800302 extends AbstractSepaParser<List<Properties>>
2121 {
22
2322 /**
24 * @see org.kapott.hbci.GV.parsers.ISEPAParser#parse(java.io.InputStream, java.util.List)
23 * @see org.kapott.hbci.GV.parsers.ISEPAParser#parse(java.io.InputStream, java.lang.Object)
2524 */
2625 public void parse(InputStream xml, List<Properties> sepaResults)
2726 {
28
2927 Document doc = JAXB.unmarshal(xml, Document.class);
3028 CustomerDirectDebitInitiationV02 pain = doc.getCstmrDrctDbtInitn();
29
30 if (pain == null)
31 return;
3132
3233 List<PaymentInstructionInformationSDD> pmtInfs = pain.getPmtInf();
3334
22 import org.kapott.hbci.exceptions.HBCI_Exception;
33 import org.kapott.hbci.manager.HBCIUtils;
44 import org.kapott.hbci.manager.HBCIUtilsInternal;
5 import org.kapott.hbci.sepa.PainVersion;
5 import org.kapott.hbci.sepa.SepaVersion;
66
77 /**
88 * Factory zum Erzeugen von Parsern fuer das Einlesen von SEPA-XML-Daten.
1414 * @param version die PAIN-Version.
1515 * @return ISEPAParser
1616 */
17 public static ISEPAParser get(PainVersion version)
17 public static ISEPAParser get(SepaVersion version)
1818 {
1919 ISEPAParser parser = null;
2020
115115
116116 /** Gibt an, ob ein Umsatz ein SEPA-Umsatz ist **/
117117 public boolean isSepa;
118
119 /**
120 * Gibt an, ob ein Umsatz per CAMT abgerufen wurde.
121 */
122 public boolean isCamt;
123
124 /**
125 * NUR BEI CAMT: Eindeutiger Identifier der Buchung. Erst seit SEPA mit Abruf per CAMT
126 * verfuegbar. Bei MT940-Abruf ist der Wert leer.
127 */
128 public String id;
129
130 /**
131 * NUR BEI CAMT: Der Purpose-Code der Buchung.
132 */
133 public String purposecode;
118134
119135 public UmsLine()
120136 {
265281 this.bufferMT942.append(data);
266282 }
267283
268 /** Gibt die Umsatzinformationen gruppiert nach Buchungstagen zurück.
269 @return Liste mit Informationen zu einzelnen Buchungstagen ({@link GVRKUms.BTag}) */
284 /**
285 * Gibt die Umsatzinformationen gruppiert nach Buchungstagen zurück.
286 * @return Liste mit Informationen zu einzelnen Buchungstagen ({@link GVRKUms.BTag})
287 **/
270288 public List<BTag> getDataPerDay()
271289 {
272290 verifyMT94xParsing("getDataPerDay()");
273291 return tageMT940;
274292 }
275
293
294 /**
295 * Gibt die vorgemerkten Umsaetze gruppiert nach Buchungstagen zurueck.
296 * @return Liste mit Informationen zu einzelnen Buchungstagen der Vormerkbuchungen ({@link GVRKUms.BTag})
297 **/
298 public List<BTag> getDataPerDayUnbooked()
299 {
300 verifyMT94xParsing("getDataPerDayUnbooked()");
301 return tageMT942;
302 }
303
304
276305 /** Gibt alle Transaktionsdatensätze in einer "flachen" Struktur zurück.
277306 D.h. nicht in einzelne Buchungstage unterteilt, sondern in einer Liste
278307 analog zu einem "normalen" Kontoauszug.
360389
361390 private void parseMT94x(StringBuffer buffer, List<BTag> tage, StringBuffer rest)
362391 {
392 parsed = true;
393
394 // Verwenden wir bei CAMT-Umsaetzen.
395 if (buffer == null || buffer.length() == 0)
396 return;
397
363398 HBCIUtils.log("now parsing MT94x data", HBCIUtils.LOG_DEBUG);
364 parsed=true;
365399
366400 try {
367401 SimpleDateFormat dateFormat=new SimpleDateFormat("yyMMdd");
2121 package org.kapott.hbci.exceptions;
2222
2323
24 public final class CanNotParseMessageException
25 extends HBCI_Exception
24 public final class CanNotParseMessageException extends HBCI_Exception
2625 {
26 private final static boolean PRINTABLE = Boolean.getBoolean("hbci4java.cannotparse.printable");
27
2728 private String message;
2829
2930 public CanNotParseMessageException(String txt,String message,Exception e)
3233 this.message=applyLogFilter(message);
3334 }
3435
36 /**
37 * @see java.lang.Throwable#getMessage()
38 */
3539 public String getMessage()
3640 {
37 return this.message;
41 if (!PRINTABLE)
42 return this.message;
43
44 // Die Nachricht kann u.U. ellenlanges XML enthalten. Das kann
45 // die Konsole fluten. Deswegen geben wir nur maximal die ersten
46 // 1000 Zeichen an.
47 String msg = this.message;
48 if (this.message != null && this.message.length() > 1000)
49 msg = this.message.substring(0,1000);
50
51 // Ausserdem streichen wir alle nicht druckbaren Zeichen
52 msg = msg.replaceAll("\\p{C}", "?");
53 return msg;
3854 }
3955 }
263263 @Override
264264 public void setFileName(String filename)
265265 {
266 this.filename=filename;
266 // Checken, ob der Dateiname ungueltige Zeichen enthaelt. Wenn das der Fall ist, schneiden wir die raus
267 // Siehe https://homebanking-hilfe.de/forum/topic.php?p=138325#real138325
268 if (filename != null && filename.length() > 0)
269 {
270 File f = new File(filename);
271 String name = f.getName();
272
273 // Zeichen, die nicht enthalten sein sollten, entfernen wir
274 // Konkret sind nur Buchstaben, Zahlen und Unterstrich erlaubt
275 name = name.replaceAll("[^a-zA-Z0-9_-]","");
276
277 // Wenn die Datei laenger als 25 Zeichen ist, schneiden wir die ueberzaehligen ab
278 if (name.length() > 25)
279 name = name.substring(0,25);
280
281 f = new File(f.getParentFile(),name);
282 String newName = f.getAbsolutePath();
283 if (!newName.equals(filename))
284 {
285 HBCIUtils.log("auto-fixed passport filename from " + filename + " to " + newName,HBCIUtils.LOG_INFO);
286 filename = newName;
287 }
288 }
289
290 this.filename = filename;
267291 }
268292
269293 public void setComPort(int comport)
0 /**********************************************************************
1 *
2 * Copyright (c) by Olaf Willuhn
3 * All rights reserved
4 * LGPL
5 *
6 **********************************************************************/
7
8 package org.kapott.hbci.passport;
9
10 /**
11 * Implementierung eines PIN/TAN-Passport, welcher keine Daten im Dateisystem ablegt
12 * sondern alle Daten im Speicher haelt.
13 */
14 public class HBCIPassportPinTanMemory extends HBCIPassportPinTan
15 {
16
17 /**
18 * ct.
19 * @param init Generische Init-Daten.
20 */
21 public HBCIPassportPinTanMemory(Object init)
22 {
23 super(init);
24 }
25
26 /**
27 * @see org.kapott.hbci.passport.HBCIPassportPinTan#create()
28 */
29 @Override
30 protected void create()
31 {
32 // Ueberschrieben, um das Erstellen der Passport-Datei zu ueberspringen.
33 }
34
35 /**
36 * @see org.kapott.hbci.passport.HBCIPassportPinTan#read()
37 */
38 @Override
39 protected void read()
40 {
41 // Ueberschrieben, um das Einlesen der Passport-Datei zu ueberspringen.
42 }
43
44 /**
45 * @see org.kapott.hbci.passport.HBCIPassportPinTan#saveChanges()
46 */
47 @Override
48 public void saveChanges()
49 {
50 // Ueberschrieben, um das Schreiben zu ueberspringen.
51 }
52
53 /**
54 * @see java.lang.Object#toString()
55 */
56 @Override
57 public String toString()
58 {
59 return this.getFileName();
60 }
61
62 }
63
64
3030
3131 /**
3232 * Kapselt das Parsen und Vergleichen von SEPA Pain-Versionen.
33 * @deprecated Bitte {@link SepaVersion} verwenden.
3334 */
35 @Deprecated
3436 public class PainVersion implements Comparable<PainVersion>
3537 {
3638 private final static String DF_MAJOR = "000";
0 /**********************************************************************
1 *
2 * Copyright (c) by Olaf Willuhn
3 * All rights reserved
4 *
5 **********************************************************************/
6
7 package org.kapott.hbci.sepa;
8
9 import java.io.ByteArrayInputStream;
10 import java.io.InputStream;
11 import java.io.UnsupportedEncodingException;
12 import java.text.DecimalFormat;
13 import java.util.ArrayList;
14 import java.util.Collections;
15 import java.util.HashMap;
16 import java.util.List;
17 import java.util.Map;
18 import java.util.regex.Matcher;
19 import java.util.regex.Pattern;
20
21 import javax.xml.parsers.DocumentBuilder;
22 import javax.xml.parsers.DocumentBuilderFactory;
23
24 import org.kapott.hbci.GV.generators.ISEPAGenerator;
25 import org.kapott.hbci.GV.parsers.ISEPAParser;
26 import org.kapott.hbci.comm.Comm;
27 import org.kapott.hbci.manager.HBCIUtils;
28 import org.w3c.dom.Document;
29 import org.w3c.dom.Node;
30
31 /**
32 * Basis-Klasse fuer das Parsen und Vergleichen von SEPA Versionen (PAIN und CAMT).
33 */
34 public class SepaVersion implements Comparable<SepaVersion>
35 {
36 private final static Pattern PATTERN = Pattern.compile("([a-z]{2,8})\\.(\\d\\d\\d)\\.(\\d\\d\\d)\\.(\\d\\d)");
37 private final static Map<Type,List<SepaVersion>> knownVersions = new HashMap<Type,List<SepaVersion>>();
38
39 private final static String DF_MAJOR = "000";
40 private final static String DF_MINOR = "00";
41
42 @SuppressWarnings("javadoc") public static SepaVersion PAIN_001_001_02 = new SepaVersion(SupportType.GENERATE,1,"urn:sepade:xsd:pain.001.001.02", "pain.001.001.02.xsd",true);
43 @SuppressWarnings("javadoc") public static SepaVersion PAIN_001_002_02 = new SepaVersion(SupportType.GENERATE,2,"urn:swift:xsd:$pain.001.002.02", "pain.001.002.02.xsd",true);
44 @SuppressWarnings("javadoc") public static SepaVersion PAIN_001_002_03 = new SepaVersion(SupportType.GENERATE,3,"urn:iso:std:iso:20022:tech:xsd:pain.001.002.03","pain.001.002.03.xsd",true);
45 @SuppressWarnings("javadoc") public static SepaVersion PAIN_001_003_03 = new SepaVersion(SupportType.GENERATE,4,"urn:iso:std:iso:20022:tech:xsd:pain.001.003.03","pain.001.003.03.xsd",true);
46 @SuppressWarnings("javadoc") public static SepaVersion PAIN_001_001_03 = new SepaVersion(SupportType.GENERATE,5,"urn:iso:std:iso:20022:tech:xsd:pain.001.001.03","pain.001.001.03.xsd",true);
47
48 @SuppressWarnings("javadoc") public static SepaVersion PAIN_002_002_02 = new SepaVersion(SupportType.GENERATE,1,"urn:swift:xsd:$pain.002.002.02", "pain.002.002.02.xsd",true);
49 @SuppressWarnings("javadoc") public static SepaVersion PAIN_002_003_03 = new SepaVersion(SupportType.GENERATE,2,"urn:iso:std:iso:20022:tech:xsd:pain.002.003.03","pain.002.003.03.xsd",true);
50 @SuppressWarnings("javadoc") public static SepaVersion PAIN_002_001_03 = new SepaVersion(SupportType.GENERATE,3,"urn:iso:std:iso:20022:tech:xsd:pain.002.001.03","pain.002.001.03.xsd",true);
51
52 @SuppressWarnings("javadoc") public static SepaVersion PAIN_008_001_01 = new SepaVersion(SupportType.GENERATE,1,"urn:sepade:xsd:pain.008.001.01", "pain.008.001.01.xsd",true);
53 @SuppressWarnings("javadoc") public static SepaVersion PAIN_008_002_01 = new SepaVersion(SupportType.GENERATE,2,"urn:swift:xsd:$pain.008.002.01", "pain.008.002.01.xsd",true);
54 @SuppressWarnings("javadoc") public static SepaVersion PAIN_008_002_02 = new SepaVersion(SupportType.GENERATE,3,"urn:iso:std:iso:20022:tech:xsd:pain.008.002.02","pain.008.002.02.xsd",true);
55 @SuppressWarnings("javadoc") public static SepaVersion PAIN_008_003_02 = new SepaVersion(SupportType.GENERATE,4,"urn:iso:std:iso:20022:tech:xsd:pain.008.003.02","pain.008.003.02.xsd",true);
56 @SuppressWarnings("javadoc") public static SepaVersion PAIN_008_001_02 = new SepaVersion(SupportType.GENERATE,5,"urn:iso:std:iso:20022:tech:xsd:pain.008.001.02","pain.008.001.02.xsd",true);
57
58 @SuppressWarnings("javadoc") public static SepaVersion CAMT_052_001_01 = new SepaVersion(SupportType.PARSE,1,"urn:iso:std:iso:20022:tech:xsd:camt.052.001.01","camt.052.001.01.xsd",true);
59 @SuppressWarnings("javadoc") public static SepaVersion CAMT_052_001_02 = new SepaVersion(SupportType.PARSE,2,"urn:iso:std:iso:20022:tech:xsd:camt.052.001.02","camt.052.001.02.xsd",true);
60 @SuppressWarnings("javadoc") public static SepaVersion CAMT_052_001_03 = new SepaVersion(SupportType.PARSE,3,"urn:iso:std:iso:20022:tech:xsd:camt.052.001.03","camt.052.001.03.xsd",true);
61 @SuppressWarnings("javadoc") public static SepaVersion CAMT_052_001_04 = new SepaVersion(SupportType.PARSE,4,"urn:iso:std:iso:20022:tech:xsd:camt.052.001.04","camt.052.001.04.xsd",true);
62 @SuppressWarnings("javadoc") public static SepaVersion CAMT_052_001_05 = new SepaVersion(SupportType.PARSE,5,"urn:iso:std:iso:20022:tech:xsd:camt.052.001.05","camt.052.001.05.xsd",true);
63 @SuppressWarnings("javadoc") public static SepaVersion CAMT_052_001_06 = new SepaVersion(SupportType.PARSE,6,"urn:iso:std:iso:20022:tech:xsd:camt.052.001.06","camt.052.001.06.xsd",true);
64 @SuppressWarnings("javadoc") public static SepaVersion CAMT_052_001_07 = new SepaVersion(SupportType.PARSE,7,"urn:iso:std:iso:20022:tech:xsd:camt.052.001.07","camt.052.001.07.xsd",true);
65
66 private SupportType support = null;
67 private String urn = null;
68 private String file = null;
69 private Type type = null;
70 private int major = 0;
71 private int minor = 0;
72 private int order = 0;
73
74 /**
75 * Legt fest, ab wann eine SEPA-Version als unterstuetzt angesehen werden kann.
76 */
77 private static enum SupportType
78 {
79 GENERATE,
80 PARSE
81 }
82
83 /**
84 * Enum fuer die Gruppierung der verschienden Typen von Geschaeftsvorfaellen.
85 */
86 public static enum Type
87 {
88 /**
89 * Ueberweisungen.
90 */
91 PAIN_001("Pain","001","credit transfer"),
92
93 /**
94 * Kontoauszuege.
95 */
96 PAIN_002("Pain","002","payment status"),
97
98 /**
99 * Lastschriften.
100 */
101 PAIN_008("Pain","008","direct debit"),
102
103 /**
104 * Umsaetze im CAMT.052-Format.
105 */
106 CAMT_052("Camt","052","bank to customer cash management"),
107
108 ;
109
110 private String type = null;
111 private String value = null;
112 private String name = null;
113
114 /**
115 * ct.
116 * @param type
117 * @param value
118 * @param name
119 */
120 private Type(String type, String value, String name)
121 {
122 this.type = type;
123 this.value = value;
124 this.name = name;
125 }
126
127 /**
128 * Liefert den Typ.
129 * @return type
130 */
131 public String getType()
132 {
133 return type;
134 }
135
136 /**
137 * Liefert den numerischen Wert des Typs.
138 * @return der numerischen Wert des Typs.
139 */
140 public String getValue()
141 {
142 return this.value;
143 }
144
145 /**
146 * Liefert eine sprechende Bezeichnung des Typs.
147 * @return eine sprechende Bezeichnung des Typs.
148 */
149 public String getName()
150 {
151 return this.name;
152 }
153 }
154
155 /**
156 * Liefert die SEPA-Version aus dem URN.
157 * @param urn URN.
158 * In der Form "urn:iso:std:iso:20022:tech:xsd:pain.001.002.03" oder in
159 * der alten Form "sepade.pain.001.001.02.xsd".
160 * @return die SEPA-Version.
161 */
162 public static SepaVersion byURN(String urn)
163 {
164 SepaVersion test = new SepaVersion(null,0,urn,null,false);
165
166 if (urn == null || urn.length() == 0)
167 return test;
168
169 for (List<SepaVersion> types:knownVersions.values())
170 {
171 for (SepaVersion v:types)
172 {
173 if (v.equals(test))
174 return v;
175 }
176 }
177
178 // keine passende Version gefunden. Dann erzeugen wir selbst eine
179 return test;
180 }
181
182 /**
183 * Erzeugt eine SEPA-Version aus dem URN bzw dem Dateinamen.
184 * @param support der Support-Type.
185 * @param order die Reihenfolge bei der Sortierung.
186 * @param urn URN.
187 * In der Form "urn:iso:std:iso:20022:tech:xsd:pain.001.002.03" oder in
188 * der alten Form "sepade.pain.001.001.02.xsd".
189 * @param file Dateiname der Schema-Datei.
190 * @param add true, wenn die Version zur Liste der bekannten Versionen hinzugefuegt werden soll.
191 */
192 private SepaVersion(SupportType support, int order, String urn, String file, boolean add)
193 {
194 Matcher m = PATTERN.matcher(urn);
195 if (!m.find() || m.groupCount() != 4)
196 throw new IllegalArgumentException("invalid sepa-version: " + urn);
197
198 this.support = support;
199 this.order = order;
200 this.urn = urn;
201 this.file = file;
202 this.type = findType(m.group(1),m.group(2));
203 this.major = Integer.parseInt(m.group(3));
204 this.minor = Integer.parseInt(m.group(4));
205
206 // Zur Liste der bekannten Versionen hinzufuegen
207 if (add)
208 {
209 List<SepaVersion> list = knownVersions.get(this.type);
210 if (list == null)
211 {
212 list = new ArrayList<SepaVersion>();
213 knownVersions.put(type,list);
214 }
215 list.add(this);
216 }
217 }
218
219 /**
220 * Liefert den enum-Type fuer den angegebenen Wert.
221 * @param type der Type. "pain", "camt".
222 * @param value der Wert. 001, 002, 008, ....
223 * @return der zugehoerige Enum-Wert.
224 * @throws IllegalArgumentException wenn der Typ unbekannt ist.
225 */
226 private static Type findType(String type, String value) throws IllegalArgumentException
227 {
228 if (type == null || type.length() == 0)
229 throw new IllegalArgumentException("no SEPA type type given");
230
231 if (value == null || value.length() == 0)
232 throw new IllegalArgumentException("no SEPA version value given");
233
234 for (Type t:Type.values())
235 {
236 if (t.getType().equalsIgnoreCase(type) && t.getValue().equals(value))
237 return t;
238 }
239 throw new IllegalArgumentException("unknown SEPA version type: " + type + "." + value);
240 }
241
242 /**
243 * Liefert einen String "<URN> <FILE>" zurueck, der im erzeugten XML als
244 * "xsi:schemaLocation" verwendet werden kann.
245 * @return Schema-Location oder NULL, wenn "file" nicht gesetzt wurde.
246 */
247 public String getSchemaLocation()
248 {
249 if (this.file == null)
250 return null;
251
252 return this.urn + " " + this.file;
253 }
254
255 /**
256 * Erzeugt den Namen der Java-Klasse des zugehoerigen SEPA-Generators.
257 * @param jobName der Job-Name. Z.Bsp. "UebSEPA".
258 * @return der Name der Java-Klasse des zugehoerigen SEPA-Generators.
259 */
260 public String getGeneratorClass(String jobName)
261 {
262 StringBuilder sb = new StringBuilder();
263 sb.append(ISEPAGenerator.class.getPackage().getName());
264 sb.append(".Gen");
265 sb.append(jobName);
266 sb.append(this.type.getValue());
267 sb.append(new DecimalFormat(DF_MAJOR).format(this.major));
268 sb.append(new DecimalFormat(DF_MINOR).format(this.minor));
269
270 return sb.toString();
271 }
272
273 /**
274 * Erzeugt den Namen der Java-Klasse des zugehoerigen SEPA-Parsers.
275 * @return der Name der Java-Klasse des zugehoerigen SEPA-Parsers.
276 */
277 public String getParserClass()
278 {
279 StringBuilder sb = new StringBuilder();
280 sb.append(ISEPAParser.class.getPackage().getName());
281 sb.append(".Parse");
282
283 sb.append(this.type.getType());
284 sb.append(this.type.getValue());
285 sb.append(new DecimalFormat(DF_MAJOR).format(this.major));
286 sb.append(new DecimalFormat(DF_MINOR).format(this.minor));
287
288 return sb.toString();
289 }
290
291 /**
292 * Prueft, ob fuer die SEPA-Version ein Generator vorhanden ist, der
293 * fuer den angegebenen HBCI4Java-Job die SEPA-XML-Dateien erzeugen kann.
294 * @param jobName der Job-Name. Z.Bsp. "UebSEPA".
295 * @return true, wenn ein Generator vorhanden ist.
296 */
297 public boolean canGenerate(String jobName)
298 {
299 try
300 {
301 Class.forName(this.getGeneratorClass(jobName));
302 return true;
303 }
304 catch (ClassNotFoundException e)
305 {
306 return false;
307 }
308 }
309
310 /**
311 * Prueft, ob fuer die SEPA-Version ein Parser vorhanden ist, der
312 * SEPA-XML-Dateien dieser Version lesen kann.
313 * @return true, wenn ein Parser vorhanden ist.
314 */
315 public boolean canParse()
316 {
317 try
318 {
319 Class.forName(this.getParserClass());
320 return true;
321 }
322 catch (ClassNotFoundException e)
323 {
324 return false;
325 }
326 }
327
328 /**
329 * Prueft, ob die SEPA-Version unterstuetzt wird.
330 * @param jobName der Job-Name.
331 * @return true, wenn die SEPA-Version unterstuetzt wird.
332 */
333 public boolean isSupported(String jobName)
334 {
335 return this.support == SupportType.GENERATE ? this.canGenerate(jobName) : this.canParse();
336 }
337
338 /**
339 * Liefert den Typ der SEPA-Version.
340 * @return der Typ der SEPA-Version.
341 */
342 public Type getType()
343 {
344 return this.type;
345 }
346
347 /**
348 * Liefert die Major-Versionsnumer.
349 * @return die Major-Versionsnumer.
350 */
351 public int getMajor()
352 {
353 return this.major;
354 }
355
356 /**
357 * Liefert die Minor-Versionsnumer.
358 * @return die Minor-Versionsnumer.
359 */
360 public int getMinor()
361 {
362 return this.minor;
363 }
364
365 /**
366 * Liefert die URN der SEPA-Version.
367 * @return die URN der SEPA-Version.
368 */
369 public String getURN()
370 {
371 return this.urn;
372 }
373
374 /**
375 * Liefert den Dateinamen des Schemas insofern bekannt.
376 * @return der Dateiname des Schema oder null.
377 */
378 public String getFile()
379 {
380 return this.file;
381 }
382
383 /**
384 * Findet in den der Liste die hoechste SEPA-Version.
385 * @param list Liste mit SEPA-Versionen.
386 * @return die hoechste Version oder NULL wenn die Liste leer ist.
387 */
388 public static SepaVersion findGreatest(List<SepaVersion> list)
389 {
390 if (list == null || list.size() == 0)
391 return null;
392
393 // Sortieren, damit die hoechste Version hinten steht
394 try
395 {
396 Collections.sort(list);
397 }
398 catch (UnsupportedOperationException e)
399 {
400 // passiert bei unmodifiable Lists. Dann ist es sehr wahrscheinlich
401 // die Liste der knownVersions von uns selbst. Das tolerieren wir.
402 }
403
404 return list.get(list.size() - 1); // letztes Element
405 }
406
407 /**
408 * Liefert eine Liste der bekannten SEPA-Versionen fuer den angegebenen Typ.
409 * @param t der Typ.
410 * @return Liste der bekannten SEPA-Versionen fuer den angegebenen Typ.
411 */
412 public static List<SepaVersion> getKnownVersions(Type t)
413 {
414 return knownVersions.get(t);
415 }
416
417 /**
418 * Ermittelt die SEPA-Version aus dem uebergebenen XML-Stream.
419 * @param xml der XML-Stream.
420 * Achtung: Da der Stream hierbei gelesen werden muss, sollte eine Kopie des Streams uebergeben werden.
421 * Denn nach dem Lesen des Streams, kann er nicht erneut gelesen werden.
422 * Der Stream wird von dieser Methode nicht geschlossen. Das ist Aufgabe des Aufrufers.
423 * @return die ermittelte SEPA-Version oder NULL wenn das XML-Document keine entsprechenden Informationen enthielt.
424 */
425 public static SepaVersion autodetect(InputStream xml)
426 {
427 try
428 {
429 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
430 factory.setIgnoringComments(true);
431 factory.setValidating(false);
432 factory.setNamespaceAware(true);
433
434 DocumentBuilder builder = factory.newDocumentBuilder();
435 Document doc = builder.parse(xml);
436 Node root = doc.getFirstChild(); // Das ist das Element mit dem Namen "Document"
437
438 if (root == null)
439 throw new IllegalArgumentException("XML data did not contain a root element");
440
441 String uri = root.getNamespaceURI();
442 if (uri == null)
443 return null;
444
445 return SepaVersion.byURN(uri);
446 }
447 catch (IllegalArgumentException e)
448 {
449 throw e;
450 }
451 catch (Exception e2)
452 {
453 throw new IllegalArgumentException(e2);
454 }
455 }
456
457 /**
458 * Die Bank sendet in ihren Antworten sowohl den SEPA-Deskriptor als auch die SEPA-Daten (die XML-Datei) selbst.
459 * Diese Funktion ermittelt sowohl aus dem SEPA-Deskriptor als auch aus den SEPA-Daten die angegebene SEPA-Version
460 * und vergleicht beide. Stimmen sie nicht ueberein, wird eine Warnung ausgegeben. Die Funktion liefert anschliessend
461 * die zum Parsen passende Version zurueck. Falls sich die angegebenen Versionen unterscheiden, wird die in den
462 * XML-Daten angegebene Version zurueckgeliefert.
463 * Siehe https://www.willuhn.de/bugzilla/show_bug.cgi?id=1806
464 * @param sepadesc die in der HBCI-Nachricht angegebene SEPA-Version.
465 * @param sepadata die eigentlichen XML-Daten.
466 * @return die zum Parsen zu verwendende SEPA-Version. NULL, wenn keinerlei Daten angegeben wurden.
467 */
468 public static SepaVersion choose(String sepadesc, String sepadata)
469 {
470 final boolean haveDesc = sepadesc != null && sepadesc.length() > 0;
471 final boolean haveData = sepadata != null && sepadata.length() > 0;
472
473 if (!haveDesc && !haveData)
474 {
475 HBCIUtils.log("neither sepadesr nor sepa data given",HBCIUtils.LOG_WARN);
476 return null;
477 }
478
479 try
480 {
481 final SepaVersion versionDesc = haveDesc ? SepaVersion.byURN(sepadesc) : null;
482 final SepaVersion versionData = haveData ? SepaVersion.autodetect(new ByteArrayInputStream(sepadata.getBytes(Comm.ENCODING))) : null;
483
484 HBCIUtils.log("sepa version given in sepadescr: " + versionDesc,HBCIUtils.LOG_INFO);
485 HBCIUtils.log("sepa version according to data: " + versionData,HBCIUtils.LOG_INFO);
486
487 // Wir haben keine Version im Deskriptor, dann bleibt nur die aus den Daten
488 if (versionDesc == null)
489 return versionData;
490
491 // Wir haben keine Version in den Daten, dann bleibt nur die im Deskriptor
492 if (versionData == null)
493 return versionDesc;
494
495 // Wir geben noch eine Warnung aus, wenn unterschiedliche Versionen angegeben sind
496 if (!versionDesc.equals(versionData))
497 HBCIUtils.log("sepa version mismatch. sepadesc: " + versionDesc + " vs. data: " + versionData,HBCIUtils.LOG_WARN);
498
499 // Wir geben priorisiert die Version aus den Daten zurueck, damit ist sicherer, dass die
500 // Daten gelesen werden koennen
501 return versionData;
502 }
503 catch (UnsupportedEncodingException e)
504 {
505 HBCIUtils.log(e,HBCIUtils.LOG_ERR);
506 }
507 return null;
508 }
509
510 /**
511 * @see java.lang.Object#hashCode()
512 */
513 @Override
514 public int hashCode()
515 {
516 final int prime = 31;
517 int result = 1;
518 result = prime * result + major;
519 result = prime * result + minor;
520 result = prime * result + ((type == null) ? 0 : type.hashCode());
521 return result;
522 }
523
524 /**
525 * @see java.lang.Object#equals(java.lang.Object)
526 */
527 @Override
528 public boolean equals(Object obj)
529 {
530 if (this == obj) return true;
531 if (obj == null) return false;
532
533 if (!(obj instanceof SepaVersion)) return false;
534
535 SepaVersion other = (SepaVersion) obj;
536 if (major != other.major)
537 return false;
538 if (minor != other.minor)
539 return false;
540 if (type != other.type)
541 return false;
542 return true;
543 }
544
545 /**
546 * @see java.lang.Comparable#compareTo(java.lang.Object)
547 */
548 @Override
549 public int compareTo(SepaVersion v)
550 {
551 if (v.type != this.type)
552 throw new IllegalArgumentException("sepa-type incompatible: " + v.type + " != " + this.type);
553
554 // Es ist voellig krank!
555 // Die Pain-Versionen waren bisher sauber versioniert. Und jetzt ist ploetzlich
556 // eine augenscheinlich kleinere Versionsnummer die aktuellste. WTF?!
557 // Beispiel Ueberweisungen - in dieser Reihenfolge:
558
559 // pain.001.001.02
560 // pain.001.002.02
561 // pain.001.002.03
562 // pain.001.003.03
563 // pain.001.001.03
564
565 // Nach "001.003.03" kommt jetzt ploetzlich wieder "001.001.03"!
566
567 // Daher habe ich jetzt ein extra Flag fuer die Sortierung eingefuehrt.
568 // Kriegt ja sonst keiner mehr auf die Reihe, was die aktuellste Version ist.
569 int r = this.order - v.order;
570 if (r != 0)
571 return r;
572
573 r = this.major - v.major;
574 if (r != 0)
575 return r;
576
577 return this.minor - v.minor;
578 }
579
580 /**
581 * @see java.lang.Object#toString()
582 */
583 @Override
584 public String toString()
585 {
586 return this.urn;
587 }
588
589 }
590
591
1111
1212 import java.io.ByteArrayOutputStream;
1313
14 import javax.smartcardio.CommandAPDU;
1415 import javax.smartcardio.ResponseAPDU;
1516
1617 import org.kapott.hbci.exceptions.HBCI_Exception;
3031 {
3132 try
3233 {
33 String tan = null;
34
35 //////////////////////////////////////////////////////////////////////////
36 // SECODER TRANSMIT HHDuc (Secoder 3G)
37
34 Integer feature = this.getFeatures().get(Feature.FEATURE_MCT_READER_DIRECT);
35 if (feature != null)
36 return this.getTanScardControl(hhduc);
37 else
38 return this.getTanScardTransmit(hhduc);
39 }
40 catch (HBCI_Exception e)
41 {
42 throw e;
43 }
44 catch (Exception e2)
45 {
46 throw new HBCI_Exception(e2);
47 }
48 }
49
50 /**
51 * Sendet das HHDuc per ScardControl an den Kartenleser und liefert die eingegebene TAN zurueck.
52 * @param hhduc das HHDuc.
53 * @return die TAN. Oder NULL, wenn sie nicht zur Uebertragung ausgewaehlt wurde.
54 * @throws Exception
55 */
56 public String getTanScardControl(String hhduc) throws Exception
57 {
58 String tan = null;
59
60 //////////////////////////////////////////////////////////////////////////
61 // SECODER TRANSMIT HHDuc (Secoder 3G)
62
63 {
64 // Flickercode als Byte-Array rendern
65 byte[] hhdBytes = this.toBytes(hhduc);
66
67 HBCIUtils.log("sending HHDuc to chipcard using ScardControl, length: " + hhdBytes.length,HBCIUtils.LOG_INFO);
68
69 int len = 4 + 1 + 1 + 2 + hhdBytes.length; // Laenge von Activation ID, POF, Control Byte, HHD-Laenge, Payload
70 ByteArrayOutputStream cmd = new ByteArrayOutputStream();
71 cmd.write(new byte[]{(byte)0x20,(byte)0x76,(byte)0x00,(byte)0x00}); // Header
72 cmd.write(new byte[]{0x00,0x00,(byte) len}); // Li Lc Lc
73 cmd.write(new byte[]{0x00,0x00,0x00,0x00}); // Activation ID
74 cmd.write(0x01); // POF
75 cmd.write(0x00); // Control Byte
76 cmd.write(new byte[]{0x00,(byte) hhdBytes.length}); // HHD Laenge - kann eh nie laenger als 255 Zeichen sein - von daher reicht ein Byte aus
77 cmd.write(hhdBytes); // Payload
78 cmd.write(new byte[]{0x00,0x00}); // Le Le
79
80 byte[] request = cmd.toByteArray();
81
82 // "transmitControlCommand" verwendet intern "ScardControl"
83 // "getBasicChannel().transmit()" verwendet intern "ScardTransmit"
84 byte[] response = this.getCard().transmitControlCommand(this.getFeatures().get(Feature.FEATURE_MCT_READER_DIRECT),request);
85 ResponseAPDU apdu = new ResponseAPDU(response);
86 this.check(apdu,new byte[]{(byte)0x90,(byte)0x91});
87
88 byte[] data = apdu.getData();
89
90 // Es ist durchaus moeglich, dass der User bei der Frage "TAN uebertragen" abgebrochen hat.
91 // Dann haben wir auch keine TAN, die automatisch eingegeben werden kann.
92 // Checken, wie lang die TAN ist
93 if (data != null && data.length > 1)
3894 {
39 // Flickercode als Byte-Array rendern
40 byte[] hhdBytes = this.toBytes(hhduc);
41
42 HBCIUtils.log("sending HHDuc to chipcard, length: " + hhdBytes.length,HBCIUtils.LOG_INFO);
43
44 int len = 4 + 1 + 1 + 2 + hhdBytes.length; // Laenge von Activation ID, POF, Control Byte, HHD-Laenge, Payload
45 ByteArrayOutputStream cmd = new ByteArrayOutputStream();
46 cmd.write(new byte[]{(byte)0x20,(byte)0x76,(byte)0x00,(byte)0x00}); // Header
47 cmd.write(new byte[]{0x00,0x00,(byte) len}); // Li Lc Lc
48 cmd.write(new byte[]{0x00,0x00,0x00,0x00}); // Activation ID
49 cmd.write(0x01); // POF
50 cmd.write(0x00); // Control Byte
51 cmd.write(new byte[]{0x00,(byte) hhdBytes.length}); // HHD Laenge - kann eh nie laenger als 255 Zeichen sein - von daher reicht ein Byte aus
52 cmd.write(hhdBytes); // Payload
53 cmd.write(new byte[]{0x00,0x00}); // Le Le
54
55 byte[] request = cmd.toByteArray();
56
57 // "transmitControlCommand" verwendet intern "ScardControl"
58 // "getBasicChannel().transmit()" verwendet intern "ScardTransmit"
59 byte[] response = this.getCard().transmitControlCommand(this.getFeatures().get(FEATURE_MCT_READER_DIRECT),request);
60 ResponseAPDU apdu = new ResponseAPDU(response);
61 this.check(apdu,new byte[]{(byte)0x90,(byte)0x91});
62
63 byte[] data = apdu.getData();
64
65 // Es ist durchaus moeglich, dass der User bei der Frage "TAN uebertragen" abgebrochen hat.
66 // Dann haben wir auch keine TAN, die automatisch eingegeben werden kann.
67 // Checken, wie lang die TAN ist
68 if (data != null && data.length > 1)
95 int tanLength = data[0];
96 HBCIUtils.log("received TAN",HBCIUtils.LOG_INFO);
97 if (tanLength > 0)
6998 {
70 int tanLength = data[0];
71 HBCIUtils.log("received TAN, length: " + tanLength,HBCIUtils.LOG_INFO);
72 if (tanLength > 0)
73 {
74 byte[] tanBytes = new byte[tanLength];
75 System.arraycopy(data,1,tanBytes,0,tanLength);
76 tan = this.parseTAN(tanBytes);
77 }
99 byte[] tanBytes = new byte[tanLength];
100 System.arraycopy(data,1,tanBytes,0,tanLength);
101 tan = this.parseTAN(tanBytes);
102 HBCIUtils.log("TAN length: " + tan.length() + " chars",HBCIUtils.LOG_INFO);
78103 }
79104 }
80 //
81 //////////////////////////////////////////////////////////////////////////
82
83 //////////////////////////////////////////////////////////////////////////
84 // SECODER FINALIZE TRANSACTION (SECODER 3G)
85
86 // Transaktion finalisieren
105 }
106 //
107 //////////////////////////////////////////////////////////////////////////
108
109 //////////////////////////////////////////////////////////////////////////
110 // SECODER FINALIZE TRANSACTION (SECODER 3G)
111
112 // Transaktion finalisieren
113 {
114 HBCIUtils.log("finalizing chipcard transaction",HBCIUtils.LOG_INFO);
115 ByteArrayOutputStream cmd = new ByteArrayOutputStream();
116 cmd.write(new byte[]{0x20,0x77,0x00,0x00}); // Header
117 cmd.write(new byte[]{0x00,0x00,0x06}); // Li Lc Lc
118 cmd.write(new byte[]{0x00,0x00,0x00,0x00}); // Activation ID
119 cmd.write(0x00); // POF
120 cmd.write(0x00); // Control Byte
121 cmd.write(new byte[]{0x00,0x00}); // Le Le
122
123 byte[] response = this.getCard().transmitControlCommand(this.getFeatures().get(Feature.FEATURE_MCT_READER_DIRECT),cmd.toByteArray());
124 ResponseAPDU apdu = new ResponseAPDU(response);
125
126 // Wir tolerieren hier auch 0x6D. Das liefert der Kartenleser,
127 // wenn er das Kommando nicht unterstuetzt. Die TAN haben wir
128 // ja bereits. Wenn das finalize danach nicht unterstuetzt wird,
129 // lassen wir das durchgehen.
130 this.check(apdu,new byte[]{(byte)0x90,(byte)0x91, (byte) 0x6D});
131 }
132
133 HBCIUtils.log("returning TAN",HBCIUtils.LOG_INFO);
134 return tan;
135
136 //
137 //////////////////////////////////////////////////////////////////////////
138 }
139
140
141 /**
142 * Sendet das HHDuc per ScardTransmit an den Kartenleser und liefert die eingegebene TAN zurueck.
143 * @param hhduc das HHDuc.
144 * @return die TAN. Oder NULL, wenn sie nicht zur Uebertragung ausgewaehlt wurde.
145 * @throws Exception
146 */
147 public String getTanScardTransmit(String hhduc) throws Exception
148 {
149 String tan = null;
150
151 //////////////////////////////////////////////////////////////////////////
152 // SECODER TRANSMIT HHDuc (Secoder 3G)
153
154 {
155 // Flickercode als Byte-Array rendern
156 byte[] hhdBytes = this.toBytes(hhduc);
157
158 HBCIUtils.log("sending HHDuc to chipcard using ScardTransmit, length: " + hhdBytes.length,HBCIUtils.LOG_INFO);
159
160 int len = 4 + 1 + 1 + 2 + hhdBytes.length; // Laenge von Activation ID, POF, Control Byte, HHD-Laenge, Payload
161 ByteArrayOutputStream cmd = new ByteArrayOutputStream();
162 cmd.write(new byte[]{(byte)0xFF,(byte)0x91,(byte)0x06,(byte)0x00}); // Header
163 cmd.write(new byte[]{0x00,0x00,(byte) len}); // Li Lc Lc
164 cmd.write(new byte[]{0x00,0x00,0x00,0x00}); // Activation ID
165 cmd.write(0x01); // POF
166 cmd.write(0x00); // Control Byte
167 cmd.write(new byte[]{0x00,(byte) hhdBytes.length}); // HHD Laenge - kann eh nie laenger als 255 Zeichen sein - von daher reicht ein Byte aus
168 cmd.write(hhdBytes); // Payload
169 cmd.write(new byte[]{0x00,0x00}); // Le Le
170
171 byte[] request = cmd.toByteArray();
172
173 CommandAPDU apdu = new CommandAPDU(request);
174 byte[] data = this.receive(apdu,new byte[]{(byte)0x90,(byte)0x91});
175
176 // Es ist durchaus moeglich, dass der User bei der Frage "TAN uebertragen" abgebrochen hat.
177 // Dann haben wir auch keine TAN, die automatisch eingegeben werden kann.
178 // Checken, wie lang die TAN ist
179 if (data != null && data.length > 1)
87180 {
88 HBCIUtils.log("finalizing chipcard transaction",HBCIUtils.LOG_INFO);
89 ByteArrayOutputStream cmd = new ByteArrayOutputStream();
90 cmd.write(new byte[]{0x20,0x77,0x00,0x00}); // Header
91 cmd.write(new byte[]{0x00,0x00,0x06}); // Li Lc Lc
92 cmd.write(new byte[]{0x00,0x00,0x00,0x00}); // Activation ID
93 cmd.write(0x00); // POF
94 cmd.write(0x00); // Control Byte
95 cmd.write(new byte[]{0x00,0x00}); // Le Le
96
97 byte[] response = this.getCard().transmitControlCommand(this.getFeatures().get(FEATURE_MCT_READER_DIRECT),cmd.toByteArray());
98 ResponseAPDU apdu = new ResponseAPDU(response);
99 this.check(apdu,new byte[]{(byte)0x90,(byte)0x91});
181 int tanLength = data[0];
182 HBCIUtils.log("received TAN",HBCIUtils.LOG_INFO);
183 if (tanLength > 0)
184 {
185 byte[] tanBytes = new byte[tanLength];
186 System.arraycopy(data,1,tanBytes,0,tanLength);
187 tan = this.parseTAN(tanBytes);
188 HBCIUtils.log("TAN length: " + tan.length() + " chars",HBCIUtils.LOG_INFO);
189 }
100190 }
101
102 HBCIUtils.log("returning TAN",HBCIUtils.LOG_INFO);
103 return tan;
104
105 //
106 //////////////////////////////////////////////////////////////////////////
107 }
108 catch (HBCI_Exception e)
109 {
110 throw e;
111 }
112 catch (Exception e2)
113 {
114 throw new HBCI_Exception(e2);
115 }
116 }
117
191 }
192 //
193 //////////////////////////////////////////////////////////////////////////
194
195 //////////////////////////////////////////////////////////////////////////
196 // SECODER FINALIZE TRANSACTION (SECODER 3G)
197
198 // Transaktion finalisieren
199 {
200 HBCIUtils.log("finalizing chipcard transaction",HBCIUtils.LOG_INFO);
201 ByteArrayOutputStream cmd = new ByteArrayOutputStream();
202 cmd.write(new byte[]{(byte)0xFF,(byte)0x91,0x07,0x00}); // Header
203 cmd.write(new byte[]{0x00,0x00,0x06}); // Li Lc Lc
204 cmd.write(new byte[]{0x00,0x00,0x00,0x00}); // Activation ID
205 cmd.write(0x00); // POF
206 cmd.write(0x00); // Control Byte
207 cmd.write(new byte[]{0x00,0x00}); // Le Le
208
209 byte[] request = cmd.toByteArray();
210
211 // Wir tolerieren hier auch 0x6D. Das liefert der Kartenleser,
212 // wenn er das Kommando nicht unterstuetzt. Die TAN haben wir
213 // ja bereits. Wenn das finalize danach nicht unterstuetzt wird,
214 // lassen wir das durchgehen.
215 CommandAPDU apdu = new CommandAPDU(request);
216 this.receive(apdu,new byte[]{(byte)0x90,(byte)0x91,(byte)0x6D});
217 }
218
219 HBCIUtils.log("returning TAN",HBCIUtils.LOG_INFO);
220 return tan;
221
222 //
223 //////////////////////////////////////////////////////////////////////////
224 }
225
118226 /**
119227 * Konvertiert die BCD-codierte TAN in einen String.
120228 * @param bytes die Bytes.
2929 {
3030 try
3131 {
32 byte[] response = this.getCard().transmitControlCommand(this.getFeatures().get(FEATURE_VERIFY_PIN_DIRECT),this.createPINVerificationDataStructure(pwdId));
32 byte[] response = this.getCard().transmitControlCommand(this.getFeatures().get(Feature.FEATURE_VERIFY_PIN_DIRECT),this.createPINVerificationDataStructure(pwdId));
3333
3434 ResponseAPDU apdu = new ResponseAPDU(response);
3535
126126 final static byte SECCOS_SM_RESP_DESCR = (byte) 0xba;
127127 final static byte SECCOS_SM_VALUE_LE = (byte) 0x96;
128128
129 private final static String[] FEATURES = new String[]
130 {
131 "NO_FEATURE",
132 "FEATURE_VERIFY_PIN_START",
133 "FEATURE_VERIFY_PIN_FINISH",
134 "FEATURE_MODIFY_PIN_START",
135 "FEATURE_MODIFY_PIN_FINISH",
136 "FEATURE_GET_KEY_PRESSED",
137 "FEATURE_VERIFY_PIN_DIRECT",
138 "FEATURE_MODIFY_PIN_DIRECT",
139 "FEATURE_MCT_READER_DIRECT",
140 "FEATURE_MCT_UNIVERSAL",
141 "FEATURE_IFD_PIN_PROPERTIES",
142 "FEATURE_ABORT",
143 "FEATURE_SET_SPE_MESSAGE",
144 "FEATURE_VERIFY_PIN_DIRECT_APP_ID",
145 "FEATURE_MODIFY_PIN_DIRECT_APP_ID",
146 "FEATURE_WRITE_DISPLAY",
147 "FEATURE_GET_KEY",
148 "FEATURE_IFD_DISPLAY_PROPERTIES",
149 "FEATURE_GET_TLV_PROPERTIES", // NEU
150 "FEATURE_CCID_ESC_COMMAND" //NEU
151 };
152
153 final static Byte FEATURE_VERIFY_PIN_START = new Byte((byte) 0x01);
154 final static Byte FEATURE_VERIFY_PIN_FINISH = new Byte((byte) 0x02);
155 final static Byte FEATURE_GET_KEY_PRESSED = new Byte((byte) 0x05);
156 final static Byte FEATURE_VERIFY_PIN_DIRECT = new Byte((byte) 0x06);
157 final static Byte FEATURE_MCT_READER_DIRECT = new Byte((byte) 0x08);
158 final static Byte FEATURE_MCT_UNIVERSAL = new Byte((byte) 0x09);
159 final static Byte FEATURE_IFD_PIN_PROPERTIES = new Byte((byte) 0x0a);
160
161129 private final static int IOCTL_GET_FEATURE_REQUEST = SCARD_CTL_CODE(3400);
162130
163 private Map<Byte, Integer> features = new HashMap<Byte,Integer>();
131 private Map<Feature, Integer> features = new HashMap<Feature,Integer>();
164132 private Card smartCard = null;
133
134 /**
135 * Kapselt die Features der Karte.
136 */
137 protected enum Feature
138 {
139 FEATURE_VERIFY_PIN_START((byte) 0x01),
140 FEATURE_VERIFY_PIN_FINISH((byte) 0x02),
141 FEATURE_MODIFY_PIN_START((byte) 0x03),
142 FEATURE_MODIFY_PIN_FINISH((byte) 0x04),
143 FEATURE_GET_KEY_PRESSED((byte) 0x05),
144 FEATURE_VERIFY_PIN_DIRECT((byte) 0x06),
145 FEATURE_MODIFY_PIN_DIRECT((byte) 0x07),
146 FEATURE_MCT_READER_DIRECT((byte) 0x08),
147 FEATURE_MCT_UNIVERSAL((byte) 0x09),
148 FEATURE_IFD_PIN_PROPERTIES((byte) 0x0a),
149 FEATURE_ABORT((byte) 0x0b),
150 FEATURE_SET_SPE_MESSAGE((byte) 0x0c),
151 FEATURE_VERIFY_PIN_DIRECT_APP_ID((byte) 0x0d),
152 FEATURE_MODIFY_PIN_DIRECT_APP_ID((byte) 0x0e),
153 FEATURE_WRITE_DISPLAY((byte) 0x0f),
154 FEATURE_GET_KEY((byte) 0x10),
155 FEATURE_IFD_DISPLAY_PROPERTIES((byte) 0x11),
156 FEATURE_GET_TLV_PROPERTIES((byte) 0x12),
157 FEATURE_CCID_ESC_COMMAND((byte) 0x13),
158 FEATURE_EXECUTE_PACE((byte) 0x20)
159 ;
160
161 private byte number;
162
163 /**
164 * ct.
165 * @param number die Feature-Nummer.
166 */
167 private Feature(byte number)
168 {
169 this.number = number;
170 }
171
172 /**
173 * Liefert das Feature mit der angegebenen Feature-Nummer.
174 * @param b das Byte mit der Feature-Nummer.
175 * @return das Feature oder NULL, wenn es nicht existiert.
176 */
177 private static Feature find(byte b)
178 {
179 for (Feature f:Feature.values())
180 {
181 if (b == f.number)
182 return f;
183 }
184 return null;
185 }
186 }
165187
166188 /**
167189 * Erzeut eine neue Instanz des Card-Service fuer die angegebene Karte.
307329 byte[] response = this.smartCard.transmitControlCommand(IOCTL_GET_FEATURE_REQUEST, new byte[0]);
308330 for (int i = 0; i < response.length; i += 6)
309331 {
310 Byte feature = new Byte(response[i]);
311332 Integer ioctl = new Integer((0xff & response[i + 2]) << 24)
312333 | ((0xff & response[i + 3]) << 16)
313334 | ((0xff & response[i + 4]) << 8)
314335 | (0xff & response[i + 5]);
315336
316 String name = null;
317 try
337 Feature feature = Feature.find(response[i]);
338 if (feature == null)
318339 {
319 name = FEATURES[feature.intValue()];
340 HBCIUtils.log(" unknown feature: " + Integer.toHexString(ioctl.intValue()),HBCIUtils.LOG_INFO);
341 continue;
320342 }
321 catch (ArrayIndexOutOfBoundsException e)
322 {
323 name = "FEATURE_UNKNOWN";
324 }
325 HBCIUtils.log(" " + name + ": " + Integer.toHexString(ioctl.intValue()),HBCIUtils.LOG_INFO);
343
344 HBCIUtils.log(" " + feature.name() + ": " + Integer.toHexString(ioctl.intValue()),HBCIUtils.LOG_INFO);
326345 features.put(feature, ioctl);
327346 }
328347 }
329348 catch (Exception e)
330349 {
331 throw new HBCI_Exception(e);
350 HBCIUtils.log("unable to query features, continuing without having a feature set, error: " + e.getMessage(),HBCIUtils.LOG_WARN);
351 HBCIUtils.log(e,HBCIUtils.LOG_DEBUG);
332352 }
333353 }
334354
336356 * Liefert die Map mit den verfuegbaren Features.
337357 * @return die Map mit den verfuegbaren Features.
338358 */
339 protected final Map<Byte, Integer> getFeatures()
359 protected final Map<Feature, Integer> getFeatures()
340360 {
341361 return Collections.unmodifiableMap(features);
342362 }
478498 // 0x90: Alles OK
479499 // 0x61: Warnung - im Response sind noch Bytes verfuegbar. Da wir das Response
480500 // hier aber eh nicht brauchen, koennen wir das tolerieren
481 _receive(command,new byte[]{(byte)0x90,(byte)0x61});
501 receive(command,new byte[]{(byte)0x90,(byte)0x61});
482502 }
483503
484504 /**
489509 */
490510 protected final byte[] receive(CommandAPDU command)
491511 {
492 return _receive(command,new byte[]{(byte)0x90});
512 return receive(command,new byte[]{(byte)0x90});
493513 }
494514
495515 /**
499519 * @param returncodes zulaessige Return-Codes.
500520 * @return die Antwort.
501521 */
502 private byte[] _receive(CommandAPDU command, byte[] returncodes)
522 protected byte[] receive(CommandAPDU command, byte[] returncodes)
503523 {
504524 try
505525 {
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!--Generated by SWIFTStandards Workstation (build:R6.0.1.1) on 2007 Mar 28 10:37:39-->
2 <xs:schema elementFormDefault="qualified"
3 targetNamespace="urn:iso:std:iso:20022:tech:xsd:camt.052.001.01"
4 xmlns="urn:iso:std:iso:20022:tech:xsd:camt.052.001.01" xmlns:xs="http://www.w3.org/2001/XMLSchema">
5 <xs:element name="Document" type="Document"/>
6 <xs:complexType name="AccountIdentification3Choice">
7 <xs:sequence>
8 <xs:choice>
9 <xs:element name="IBAN" type="IBANIdentifier"/>
10 <xs:element name="BBAN" type="BBANIdentifier"/>
11 <xs:element name="UPIC" type="UPICIdentifier"/>
12 <xs:element name="PrtryAcct" type="SimpleIdentificationInformation2"/>
13 </xs:choice>
14 </xs:sequence>
15 </xs:complexType>
16 <xs:complexType name="AccountInterest1">
17 <xs:sequence>
18 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="InterestType1Choice"/>
19 <xs:element maxOccurs="unbounded" minOccurs="0" name="Rate" type="Rate1"/>
20 <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DateTimePeriodDetails"/>
21 <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="Max35Text"/>
22 </xs:sequence>
23 </xs:complexType>
24 <xs:complexType name="AccountReport9">
25 <xs:sequence>
26 <xs:element name="Id" type="Max35Text"/>
27 <xs:element maxOccurs="1" minOccurs="0" name="ElctrncSeqNb" type="Number"/>
28 <xs:element maxOccurs="1" minOccurs="0" name="LglSeqNb" type="Number"/>
29 <xs:element name="CreDtTm" type="ISODateTime"/>
30 <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DateTimePeriodDetails"/>
31 <xs:element maxOccurs="1" minOccurs="0" name="CpyDplctInd" type="CopyDuplicate1Code"/>
32 <xs:element name="Acct" type="CashAccount13"/>
33 <xs:element maxOccurs="1" minOccurs="0" name="RltdAcct" type="CashAccount7"/>
34 <xs:element maxOccurs="unbounded" minOccurs="0"
35 name="Intrst" type="AccountInterest1"/>
36 <xs:element maxOccurs="unbounded" minOccurs="0" name="Bal" type="CashBalance1"/>
37 <xs:element maxOccurs="1" minOccurs="0" name="TxsSummry" type="TotalTransactions1"/>
38 <xs:element maxOccurs="unbounded" minOccurs="0" name="Ntry" type="ReportEntry1"/>
39 <xs:element maxOccurs="1" minOccurs="0" name="AddtlRptInf" type="Max500Text"/>
40 </xs:sequence>
41 </xs:complexType>
42 <xs:simpleType name="AddressType2Code">
43 <xs:restriction base="xs:string">
44 <xs:enumeration value="ADDR"/>
45 <xs:enumeration value="PBOX"/>
46 <xs:enumeration value="HOME"/>
47 <xs:enumeration value="BIZZ"/>
48 <xs:enumeration value="MLTO"/>
49 <xs:enumeration value="DLVY"/>
50 </xs:restriction>
51 </xs:simpleType>
52 <xs:complexType name="AlternateSecurityIdentification2">
53 <xs:sequence>
54 <xs:element name="Tp" type="Max35Text"/>
55 <xs:element name="Id" type="Max35Text"/>
56 </xs:sequence>
57 </xs:complexType>
58 <xs:complexType name="AmountAndCurrencyExchange2">
59 <xs:sequence>
60 <xs:element maxOccurs="1" minOccurs="0" name="InstdAmt" type="AmountAndCurrencyExchangeDetails1"/>
61 <xs:element maxOccurs="1" minOccurs="0" name="TxAmt" type="AmountAndCurrencyExchangeDetails1"/>
62 <xs:element maxOccurs="1" minOccurs="0" name="CntrValAmt" type="AmountAndCurrencyExchangeDetails1"/>
63 <xs:element maxOccurs="1" minOccurs="0" name="AnncdPstngAmt" type="AmountAndCurrencyExchangeDetails1"/>
64 <xs:element maxOccurs="unbounded" minOccurs="0"
65 name="PrtryAmt" type="AmountAndCurrencyExchangeDetails2"/>
66 </xs:sequence>
67 </xs:complexType>
68 <xs:complexType name="AmountAndCurrencyExchangeDetails1">
69 <xs:sequence>
70 <xs:element name="Amt" type="CurrencyAndAmount"/>
71 <xs:element maxOccurs="1" minOccurs="0" name="CcyXchg" type="CurrencyExchange3"/>
72 </xs:sequence>
73 </xs:complexType>
74 <xs:complexType name="AmountAndCurrencyExchangeDetails2">
75 <xs:sequence>
76 <xs:element name="Tp" type="Max35Text"/>
77 <xs:element name="Amt" type="CurrencyAndAmount"/>
78 <xs:element maxOccurs="1" minOccurs="0" name="CcyXchg" type="CurrencyExchange3"/>
79 </xs:sequence>
80 </xs:complexType>
81 <xs:complexType name="AmountRangeBoundary1">
82 <xs:sequence>
83 <xs:element name="BdryAmt" type="ImpliedCurrencyAndAmount"/>
84 <xs:element name="Incl" type="YesNoIndicator"/>
85 </xs:sequence>
86 </xs:complexType>
87 <xs:simpleType name="BBANIdentifier">
88 <xs:restriction base="xs:string">
89 <xs:pattern value="[a-zA-Z0-9]{1,30}"/>
90 </xs:restriction>
91 </xs:simpleType>
92 <xs:simpleType name="BEIIdentifier">
93 <xs:restriction base="xs:string">
94 <xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
95 </xs:restriction>
96 </xs:simpleType>
97 <xs:simpleType name="BICIdentifier">
98 <xs:restriction base="xs:string">
99 <xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
100 </xs:restriction>
101 </xs:simpleType>
102 <xs:complexType name="BalanceType1Choice">
103 <xs:sequence>
104 <xs:choice>
105 <xs:element name="Cd" type="BalanceType8Code"/>
106 <xs:element name="Prtry" type="Max35Text"/>
107 </xs:choice>
108 </xs:sequence>
109 </xs:complexType>
110 <xs:simpleType name="BalanceType8Code">
111 <xs:restriction base="xs:string">
112 <xs:enumeration value="OPBD"/>
113 <xs:enumeration value="ITBD"/>
114 <xs:enumeration value="CLBD"/>
115 <xs:enumeration value="XPCD"/>
116 <xs:enumeration value="OPAV"/>
117 <xs:enumeration value="ITAV"/>
118 <xs:enumeration value="CLAV"/>
119 <xs:enumeration value="FWAV"/>
120 <xs:enumeration value="PRCD"/>
121 <xs:enumeration value="IOPA"/>
122 <xs:enumeration value="IITA"/>
123 <xs:enumeration value="ICLA"/>
124 <xs:enumeration value="IFWA"/>
125 <xs:enumeration value="ICLB"/>
126 <xs:enumeration value="IITB"/>
127 <xs:enumeration value="IOPB"/>
128 <xs:enumeration value="IXPC"/>
129 <xs:enumeration value="DOPA"/>
130 <xs:enumeration value="DITA"/>
131 <xs:enumeration value="DCLA"/>
132 <xs:enumeration value="DFWA"/>
133 <xs:enumeration value="DCLB"/>
134 <xs:enumeration value="DITB"/>
135 <xs:enumeration value="DOPB"/>
136 <xs:enumeration value="DXPC"/>
137 <xs:enumeration value="COPA"/>
138 <xs:enumeration value="CITA"/>
139 <xs:enumeration value="CCLA"/>
140 <xs:enumeration value="CFWA"/>
141 <xs:enumeration value="CCLB"/>
142 <xs:enumeration value="CITB"/>
143 <xs:enumeration value="COPB"/>
144 <xs:enumeration value="CXPC"/>
145 </xs:restriction>
146 </xs:simpleType>
147 <xs:complexType name="BankToCustomerAccountReportV01">
148 <xs:sequence>
149 <xs:element name="GrpHdr" type="GroupHeader23"/>
150 <xs:element maxOccurs="unbounded" minOccurs="1" name="Rpt" type="AccountReport9"/>
151 </xs:sequence>
152 </xs:complexType>
153 <xs:complexType name="BankTransactionCodeStructure1">
154 <xs:sequence>
155 <xs:element maxOccurs="1" minOccurs="0" name="Domn" type="BankTransactionCodeStructure2"/>
156 <xs:element maxOccurs="1" minOccurs="0" name="Prtry" type="ProprietaryBankTransactionCodeStructure1"/>
157 </xs:sequence>
158 </xs:complexType>
159 <xs:complexType name="BankTransactionCodeStructure2">
160 <xs:sequence>
161 <xs:element name="Cd" type="ExternalBankTransactionDomainCode"/>
162 <xs:element name="Fmly" type="BankTransactionCodeStructure3"/>
163 </xs:sequence>
164 </xs:complexType>
165 <xs:complexType name="BankTransactionCodeStructure3">
166 <xs:sequence>
167 <xs:element name="Cd" type="ExternalBankTransactionFamilyCode"/>
168 <xs:element name="SubFmlyCd" type="ExternalBankTransactionSubFamilyCode"/>
169 </xs:sequence>
170 </xs:complexType>
171 <xs:simpleType name="BaseOneRate">
172 <xs:restriction base="xs:decimal">
173 <xs:fractionDigits value="10"/>
174 <xs:totalDigits value="11"/>
175 </xs:restriction>
176 </xs:simpleType>
177 <xs:complexType name="BatchInformation1">
178 <xs:sequence>
179 <xs:element maxOccurs="1" minOccurs="0" name="MsgId" type="Max35Text"/>
180 <xs:element maxOccurs="1" minOccurs="0" name="PmtInfId" type="Max35Text"/>
181 <xs:element maxOccurs="1" minOccurs="0" name="NbOfTxs" type="Max15NumericText"/>
182 </xs:sequence>
183 </xs:complexType>
184 <xs:complexType name="BranchAndFinancialInstitutionIdentification3">
185 <xs:sequence>
186 <xs:element name="FinInstnId" type="FinancialInstitutionIdentification5Choice"/>
187 <xs:element maxOccurs="1" minOccurs="0" name="BrnchId" type="BranchData"/>
188 </xs:sequence>
189 </xs:complexType>
190 <xs:complexType name="BranchData">
191 <xs:sequence>
192 <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Max35Text"/>
193 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max35Text"/>
194 <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress1"/>
195 </xs:sequence>
196 </xs:complexType>
197 <xs:simpleType name="CHIPSUniversalIdentifier">
198 <xs:restriction base="xs:string">
199 <xs:pattern value="CH[0-9]{6,6}"/>
200 </xs:restriction>
201 </xs:simpleType>
202 <xs:complexType name="CashAccount13">
203 <xs:sequence>
204 <xs:element name="Id" type="AccountIdentification3Choice"/>
205 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CashAccountType2"/>
206 <xs:element maxOccurs="1" minOccurs="0" name="Ccy" type="CurrencyCode"/>
207 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max70Text"/>
208 <xs:element maxOccurs="1" minOccurs="0" name="Ownr" type="PartyIdentification8"/>
209 <xs:element maxOccurs="1" minOccurs="0" name="Svcr" type="BranchAndFinancialInstitutionIdentification3"/>
210 </xs:sequence>
211 </xs:complexType>
212 <xs:complexType name="CashAccount7">
213 <xs:sequence>
214 <xs:element name="Id" type="AccountIdentification3Choice"/>
215 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CashAccountType2"/>
216 <xs:element maxOccurs="1" minOccurs="0" name="Ccy" type="CurrencyCode"/>
217 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max70Text"/>
218 </xs:sequence>
219 </xs:complexType>
220 <xs:complexType name="CashAccountType2">
221 <xs:sequence>
222 <xs:choice>
223 <xs:element name="Cd" type="CashAccountType4Code"/>
224 <xs:element name="Prtry" type="Max35Text"/>
225 </xs:choice>
226 </xs:sequence>
227 </xs:complexType>
228 <xs:simpleType name="CashAccountType4Code">
229 <xs:restriction base="xs:string">
230 <xs:enumeration value="CASH"/>
231 <xs:enumeration value="CHAR"/>
232 <xs:enumeration value="COMM"/>
233 <xs:enumeration value="TAXE"/>
234 <xs:enumeration value="CISH"/>
235 <xs:enumeration value="TRAS"/>
236 <xs:enumeration value="SACC"/>
237 <xs:enumeration value="CACC"/>
238 <xs:enumeration value="SVGS"/>
239 <xs:enumeration value="ONDP"/>
240 <xs:enumeration value="MGLD"/>
241 <xs:enumeration value="NREX"/>
242 <xs:enumeration value="MOMA"/>
243 <xs:enumeration value="LOAN"/>
244 <xs:enumeration value="SLRY"/>
245 <xs:enumeration value="ODFT"/>
246 </xs:restriction>
247 </xs:simpleType>
248 <xs:complexType name="CashBalance1">
249 <xs:sequence>
250 <xs:element name="Tp" type="BalanceType1Choice"/>
251 <xs:element maxOccurs="1" minOccurs="0" name="CdtLine" type="CreditLine1"/>
252 <xs:element name="Amt" type="CurrencyAndAmount"/>
253 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
254 <xs:element name="Dt" type="DateAndDateTimeChoice"/>
255 <xs:element maxOccurs="unbounded" minOccurs="0"
256 name="Avlbty" type="CashBalanceAvailability1"/>
257 </xs:sequence>
258 </xs:complexType>
259 <xs:complexType name="CashBalanceAvailability1">
260 <xs:sequence>
261 <xs:element name="Dt" type="CashBalanceAvailabilityDate1"/>
262 <xs:element name="Amt" type="CurrencyAndAmount"/>
263 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
264 </xs:sequence>
265 </xs:complexType>
266 <xs:complexType name="CashBalanceAvailabilityDate1">
267 <xs:sequence>
268 <xs:choice>
269 <xs:element name="NbOfDays" type="Max15PlusSignedNumericText"/>
270 <xs:element name="ActlDt" type="ISODate"/>
271 </xs:choice>
272 </xs:sequence>
273 </xs:complexType>
274 <xs:simpleType name="ChargeBearerType1Code">
275 <xs:restriction base="xs:string">
276 <xs:enumeration value="DEBT"/>
277 <xs:enumeration value="CRED"/>
278 <xs:enumeration value="SHAR"/>
279 <xs:enumeration value="SLEV"/>
280 </xs:restriction>
281 </xs:simpleType>
282 <xs:simpleType name="ChargeType1Code">
283 <xs:restriction base="xs:string">
284 <xs:enumeration value="BRKF"/>
285 <xs:enumeration value="COMM"/>
286 </xs:restriction>
287 </xs:simpleType>
288 <xs:complexType name="ChargeTypeChoice">
289 <xs:sequence>
290 <xs:choice>
291 <xs:element name="Cd" type="ChargeType1Code"/>
292 <xs:element name="PrtryCd" type="Max4AlphaNumericText"/>
293 </xs:choice>
294 </xs:sequence>
295 </xs:complexType>
296 <xs:complexType name="ChargesInformation3">
297 <xs:sequence>
298 <xs:element maxOccurs="1" minOccurs="0"
299 name="TtlChrgsAndTaxAmt" type="CurrencyAndAmount"/>
300 <xs:element name="Amt" type="CurrencyAndAmount"/>
301 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="ChargeTypeChoice"/>
302 <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="PercentageRate"/>
303 <xs:element maxOccurs="1" minOccurs="0" name="Br" type="ChargeBearerType1Code"/>
304 <xs:element maxOccurs="1" minOccurs="0" name="Pty" type="BranchAndFinancialInstitutionIdentification3"/>
305 <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxCharges1"/>
306 </xs:sequence>
307 </xs:complexType>
308 <xs:complexType name="ClearingSystemMemberIdentification3Choice">
309 <xs:sequence>
310 <xs:choice>
311 <xs:element name="Id" type="ExternalClearingSystemMemberCode"/>
312 <xs:element name="Prtry" type="Max35Text"/>
313 </xs:choice>
314 </xs:sequence>
315 </xs:complexType>
316 <xs:simpleType name="CopyDuplicate1Code">
317 <xs:restriction base="xs:string">
318 <xs:enumeration value="CODU"/>
319 <xs:enumeration value="COPY"/>
320 <xs:enumeration value="DUPL"/>
321 </xs:restriction>
322 </xs:simpleType>
323 <xs:complexType name="CorporateAction1">
324 <xs:sequence>
325 <xs:element maxOccurs="1" minOccurs="0" name="Cd" type="Max35Text"/>
326 <xs:element maxOccurs="1" minOccurs="0" name="Nb" type="Max35Text"/>
327 <xs:element maxOccurs="1" minOccurs="0" name="Prtry" type="Max35Text"/>
328 </xs:sequence>
329 </xs:complexType>
330 <xs:simpleType name="CountryCode">
331 <xs:restriction base="xs:string">
332 <xs:pattern value="[A-Z]{2,2}"/>
333 </xs:restriction>
334 </xs:simpleType>
335 <xs:simpleType name="CreditDebitCode">
336 <xs:restriction base="xs:string">
337 <xs:enumeration value="CRDT"/>
338 <xs:enumeration value="DBIT"/>
339 </xs:restriction>
340 </xs:simpleType>
341 <xs:complexType name="CreditLine1">
342 <xs:sequence>
343 <xs:element name="Incl" type="TrueFalseIndicator"/>
344 <xs:element maxOccurs="1" minOccurs="0" name="Amt" type="CurrencyAndAmount"/>
345 </xs:sequence>
346 </xs:complexType>
347 <xs:complexType name="CreditorReferenceInformation1">
348 <xs:sequence>
349 <xs:element maxOccurs="1" minOccurs="0" name="CdtrRefTp" type="CreditorReferenceType1"/>
350 <xs:element maxOccurs="1" minOccurs="0" name="CdtrRef" type="Max35Text"/>
351 </xs:sequence>
352 </xs:complexType>
353 <xs:complexType name="CreditorReferenceType1">
354 <xs:sequence>
355 <xs:choice>
356 <xs:element name="Cd" type="DocumentType3Code"/>
357 <xs:element name="Prtry" type="Max35Text"/>
358 </xs:choice>
359 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
360 </xs:sequence>
361 </xs:complexType>
362 <xs:simpleType name="CurrencyAndAmount_SimpleType">
363 <xs:restriction base="xs:decimal">
364 <xs:minInclusive value="0"/>
365 <xs:fractionDigits value="5"/>
366 <xs:totalDigits value="18"/>
367 </xs:restriction>
368 </xs:simpleType>
369 <xs:complexType name="CurrencyAndAmount">
370 <xs:simpleContent>
371 <xs:extension base="CurrencyAndAmount_SimpleType">
372 <xs:attribute name="Ccy" type="CurrencyCode" use="required"/>
373 </xs:extension>
374 </xs:simpleContent>
375 </xs:complexType>
376 <xs:complexType name="CurrencyAndAmountRange">
377 <xs:sequence>
378 <xs:element name="Amt" type="ImpliedCurrencyAmountRangeChoice"/>
379 <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
380 <xs:element name="Ccy" type="CurrencyCode"/>
381 </xs:sequence>
382 </xs:complexType>
383 <xs:simpleType name="CurrencyCode">
384 <xs:restriction base="xs:string">
385 <xs:pattern value="[A-Z]{3,3}"/>
386 </xs:restriction>
387 </xs:simpleType>
388 <xs:complexType name="CurrencyExchange3">
389 <xs:sequence>
390 <xs:element name="SrcCcy" type="CurrencyCode"/>
391 <xs:element maxOccurs="1" minOccurs="0" name="TrgtCcy" type="CurrencyCode"/>
392 <xs:element maxOccurs="1" minOccurs="0" name="UnitCcy" type="CurrencyCode"/>
393 <xs:element name="XchgRate" type="BaseOneRate"/>
394 <xs:element maxOccurs="1" minOccurs="0" name="CtrctId" type="Max35Text"/>
395 <xs:element maxOccurs="1" minOccurs="0" name="QtnDt" type="ISODateTime"/>
396 </xs:sequence>
397 </xs:complexType>
398 <xs:complexType name="DateAndDateTimeChoice">
399 <xs:sequence>
400 <xs:choice>
401 <xs:element name="Dt" type="ISODate"/>
402 <xs:element name="DtTm" type="ISODateTime"/>
403 </xs:choice>
404 </xs:sequence>
405 </xs:complexType>
406 <xs:complexType name="DateAndPlaceOfBirth">
407 <xs:sequence>
408 <xs:element name="BirthDt" type="ISODate"/>
409 <xs:element maxOccurs="1" minOccurs="0" name="PrvcOfBirth" type="Max35Text"/>
410 <xs:element name="CityOfBirth" type="Max35Text"/>
411 <xs:element name="CtryOfBirth" type="CountryCode"/>
412 </xs:sequence>
413 </xs:complexType>
414 <xs:complexType name="DateTimePeriodDetails">
415 <xs:sequence>
416 <xs:element name="FrDtTm" type="ISODateTime"/>
417 <xs:element name="ToDtTm" type="ISODateTime"/>
418 </xs:sequence>
419 </xs:complexType>
420 <xs:simpleType name="DecimalNumber">
421 <xs:restriction base="xs:decimal">
422 <xs:fractionDigits value="17"/>
423 <xs:totalDigits value="18"/>
424 </xs:restriction>
425 </xs:simpleType>
426 <xs:complexType name="Document">
427 <xs:sequence>
428 <xs:element name="BkToCstmrAcctRptV01" type="BankToCustomerAccountReportV01"/>
429 </xs:sequence>
430 </xs:complexType>
431 <xs:simpleType name="DocumentType2Code">
432 <xs:restriction base="xs:string">
433 <xs:enumeration value="MSIN"/>
434 <xs:enumeration value="CNFA"/>
435 <xs:enumeration value="DNFA"/>
436 <xs:enumeration value="CINV"/>
437 <xs:enumeration value="CREN"/>
438 <xs:enumeration value="DEBN"/>
439 <xs:enumeration value="HIRI"/>
440 <xs:enumeration value="SBIN"/>
441 <xs:enumeration value="CMCN"/>
442 <xs:enumeration value="SOAC"/>
443 <xs:enumeration value="DISP"/>
444 </xs:restriction>
445 </xs:simpleType>
446 <xs:simpleType name="DocumentType3Code">
447 <xs:restriction base="xs:string">
448 <xs:enumeration value="RADM"/>
449 <xs:enumeration value="RPIN"/>
450 <xs:enumeration value="FXDR"/>
451 <xs:enumeration value="DISP"/>
452 <xs:enumeration value="PUOR"/>
453 <xs:enumeration value="SCOR"/>
454 </xs:restriction>
455 </xs:simpleType>
456 <xs:simpleType name="DunsIdentifier">
457 <xs:restriction base="xs:string">
458 <xs:pattern value="[0-9]{9,9}"/>
459 </xs:restriction>
460 </xs:simpleType>
461 <xs:simpleType name="EANGLNIdentifier">
462 <xs:restriction base="xs:string">
463 <xs:pattern value="[0-9]{13,13}"/>
464 </xs:restriction>
465 </xs:simpleType>
466 <xs:simpleType name="EntryStatus2Code">
467 <xs:restriction base="xs:string">
468 <xs:enumeration value="BOOK"/>
469 <xs:enumeration value="PDNG"/>
470 <xs:enumeration value="INFO"/>
471 </xs:restriction>
472 </xs:simpleType>
473 <xs:complexType name="EntryTransaction1">
474 <xs:sequence>
475 <xs:element maxOccurs="1" minOccurs="0" name="Refs" type="TransactionReferences1"/>
476 <xs:element maxOccurs="1" minOccurs="0" name="AmtDtls" type="AmountAndCurrencyExchange2"/>
477 <xs:element maxOccurs="unbounded" minOccurs="0"
478 name="Avlbty" type="CashBalanceAvailability1"/>
479 <xs:element maxOccurs="1" minOccurs="0" name="BkTxCd" type="BankTransactionCodeStructure1"/>
480 <xs:element maxOccurs="unbounded" minOccurs="0" name="Chrgs" type="ChargesInformation3"/>
481 <xs:element maxOccurs="unbounded" minOccurs="0"
482 name="Intrst" type="TransactionInterest1"/>
483 <xs:element maxOccurs="1" minOccurs="0" name="RltdPties" type="TransactionParty1"/>
484 <xs:element maxOccurs="1" minOccurs="0" name="RltdAgts" type="TransactionAgents1"/>
485 <xs:element maxOccurs="1" minOccurs="0" name="Purp" type="Purpose1Choice"/>
486 <xs:element maxOccurs="10" minOccurs="0" name="RltdRmtInf" type="RemittanceLocation1"/>
487 <xs:element maxOccurs="1" minOccurs="0" name="RmtInf" type="RemittanceInformation1"/>
488 <xs:element maxOccurs="1" minOccurs="0" name="RltdDts" type="TransactionDates1"/>
489 <xs:element maxOccurs="1" minOccurs="0" name="RltdPric" type="TransactionPrice1Choice"/>
490 <xs:element maxOccurs="unbounded" minOccurs="0"
491 name="RltdQties" type="TransactionQuantities1Choice"/>
492 <xs:element maxOccurs="1" minOccurs="0" name="FinInstrmId" type="SecurityIdentification4Choice"/>
493 <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxInformation2"/>
494 <xs:element maxOccurs="1" minOccurs="0" name="RtrInf" type="ReturnReasonInformation5"/>
495 <xs:element maxOccurs="1" minOccurs="0" name="CorpActn" type="CorporateAction1"/>
496 <xs:element maxOccurs="1" minOccurs="0" name="SfkpgAcct" type="CashAccount7"/>
497 <xs:element maxOccurs="1" minOccurs="0" name="AddtlTxInf" type="Max500Text"/>
498 </xs:sequence>
499 </xs:complexType>
500 <xs:simpleType name="ExternalBankTransactionDomainCode">
501 <xs:restriction base="xs:string">
502 <xs:minLength value="1"/>
503 <xs:maxLength value="4"/>
504 </xs:restriction>
505 </xs:simpleType>
506 <xs:simpleType name="ExternalBankTransactionFamilyCode">
507 <xs:restriction base="xs:string">
508 <xs:minLength value="1"/>
509 <xs:maxLength value="4"/>
510 </xs:restriction>
511 </xs:simpleType>
512 <xs:simpleType name="ExternalBankTransactionSubFamilyCode">
513 <xs:restriction base="xs:string">
514 <xs:minLength value="1"/>
515 <xs:maxLength value="4"/>
516 </xs:restriction>
517 </xs:simpleType>
518 <xs:simpleType name="ExternalClearingSystemMemberCode">
519 <xs:restriction base="xs:string">
520 <xs:minLength value="1"/>
521 <xs:maxLength value="35"/>
522 </xs:restriction>
523 </xs:simpleType>
524 <xs:simpleType name="ExternalPurposeCode">
525 <xs:restriction base="xs:string">
526 <xs:minLength value="1"/>
527 <xs:maxLength value="35"/>
528 </xs:restriction>
529 </xs:simpleType>
530 <xs:complexType name="FinancialInstitutionIdentification3">
531 <xs:sequence>
532 <xs:element maxOccurs="1" minOccurs="0" name="BIC" type="BICIdentifier"/>
533 <xs:element maxOccurs="1" minOccurs="0" name="ClrSysMmbId" type="ClearingSystemMemberIdentification3Choice"/>
534 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max70Text"/>
535 <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress1"/>
536 <xs:element maxOccurs="1" minOccurs="0" name="PrtryId" type="GenericIdentification3"/>
537 </xs:sequence>
538 </xs:complexType>
539 <xs:complexType name="FinancialInstitutionIdentification5Choice">
540 <xs:sequence>
541 <xs:choice>
542 <xs:element name="BIC" type="BICIdentifier"/>
543 <xs:element name="ClrSysMmbId" type="ClearingSystemMemberIdentification3Choice"/>
544 <xs:element name="NmAndAdr" type="NameAndAddress7"/>
545 <xs:element name="PrtryId" type="GenericIdentification3"/>
546 <xs:element name="CmbndId" type="FinancialInstitutionIdentification3"/>
547 </xs:choice>
548 </xs:sequence>
549 </xs:complexType>
550 <xs:complexType name="FinancialInstrumentQuantityChoice">
551 <xs:sequence>
552 <xs:choice>
553 <xs:element name="Unit" type="DecimalNumber"/>
554 <xs:element name="FaceAmt" type="ImpliedCurrencyAndAmount"/>
555 <xs:element name="AmtsdVal" type="ImpliedCurrencyAndAmount"/>
556 </xs:choice>
557 </xs:sequence>
558 </xs:complexType>
559 <xs:complexType name="FromToAmountRange">
560 <xs:sequence>
561 <xs:element name="FrAmt" type="AmountRangeBoundary1"/>
562 <xs:element name="ToAmt" type="AmountRangeBoundary1"/>
563 </xs:sequence>
564 </xs:complexType>
565 <xs:complexType name="GenericIdentification3">
566 <xs:sequence>
567 <xs:element name="Id" type="Max35Text"/>
568 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
569 </xs:sequence>
570 </xs:complexType>
571 <xs:complexType name="GenericIdentification4">
572 <xs:sequence>
573 <xs:element name="Id" type="Max35Text"/>
574 <xs:element name="IdTp" type="Max35Text"/>
575 </xs:sequence>
576 </xs:complexType>
577 <xs:complexType name="GroupHeader23">
578 <xs:sequence>
579 <xs:element name="MsgId" type="Max35Text"/>
580 <xs:element name="CreDtTm" type="ISODateTime"/>
581 <xs:element maxOccurs="1" minOccurs="0" name="MsgRcpt" type="PartyIdentification8"/>
582 <xs:element maxOccurs="1" minOccurs="0" name="MsgPgntn" type="Pagination"/>
583 <xs:element maxOccurs="1" minOccurs="0" name="AddtlInf" type="Max500Text"/>
584 </xs:sequence>
585 </xs:complexType>
586 <xs:simpleType name="IBANIdentifier">
587 <xs:restriction base="xs:string">
588 <xs:pattern value="[a-zA-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}"/>
589 </xs:restriction>
590 </xs:simpleType>
591 <xs:simpleType name="IBEIIdentifier">
592 <xs:restriction base="xs:string">
593 <xs:pattern value="[A-Z]{2,2}[B-DF-HJ-NP-TV-XZ0-9]{7,7}[0-9]{1,1}"/>
594 </xs:restriction>
595 </xs:simpleType>
596 <xs:simpleType name="ISINIdentifier">
597 <xs:restriction base="xs:string">
598 <xs:pattern value="[A-Z0-9]{12,12}"/>
599 </xs:restriction>
600 </xs:simpleType>
601 <xs:simpleType name="ISODate">
602 <xs:restriction base="xs:date"/>
603 </xs:simpleType>
604 <xs:simpleType name="ISODateTime">
605 <xs:restriction base="xs:dateTime"/>
606 </xs:simpleType>
607 <xs:complexType name="ImpliedCurrencyAmountRangeChoice">
608 <xs:sequence>
609 <xs:choice>
610 <xs:element name="FrAmt" type="AmountRangeBoundary1"/>
611 <xs:element name="ToAmt" type="AmountRangeBoundary1"/>
612 <xs:element name="FrToAmt" type="FromToAmountRange"/>
613 <xs:element name="EQAmt" type="ImpliedCurrencyAndAmount"/>
614 <xs:element name="NEQAmt" type="ImpliedCurrencyAndAmount"/>
615 </xs:choice>
616 </xs:sequence>
617 </xs:complexType>
618 <xs:simpleType name="ImpliedCurrencyAndAmount">
619 <xs:restriction base="xs:decimal">
620 <xs:minInclusive value="0"/>
621 <xs:fractionDigits value="5"/>
622 <xs:totalDigits value="18"/>
623 </xs:restriction>
624 </xs:simpleType>
625 <xs:complexType name="InterestType1Choice">
626 <xs:sequence>
627 <xs:choice>
628 <xs:element name="Cd" type="InterestType1Code"/>
629 <xs:element name="Prtry" type="Max35Text"/>
630 </xs:choice>
631 </xs:sequence>
632 </xs:complexType>
633 <xs:simpleType name="InterestType1Code">
634 <xs:restriction base="xs:string">
635 <xs:enumeration value="INDY"/>
636 <xs:enumeration value="OVRN"/>
637 </xs:restriction>
638 </xs:simpleType>
639 <xs:simpleType name="Max105Text">
640 <xs:restriction base="xs:string">
641 <xs:minLength value="1"/>
642 <xs:maxLength value="105"/>
643 </xs:restriction>
644 </xs:simpleType>
645 <xs:simpleType name="Max140Text">
646 <xs:restriction base="xs:string">
647 <xs:minLength value="1"/>
648 <xs:maxLength value="140"/>
649 </xs:restriction>
650 </xs:simpleType>
651 <xs:simpleType name="Max15NumericText">
652 <xs:restriction base="xs:string">
653 <xs:pattern value="[0-9]{1,15}"/>
654 </xs:restriction>
655 </xs:simpleType>
656 <xs:simpleType name="Max15PlusSignedNumericText">
657 <xs:restriction base="xs:string">
658 <xs:pattern value="[+]{0,1}[0-9]{1,15}"/>
659 </xs:restriction>
660 </xs:simpleType>
661 <xs:simpleType name="Max16Text">
662 <xs:restriction base="xs:string">
663 <xs:minLength value="1"/>
664 <xs:maxLength value="16"/>
665 </xs:restriction>
666 </xs:simpleType>
667 <xs:simpleType name="Max256Text">
668 <xs:restriction base="xs:string">
669 <xs:minLength value="1"/>
670 <xs:maxLength value="256"/>
671 </xs:restriction>
672 </xs:simpleType>
673 <xs:simpleType name="Max34Text">
674 <xs:restriction base="xs:string">
675 <xs:minLength value="1"/>
676 <xs:maxLength value="34"/>
677 </xs:restriction>
678 </xs:simpleType>
679 <xs:simpleType name="Max35Text">
680 <xs:restriction base="xs:string">
681 <xs:minLength value="1"/>
682 <xs:maxLength value="35"/>
683 </xs:restriction>
684 </xs:simpleType>
685 <xs:simpleType name="Max4AlphaNumericText">
686 <xs:restriction base="xs:string">
687 <xs:pattern value="[a-zA-Z0-9]{1,4}"/>
688 </xs:restriction>
689 </xs:simpleType>
690 <xs:simpleType name="Max500Text">
691 <xs:restriction base="xs:string">
692 <xs:minLength value="1"/>
693 <xs:maxLength value="500"/>
694 </xs:restriction>
695 </xs:simpleType>
696 <xs:simpleType name="Max5NumericText">
697 <xs:restriction base="xs:string">
698 <xs:pattern value="[0-9]{1,5}"/>
699 </xs:restriction>
700 </xs:simpleType>
701 <xs:simpleType name="Max70Text">
702 <xs:restriction base="xs:string">
703 <xs:minLength value="1"/>
704 <xs:maxLength value="70"/>
705 </xs:restriction>
706 </xs:simpleType>
707 <xs:complexType name="MessageIdentification2">
708 <xs:sequence>
709 <xs:element maxOccurs="1" minOccurs="0" name="MsgNmId" type="Max35Text"/>
710 <xs:element maxOccurs="1" minOccurs="0" name="MsgId" type="Max35Text"/>
711 </xs:sequence>
712 </xs:complexType>
713 <xs:complexType name="NameAndAddress3">
714 <xs:sequence>
715 <xs:element name="Nm" type="Max70Text"/>
716 <xs:element name="Adr" type="PostalAddress1"/>
717 </xs:sequence>
718 </xs:complexType>
719 <xs:complexType name="NameAndAddress7">
720 <xs:sequence>
721 <xs:element name="Nm" type="Max70Text"/>
722 <xs:element name="PstlAdr" type="PostalAddress1"/>
723 </xs:sequence>
724 </xs:complexType>
725 <xs:simpleType name="Number">
726 <xs:restriction base="xs:decimal">
727 <xs:fractionDigits value="0"/>
728 <xs:totalDigits value="18"/>
729 </xs:restriction>
730 </xs:simpleType>
731 <xs:complexType name="NumberAndSumOfTransactions1">
732 <xs:sequence>
733 <xs:element maxOccurs="1" minOccurs="0" name="NbOfNtries" type="Max15NumericText"/>
734 <xs:element maxOccurs="1" minOccurs="0" name="Sum" type="DecimalNumber"/>
735 </xs:sequence>
736 </xs:complexType>
737 <xs:complexType name="NumberAndSumOfTransactions2">
738 <xs:sequence>
739 <xs:element maxOccurs="1" minOccurs="0" name="NbOfNtries" type="Max15NumericText"/>
740 <xs:element maxOccurs="1" minOccurs="0" name="Sum" type="DecimalNumber"/>
741 <xs:element maxOccurs="1" minOccurs="0" name="TtlNetNtryAmt" type="DecimalNumber"/>
742 <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
743 </xs:sequence>
744 </xs:complexType>
745 <xs:complexType name="NumberAndSumOfTransactionsPerBankTransactionCode1">
746 <xs:sequence>
747 <xs:element maxOccurs="1" minOccurs="0" name="NbOfNtries" type="Max15NumericText"/>
748 <xs:element maxOccurs="1" minOccurs="0" name="Sum" type="DecimalNumber"/>
749 <xs:element maxOccurs="1" minOccurs="0" name="TtlNetNtryAmt" type="DecimalNumber"/>
750 <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
751 <xs:element name="BkTxCd" type="BankTransactionCodeStructure1"/>
752 <xs:element maxOccurs="unbounded" minOccurs="0"
753 name="Avlbty" type="CashBalanceAvailability1"/>
754 </xs:sequence>
755 </xs:complexType>
756 <xs:complexType name="OrganisationIdentification2">
757 <xs:sequence>
758 <xs:element maxOccurs="1" minOccurs="0" name="BIC" type="BICIdentifier"/>
759 <xs:element maxOccurs="1" minOccurs="0" name="IBEI" type="IBEIIdentifier"/>
760 <xs:element maxOccurs="1" minOccurs="0" name="BEI" type="BEIIdentifier"/>
761 <xs:element maxOccurs="1" minOccurs="0" name="EANGLN" type="EANGLNIdentifier"/>
762 <xs:element maxOccurs="1" minOccurs="0" name="USCHU" type="CHIPSUniversalIdentifier"/>
763 <xs:element maxOccurs="1" minOccurs="0" name="DUNS" type="DunsIdentifier"/>
764 <xs:element maxOccurs="1" minOccurs="0" name="BkPtyId" type="Max35Text"/>
765 <xs:element maxOccurs="1" minOccurs="0" name="TaxIdNb" type="Max35Text"/>
766 <xs:element maxOccurs="1" minOccurs="0" name="PrtryId" type="GenericIdentification3"/>
767 </xs:sequence>
768 </xs:complexType>
769 <xs:complexType name="Pagination">
770 <xs:sequence>
771 <xs:element name="PgNb" type="Max5NumericText"/>
772 <xs:element name="LastPgInd" type="YesNoIndicator"/>
773 </xs:sequence>
774 </xs:complexType>
775 <xs:complexType name="Party2Choice">
776 <xs:sequence>
777 <xs:choice>
778 <xs:element name="OrgId" type="OrganisationIdentification2"/>
779 <xs:element maxOccurs="4" minOccurs="1" name="PrvtId" type="PersonIdentification3"/>
780 </xs:choice>
781 </xs:sequence>
782 </xs:complexType>
783 <xs:complexType name="PartyIdentification8">
784 <xs:sequence>
785 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max70Text"/>
786 <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress1"/>
787 <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Party2Choice"/>
788 <xs:element maxOccurs="1" minOccurs="0" name="CtryOfRes" type="CountryCode"/>
789 </xs:sequence>
790 </xs:complexType>
791 <xs:simpleType name="PercentageRate">
792 <xs:restriction base="xs:decimal">
793 <xs:fractionDigits value="10"/>
794 <xs:totalDigits value="11"/>
795 </xs:restriction>
796 </xs:simpleType>
797 <xs:complexType name="PersonIdentification3">
798 <xs:sequence>
799 <xs:choice>
800 <xs:element name="DrvrsLicNb" type="Max35Text"/>
801 <xs:element name="CstmrNb" type="Max35Text"/>
802 <xs:element name="SclSctyNb" type="Max35Text"/>
803 <xs:element name="AlnRegnNb" type="Max35Text"/>
804 <xs:element name="PsptNb" type="Max35Text"/>
805 <xs:element name="TaxIdNb" type="Max35Text"/>
806 <xs:element name="IdntyCardNb" type="Max35Text"/>
807 <xs:element name="MplyrIdNb" type="Max35Text"/>
808 <xs:element name="DtAndPlcOfBirth" type="DateAndPlaceOfBirth"/>
809 <xs:element name="OthrId" type="GenericIdentification4"/>
810 </xs:choice>
811 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
812 </xs:sequence>
813 </xs:complexType>
814 <xs:complexType name="PostalAddress1">
815 <xs:sequence>
816 <xs:element maxOccurs="1" minOccurs="0" name="AdrTp" type="AddressType2Code"/>
817 <xs:element maxOccurs="5" minOccurs="0" name="AdrLine" type="Max70Text"/>
818 <xs:element maxOccurs="1" minOccurs="0" name="StrtNm" type="Max70Text"/>
819 <xs:element maxOccurs="1" minOccurs="0" name="BldgNb" type="Max16Text"/>
820 <xs:element maxOccurs="1" minOccurs="0" name="PstCd" type="Max16Text"/>
821 <xs:element maxOccurs="1" minOccurs="0" name="TwnNm" type="Max35Text"/>
822 <xs:element maxOccurs="1" minOccurs="0" name="CtrySubDvsn" type="Max35Text"/>
823 <xs:element name="Ctry" type="CountryCode"/>
824 </xs:sequence>
825 </xs:complexType>
826 <xs:complexType name="ProprietaryAgent1">
827 <xs:sequence>
828 <xs:element name="Tp" type="Max35Text"/>
829 <xs:element name="Agt" type="BranchAndFinancialInstitutionIdentification3"/>
830 </xs:sequence>
831 </xs:complexType>
832 <xs:complexType name="ProprietaryBankTransactionCodeStructure1">
833 <xs:sequence>
834 <xs:element name="Cd" type="Max35Text"/>
835 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
836 </xs:sequence>
837 </xs:complexType>
838 <xs:complexType name="ProprietaryDate1">
839 <xs:sequence>
840 <xs:element name="Tp" type="Max35Text"/>
841 <xs:choice>
842 <xs:element name="Dt" type="ISODate"/>
843 <xs:element name="DtTm" type="ISODateTime"/>
844 </xs:choice>
845 </xs:sequence>
846 </xs:complexType>
847 <xs:complexType name="ProprietaryParty1">
848 <xs:sequence>
849 <xs:element name="Tp" type="Max35Text"/>
850 <xs:element name="Pty" type="PartyIdentification8"/>
851 </xs:sequence>
852 </xs:complexType>
853 <xs:complexType name="ProprietaryPrice1">
854 <xs:sequence>
855 <xs:element name="Tp" type="Max35Text"/>
856 <xs:element name="Pric" type="CurrencyAndAmount"/>
857 </xs:sequence>
858 </xs:complexType>
859 <xs:complexType name="ProprietaryQuantity1">
860 <xs:sequence>
861 <xs:element name="Tp" type="Max35Text"/>
862 <xs:element name="Qty" type="Max35Text"/>
863 </xs:sequence>
864 </xs:complexType>
865 <xs:complexType name="ProprietaryReference1">
866 <xs:sequence>
867 <xs:element name="Tp" type="Max35Text"/>
868 <xs:element name="Ref" type="Max35Text"/>
869 </xs:sequence>
870 </xs:complexType>
871 <xs:complexType name="Purpose1Choice">
872 <xs:sequence>
873 <xs:choice>
874 <xs:element name="Cd" type="ExternalPurposeCode"/>
875 <xs:element name="Prtry" type="Max35Text"/>
876 </xs:choice>
877 </xs:sequence>
878 </xs:complexType>
879 <xs:complexType name="Rate1">
880 <xs:sequence>
881 <xs:element name="Rate" type="RateTypeChoice"/>
882 <xs:element maxOccurs="1" minOccurs="0" name="VldtyRg" type="CurrencyAndAmountRange"/>
883 </xs:sequence>
884 </xs:complexType>
885 <xs:complexType name="RateTypeChoice">
886 <xs:sequence>
887 <xs:choice>
888 <xs:element name="PctgRate" type="PercentageRate"/>
889 <xs:element name="TxtlRate" type="Max35Text"/>
890 </xs:choice>
891 </xs:sequence>
892 </xs:complexType>
893 <xs:complexType name="ReferredDocumentAmount1Choice">
894 <xs:sequence>
895 <xs:choice>
896 <xs:element name="DuePyblAmt" type="CurrencyAndAmount"/>
897 <xs:element name="DscntApldAmt" type="CurrencyAndAmount"/>
898 <xs:element name="RmtdAmt" type="CurrencyAndAmount"/>
899 <xs:element name="CdtNoteAmt" type="CurrencyAndAmount"/>
900 <xs:element name="TaxAmt" type="CurrencyAndAmount"/>
901 </xs:choice>
902 </xs:sequence>
903 </xs:complexType>
904 <xs:complexType name="ReferredDocumentInformation1">
905 <xs:sequence>
906 <xs:element maxOccurs="1" minOccurs="0" name="RfrdDocTp" type="ReferredDocumentType1"/>
907 <xs:element maxOccurs="1" minOccurs="0" name="RfrdDocNb" type="Max35Text"/>
908 </xs:sequence>
909 </xs:complexType>
910 <xs:complexType name="ReferredDocumentType1">
911 <xs:sequence>
912 <xs:choice>
913 <xs:element name="Cd" type="DocumentType2Code"/>
914 <xs:element name="Prtry" type="Max35Text"/>
915 </xs:choice>
916 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
917 </xs:sequence>
918 </xs:complexType>
919 <xs:complexType name="RemittanceInformation1">
920 <xs:sequence>
921 <xs:element maxOccurs="unbounded" minOccurs="0" name="Ustrd" type="Max140Text"/>
922 <xs:element maxOccurs="unbounded" minOccurs="0" name="Strd" type="StructuredRemittanceInformation6"/>
923 </xs:sequence>
924 </xs:complexType>
925 <xs:complexType name="RemittanceLocation1">
926 <xs:sequence>
927 <xs:element maxOccurs="1" minOccurs="0" name="RmtId" type="Max35Text"/>
928 <xs:element maxOccurs="1" minOccurs="0" name="RmtLctnMtd" type="RemittanceLocationMethod1Code"/>
929 <xs:element maxOccurs="1" minOccurs="0"
930 name="RmtLctnElctrncAdr" type="Max256Text"/>
931 <xs:element maxOccurs="1" minOccurs="0"
932 name="RmtLctnPstlAdr" type="NameAndAddress3"/>
933 </xs:sequence>
934 </xs:complexType>
935 <xs:simpleType name="RemittanceLocationMethod1Code">
936 <xs:restriction base="xs:string">
937 <xs:enumeration value="FAXI"/>
938 <xs:enumeration value="EDIC"/>
939 <xs:enumeration value="URID"/>
940 <xs:enumeration value="EMAL"/>
941 <xs:enumeration value="POST"/>
942 </xs:restriction>
943 </xs:simpleType>
944 <xs:complexType name="ReportEntry1">
945 <xs:sequence>
946 <xs:element name="Amt" type="CurrencyAndAmount"/>
947 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
948 <xs:element maxOccurs="1" minOccurs="0" name="RvslInd" type="TrueFalseIndicator"/>
949 <xs:element name="Sts" type="EntryStatus2Code"/>
950 <xs:element maxOccurs="1" minOccurs="0" name="BookgDt" type="DateAndDateTimeChoice"/>
951 <xs:element maxOccurs="1" minOccurs="0" name="ValDt" type="DateAndDateTimeChoice"/>
952 <xs:element maxOccurs="1" minOccurs="0" name="AcctSvcrRef" type="Max35Text"/>
953 <xs:element maxOccurs="unbounded" minOccurs="0"
954 name="Avlbty" type="CashBalanceAvailability1"/>
955 <xs:element name="BkTxCd" type="BankTransactionCodeStructure1"/>
956 <xs:element maxOccurs="1" minOccurs="0" name="ComssnWvrInd" type="YesNoIndicator"/>
957 <xs:element maxOccurs="1" minOccurs="0" name="AddtlInfInd" type="MessageIdentification2"/>
958 <xs:element maxOccurs="unbounded" minOccurs="0" name="Btch" type="BatchInformation1"/>
959 <xs:element maxOccurs="1" minOccurs="0" name="AmtDtls" type="AmountAndCurrencyExchange2"/>
960 <xs:element maxOccurs="unbounded" minOccurs="0" name="Chrgs" type="ChargesInformation3"/>
961 <xs:element maxOccurs="unbounded" minOccurs="0"
962 name="Intrst" type="TransactionInterest1"/>
963 <xs:element maxOccurs="unbounded" minOccurs="0"
964 name="TxDtls" type="EntryTransaction1"/>
965 <xs:element maxOccurs="1" minOccurs="0" name="AddtlNtryInf" type="Max500Text"/>
966 </xs:sequence>
967 </xs:complexType>
968 <xs:complexType name="ReturnReason1Choice">
969 <xs:sequence>
970 <xs:choice>
971 <xs:element name="Cd" type="TransactionRejectReason2Code"/>
972 <xs:element name="Prtry" type="Max35Text"/>
973 </xs:choice>
974 </xs:sequence>
975 </xs:complexType>
976 <xs:complexType name="ReturnReasonInformation5">
977 <xs:sequence>
978 <xs:element maxOccurs="1" minOccurs="0" name="OrgnlBkTxCd" type="BankTransactionCodeStructure1"/>
979 <xs:element maxOccurs="1" minOccurs="0" name="RtrOrgtr" type="PartyIdentification8"/>
980 <xs:element maxOccurs="1" minOccurs="0" name="RtrRsn" type="ReturnReason1Choice"/>
981 <xs:element maxOccurs="unbounded" minOccurs="0"
982 name="AddtlRtrRsnInf" type="Max105Text"/>
983 </xs:sequence>
984 </xs:complexType>
985 <xs:complexType name="SecurityIdentification4Choice">
986 <xs:sequence>
987 <xs:choice>
988 <xs:element name="ISIN" type="ISINIdentifier"/>
989 <xs:element name="Prtry" type="AlternateSecurityIdentification2"/>
990 </xs:choice>
991 </xs:sequence>
992 </xs:complexType>
993 <xs:complexType name="SimpleIdentificationInformation2">
994 <xs:sequence>
995 <xs:element name="Id" type="Max34Text"/>
996 </xs:sequence>
997 </xs:complexType>
998 <xs:complexType name="StructuredRemittanceInformation6">
999 <xs:sequence>
1000 <xs:element maxOccurs="1" minOccurs="0" name="RfrdDocInf" type="ReferredDocumentInformation1"/>
1001 <xs:element maxOccurs="1" minOccurs="0" name="RfrdDocRltdDt" type="ISODate"/>
1002 <xs:element maxOccurs="unbounded" minOccurs="0"
1003 name="RfrdDocAmt" type="ReferredDocumentAmount1Choice"/>
1004 <xs:element maxOccurs="1" minOccurs="0" name="CdtrRefInf" type="CreditorReferenceInformation1"/>
1005 <xs:element maxOccurs="1" minOccurs="0" name="Invcr" type="PartyIdentification8"/>
1006 <xs:element maxOccurs="1" minOccurs="0" name="Invcee" type="PartyIdentification8"/>
1007 <xs:element maxOccurs="1" minOccurs="0" name="AddtlRmtInf" type="Max140Text"/>
1008 </xs:sequence>
1009 </xs:complexType>
1010 <xs:complexType name="TaxCharges1">
1011 <xs:sequence>
1012 <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Max35Text"/>
1013 <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="PercentageRate"/>
1014 <xs:element maxOccurs="1" minOccurs="0" name="Amt" type="CurrencyAndAmount"/>
1015 </xs:sequence>
1016 </xs:complexType>
1017 <xs:complexType name="TaxDetails">
1018 <xs:sequence>
1019 <xs:element maxOccurs="1" minOccurs="0" name="CertId" type="Max35Text"/>
1020 <xs:element maxOccurs="1" minOccurs="0" name="TaxTp" type="TaxType"/>
1021 </xs:sequence>
1022 </xs:complexType>
1023 <xs:complexType name="TaxInformation2">
1024 <xs:sequence>
1025 <xs:element maxOccurs="1" minOccurs="0" name="CdtrTaxId" type="Max35Text"/>
1026 <xs:element maxOccurs="1" minOccurs="0" name="CdtrTaxTp" type="Max35Text"/>
1027 <xs:element maxOccurs="1" minOccurs="0" name="DbtrTaxId" type="Max35Text"/>
1028 <xs:element maxOccurs="1" minOccurs="0" name="TaxRefNb" type="Max140Text"/>
1029 <xs:element maxOccurs="1" minOccurs="0"
1030 name="TtlTaxblBaseAmt" type="CurrencyAndAmount"/>
1031 <xs:element maxOccurs="1" minOccurs="0" name="TtlTaxAmt" type="CurrencyAndAmount"/>
1032 <xs:element maxOccurs="1" minOccurs="0" name="TaxDt" type="ISODate"/>
1033 <xs:element maxOccurs="unbounded" minOccurs="0"
1034 name="TaxTpInf" type="TaxDetails"/>
1035 </xs:sequence>
1036 </xs:complexType>
1037 <xs:complexType name="TaxType">
1038 <xs:sequence>
1039 <xs:element maxOccurs="1" minOccurs="0" name="CtgyDesc" type="Max35Text"/>
1040 <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="PercentageRate"/>
1041 <xs:element maxOccurs="1" minOccurs="0" name="TaxblBaseAmt" type="CurrencyAndAmount"/>
1042 <xs:element maxOccurs="1" minOccurs="0" name="Amt" type="CurrencyAndAmount"/>
1043 </xs:sequence>
1044 </xs:complexType>
1045 <xs:complexType name="TotalTransactions1">
1046 <xs:sequence>
1047 <xs:element maxOccurs="1" minOccurs="0" name="TtlNtries" type="NumberAndSumOfTransactions2"/>
1048 <xs:element maxOccurs="1" minOccurs="0" name="TtlCdtNtries" type="NumberAndSumOfTransactions1"/>
1049 <xs:element maxOccurs="1" minOccurs="0" name="TtlDbtNtries" type="NumberAndSumOfTransactions1"/>
1050 <xs:element maxOccurs="unbounded" minOccurs="0"
1051 name="TtlNtriesPerBkTxCd" type="NumberAndSumOfTransactionsPerBankTransactionCode1"/>
1052 </xs:sequence>
1053 </xs:complexType>
1054 <xs:complexType name="TransactionAgents1">
1055 <xs:sequence>
1056 <xs:element maxOccurs="1" minOccurs="0" name="DbtrAgt" type="BranchAndFinancialInstitutionIdentification3"/>
1057 <xs:element maxOccurs="1" minOccurs="0" name="CdtrAgt" type="BranchAndFinancialInstitutionIdentification3"/>
1058 <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt1" type="BranchAndFinancialInstitutionIdentification3"/>
1059 <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt2" type="BranchAndFinancialInstitutionIdentification3"/>
1060 <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt3" type="BranchAndFinancialInstitutionIdentification3"/>
1061 <xs:element maxOccurs="1" minOccurs="0" name="RcvgAgt" type="BranchAndFinancialInstitutionIdentification3"/>
1062 <xs:element maxOccurs="1" minOccurs="0" name="DlvrgAgt" type="BranchAndFinancialInstitutionIdentification3"/>
1063 <xs:element maxOccurs="1" minOccurs="0" name="IssgAgt" type="BranchAndFinancialInstitutionIdentification3"/>
1064 <xs:element maxOccurs="1" minOccurs="0" name="SttlmPlc" type="BranchAndFinancialInstitutionIdentification3"/>
1065 <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryAgent1"/>
1066 </xs:sequence>
1067 </xs:complexType>
1068 <xs:complexType name="TransactionDates1">
1069 <xs:sequence>
1070 <xs:element maxOccurs="1" minOccurs="0" name="AccptncDtTm" type="ISODateTime"/>
1071 <xs:element maxOccurs="1" minOccurs="0" name="TradDt" type="ISODate"/>
1072 <xs:element maxOccurs="1" minOccurs="0" name="IntrBkSttlmDt" type="ISODate"/>
1073 <xs:element maxOccurs="1" minOccurs="0" name="StartDt" type="ISODate"/>
1074 <xs:element maxOccurs="1" minOccurs="0" name="EndDt" type="ISODate"/>
1075 <xs:element maxOccurs="1" minOccurs="0" name="TxDtTm" type="ISODateTime"/>
1076 <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryDate1"/>
1077 </xs:sequence>
1078 </xs:complexType>
1079 <xs:complexType name="TransactionInterest1">
1080 <xs:sequence>
1081 <xs:element name="Amt" type="CurrencyAndAmount"/>
1082 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
1083 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="InterestType1Choice"/>
1084 <xs:element maxOccurs="unbounded" minOccurs="0" name="Rate" type="Rate1"/>
1085 <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DateTimePeriodDetails"/>
1086 <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="Max35Text"/>
1087 </xs:sequence>
1088 </xs:complexType>
1089 <xs:complexType name="TransactionParty1">
1090 <xs:sequence>
1091 <xs:element maxOccurs="1" minOccurs="0" name="InitgPty" type="PartyIdentification8"/>
1092 <xs:element maxOccurs="1" minOccurs="0" name="Dbtr" type="PartyIdentification8"/>
1093 <xs:element maxOccurs="1" minOccurs="0" name="DbtrAcct" type="CashAccount7"/>
1094 <xs:element maxOccurs="1" minOccurs="0" name="UltmtDbtr" type="PartyIdentification8"/>
1095 <xs:element maxOccurs="1" minOccurs="0" name="Cdtr" type="PartyIdentification8"/>
1096 <xs:element maxOccurs="1" minOccurs="0" name="CdtrAcct" type="CashAccount7"/>
1097 <xs:element maxOccurs="1" minOccurs="0" name="UltmtCdtr" type="PartyIdentification8"/>
1098 <xs:element maxOccurs="1" minOccurs="0" name="TradgPty" type="PartyIdentification8"/>
1099 <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryParty1"/>
1100 </xs:sequence>
1101 </xs:complexType>
1102 <xs:complexType name="TransactionPrice1Choice">
1103 <xs:sequence>
1104 <xs:choice>
1105 <xs:element name="DealPric" type="CurrencyAndAmount"/>
1106 <xs:element maxOccurs="unbounded" minOccurs="1"
1107 name="Prtry" type="ProprietaryPrice1"/>
1108 </xs:choice>
1109 </xs:sequence>
1110 </xs:complexType>
1111 <xs:complexType name="TransactionQuantities1Choice">
1112 <xs:sequence>
1113 <xs:choice>
1114 <xs:element name="Qty" type="FinancialInstrumentQuantityChoice"/>
1115 <xs:element name="Prtry" type="ProprietaryQuantity1"/>
1116 </xs:choice>
1117 </xs:sequence>
1118 </xs:complexType>
1119 <xs:complexType name="TransactionReferences1">
1120 <xs:sequence>
1121 <xs:element maxOccurs="1" minOccurs="0" name="MsgId" type="Max35Text"/>
1122 <xs:element maxOccurs="1" minOccurs="0" name="AcctSvcrRef" type="Max35Text"/>
1123 <xs:element maxOccurs="1" minOccurs="0" name="InstrId" type="Max35Text"/>
1124 <xs:element maxOccurs="1" minOccurs="0" name="EndToEndId" type="Max35Text"/>
1125 <xs:element maxOccurs="1" minOccurs="0" name="TxId" type="Max35Text"/>
1126 <xs:element maxOccurs="1" minOccurs="0" name="MndtId" type="Max35Text"/>
1127 <xs:element maxOccurs="1" minOccurs="0" name="ChqNb" type="Max35Text"/>
1128 <xs:element maxOccurs="1" minOccurs="0" name="ClrSysRef" type="Max35Text"/>
1129 <xs:element maxOccurs="1" minOccurs="0" name="Prtry" type="ProprietaryReference1"/>
1130 </xs:sequence>
1131 </xs:complexType>
1132 <xs:simpleType name="TransactionRejectReason2Code">
1133 <xs:restriction base="xs:string">
1134 <xs:enumeration value="AC01"/>
1135 <xs:enumeration value="AC04"/>
1136 <xs:enumeration value="AC06"/>
1137 <xs:enumeration value="AM01"/>
1138 <xs:enumeration value="AM02"/>
1139 <xs:enumeration value="AM03"/>
1140 <xs:enumeration value="AM04"/>
1141 <xs:enumeration value="AM05"/>
1142 <xs:enumeration value="AM06"/>
1143 <xs:enumeration value="AM07"/>
1144 <xs:enumeration value="BE01"/>
1145 <xs:enumeration value="BE04"/>
1146 <xs:enumeration value="BE05"/>
1147 <xs:enumeration value="AG01"/>
1148 <xs:enumeration value="AG02"/>
1149 <xs:enumeration value="DT01"/>
1150 <xs:enumeration value="RF01"/>
1151 <xs:enumeration value="RC01"/>
1152 <xs:enumeration value="TM01"/>
1153 <xs:enumeration value="ED01"/>
1154 <xs:enumeration value="ED03"/>
1155 <xs:enumeration value="MS03"/>
1156 <xs:enumeration value="MS02"/>
1157 <xs:enumeration value="BE06"/>
1158 <xs:enumeration value="BE07"/>
1159 <xs:enumeration value="AM09"/>
1160 <xs:enumeration value="AM10"/>
1161 <xs:enumeration value="MD01"/>
1162 <xs:enumeration value="MD02"/>
1163 <xs:enumeration value="MD03"/>
1164 <xs:enumeration value="MD04"/>
1165 <xs:enumeration value="MD06"/>
1166 <xs:enumeration value="MD07"/>
1167 <xs:enumeration value="ED05"/>
1168 <xs:enumeration value="NARR"/>
1169 </xs:restriction>
1170 </xs:simpleType>
1171 <xs:simpleType name="TrueFalseIndicator">
1172 <xs:restriction base="xs:boolean"/>
1173 </xs:simpleType>
1174 <xs:simpleType name="UPICIdentifier">
1175 <xs:restriction base="xs:string">
1176 <xs:pattern value="[0-9]{8,17}"/>
1177 </xs:restriction>
1178 </xs:simpleType>
1179 <xs:simpleType name="YesNoIndicator">
1180 <xs:restriction base="xs:boolean"/>
1181 </xs:simpleType>
1182 </xs:schema>
0 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
1 <!--Generated by SWIFTStandards Workstation (build:R6.1.0.2) on 2009 Jan 08 17:30:53-->
2 <xs:schema xmlns="urn:iso:std:iso:20022:tech:xsd:camt.052.001.02" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="urn:iso:std:iso:20022:tech:xsd:camt.052.001.02">
3 <xs:element name="Document" type="Document"/>
4 <xs:complexType name="AccountIdentification4Choice">
5 <xs:sequence>
6 <xs:choice>
7 <xs:element name="IBAN" type="IBAN2007Identifier"/>
8 <xs:element name="Othr" type="GenericAccountIdentification1"/>
9 </xs:choice>
10 </xs:sequence>
11 </xs:complexType>
12 <xs:complexType name="AccountInterest2">
13 <xs:sequence>
14 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="InterestType1Choice"/>
15 <xs:element maxOccurs="unbounded" minOccurs="0" name="Rate" type="Rate3"/>
16 <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DateTimePeriodDetails"/>
17 <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="Max35Text"/>
18 </xs:sequence>
19 </xs:complexType>
20 <xs:complexType name="AccountReport11">
21 <xs:sequence>
22 <xs:element name="Id" type="Max35Text"/>
23 <xs:element maxOccurs="1" minOccurs="0" name="ElctrncSeqNb" type="Number"/>
24 <xs:element maxOccurs="1" minOccurs="0" name="LglSeqNb" type="Number"/>
25 <xs:element name="CreDtTm" type="ISODateTime"/>
26 <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DateTimePeriodDetails"/>
27 <xs:element maxOccurs="1" minOccurs="0" name="CpyDplctInd" type="CopyDuplicate1Code"/>
28 <xs:element maxOccurs="1" minOccurs="0" name="RptgSrc" type="ReportingSource1Choice"/>
29 <xs:element name="Acct" type="CashAccount20"/>
30 <xs:element maxOccurs="1" minOccurs="0" name="RltdAcct" type="CashAccount16"/>
31 <xs:element maxOccurs="unbounded" minOccurs="0" name="Intrst" type="AccountInterest2"/>
32 <xs:element maxOccurs="unbounded" minOccurs="0" name="Bal" type="CashBalance3"/>
33 <xs:element maxOccurs="1" minOccurs="0" name="TxsSummry" type="TotalTransactions2"/>
34 <xs:element maxOccurs="unbounded" minOccurs="0" name="Ntry" type="ReportEntry2"/>
35 <xs:element maxOccurs="1" minOccurs="0" name="AddtlRptInf" type="Max500Text"/>
36 </xs:sequence>
37 </xs:complexType>
38 <xs:complexType name="AccountSchemeName1Choice">
39 <xs:sequence>
40 <xs:choice>
41 <xs:element name="Cd" type="ExternalAccountIdentification1Code"/>
42 <xs:element name="Prtry" type="Max35Text"/>
43 </xs:choice>
44 </xs:sequence>
45 </xs:complexType>
46 <xs:simpleType name="ActiveOrHistoricCurrencyAndAmount_SimpleType">
47 <xs:restriction base="xs:decimal">
48 <xs:minInclusive value="0"/>
49 <xs:fractionDigits value="5"/>
50 <xs:totalDigits value="18"/>
51 </xs:restriction>
52 </xs:simpleType>
53 <xs:complexType name="ActiveOrHistoricCurrencyAndAmount">
54 <xs:simpleContent>
55 <xs:extension base="ActiveOrHistoricCurrencyAndAmount_SimpleType">
56 <xs:attribute name="Ccy" type="ActiveOrHistoricCurrencyCode" use="required"/>
57 </xs:extension>
58 </xs:simpleContent>
59 </xs:complexType>
60 <xs:simpleType name="ActiveOrHistoricCurrencyCode">
61 <xs:restriction base="xs:string">
62 <xs:pattern value="[A-Z]{3,3}"/>
63 </xs:restriction>
64 </xs:simpleType>
65 <xs:simpleType name="AddressType2Code">
66 <xs:restriction base="xs:string">
67 <xs:enumeration value="ADDR"/>
68 <xs:enumeration value="PBOX"/>
69 <xs:enumeration value="HOME"/>
70 <xs:enumeration value="BIZZ"/>
71 <xs:enumeration value="MLTO"/>
72 <xs:enumeration value="DLVY"/>
73 </xs:restriction>
74 </xs:simpleType>
75 <xs:complexType name="AlternateSecurityIdentification2">
76 <xs:sequence>
77 <xs:element name="Tp" type="Max35Text"/>
78 <xs:element name="Id" type="Max35Text"/>
79 </xs:sequence>
80 </xs:complexType>
81 <xs:complexType name="AmountAndCurrencyExchange3">
82 <xs:sequence>
83 <xs:element maxOccurs="1" minOccurs="0" name="InstdAmt" type="AmountAndCurrencyExchangeDetails3"/>
84 <xs:element maxOccurs="1" minOccurs="0" name="TxAmt" type="AmountAndCurrencyExchangeDetails3"/>
85 <xs:element maxOccurs="1" minOccurs="0" name="CntrValAmt" type="AmountAndCurrencyExchangeDetails3"/>
86 <xs:element maxOccurs="1" minOccurs="0" name="AnncdPstngAmt" type="AmountAndCurrencyExchangeDetails3"/>
87 <xs:element maxOccurs="unbounded" minOccurs="0" name="PrtryAmt" type="AmountAndCurrencyExchangeDetails4"/>
88 </xs:sequence>
89 </xs:complexType>
90 <xs:complexType name="AmountAndCurrencyExchangeDetails3">
91 <xs:sequence>
92 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
93 <xs:element maxOccurs="1" minOccurs="0" name="CcyXchg" type="CurrencyExchange5"/>
94 </xs:sequence>
95 </xs:complexType>
96 <xs:complexType name="AmountAndCurrencyExchangeDetails4">
97 <xs:sequence>
98 <xs:element name="Tp" type="Max35Text"/>
99 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
100 <xs:element maxOccurs="1" minOccurs="0" name="CcyXchg" type="CurrencyExchange5"/>
101 </xs:sequence>
102 </xs:complexType>
103 <xs:complexType name="AmountRangeBoundary1">
104 <xs:sequence>
105 <xs:element name="BdryAmt" type="ImpliedCurrencyAndAmount"/>
106 <xs:element name="Incl" type="YesNoIndicator"/>
107 </xs:sequence>
108 </xs:complexType>
109 <xs:simpleType name="AnyBICIdentifier">
110 <xs:restriction base="xs:string">
111 <xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
112 </xs:restriction>
113 </xs:simpleType>
114 <xs:simpleType name="BICIdentifier">
115 <xs:restriction base="xs:string">
116 <xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
117 </xs:restriction>
118 </xs:simpleType>
119 <xs:complexType name="BalanceSubType1Choice">
120 <xs:sequence>
121 <xs:choice>
122 <xs:element name="Cd" type="ExternalBalanceSubType1Code"/>
123 <xs:element name="Prtry" type="Max35Text"/>
124 </xs:choice>
125 </xs:sequence>
126 </xs:complexType>
127 <xs:complexType name="BalanceType12">
128 <xs:sequence>
129 <xs:element name="CdOrPrtry" type="BalanceType5Choice"/>
130 <xs:element maxOccurs="1" minOccurs="0" name="SubTp" type="BalanceSubType1Choice"/>
131 </xs:sequence>
132 </xs:complexType>
133 <xs:simpleType name="BalanceType12Code">
134 <xs:restriction base="xs:string">
135 <xs:enumeration value="XPCD"/>
136 <xs:enumeration value="OPAV"/>
137 <xs:enumeration value="ITAV"/>
138 <xs:enumeration value="CLAV"/>
139 <xs:enumeration value="FWAV"/>
140 <xs:enumeration value="CLBD"/>
141 <xs:enumeration value="ITBD"/>
142 <xs:enumeration value="OPBD"/>
143 <xs:enumeration value="PRCD"/>
144 <xs:enumeration value="INFO"/>
145 </xs:restriction>
146 </xs:simpleType>
147 <xs:complexType name="BalanceType5Choice">
148 <xs:sequence>
149 <xs:choice>
150 <xs:element name="Cd" type="BalanceType12Code"/>
151 <xs:element name="Prtry" type="Max35Text"/>
152 </xs:choice>
153 </xs:sequence>
154 </xs:complexType>
155 <xs:complexType name="BankToCustomerAccountReportV02">
156 <xs:sequence>
157 <xs:element name="GrpHdr" type="GroupHeader42"/>
158 <xs:element maxOccurs="unbounded" minOccurs="1" name="Rpt" type="AccountReport11"/>
159 </xs:sequence>
160 </xs:complexType>
161 <xs:complexType name="BankTransactionCodeStructure4">
162 <xs:sequence>
163 <xs:element maxOccurs="1" minOccurs="0" name="Domn" type="BankTransactionCodeStructure5"/>
164 <xs:element maxOccurs="1" minOccurs="0" name="Prtry" type="ProprietaryBankTransactionCodeStructure1"/>
165 </xs:sequence>
166 </xs:complexType>
167 <xs:complexType name="BankTransactionCodeStructure5">
168 <xs:sequence>
169 <xs:element name="Cd" type="ExternalBankTransactionDomain1Code"/>
170 <xs:element name="Fmly" type="BankTransactionCodeStructure6"/>
171 </xs:sequence>
172 </xs:complexType>
173 <xs:complexType name="BankTransactionCodeStructure6">
174 <xs:sequence>
175 <xs:element name="Cd" type="ExternalBankTransactionFamily1Code"/>
176 <xs:element name="SubFmlyCd" type="ExternalBankTransactionSubFamily1Code"/>
177 </xs:sequence>
178 </xs:complexType>
179 <xs:simpleType name="BaseOneRate">
180 <xs:restriction base="xs:decimal">
181 <xs:fractionDigits value="10"/>
182 <xs:totalDigits value="11"/>
183 </xs:restriction>
184 </xs:simpleType>
185 <xs:complexType name="BatchInformation2">
186 <xs:sequence>
187 <xs:element maxOccurs="1" minOccurs="0" name="MsgId" type="Max35Text"/>
188 <xs:element maxOccurs="1" minOccurs="0" name="PmtInfId" type="Max35Text"/>
189 <xs:element maxOccurs="1" minOccurs="0" name="NbOfTxs" type="Max15NumericText"/>
190 <xs:element maxOccurs="1" minOccurs="0" name="TtlAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
191 <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
192 </xs:sequence>
193 </xs:complexType>
194 <xs:complexType name="BranchAndFinancialInstitutionIdentification4">
195 <xs:sequence>
196 <xs:element name="FinInstnId" type="FinancialInstitutionIdentification7"/>
197 <xs:element maxOccurs="1" minOccurs="0" name="BrnchId" type="BranchData2"/>
198 </xs:sequence>
199 </xs:complexType>
200 <xs:complexType name="BranchData2">
201 <xs:sequence>
202 <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Max35Text"/>
203 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
204 <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress6"/>
205 </xs:sequence>
206 </xs:complexType>
207 <xs:complexType name="CashAccount16">
208 <xs:sequence>
209 <xs:element name="Id" type="AccountIdentification4Choice"/>
210 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CashAccountType2"/>
211 <xs:element maxOccurs="1" minOccurs="0" name="Ccy" type="ActiveOrHistoricCurrencyCode"/>
212 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max70Text"/>
213 </xs:sequence>
214 </xs:complexType>
215 <xs:complexType name="CashAccount20">
216 <xs:sequence>
217 <xs:element name="Id" type="AccountIdentification4Choice"/>
218 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CashAccountType2"/>
219 <xs:element maxOccurs="1" minOccurs="0" name="Ccy" type="ActiveOrHistoricCurrencyCode"/>
220 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max70Text"/>
221 <xs:element maxOccurs="1" minOccurs="0" name="Ownr" type="PartyIdentification32"/>
222 <xs:element maxOccurs="1" minOccurs="0" name="Svcr" type="BranchAndFinancialInstitutionIdentification4"/>
223 </xs:sequence>
224 </xs:complexType>
225 <xs:complexType name="CashAccountType2">
226 <xs:sequence>
227 <xs:choice>
228 <xs:element name="Cd" type="CashAccountType4Code"/>
229 <xs:element name="Prtry" type="Max35Text"/>
230 </xs:choice>
231 </xs:sequence>
232 </xs:complexType>
233 <xs:simpleType name="CashAccountType4Code">
234 <xs:restriction base="xs:string">
235 <xs:enumeration value="CASH"/>
236 <xs:enumeration value="CHAR"/>
237 <xs:enumeration value="COMM"/>
238 <xs:enumeration value="TAXE"/>
239 <xs:enumeration value="CISH"/>
240 <xs:enumeration value="TRAS"/>
241 <xs:enumeration value="SACC"/>
242 <xs:enumeration value="CACC"/>
243 <xs:enumeration value="SVGS"/>
244 <xs:enumeration value="ONDP"/>
245 <xs:enumeration value="MGLD"/>
246 <xs:enumeration value="NREX"/>
247 <xs:enumeration value="MOMA"/>
248 <xs:enumeration value="LOAN"/>
249 <xs:enumeration value="SLRY"/>
250 <xs:enumeration value="ODFT"/>
251 </xs:restriction>
252 </xs:simpleType>
253 <xs:complexType name="CashBalance3">
254 <xs:sequence>
255 <xs:element name="Tp" type="BalanceType12"/>
256 <xs:element maxOccurs="1" minOccurs="0" name="CdtLine" type="CreditLine2"/>
257 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
258 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
259 <xs:element name="Dt" type="DateAndDateTimeChoice"/>
260 <xs:element maxOccurs="unbounded" minOccurs="0" name="Avlbty" type="CashBalanceAvailability2"/>
261 </xs:sequence>
262 </xs:complexType>
263 <xs:complexType name="CashBalanceAvailability2">
264 <xs:sequence>
265 <xs:element name="Dt" type="CashBalanceAvailabilityDate1"/>
266 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
267 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
268 </xs:sequence>
269 </xs:complexType>
270 <xs:complexType name="CashBalanceAvailabilityDate1">
271 <xs:sequence>
272 <xs:choice>
273 <xs:element name="NbOfDays" type="Max15PlusSignedNumericText"/>
274 <xs:element name="ActlDt" type="ISODate"/>
275 </xs:choice>
276 </xs:sequence>
277 </xs:complexType>
278 <xs:simpleType name="ChargeBearerType1Code">
279 <xs:restriction base="xs:string">
280 <xs:enumeration value="DEBT"/>
281 <xs:enumeration value="CRED"/>
282 <xs:enumeration value="SHAR"/>
283 <xs:enumeration value="SLEV"/>
284 </xs:restriction>
285 </xs:simpleType>
286 <xs:simpleType name="ChargeType1Code">
287 <xs:restriction base="xs:string">
288 <xs:enumeration value="BRKF"/>
289 <xs:enumeration value="COMM"/>
290 </xs:restriction>
291 </xs:simpleType>
292 <xs:complexType name="ChargeType2Choice">
293 <xs:sequence>
294 <xs:choice>
295 <xs:element name="Cd" type="ChargeType1Code"/>
296 <xs:element name="Prtry" type="GenericIdentification3"/>
297 </xs:choice>
298 </xs:sequence>
299 </xs:complexType>
300 <xs:complexType name="ChargesInformation6">
301 <xs:sequence>
302 <xs:element maxOccurs="1" minOccurs="0" name="TtlChrgsAndTaxAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
303 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
304 <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
305 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="ChargeType2Choice"/>
306 <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="PercentageRate"/>
307 <xs:element maxOccurs="1" minOccurs="0" name="Br" type="ChargeBearerType1Code"/>
308 <xs:element maxOccurs="1" minOccurs="0" name="Pty" type="BranchAndFinancialInstitutionIdentification4"/>
309 <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxCharges2"/>
310 </xs:sequence>
311 </xs:complexType>
312 <xs:complexType name="ClearingSystemIdentification2Choice">
313 <xs:sequence>
314 <xs:choice>
315 <xs:element name="Cd" type="ExternalClearingSystemIdentification1Code"/>
316 <xs:element name="Prtry" type="Max35Text"/>
317 </xs:choice>
318 </xs:sequence>
319 </xs:complexType>
320 <xs:complexType name="ClearingSystemMemberIdentification2">
321 <xs:sequence>
322 <xs:element maxOccurs="1" minOccurs="0" name="ClrSysId" type="ClearingSystemIdentification2Choice"/>
323 <xs:element name="MmbId" type="Max35Text"/>
324 </xs:sequence>
325 </xs:complexType>
326 <xs:complexType name="ContactDetails2">
327 <xs:sequence>
328 <xs:element maxOccurs="1" minOccurs="0" name="NmPrfx" type="NamePrefix1Code"/>
329 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
330 <xs:element maxOccurs="1" minOccurs="0" name="PhneNb" type="PhoneNumber"/>
331 <xs:element maxOccurs="1" minOccurs="0" name="MobNb" type="PhoneNumber"/>
332 <xs:element maxOccurs="1" minOccurs="0" name="FaxNb" type="PhoneNumber"/>
333 <xs:element maxOccurs="1" minOccurs="0" name="EmailAdr" type="Max2048Text"/>
334 <xs:element maxOccurs="1" minOccurs="0" name="Othr" type="Max35Text"/>
335 </xs:sequence>
336 </xs:complexType>
337 <xs:simpleType name="CopyDuplicate1Code">
338 <xs:restriction base="xs:string">
339 <xs:enumeration value="CODU"/>
340 <xs:enumeration value="COPY"/>
341 <xs:enumeration value="DUPL"/>
342 </xs:restriction>
343 </xs:simpleType>
344 <xs:complexType name="CorporateAction1">
345 <xs:sequence>
346 <xs:element maxOccurs="1" minOccurs="0" name="Cd" type="Max35Text"/>
347 <xs:element maxOccurs="1" minOccurs="0" name="Nb" type="Max35Text"/>
348 <xs:element maxOccurs="1" minOccurs="0" name="Prtry" type="Max35Text"/>
349 </xs:sequence>
350 </xs:complexType>
351 <xs:simpleType name="CountryCode">
352 <xs:restriction base="xs:string">
353 <xs:pattern value="[A-Z]{2,2}"/>
354 </xs:restriction>
355 </xs:simpleType>
356 <xs:simpleType name="CreditDebitCode">
357 <xs:restriction base="xs:string">
358 <xs:enumeration value="CRDT"/>
359 <xs:enumeration value="DBIT"/>
360 </xs:restriction>
361 </xs:simpleType>
362 <xs:complexType name="CreditLine2">
363 <xs:sequence>
364 <xs:element name="Incl" type="TrueFalseIndicator"/>
365 <xs:element maxOccurs="1" minOccurs="0" name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
366 </xs:sequence>
367 </xs:complexType>
368 <xs:complexType name="CreditorReferenceInformation2">
369 <xs:sequence>
370 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CreditorReferenceType2"/>
371 <xs:element maxOccurs="1" minOccurs="0" name="Ref" type="Max35Text"/>
372 </xs:sequence>
373 </xs:complexType>
374 <xs:complexType name="CreditorReferenceType1Choice">
375 <xs:sequence>
376 <xs:choice>
377 <xs:element name="Cd" type="DocumentType3Code"/>
378 <xs:element name="Prtry" type="Max35Text"/>
379 </xs:choice>
380 </xs:sequence>
381 </xs:complexType>
382 <xs:complexType name="CreditorReferenceType2">
383 <xs:sequence>
384 <xs:element name="CdOrPrtry" type="CreditorReferenceType1Choice"/>
385 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
386 </xs:sequence>
387 </xs:complexType>
388 <xs:complexType name="CurrencyAndAmountRange2">
389 <xs:sequence>
390 <xs:element name="Amt" type="ImpliedCurrencyAmountRangeChoice"/>
391 <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
392 <xs:element name="Ccy" type="ActiveOrHistoricCurrencyCode"/>
393 </xs:sequence>
394 </xs:complexType>
395 <xs:complexType name="CurrencyExchange5">
396 <xs:sequence>
397 <xs:element name="SrcCcy" type="ActiveOrHistoricCurrencyCode"/>
398 <xs:element maxOccurs="1" minOccurs="0" name="TrgtCcy" type="ActiveOrHistoricCurrencyCode"/>
399 <xs:element maxOccurs="1" minOccurs="0" name="UnitCcy" type="ActiveOrHistoricCurrencyCode"/>
400 <xs:element name="XchgRate" type="BaseOneRate"/>
401 <xs:element maxOccurs="1" minOccurs="0" name="CtrctId" type="Max35Text"/>
402 <xs:element maxOccurs="1" minOccurs="0" name="QtnDt" type="ISODateTime"/>
403 </xs:sequence>
404 </xs:complexType>
405 <xs:complexType name="DateAndDateTimeChoice">
406 <xs:sequence>
407 <xs:choice>
408 <xs:element name="Dt" type="ISODate"/>
409 <xs:element name="DtTm" type="ISODateTime"/>
410 </xs:choice>
411 </xs:sequence>
412 </xs:complexType>
413 <xs:complexType name="DateAndPlaceOfBirth">
414 <xs:sequence>
415 <xs:element name="BirthDt" type="ISODate"/>
416 <xs:element maxOccurs="1" minOccurs="0" name="PrvcOfBirth" type="Max35Text"/>
417 <xs:element name="CityOfBirth" type="Max35Text"/>
418 <xs:element name="CtryOfBirth" type="CountryCode"/>
419 </xs:sequence>
420 </xs:complexType>
421 <xs:complexType name="DatePeriodDetails">
422 <xs:sequence>
423 <xs:element name="FrDt" type="ISODate"/>
424 <xs:element name="ToDt" type="ISODate"/>
425 </xs:sequence>
426 </xs:complexType>
427 <xs:complexType name="DateTimePeriodDetails">
428 <xs:sequence>
429 <xs:element name="FrDtTm" type="ISODateTime"/>
430 <xs:element name="ToDtTm" type="ISODateTime"/>
431 </xs:sequence>
432 </xs:complexType>
433 <xs:simpleType name="DecimalNumber">
434 <xs:restriction base="xs:decimal">
435 <xs:fractionDigits value="17"/>
436 <xs:totalDigits value="18"/>
437 </xs:restriction>
438 </xs:simpleType>
439 <xs:complexType name="Document">
440 <xs:sequence>
441 <xs:element name="BkToCstmrAcctRpt" type="BankToCustomerAccountReportV02"/>
442 </xs:sequence>
443 </xs:complexType>
444 <xs:complexType name="DocumentAdjustment1">
445 <xs:sequence>
446 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
447 <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
448 <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="Max4Text"/>
449 <xs:element maxOccurs="1" minOccurs="0" name="AddtlInf" type="Max140Text"/>
450 </xs:sequence>
451 </xs:complexType>
452 <xs:simpleType name="DocumentType3Code">
453 <xs:restriction base="xs:string">
454 <xs:enumeration value="RADM"/>
455 <xs:enumeration value="RPIN"/>
456 <xs:enumeration value="FXDR"/>
457 <xs:enumeration value="DISP"/>
458 <xs:enumeration value="PUOR"/>
459 <xs:enumeration value="SCOR"/>
460 </xs:restriction>
461 </xs:simpleType>
462 <xs:simpleType name="DocumentType5Code">
463 <xs:restriction base="xs:string">
464 <xs:enumeration value="MSIN"/>
465 <xs:enumeration value="CNFA"/>
466 <xs:enumeration value="DNFA"/>
467 <xs:enumeration value="CINV"/>
468 <xs:enumeration value="CREN"/>
469 <xs:enumeration value="DEBN"/>
470 <xs:enumeration value="HIRI"/>
471 <xs:enumeration value="SBIN"/>
472 <xs:enumeration value="CMCN"/>
473 <xs:enumeration value="SOAC"/>
474 <xs:enumeration value="DISP"/>
475 <xs:enumeration value="BOLD"/>
476 <xs:enumeration value="VCHR"/>
477 <xs:enumeration value="AROI"/>
478 <xs:enumeration value="TSUT"/>
479 </xs:restriction>
480 </xs:simpleType>
481 <xs:complexType name="EntryDetails1">
482 <xs:sequence>
483 <xs:element maxOccurs="1" minOccurs="0" name="Btch" type="BatchInformation2"/>
484 <xs:element maxOccurs="unbounded" minOccurs="0" name="TxDtls" type="EntryTransaction2"/>
485 </xs:sequence>
486 </xs:complexType>
487 <xs:simpleType name="EntryStatus2Code">
488 <xs:restriction base="xs:string">
489 <xs:enumeration value="BOOK"/>
490 <xs:enumeration value="PDNG"/>
491 <xs:enumeration value="INFO"/>
492 </xs:restriction>
493 </xs:simpleType>
494 <xs:complexType name="EntryTransaction2">
495 <xs:sequence>
496 <xs:element maxOccurs="1" minOccurs="0" name="Refs" type="TransactionReferences2"/>
497 <xs:element maxOccurs="1" minOccurs="0" name="AmtDtls" type="AmountAndCurrencyExchange3"/>
498 <xs:element maxOccurs="unbounded" minOccurs="0" name="Avlbty" type="CashBalanceAvailability2"/>
499 <xs:element maxOccurs="1" minOccurs="0" name="BkTxCd" type="BankTransactionCodeStructure4"/>
500 <xs:element maxOccurs="unbounded" minOccurs="0" name="Chrgs" type="ChargesInformation6"/>
501 <xs:element maxOccurs="unbounded" minOccurs="0" name="Intrst" type="TransactionInterest2"/>
502 <xs:element maxOccurs="1" minOccurs="0" name="RltdPties" type="TransactionParty2"/>
503 <xs:element maxOccurs="1" minOccurs="0" name="RltdAgts" type="TransactionAgents2"/>
504 <xs:element maxOccurs="1" minOccurs="0" name="Purp" type="Purpose2Choice"/>
505 <xs:element maxOccurs="10" minOccurs="0" name="RltdRmtInf" type="RemittanceLocation2"/>
506 <xs:element maxOccurs="1" minOccurs="0" name="RmtInf" type="RemittanceInformation5"/>
507 <xs:element maxOccurs="1" minOccurs="0" name="RltdDts" type="TransactionDates2"/>
508 <xs:element maxOccurs="1" minOccurs="0" name="RltdPric" type="TransactionPrice2Choice"/>
509 <xs:element maxOccurs="unbounded" minOccurs="0" name="RltdQties" type="TransactionQuantities1Choice"/>
510 <xs:element maxOccurs="1" minOccurs="0" name="FinInstrmId" type="SecurityIdentification4Choice"/>
511 <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxInformation3"/>
512 <xs:element maxOccurs="1" minOccurs="0" name="RtrInf" type="ReturnReasonInformation10"/>
513 <xs:element maxOccurs="1" minOccurs="0" name="CorpActn" type="CorporateAction1"/>
514 <xs:element maxOccurs="1" minOccurs="0" name="SfkpgAcct" type="CashAccount16"/>
515 <xs:element maxOccurs="1" minOccurs="0" name="AddtlTxInf" type="Max500Text"/>
516 </xs:sequence>
517 </xs:complexType>
518 <xs:simpleType name="ExternalAccountIdentification1Code">
519 <xs:restriction base="xs:string">
520 <xs:minLength value="1"/>
521 <xs:maxLength value="4"/>
522 </xs:restriction>
523 </xs:simpleType>
524 <xs:simpleType name="ExternalBalanceSubType1Code">
525 <xs:restriction base="xs:string">
526 <xs:minLength value="1"/>
527 <xs:maxLength value="4"/>
528 </xs:restriction>
529 </xs:simpleType>
530 <xs:simpleType name="ExternalBankTransactionDomain1Code">
531 <xs:restriction base="xs:string">
532 <xs:minLength value="1"/>
533 <xs:maxLength value="4"/>
534 </xs:restriction>
535 </xs:simpleType>
536 <xs:simpleType name="ExternalBankTransactionFamily1Code">
537 <xs:restriction base="xs:string">
538 <xs:minLength value="1"/>
539 <xs:maxLength value="4"/>
540 </xs:restriction>
541 </xs:simpleType>
542 <xs:simpleType name="ExternalBankTransactionSubFamily1Code">
543 <xs:restriction base="xs:string">
544 <xs:minLength value="1"/>
545 <xs:maxLength value="4"/>
546 </xs:restriction>
547 </xs:simpleType>
548 <xs:simpleType name="ExternalClearingSystemIdentification1Code">
549 <xs:restriction base="xs:string">
550 <xs:minLength value="1"/>
551 <xs:maxLength value="5"/>
552 </xs:restriction>
553 </xs:simpleType>
554 <xs:simpleType name="ExternalFinancialInstitutionIdentification1Code">
555 <xs:restriction base="xs:string">
556 <xs:minLength value="1"/>
557 <xs:maxLength value="4"/>
558 </xs:restriction>
559 </xs:simpleType>
560 <xs:simpleType name="ExternalOrganisationIdentification1Code">
561 <xs:restriction base="xs:string">
562 <xs:minLength value="1"/>
563 <xs:maxLength value="4"/>
564 </xs:restriction>
565 </xs:simpleType>
566 <xs:simpleType name="ExternalPersonIdentification1Code">
567 <xs:restriction base="xs:string">
568 <xs:minLength value="1"/>
569 <xs:maxLength value="4"/>
570 </xs:restriction>
571 </xs:simpleType>
572 <xs:simpleType name="ExternalPurpose1Code">
573 <xs:restriction base="xs:string">
574 <xs:minLength value="1"/>
575 <xs:maxLength value="4"/>
576 </xs:restriction>
577 </xs:simpleType>
578 <xs:simpleType name="ExternalReportingSource1Code">
579 <xs:restriction base="xs:string">
580 <xs:minLength value="1"/>
581 <xs:maxLength value="4"/>
582 </xs:restriction>
583 </xs:simpleType>
584 <xs:simpleType name="ExternalReturnReason1Code">
585 <xs:restriction base="xs:string">
586 <xs:minLength value="1"/>
587 <xs:maxLength value="4"/>
588 </xs:restriction>
589 </xs:simpleType>
590 <xs:simpleType name="ExternalTechnicalInputChannel1Code">
591 <xs:restriction base="xs:string">
592 <xs:minLength value="1"/>
593 <xs:maxLength value="4"/>
594 </xs:restriction>
595 </xs:simpleType>
596 <xs:complexType name="FinancialIdentificationSchemeName1Choice">
597 <xs:sequence>
598 <xs:choice>
599 <xs:element name="Cd" type="ExternalFinancialInstitutionIdentification1Code"/>
600 <xs:element name="Prtry" type="Max35Text"/>
601 </xs:choice>
602 </xs:sequence>
603 </xs:complexType>
604 <xs:complexType name="FinancialInstitutionIdentification7">
605 <xs:sequence>
606 <xs:element maxOccurs="1" minOccurs="0" name="BIC" type="BICIdentifier"/>
607 <xs:element maxOccurs="1" minOccurs="0" name="ClrSysMmbId" type="ClearingSystemMemberIdentification2"/>
608 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
609 <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress6"/>
610 <xs:element maxOccurs="1" minOccurs="0" name="Othr" type="GenericFinancialIdentification1"/>
611 </xs:sequence>
612 </xs:complexType>
613 <xs:complexType name="FinancialInstrumentQuantityChoice">
614 <xs:sequence>
615 <xs:choice>
616 <xs:element name="Unit" type="DecimalNumber"/>
617 <xs:element name="FaceAmt" type="ImpliedCurrencyAndAmount"/>
618 <xs:element name="AmtsdVal" type="ImpliedCurrencyAndAmount"/>
619 </xs:choice>
620 </xs:sequence>
621 </xs:complexType>
622 <xs:complexType name="FromToAmountRange">
623 <xs:sequence>
624 <xs:element name="FrAmt" type="AmountRangeBoundary1"/>
625 <xs:element name="ToAmt" type="AmountRangeBoundary1"/>
626 </xs:sequence>
627 </xs:complexType>
628 <xs:complexType name="GenericAccountIdentification1">
629 <xs:sequence>
630 <xs:element name="Id" type="Max34Text"/>
631 <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="AccountSchemeName1Choice"/>
632 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
633 </xs:sequence>
634 </xs:complexType>
635 <xs:complexType name="GenericFinancialIdentification1">
636 <xs:sequence>
637 <xs:element name="Id" type="Max35Text"/>
638 <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="FinancialIdentificationSchemeName1Choice"/>
639 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
640 </xs:sequence>
641 </xs:complexType>
642 <xs:complexType name="GenericIdentification3">
643 <xs:sequence>
644 <xs:element name="Id" type="Max35Text"/>
645 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
646 </xs:sequence>
647 </xs:complexType>
648 <xs:complexType name="GenericOrganisationIdentification1">
649 <xs:sequence>
650 <xs:element name="Id" type="Max35Text"/>
651 <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="OrganisationIdentificationSchemeName1Choice"/>
652 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
653 </xs:sequence>
654 </xs:complexType>
655 <xs:complexType name="GenericPersonIdentification1">
656 <xs:sequence>
657 <xs:element name="Id" type="Max35Text"/>
658 <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="PersonIdentificationSchemeName1Choice"/>
659 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
660 </xs:sequence>
661 </xs:complexType>
662 <xs:complexType name="GroupHeader42">
663 <xs:sequence>
664 <xs:element name="MsgId" type="Max35Text"/>
665 <xs:element name="CreDtTm" type="ISODateTime"/>
666 <xs:element maxOccurs="1" minOccurs="0" name="MsgRcpt" type="PartyIdentification32"/>
667 <xs:element maxOccurs="1" minOccurs="0" name="MsgPgntn" type="Pagination"/>
668 <xs:element maxOccurs="1" minOccurs="0" name="AddtlInf" type="Max500Text"/>
669 </xs:sequence>
670 </xs:complexType>
671 <xs:simpleType name="IBAN2007Identifier">
672 <xs:restriction base="xs:string">
673 <xs:pattern value="[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}"/>
674 </xs:restriction>
675 </xs:simpleType>
676 <xs:simpleType name="ISINIdentifier">
677 <xs:restriction base="xs:string">
678 <xs:pattern value="[A-Z0-9]{12,12}"/>
679 </xs:restriction>
680 </xs:simpleType>
681 <xs:simpleType name="ISODate">
682 <xs:restriction base="xs:date"/>
683 </xs:simpleType>
684 <xs:simpleType name="ISODateTime">
685 <xs:restriction base="xs:dateTime"/>
686 </xs:simpleType>
687 <xs:complexType name="ImpliedCurrencyAmountRangeChoice">
688 <xs:sequence>
689 <xs:choice>
690 <xs:element name="FrAmt" type="AmountRangeBoundary1"/>
691 <xs:element name="ToAmt" type="AmountRangeBoundary1"/>
692 <xs:element name="FrToAmt" type="FromToAmountRange"/>
693 <xs:element name="EQAmt" type="ImpliedCurrencyAndAmount"/>
694 <xs:element name="NEQAmt" type="ImpliedCurrencyAndAmount"/>
695 </xs:choice>
696 </xs:sequence>
697 </xs:complexType>
698 <xs:simpleType name="ImpliedCurrencyAndAmount">
699 <xs:restriction base="xs:decimal">
700 <xs:minInclusive value="0"/>
701 <xs:fractionDigits value="5"/>
702 <xs:totalDigits value="18"/>
703 </xs:restriction>
704 </xs:simpleType>
705 <xs:complexType name="InterestType1Choice">
706 <xs:sequence>
707 <xs:choice>
708 <xs:element name="Cd" type="InterestType1Code"/>
709 <xs:element name="Prtry" type="Max35Text"/>
710 </xs:choice>
711 </xs:sequence>
712 </xs:complexType>
713 <xs:simpleType name="InterestType1Code">
714 <xs:restriction base="xs:string">
715 <xs:enumeration value="INDY"/>
716 <xs:enumeration value="OVRN"/>
717 </xs:restriction>
718 </xs:simpleType>
719 <xs:simpleType name="Max105Text">
720 <xs:restriction base="xs:string">
721 <xs:minLength value="1"/>
722 <xs:maxLength value="105"/>
723 </xs:restriction>
724 </xs:simpleType>
725 <xs:simpleType name="Max140Text">
726 <xs:restriction base="xs:string">
727 <xs:minLength value="1"/>
728 <xs:maxLength value="140"/>
729 </xs:restriction>
730 </xs:simpleType>
731 <xs:simpleType name="Max15NumericText">
732 <xs:restriction base="xs:string">
733 <xs:pattern value="[0-9]{1,15}"/>
734 </xs:restriction>
735 </xs:simpleType>
736 <xs:simpleType name="Max15PlusSignedNumericText">
737 <xs:restriction base="xs:string">
738 <xs:pattern value="[+]{0,1}[0-9]{1,15}"/>
739 </xs:restriction>
740 </xs:simpleType>
741 <xs:simpleType name="Max16Text">
742 <xs:restriction base="xs:string">
743 <xs:minLength value="1"/>
744 <xs:maxLength value="16"/>
745 </xs:restriction>
746 </xs:simpleType>
747 <xs:simpleType name="Max2048Text">
748 <xs:restriction base="xs:string">
749 <xs:minLength value="1"/>
750 <xs:maxLength value="2048"/>
751 </xs:restriction>
752 </xs:simpleType>
753 <xs:simpleType name="Max34Text">
754 <xs:restriction base="xs:string">
755 <xs:minLength value="1"/>
756 <xs:maxLength value="34"/>
757 </xs:restriction>
758 </xs:simpleType>
759 <xs:simpleType name="Max35Text">
760 <xs:restriction base="xs:string">
761 <xs:minLength value="1"/>
762 <xs:maxLength value="35"/>
763 </xs:restriction>
764 </xs:simpleType>
765 <xs:simpleType name="Max4Text">
766 <xs:restriction base="xs:string">
767 <xs:minLength value="1"/>
768 <xs:maxLength value="4"/>
769 </xs:restriction>
770 </xs:simpleType>
771 <xs:simpleType name="Max500Text">
772 <xs:restriction base="xs:string">
773 <xs:minLength value="1"/>
774 <xs:maxLength value="500"/>
775 </xs:restriction>
776 </xs:simpleType>
777 <xs:simpleType name="Max5NumericText">
778 <xs:restriction base="xs:string">
779 <xs:pattern value="[0-9]{1,5}"/>
780 </xs:restriction>
781 </xs:simpleType>
782 <xs:simpleType name="Max70Text">
783 <xs:restriction base="xs:string">
784 <xs:minLength value="1"/>
785 <xs:maxLength value="70"/>
786 </xs:restriction>
787 </xs:simpleType>
788 <xs:complexType name="MessageIdentification2">
789 <xs:sequence>
790 <xs:element maxOccurs="1" minOccurs="0" name="MsgNmId" type="Max35Text"/>
791 <xs:element maxOccurs="1" minOccurs="0" name="MsgId" type="Max35Text"/>
792 </xs:sequence>
793 </xs:complexType>
794 <xs:complexType name="NameAndAddress10">
795 <xs:sequence>
796 <xs:element name="Nm" type="Max140Text"/>
797 <xs:element name="Adr" type="PostalAddress6"/>
798 </xs:sequence>
799 </xs:complexType>
800 <xs:simpleType name="NamePrefix1Code">
801 <xs:restriction base="xs:string">
802 <xs:enumeration value="DOCT"/>
803 <xs:enumeration value="MIST"/>
804 <xs:enumeration value="MISS"/>
805 <xs:enumeration value="MADM"/>
806 </xs:restriction>
807 </xs:simpleType>
808 <xs:simpleType name="Number">
809 <xs:restriction base="xs:decimal">
810 <xs:fractionDigits value="0"/>
811 <xs:totalDigits value="18"/>
812 </xs:restriction>
813 </xs:simpleType>
814 <xs:complexType name="NumberAndSumOfTransactions1">
815 <xs:sequence>
816 <xs:element maxOccurs="1" minOccurs="0" name="NbOfNtries" type="Max15NumericText"/>
817 <xs:element maxOccurs="1" minOccurs="0" name="Sum" type="DecimalNumber"/>
818 </xs:sequence>
819 </xs:complexType>
820 <xs:complexType name="NumberAndSumOfTransactions2">
821 <xs:sequence>
822 <xs:element maxOccurs="1" minOccurs="0" name="NbOfNtries" type="Max15NumericText"/>
823 <xs:element maxOccurs="1" minOccurs="0" name="Sum" type="DecimalNumber"/>
824 <xs:element maxOccurs="1" minOccurs="0" name="TtlNetNtryAmt" type="DecimalNumber"/>
825 <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
826 </xs:sequence>
827 </xs:complexType>
828 <xs:complexType name="OrganisationIdentification4">
829 <xs:sequence>
830 <xs:element maxOccurs="1" minOccurs="0" name="BICOrBEI" type="AnyBICIdentifier"/>
831 <xs:element maxOccurs="unbounded" minOccurs="0" name="Othr" type="GenericOrganisationIdentification1"/>
832 </xs:sequence>
833 </xs:complexType>
834 <xs:complexType name="OrganisationIdentificationSchemeName1Choice">
835 <xs:sequence>
836 <xs:choice>
837 <xs:element name="Cd" type="ExternalOrganisationIdentification1Code"/>
838 <xs:element name="Prtry" type="Max35Text"/>
839 </xs:choice>
840 </xs:sequence>
841 </xs:complexType>
842 <xs:complexType name="Pagination">
843 <xs:sequence>
844 <xs:element name="PgNb" type="Max5NumericText"/>
845 <xs:element name="LastPgInd" type="YesNoIndicator"/>
846 </xs:sequence>
847 </xs:complexType>
848 <xs:complexType name="Party6Choice">
849 <xs:sequence>
850 <xs:choice>
851 <xs:element name="OrgId" type="OrganisationIdentification4"/>
852 <xs:element name="PrvtId" type="PersonIdentification5"/>
853 </xs:choice>
854 </xs:sequence>
855 </xs:complexType>
856 <xs:complexType name="PartyIdentification32">
857 <xs:sequence>
858 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
859 <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress6"/>
860 <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Party6Choice"/>
861 <xs:element maxOccurs="1" minOccurs="0" name="CtryOfRes" type="CountryCode"/>
862 <xs:element maxOccurs="1" minOccurs="0" name="CtctDtls" type="ContactDetails2"/>
863 </xs:sequence>
864 </xs:complexType>
865 <xs:simpleType name="PercentageRate">
866 <xs:restriction base="xs:decimal">
867 <xs:fractionDigits value="10"/>
868 <xs:totalDigits value="11"/>
869 </xs:restriction>
870 </xs:simpleType>
871 <xs:complexType name="PersonIdentification5">
872 <xs:sequence>
873 <xs:element maxOccurs="1" minOccurs="0" name="DtAndPlcOfBirth" type="DateAndPlaceOfBirth"/>
874 <xs:element maxOccurs="unbounded" minOccurs="0" name="Othr" type="GenericPersonIdentification1"/>
875 </xs:sequence>
876 </xs:complexType>
877 <xs:complexType name="PersonIdentificationSchemeName1Choice">
878 <xs:sequence>
879 <xs:choice>
880 <xs:element name="Cd" type="ExternalPersonIdentification1Code"/>
881 <xs:element name="Prtry" type="Max35Text"/>
882 </xs:choice>
883 </xs:sequence>
884 </xs:complexType>
885 <xs:simpleType name="PhoneNumber">
886 <xs:restriction base="xs:string">
887 <xs:pattern value="\+[0-9]{1,3}-[0-9()+\-]{1,30}"/>
888 </xs:restriction>
889 </xs:simpleType>
890 <xs:complexType name="PostalAddress6">
891 <xs:sequence>
892 <xs:element maxOccurs="1" minOccurs="0" name="AdrTp" type="AddressType2Code"/>
893 <xs:element maxOccurs="1" minOccurs="0" name="Dept" type="Max70Text"/>
894 <xs:element maxOccurs="1" minOccurs="0" name="SubDept" type="Max70Text"/>
895 <xs:element maxOccurs="1" minOccurs="0" name="StrtNm" type="Max70Text"/>
896 <xs:element maxOccurs="1" minOccurs="0" name="BldgNb" type="Max16Text"/>
897 <xs:element maxOccurs="1" minOccurs="0" name="PstCd" type="Max16Text"/>
898 <xs:element maxOccurs="1" minOccurs="0" name="TwnNm" type="Max35Text"/>
899 <xs:element maxOccurs="1" minOccurs="0" name="CtrySubDvsn" type="Max35Text"/>
900 <xs:element maxOccurs="1" minOccurs="0" name="Ctry" type="CountryCode"/>
901 <xs:element maxOccurs="7" minOccurs="0" name="AdrLine" type="Max70Text"/>
902 </xs:sequence>
903 </xs:complexType>
904 <xs:complexType name="ProprietaryAgent2">
905 <xs:sequence>
906 <xs:element name="Tp" type="Max35Text"/>
907 <xs:element name="Agt" type="BranchAndFinancialInstitutionIdentification4"/>
908 </xs:sequence>
909 </xs:complexType>
910 <xs:complexType name="ProprietaryBankTransactionCodeStructure1">
911 <xs:sequence>
912 <xs:element name="Cd" type="Max35Text"/>
913 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
914 </xs:sequence>
915 </xs:complexType>
916 <xs:complexType name="ProprietaryDate2">
917 <xs:sequence>
918 <xs:element name="Tp" type="Max35Text"/>
919 <xs:element name="Dt" type="DateAndDateTimeChoice"/>
920 </xs:sequence>
921 </xs:complexType>
922 <xs:complexType name="ProprietaryParty2">
923 <xs:sequence>
924 <xs:element name="Tp" type="Max35Text"/>
925 <xs:element name="Pty" type="PartyIdentification32"/>
926 </xs:sequence>
927 </xs:complexType>
928 <xs:complexType name="ProprietaryPrice2">
929 <xs:sequence>
930 <xs:element name="Tp" type="Max35Text"/>
931 <xs:element name="Pric" type="ActiveOrHistoricCurrencyAndAmount"/>
932 </xs:sequence>
933 </xs:complexType>
934 <xs:complexType name="ProprietaryQuantity1">
935 <xs:sequence>
936 <xs:element name="Tp" type="Max35Text"/>
937 <xs:element name="Qty" type="Max35Text"/>
938 </xs:sequence>
939 </xs:complexType>
940 <xs:complexType name="ProprietaryReference1">
941 <xs:sequence>
942 <xs:element name="Tp" type="Max35Text"/>
943 <xs:element name="Ref" type="Max35Text"/>
944 </xs:sequence>
945 </xs:complexType>
946 <xs:complexType name="Purpose2Choice">
947 <xs:sequence>
948 <xs:choice>
949 <xs:element name="Cd" type="ExternalPurpose1Code"/>
950 <xs:element name="Prtry" type="Max35Text"/>
951 </xs:choice>
952 </xs:sequence>
953 </xs:complexType>
954 <xs:complexType name="Rate3">
955 <xs:sequence>
956 <xs:element name="Tp" type="RateType4Choice"/>
957 <xs:element maxOccurs="1" minOccurs="0" name="VldtyRg" type="CurrencyAndAmountRange2"/>
958 </xs:sequence>
959 </xs:complexType>
960 <xs:complexType name="RateType4Choice">
961 <xs:sequence>
962 <xs:choice>
963 <xs:element name="Pctg" type="PercentageRate"/>
964 <xs:element name="Othr" type="Max35Text"/>
965 </xs:choice>
966 </xs:sequence>
967 </xs:complexType>
968 <xs:complexType name="ReferredDocumentInformation3">
969 <xs:sequence>
970 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="ReferredDocumentType2"/>
971 <xs:element maxOccurs="1" minOccurs="0" name="Nb" type="Max35Text"/>
972 <xs:element maxOccurs="1" minOccurs="0" name="RltdDt" type="ISODate"/>
973 </xs:sequence>
974 </xs:complexType>
975 <xs:complexType name="ReferredDocumentType1Choice">
976 <xs:sequence>
977 <xs:choice>
978 <xs:element name="Cd" type="DocumentType5Code"/>
979 <xs:element name="Prtry" type="Max35Text"/>
980 </xs:choice>
981 </xs:sequence>
982 </xs:complexType>
983 <xs:complexType name="ReferredDocumentType2">
984 <xs:sequence>
985 <xs:element name="CdOrPrtry" type="ReferredDocumentType1Choice"/>
986 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
987 </xs:sequence>
988 </xs:complexType>
989 <xs:complexType name="RemittanceAmount1">
990 <xs:sequence>
991 <xs:element maxOccurs="1" minOccurs="0" name="DuePyblAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
992 <xs:element maxOccurs="1" minOccurs="0" name="DscntApldAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
993 <xs:element maxOccurs="1" minOccurs="0" name="CdtNoteAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
994 <xs:element maxOccurs="1" minOccurs="0" name="TaxAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
995 <xs:element maxOccurs="unbounded" minOccurs="0" name="AdjstmntAmtAndRsn" type="DocumentAdjustment1"/>
996 <xs:element maxOccurs="1" minOccurs="0" name="RmtdAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
997 </xs:sequence>
998 </xs:complexType>
999 <xs:complexType name="RemittanceInformation5">
1000 <xs:sequence>
1001 <xs:element maxOccurs="unbounded" minOccurs="0" name="Ustrd" type="Max140Text"/>
1002 <xs:element maxOccurs="unbounded" minOccurs="0" name="Strd" type="StructuredRemittanceInformation7"/>
1003 </xs:sequence>
1004 </xs:complexType>
1005 <xs:complexType name="RemittanceLocation2">
1006 <xs:sequence>
1007 <xs:element maxOccurs="1" minOccurs="0" name="RmtId" type="Max35Text"/>
1008 <xs:element maxOccurs="1" minOccurs="0" name="RmtLctnMtd" type="RemittanceLocationMethod2Code"/>
1009 <xs:element maxOccurs="1" minOccurs="0" name="RmtLctnElctrncAdr" type="Max2048Text"/>
1010 <xs:element maxOccurs="1" minOccurs="0" name="RmtLctnPstlAdr" type="NameAndAddress10"/>
1011 </xs:sequence>
1012 </xs:complexType>
1013 <xs:simpleType name="RemittanceLocationMethod2Code">
1014 <xs:restriction base="xs:string">
1015 <xs:enumeration value="FAXI"/>
1016 <xs:enumeration value="EDIC"/>
1017 <xs:enumeration value="URID"/>
1018 <xs:enumeration value="EMAL"/>
1019 <xs:enumeration value="POST"/>
1020 <xs:enumeration value="SMSM"/>
1021 </xs:restriction>
1022 </xs:simpleType>
1023 <xs:complexType name="ReportEntry2">
1024 <xs:sequence>
1025 <xs:element maxOccurs="1" minOccurs="0" name="NtryRef" type="Max35Text"/>
1026 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
1027 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
1028 <xs:element maxOccurs="1" minOccurs="0" name="RvslInd" type="TrueFalseIndicator"/>
1029 <xs:element name="Sts" type="EntryStatus2Code"/>
1030 <xs:element maxOccurs="1" minOccurs="0" name="BookgDt" type="DateAndDateTimeChoice"/>
1031 <xs:element maxOccurs="1" minOccurs="0" name="ValDt" type="DateAndDateTimeChoice"/>
1032 <xs:element maxOccurs="1" minOccurs="0" name="AcctSvcrRef" type="Max35Text"/>
1033 <xs:element maxOccurs="unbounded" minOccurs="0" name="Avlbty" type="CashBalanceAvailability2"/>
1034 <xs:element name="BkTxCd" type="BankTransactionCodeStructure4"/>
1035 <xs:element maxOccurs="1" minOccurs="0" name="ComssnWvrInd" type="YesNoIndicator"/>
1036 <xs:element maxOccurs="1" minOccurs="0" name="AddtlInfInd" type="MessageIdentification2"/>
1037 <xs:element maxOccurs="1" minOccurs="0" name="AmtDtls" type="AmountAndCurrencyExchange3"/>
1038 <xs:element maxOccurs="unbounded" minOccurs="0" name="Chrgs" type="ChargesInformation6"/>
1039 <xs:element maxOccurs="1" minOccurs="0" name="TechInptChanl" type="TechnicalInputChannel1Choice"/>
1040 <xs:element maxOccurs="unbounded" minOccurs="0" name="Intrst" type="TransactionInterest2"/>
1041 <xs:element maxOccurs="unbounded" minOccurs="0" name="NtryDtls" type="EntryDetails1"/>
1042 <xs:element maxOccurs="1" minOccurs="0" name="AddtlNtryInf" type="Max500Text"/>
1043 </xs:sequence>
1044 </xs:complexType>
1045 <xs:complexType name="ReportingSource1Choice">
1046 <xs:sequence>
1047 <xs:choice>
1048 <xs:element name="Cd" type="ExternalReportingSource1Code"/>
1049 <xs:element name="Prtry" type="Max35Text"/>
1050 </xs:choice>
1051 </xs:sequence>
1052 </xs:complexType>
1053 <xs:complexType name="ReturnReason5Choice">
1054 <xs:sequence>
1055 <xs:choice>
1056 <xs:element name="Cd" type="ExternalReturnReason1Code"/>
1057 <xs:element name="Prtry" type="Max35Text"/>
1058 </xs:choice>
1059 </xs:sequence>
1060 </xs:complexType>
1061 <xs:complexType name="ReturnReasonInformation10">
1062 <xs:sequence>
1063 <xs:element maxOccurs="1" minOccurs="0" name="OrgnlBkTxCd" type="BankTransactionCodeStructure4"/>
1064 <xs:element maxOccurs="1" minOccurs="0" name="Orgtr" type="PartyIdentification32"/>
1065 <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="ReturnReason5Choice"/>
1066 <xs:element maxOccurs="unbounded" minOccurs="0" name="AddtlInf" type="Max105Text"/>
1067 </xs:sequence>
1068 </xs:complexType>
1069 <xs:complexType name="SecurityIdentification4Choice">
1070 <xs:sequence>
1071 <xs:choice>
1072 <xs:element name="ISIN" type="ISINIdentifier"/>
1073 <xs:element name="Prtry" type="AlternateSecurityIdentification2"/>
1074 </xs:choice>
1075 </xs:sequence>
1076 </xs:complexType>
1077 <xs:complexType name="StructuredRemittanceInformation7">
1078 <xs:sequence>
1079 <xs:element maxOccurs="unbounded" minOccurs="0" name="RfrdDocInf" type="ReferredDocumentInformation3"/>
1080 <xs:element maxOccurs="1" minOccurs="0" name="RfrdDocAmt" type="RemittanceAmount1"/>
1081 <xs:element maxOccurs="1" minOccurs="0" name="CdtrRefInf" type="CreditorReferenceInformation2"/>
1082 <xs:element maxOccurs="1" minOccurs="0" name="Invcr" type="PartyIdentification32"/>
1083 <xs:element maxOccurs="1" minOccurs="0" name="Invcee" type="PartyIdentification32"/>
1084 <xs:element maxOccurs="3" minOccurs="0" name="AddtlRmtInf" type="Max140Text"/>
1085 </xs:sequence>
1086 </xs:complexType>
1087 <xs:complexType name="TaxAmount1">
1088 <xs:sequence>
1089 <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="PercentageRate"/>
1090 <xs:element maxOccurs="1" minOccurs="0" name="TaxblBaseAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1091 <xs:element maxOccurs="1" minOccurs="0" name="TtlAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1092 <xs:element maxOccurs="unbounded" minOccurs="0" name="Dtls" type="TaxRecordDetails1"/>
1093 </xs:sequence>
1094 </xs:complexType>
1095 <xs:complexType name="TaxAuthorisation1">
1096 <xs:sequence>
1097 <xs:element maxOccurs="1" minOccurs="0" name="Titl" type="Max35Text"/>
1098 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
1099 </xs:sequence>
1100 </xs:complexType>
1101 <xs:complexType name="TaxCharges2">
1102 <xs:sequence>
1103 <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Max35Text"/>
1104 <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="PercentageRate"/>
1105 <xs:element maxOccurs="1" minOccurs="0" name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
1106 </xs:sequence>
1107 </xs:complexType>
1108 <xs:complexType name="TaxInformation3">
1109 <xs:sequence>
1110 <xs:element maxOccurs="1" minOccurs="0" name="Cdtr" type="TaxParty1"/>
1111 <xs:element maxOccurs="1" minOccurs="0" name="Dbtr" type="TaxParty2"/>
1112 <xs:element maxOccurs="1" minOccurs="0" name="AdmstnZn" type="Max35Text"/>
1113 <xs:element maxOccurs="1" minOccurs="0" name="RefNb" type="Max140Text"/>
1114 <xs:element maxOccurs="1" minOccurs="0" name="Mtd" type="Max35Text"/>
1115 <xs:element maxOccurs="1" minOccurs="0" name="TtlTaxblBaseAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1116 <xs:element maxOccurs="1" minOccurs="0" name="TtlTaxAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1117 <xs:element maxOccurs="1" minOccurs="0" name="Dt" type="ISODate"/>
1118 <xs:element maxOccurs="1" minOccurs="0" name="SeqNb" type="Number"/>
1119 <xs:element maxOccurs="unbounded" minOccurs="0" name="Rcrd" type="TaxRecord1"/>
1120 </xs:sequence>
1121 </xs:complexType>
1122 <xs:complexType name="TaxParty1">
1123 <xs:sequence>
1124 <xs:element maxOccurs="1" minOccurs="0" name="TaxId" type="Max35Text"/>
1125 <xs:element maxOccurs="1" minOccurs="0" name="RegnId" type="Max35Text"/>
1126 <xs:element maxOccurs="1" minOccurs="0" name="TaxTp" type="Max35Text"/>
1127 </xs:sequence>
1128 </xs:complexType>
1129 <xs:complexType name="TaxParty2">
1130 <xs:sequence>
1131 <xs:element maxOccurs="1" minOccurs="0" name="TaxId" type="Max35Text"/>
1132 <xs:element maxOccurs="1" minOccurs="0" name="RegnId" type="Max35Text"/>
1133 <xs:element maxOccurs="1" minOccurs="0" name="TaxTp" type="Max35Text"/>
1134 <xs:element maxOccurs="1" minOccurs="0" name="Authstn" type="TaxAuthorisation1"/>
1135 </xs:sequence>
1136 </xs:complexType>
1137 <xs:complexType name="TaxPeriod1">
1138 <xs:sequence>
1139 <xs:element maxOccurs="1" minOccurs="0" name="Yr" type="ISODate"/>
1140 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="TaxRecordPeriod1Code"/>
1141 <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DatePeriodDetails"/>
1142 </xs:sequence>
1143 </xs:complexType>
1144 <xs:complexType name="TaxRecord1">
1145 <xs:sequence>
1146 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="Max35Text"/>
1147 <xs:element maxOccurs="1" minOccurs="0" name="Ctgy" type="Max35Text"/>
1148 <xs:element maxOccurs="1" minOccurs="0" name="CtgyDtls" type="Max35Text"/>
1149 <xs:element maxOccurs="1" minOccurs="0" name="DbtrSts" type="Max35Text"/>
1150 <xs:element maxOccurs="1" minOccurs="0" name="CertId" type="Max35Text"/>
1151 <xs:element maxOccurs="1" minOccurs="0" name="FrmsCd" type="Max35Text"/>
1152 <xs:element maxOccurs="1" minOccurs="0" name="Prd" type="TaxPeriod1"/>
1153 <xs:element maxOccurs="1" minOccurs="0" name="TaxAmt" type="TaxAmount1"/>
1154 <xs:element maxOccurs="1" minOccurs="0" name="AddtlInf" type="Max140Text"/>
1155 </xs:sequence>
1156 </xs:complexType>
1157 <xs:complexType name="TaxRecordDetails1">
1158 <xs:sequence>
1159 <xs:element maxOccurs="1" minOccurs="0" name="Prd" type="TaxPeriod1"/>
1160 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
1161 </xs:sequence>
1162 </xs:complexType>
1163 <xs:simpleType name="TaxRecordPeriod1Code">
1164 <xs:restriction base="xs:string">
1165 <xs:enumeration value="MM01"/>
1166 <xs:enumeration value="MM02"/>
1167 <xs:enumeration value="MM03"/>
1168 <xs:enumeration value="MM04"/>
1169 <xs:enumeration value="MM05"/>
1170 <xs:enumeration value="MM06"/>
1171 <xs:enumeration value="MM07"/>
1172 <xs:enumeration value="MM08"/>
1173 <xs:enumeration value="MM09"/>
1174 <xs:enumeration value="MM10"/>
1175 <xs:enumeration value="MM11"/>
1176 <xs:enumeration value="MM12"/>
1177 <xs:enumeration value="QTR1"/>
1178 <xs:enumeration value="QTR2"/>
1179 <xs:enumeration value="QTR3"/>
1180 <xs:enumeration value="QTR4"/>
1181 <xs:enumeration value="HLF1"/>
1182 <xs:enumeration value="HLF2"/>
1183 </xs:restriction>
1184 </xs:simpleType>
1185 <xs:complexType name="TechnicalInputChannel1Choice">
1186 <xs:sequence>
1187 <xs:choice>
1188 <xs:element name="Cd" type="ExternalTechnicalInputChannel1Code"/>
1189 <xs:element name="Prtry" type="Max35Text"/>
1190 </xs:choice>
1191 </xs:sequence>
1192 </xs:complexType>
1193 <xs:complexType name="TotalTransactions2">
1194 <xs:sequence>
1195 <xs:element maxOccurs="1" minOccurs="0" name="TtlNtries" type="NumberAndSumOfTransactions2"/>
1196 <xs:element maxOccurs="1" minOccurs="0" name="TtlCdtNtries" type="NumberAndSumOfTransactions1"/>
1197 <xs:element maxOccurs="1" minOccurs="0" name="TtlDbtNtries" type="NumberAndSumOfTransactions1"/>
1198 <xs:element maxOccurs="unbounded" minOccurs="0" name="TtlNtriesPerBkTxCd" type="TotalsPerBankTransactionCode2"/>
1199 </xs:sequence>
1200 </xs:complexType>
1201 <xs:complexType name="TotalsPerBankTransactionCode2">
1202 <xs:sequence>
1203 <xs:element maxOccurs="1" minOccurs="0" name="NbOfNtries" type="Max15NumericText"/>
1204 <xs:element maxOccurs="1" minOccurs="0" name="Sum" type="DecimalNumber"/>
1205 <xs:element maxOccurs="1" minOccurs="0" name="TtlNetNtryAmt" type="DecimalNumber"/>
1206 <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
1207 <xs:element maxOccurs="1" minOccurs="0" name="FcstInd" type="TrueFalseIndicator"/>
1208 <xs:element name="BkTxCd" type="BankTransactionCodeStructure4"/>
1209 <xs:element maxOccurs="unbounded" minOccurs="0" name="Avlbty" type="CashBalanceAvailability2"/>
1210 </xs:sequence>
1211 </xs:complexType>
1212 <xs:complexType name="TransactionAgents2">
1213 <xs:sequence>
1214 <xs:element maxOccurs="1" minOccurs="0" name="DbtrAgt" type="BranchAndFinancialInstitutionIdentification4"/>
1215 <xs:element maxOccurs="1" minOccurs="0" name="CdtrAgt" type="BranchAndFinancialInstitutionIdentification4"/>
1216 <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt1" type="BranchAndFinancialInstitutionIdentification4"/>
1217 <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt2" type="BranchAndFinancialInstitutionIdentification4"/>
1218 <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt3" type="BranchAndFinancialInstitutionIdentification4"/>
1219 <xs:element maxOccurs="1" minOccurs="0" name="RcvgAgt" type="BranchAndFinancialInstitutionIdentification4"/>
1220 <xs:element maxOccurs="1" minOccurs="0" name="DlvrgAgt" type="BranchAndFinancialInstitutionIdentification4"/>
1221 <xs:element maxOccurs="1" minOccurs="0" name="IssgAgt" type="BranchAndFinancialInstitutionIdentification4"/>
1222 <xs:element maxOccurs="1" minOccurs="0" name="SttlmPlc" type="BranchAndFinancialInstitutionIdentification4"/>
1223 <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryAgent2"/>
1224 </xs:sequence>
1225 </xs:complexType>
1226 <xs:complexType name="TransactionDates2">
1227 <xs:sequence>
1228 <xs:element maxOccurs="1" minOccurs="0" name="AccptncDtTm" type="ISODateTime"/>
1229 <xs:element maxOccurs="1" minOccurs="0" name="TradActvtyCtrctlSttlmDt" type="ISODate"/>
1230 <xs:element maxOccurs="1" minOccurs="0" name="TradDt" type="ISODate"/>
1231 <xs:element maxOccurs="1" minOccurs="0" name="IntrBkSttlmDt" type="ISODate"/>
1232 <xs:element maxOccurs="1" minOccurs="0" name="StartDt" type="ISODate"/>
1233 <xs:element maxOccurs="1" minOccurs="0" name="EndDt" type="ISODate"/>
1234 <xs:element maxOccurs="1" minOccurs="0" name="TxDtTm" type="ISODateTime"/>
1235 <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryDate2"/>
1236 </xs:sequence>
1237 </xs:complexType>
1238 <xs:complexType name="TransactionInterest2">
1239 <xs:sequence>
1240 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
1241 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
1242 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="InterestType1Choice"/>
1243 <xs:element maxOccurs="unbounded" minOccurs="0" name="Rate" type="Rate3"/>
1244 <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DateTimePeriodDetails"/>
1245 <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="Max35Text"/>
1246 </xs:sequence>
1247 </xs:complexType>
1248 <xs:complexType name="TransactionParty2">
1249 <xs:sequence>
1250 <xs:element maxOccurs="1" minOccurs="0" name="InitgPty" type="PartyIdentification32"/>
1251 <xs:element maxOccurs="1" minOccurs="0" name="Dbtr" type="PartyIdentification32"/>
1252 <xs:element maxOccurs="1" minOccurs="0" name="DbtrAcct" type="CashAccount16"/>
1253 <xs:element maxOccurs="1" minOccurs="0" name="UltmtDbtr" type="PartyIdentification32"/>
1254 <xs:element maxOccurs="1" minOccurs="0" name="Cdtr" type="PartyIdentification32"/>
1255 <xs:element maxOccurs="1" minOccurs="0" name="CdtrAcct" type="CashAccount16"/>
1256 <xs:element maxOccurs="1" minOccurs="0" name="UltmtCdtr" type="PartyIdentification32"/>
1257 <xs:element maxOccurs="1" minOccurs="0" name="TradgPty" type="PartyIdentification32"/>
1258 <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryParty2"/>
1259 </xs:sequence>
1260 </xs:complexType>
1261 <xs:complexType name="TransactionPrice2Choice">
1262 <xs:sequence>
1263 <xs:choice>
1264 <xs:element name="DealPric" type="ActiveOrHistoricCurrencyAndAmount"/>
1265 <xs:element maxOccurs="unbounded" minOccurs="1" name="Prtry" type="ProprietaryPrice2"/>
1266 </xs:choice>
1267 </xs:sequence>
1268 </xs:complexType>
1269 <xs:complexType name="TransactionQuantities1Choice">
1270 <xs:sequence>
1271 <xs:choice>
1272 <xs:element name="Qty" type="FinancialInstrumentQuantityChoice"/>
1273 <xs:element name="Prtry" type="ProprietaryQuantity1"/>
1274 </xs:choice>
1275 </xs:sequence>
1276 </xs:complexType>
1277 <xs:complexType name="TransactionReferences2">
1278 <xs:sequence>
1279 <xs:element maxOccurs="1" minOccurs="0" name="MsgId" type="Max35Text"/>
1280 <xs:element maxOccurs="1" minOccurs="0" name="AcctSvcrRef" type="Max35Text"/>
1281 <xs:element maxOccurs="1" minOccurs="0" name="PmtInfId" type="Max35Text"/>
1282 <xs:element maxOccurs="1" minOccurs="0" name="InstrId" type="Max35Text"/>
1283 <xs:element maxOccurs="1" minOccurs="0" name="EndToEndId" type="Max35Text"/>
1284 <xs:element maxOccurs="1" minOccurs="0" name="TxId" type="Max35Text"/>
1285 <xs:element maxOccurs="1" minOccurs="0" name="MndtId" type="Max35Text"/>
1286 <xs:element maxOccurs="1" minOccurs="0" name="ChqNb" type="Max35Text"/>
1287 <xs:element maxOccurs="1" minOccurs="0" name="ClrSysRef" type="Max35Text"/>
1288 <xs:element maxOccurs="1" minOccurs="0" name="Prtry" type="ProprietaryReference1"/>
1289 </xs:sequence>
1290 </xs:complexType>
1291 <xs:simpleType name="TrueFalseIndicator">
1292 <xs:restriction base="xs:boolean"/>
1293 </xs:simpleType>
1294 <xs:simpleType name="YesNoIndicator">
1295 <xs:restriction base="xs:boolean"/>
1296 </xs:simpleType>
1297 </xs:schema>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!--Generated by SWIFTStandards Workstation (build:R7.1.30.4) on 2012 Jun 07 20:47:18-->
2 <xs:schema elementFormDefault="qualified" targetNamespace="urn:iso:std:iso:20022:tech:xsd:camt.052.001.03" xmlns="urn:iso:std:iso:20022:tech:xsd:camt.052.001.03" xmlns:xs="http://www.w3.org/2001/XMLSchema">
3 <xs:element name="Document" type="Document"/>
4 <xs:complexType name="AccountIdentification4Choice">
5 <xs:sequence>
6 <xs:choice>
7 <xs:element name="IBAN" type="IBAN2007Identifier"/>
8 <xs:element name="Othr" type="GenericAccountIdentification1"/>
9 </xs:choice>
10 </xs:sequence>
11 </xs:complexType>
12 <xs:complexType name="AccountInterest3">
13 <xs:sequence>
14 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="InterestType1Choice"/>
15 <xs:element maxOccurs="unbounded" minOccurs="0" name="Rate" type="Rate3"/>
16 <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DateTimePeriodDetails"/>
17 <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="Max35Text"/>
18 <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxCharges2"/>
19 </xs:sequence>
20 </xs:complexType>
21 <xs:complexType name="AccountReport12">
22 <xs:sequence>
23 <xs:element name="Id" type="Max35Text"/>
24 <xs:element maxOccurs="1" minOccurs="0" name="RptPgntn" type="Pagination"/>
25 <xs:element maxOccurs="1" minOccurs="0" name="ElctrncSeqNb" type="Number"/>
26 <xs:element maxOccurs="1" minOccurs="0" name="LglSeqNb" type="Number"/>
27 <xs:element name="CreDtTm" type="ISODateTime"/>
28 <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DateTimePeriodDetails"/>
29 <xs:element maxOccurs="1" minOccurs="0" name="CpyDplctInd" type="CopyDuplicate1Code"/>
30 <xs:element maxOccurs="1" minOccurs="0" name="RptgSrc" type="ReportingSource1Choice"/>
31 <xs:element name="Acct" type="CashAccount25"/>
32 <xs:element maxOccurs="1" minOccurs="0" name="RltdAcct" type="CashAccount24"/>
33 <xs:element maxOccurs="unbounded" minOccurs="0" name="Intrst" type="AccountInterest3"/>
34 <xs:element maxOccurs="unbounded" minOccurs="0" name="Bal" type="CashBalance3"/>
35 <xs:element maxOccurs="1" minOccurs="0" name="TxsSummry" type="TotalTransactions3"/>
36 <xs:element maxOccurs="unbounded" minOccurs="0" name="Ntry" type="ReportEntry3"/>
37 <xs:element maxOccurs="1" minOccurs="0" name="AddtlRptInf" type="Max500Text"/>
38 </xs:sequence>
39 </xs:complexType>
40 <xs:complexType name="AccountSchemeName1Choice">
41 <xs:sequence>
42 <xs:choice>
43 <xs:element name="Cd" type="ExternalAccountIdentification1Code"/>
44 <xs:element name="Prtry" type="Max35Text"/>
45 </xs:choice>
46 </xs:sequence>
47 </xs:complexType>
48 <xs:simpleType name="ActiveCurrencyAndAmount_SimpleType">
49 <xs:restriction base="xs:decimal">
50 <xs:fractionDigits value="5"/>
51 <xs:totalDigits value="18"/>
52 <xs:minInclusive value="0"/>
53 </xs:restriction>
54 </xs:simpleType>
55 <xs:complexType name="ActiveCurrencyAndAmount">
56 <xs:simpleContent>
57 <xs:extension base="ActiveCurrencyAndAmount_SimpleType">
58 <xs:attribute name="Ccy" type="ActiveCurrencyCode" use="required"/>
59 </xs:extension>
60 </xs:simpleContent>
61 </xs:complexType>
62 <xs:simpleType name="ActiveCurrencyCode">
63 <xs:restriction base="xs:string">
64 <xs:pattern value="[A-Z]{3,3}"/>
65 </xs:restriction>
66 </xs:simpleType>
67 <xs:simpleType name="ActiveOrHistoricCurrencyAnd13DecimalAmount_SimpleType">
68 <xs:restriction base="xs:decimal">
69 <xs:fractionDigits value="13"/>
70 <xs:totalDigits value="18"/>
71 <xs:minInclusive value="0"/>
72 </xs:restriction>
73 </xs:simpleType>
74 <xs:complexType name="ActiveOrHistoricCurrencyAnd13DecimalAmount">
75 <xs:simpleContent>
76 <xs:extension base="ActiveOrHistoricCurrencyAnd13DecimalAmount_SimpleType">
77 <xs:attribute name="Ccy" type="ActiveOrHistoricCurrencyCode" use="required"/>
78 </xs:extension>
79 </xs:simpleContent>
80 </xs:complexType>
81 <xs:simpleType name="ActiveOrHistoricCurrencyAndAmount_SimpleType">
82 <xs:restriction base="xs:decimal">
83 <xs:fractionDigits value="5"/>
84 <xs:totalDigits value="18"/>
85 <xs:minInclusive value="0"/>
86 </xs:restriction>
87 </xs:simpleType>
88 <xs:complexType name="ActiveOrHistoricCurrencyAndAmount">
89 <xs:simpleContent>
90 <xs:extension base="ActiveOrHistoricCurrencyAndAmount_SimpleType">
91 <xs:attribute name="Ccy" type="ActiveOrHistoricCurrencyCode" use="required"/>
92 </xs:extension>
93 </xs:simpleContent>
94 </xs:complexType>
95 <xs:simpleType name="ActiveOrHistoricCurrencyCode">
96 <xs:restriction base="xs:string">
97 <xs:pattern value="[A-Z]{3,3}"/>
98 </xs:restriction>
99 </xs:simpleType>
100 <xs:simpleType name="AddressType2Code">
101 <xs:restriction base="xs:string">
102 <xs:enumeration value="ADDR"/>
103 <xs:enumeration value="PBOX"/>
104 <xs:enumeration value="HOME"/>
105 <xs:enumeration value="BIZZ"/>
106 <xs:enumeration value="MLTO"/>
107 <xs:enumeration value="DLVY"/>
108 </xs:restriction>
109 </xs:simpleType>
110 <xs:complexType name="AmountAndCurrencyExchange3">
111 <xs:sequence>
112 <xs:element maxOccurs="1" minOccurs="0" name="InstdAmt" type="AmountAndCurrencyExchangeDetails3"/>
113 <xs:element maxOccurs="1" minOccurs="0" name="TxAmt" type="AmountAndCurrencyExchangeDetails3"/>
114 <xs:element maxOccurs="1" minOccurs="0" name="CntrValAmt" type="AmountAndCurrencyExchangeDetails3"/>
115 <xs:element maxOccurs="1" minOccurs="0" name="AnncdPstngAmt" type="AmountAndCurrencyExchangeDetails3"/>
116 <xs:element maxOccurs="unbounded" minOccurs="0" name="PrtryAmt" type="AmountAndCurrencyExchangeDetails4"/>
117 </xs:sequence>
118 </xs:complexType>
119 <xs:complexType name="AmountAndCurrencyExchangeDetails3">
120 <xs:sequence>
121 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
122 <xs:element maxOccurs="1" minOccurs="0" name="CcyXchg" type="CurrencyExchange5"/>
123 </xs:sequence>
124 </xs:complexType>
125 <xs:complexType name="AmountAndCurrencyExchangeDetails4">
126 <xs:sequence>
127 <xs:element name="Tp" type="Max35Text"/>
128 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
129 <xs:element maxOccurs="1" minOccurs="0" name="CcyXchg" type="CurrencyExchange5"/>
130 </xs:sequence>
131 </xs:complexType>
132 <xs:complexType name="AmountRangeBoundary1">
133 <xs:sequence>
134 <xs:element name="BdryAmt" type="ImpliedCurrencyAndAmount"/>
135 <xs:element name="Incl" type="YesNoIndicator"/>
136 </xs:sequence>
137 </xs:complexType>
138 <xs:simpleType name="AnyBICIdentifier">
139 <xs:restriction base="xs:string">
140 <xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
141 </xs:restriction>
142 </xs:simpleType>
143 <xs:simpleType name="BICFIIdentifier">
144 <xs:restriction base="xs:string">
145 <xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
146 </xs:restriction>
147 </xs:simpleType>
148 <xs:complexType name="BalanceSubType1Choice">
149 <xs:sequence>
150 <xs:choice>
151 <xs:element name="Cd" type="ExternalBalanceSubType1Code"/>
152 <xs:element name="Prtry" type="Max35Text"/>
153 </xs:choice>
154 </xs:sequence>
155 </xs:complexType>
156 <xs:complexType name="BalanceType12">
157 <xs:sequence>
158 <xs:element name="CdOrPrtry" type="BalanceType5Choice"/>
159 <xs:element maxOccurs="1" minOccurs="0" name="SubTp" type="BalanceSubType1Choice"/>
160 </xs:sequence>
161 </xs:complexType>
162 <xs:simpleType name="BalanceType12Code">
163 <xs:restriction base="xs:string">
164 <xs:enumeration value="XPCD"/>
165 <xs:enumeration value="OPAV"/>
166 <xs:enumeration value="ITAV"/>
167 <xs:enumeration value="CLAV"/>
168 <xs:enumeration value="FWAV"/>
169 <xs:enumeration value="CLBD"/>
170 <xs:enumeration value="ITBD"/>
171 <xs:enumeration value="OPBD"/>
172 <xs:enumeration value="PRCD"/>
173 <xs:enumeration value="INFO"/>
174 </xs:restriction>
175 </xs:simpleType>
176 <xs:complexType name="BalanceType5Choice">
177 <xs:sequence>
178 <xs:choice>
179 <xs:element name="Cd" type="BalanceType12Code"/>
180 <xs:element name="Prtry" type="Max35Text"/>
181 </xs:choice>
182 </xs:sequence>
183 </xs:complexType>
184 <xs:complexType name="BankToCustomerAccountReportV03">
185 <xs:sequence>
186 <xs:element name="GrpHdr" type="GroupHeader58"/>
187 <xs:element maxOccurs="unbounded" minOccurs="1" name="Rpt" type="AccountReport12"/>
188 <xs:element maxOccurs="unbounded" minOccurs="0" name="SplmtryData" type="SupplementaryData1"/>
189 </xs:sequence>
190 </xs:complexType>
191 <xs:complexType name="BankTransactionCodeStructure4">
192 <xs:sequence>
193 <xs:element maxOccurs="1" minOccurs="0" name="Domn" type="BankTransactionCodeStructure5"/>
194 <xs:element maxOccurs="1" minOccurs="0" name="Prtry" type="ProprietaryBankTransactionCodeStructure1"/>
195 </xs:sequence>
196 </xs:complexType>
197 <xs:complexType name="BankTransactionCodeStructure5">
198 <xs:sequence>
199 <xs:element name="Cd" type="ExternalBankTransactionDomain1Code"/>
200 <xs:element name="Fmly" type="BankTransactionCodeStructure6"/>
201 </xs:sequence>
202 </xs:complexType>
203 <xs:complexType name="BankTransactionCodeStructure6">
204 <xs:sequence>
205 <xs:element name="Cd" type="ExternalBankTransactionFamily1Code"/>
206 <xs:element name="SubFmlyCd" type="ExternalBankTransactionSubFamily1Code"/>
207 </xs:sequence>
208 </xs:complexType>
209 <xs:simpleType name="BaseOneRate">
210 <xs:restriction base="xs:decimal">
211 <xs:fractionDigits value="10"/>
212 <xs:totalDigits value="11"/>
213 </xs:restriction>
214 </xs:simpleType>
215 <xs:complexType name="BatchInformation2">
216 <xs:sequence>
217 <xs:element maxOccurs="1" minOccurs="0" name="MsgId" type="Max35Text"/>
218 <xs:element maxOccurs="1" minOccurs="0" name="PmtInfId" type="Max35Text"/>
219 <xs:element maxOccurs="1" minOccurs="0" name="NbOfTxs" type="Max15NumericText"/>
220 <xs:element maxOccurs="1" minOccurs="0" name="TtlAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
221 <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
222 </xs:sequence>
223 </xs:complexType>
224 <xs:complexType name="BranchAndFinancialInstitutionIdentification5">
225 <xs:sequence>
226 <xs:element name="FinInstnId" type="FinancialInstitutionIdentification8"/>
227 <xs:element maxOccurs="1" minOccurs="0" name="BrnchId" type="BranchData2"/>
228 </xs:sequence>
229 </xs:complexType>
230 <xs:complexType name="BranchData2">
231 <xs:sequence>
232 <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Max35Text"/>
233 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
234 <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress6"/>
235 </xs:sequence>
236 </xs:complexType>
237 <xs:simpleType name="CSCManagement1Code">
238 <xs:restriction base="xs:string">
239 <xs:enumeration value="PRST"/>
240 <xs:enumeration value="BYPS"/>
241 <xs:enumeration value="UNRD"/>
242 <xs:enumeration value="NCSC"/>
243 </xs:restriction>
244 </xs:simpleType>
245 <xs:complexType name="CardAggregated1">
246 <xs:sequence>
247 <xs:element maxOccurs="1" minOccurs="0" name="AddtlSvc" type="CardPaymentServiceType2Code"/>
248 <xs:element maxOccurs="1" minOccurs="0" name="TxCtgy" type="ExternalCardTransactionCategory1Code"/>
249 <xs:element maxOccurs="1" minOccurs="0" name="SaleRcncltnId" type="Max35Text"/>
250 <xs:element maxOccurs="1" minOccurs="0" name="SeqNbRg" type="CardSequenceNumberRange1"/>
251 <xs:element maxOccurs="1" minOccurs="0" name="TxDtRg" type="DateOrDateTimePeriodChoice"/>
252 </xs:sequence>
253 </xs:complexType>
254 <xs:simpleType name="CardDataReading1Code">
255 <xs:restriction base="xs:string">
256 <xs:enumeration value="TAGC"/>
257 <xs:enumeration value="PHYS"/>
258 <xs:enumeration value="BRCD"/>
259 <xs:enumeration value="MGST"/>
260 <xs:enumeration value="CICC"/>
261 <xs:enumeration value="DFLE"/>
262 <xs:enumeration value="CTLS"/>
263 <xs:enumeration value="ECTL"/>
264 </xs:restriction>
265 </xs:simpleType>
266 <xs:complexType name="CardEntry1">
267 <xs:sequence>
268 <xs:element maxOccurs="1" minOccurs="0" name="Card" type="PaymentCard4"/>
269 <xs:element maxOccurs="1" minOccurs="0" name="POI" type="PointOfInteraction1"/>
270 <xs:element maxOccurs="1" minOccurs="0" name="AggtdNtry" type="CardAggregated1"/>
271 </xs:sequence>
272 </xs:complexType>
273 <xs:complexType name="CardIndividualTransaction1">
274 <xs:sequence>
275 <xs:element maxOccurs="1" minOccurs="0" name="AddtlSvc" type="CardPaymentServiceType2Code"/>
276 <xs:element maxOccurs="1" minOccurs="0" name="TxCtgy" type="ExternalCardTransactionCategory1Code"/>
277 <xs:element maxOccurs="1" minOccurs="0" name="SaleRcncltnId" type="Max35Text"/>
278 <xs:element maxOccurs="1" minOccurs="0" name="SaleRefNb" type="Max35Text"/>
279 <xs:element maxOccurs="1" minOccurs="0" name="SeqNb" type="Max35Text"/>
280 <xs:element maxOccurs="1" minOccurs="0" name="TxId" type="TransactionIdentifier1"/>
281 <xs:element maxOccurs="1" minOccurs="0" name="Pdct" type="Product2"/>
282 <xs:element maxOccurs="1" minOccurs="0" name="VldtnDt" type="ISODate"/>
283 <xs:element maxOccurs="1" minOccurs="0" name="VldtnSeqNb" type="Max35Text"/>
284 </xs:sequence>
285 </xs:complexType>
286 <xs:simpleType name="CardPaymentServiceType2Code">
287 <xs:restriction base="xs:string">
288 <xs:enumeration value="AGGR"/>
289 <xs:enumeration value="DCCV"/>
290 <xs:enumeration value="GRTT"/>
291 <xs:enumeration value="INSP"/>
292 <xs:enumeration value="LOYT"/>
293 <xs:enumeration value="NRES"/>
294 <xs:enumeration value="PUCO"/>
295 <xs:enumeration value="RECP"/>
296 <xs:enumeration value="SOAF"/>
297 <xs:enumeration value="UNAF"/>
298 <xs:enumeration value="VCAU"/>
299 </xs:restriction>
300 </xs:simpleType>
301 <xs:complexType name="CardSecurityInformation1">
302 <xs:sequence>
303 <xs:element name="CSCMgmt" type="CSCManagement1Code"/>
304 <xs:element maxOccurs="1" minOccurs="0" name="CSCVal" type="Min3Max4NumericText"/>
305 </xs:sequence>
306 </xs:complexType>
307 <xs:complexType name="CardSequenceNumberRange1">
308 <xs:sequence>
309 <xs:element maxOccurs="1" minOccurs="0" name="FrstTx" type="Max35Text"/>
310 <xs:element maxOccurs="1" minOccurs="0" name="LastTx" type="Max35Text"/>
311 </xs:sequence>
312 </xs:complexType>
313 <xs:complexType name="CardTransaction1">
314 <xs:sequence>
315 <xs:element maxOccurs="1" minOccurs="0" name="Card" type="PaymentCard4"/>
316 <xs:element maxOccurs="1" minOccurs="0" name="POI" type="PointOfInteraction1"/>
317 <xs:element maxOccurs="1" minOccurs="0" name="Tx" type="CardTransaction1Choice"/>
318 </xs:sequence>
319 </xs:complexType>
320 <xs:complexType name="CardTransaction1Choice">
321 <xs:sequence>
322 <xs:choice>
323 <xs:element name="Aggtd" type="CardAggregated1"/>
324 <xs:element name="Indv" type="CardIndividualTransaction1"/>
325 </xs:choice>
326 </xs:sequence>
327 </xs:complexType>
328 <xs:simpleType name="CardholderVerificationCapability1Code">
329 <xs:restriction base="xs:string">
330 <xs:enumeration value="MNSG"/>
331 <xs:enumeration value="NPIN"/>
332 <xs:enumeration value="FCPN"/>
333 <xs:enumeration value="FEPN"/>
334 <xs:enumeration value="FDSG"/>
335 <xs:enumeration value="FBIO"/>
336 <xs:enumeration value="MNVR"/>
337 <xs:enumeration value="FBIG"/>
338 <xs:enumeration value="APKI"/>
339 <xs:enumeration value="PKIS"/>
340 <xs:enumeration value="CHDT"/>
341 <xs:enumeration value="SCEC"/>
342 </xs:restriction>
343 </xs:simpleType>
344 <xs:complexType name="CashAccount24">
345 <xs:sequence>
346 <xs:element name="Id" type="AccountIdentification4Choice"/>
347 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CashAccountType2Choice"/>
348 <xs:element maxOccurs="1" minOccurs="0" name="Ccy" type="ActiveOrHistoricCurrencyCode"/>
349 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max70Text"/>
350 </xs:sequence>
351 </xs:complexType>
352 <xs:complexType name="CashAccount25">
353 <xs:sequence>
354 <xs:element name="Id" type="AccountIdentification4Choice"/>
355 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CashAccountType2Choice"/>
356 <xs:element maxOccurs="1" minOccurs="0" name="Ccy" type="ActiveOrHistoricCurrencyCode"/>
357 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max70Text"/>
358 <xs:element maxOccurs="1" minOccurs="0" name="Ownr" type="PartyIdentification43"/>
359 <xs:element maxOccurs="1" minOccurs="0" name="Svcr" type="BranchAndFinancialInstitutionIdentification5"/>
360 </xs:sequence>
361 </xs:complexType>
362 <xs:complexType name="CashAccountType2Choice">
363 <xs:sequence>
364 <xs:choice>
365 <xs:element name="Cd" type="ExternalCashAccountType1Code"/>
366 <xs:element name="Prtry" type="Max35Text"/>
367 </xs:choice>
368 </xs:sequence>
369 </xs:complexType>
370 <xs:complexType name="CashBalance3">
371 <xs:sequence>
372 <xs:element name="Tp" type="BalanceType12"/>
373 <xs:element maxOccurs="1" minOccurs="0" name="CdtLine" type="CreditLine2"/>
374 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
375 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
376 <xs:element name="Dt" type="DateAndDateTimeChoice"/>
377 <xs:element maxOccurs="unbounded" minOccurs="0" name="Avlbty" type="CashBalanceAvailability2"/>
378 </xs:sequence>
379 </xs:complexType>
380 <xs:complexType name="CashBalanceAvailability2">
381 <xs:sequence>
382 <xs:element name="Dt" type="CashBalanceAvailabilityDate1"/>
383 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
384 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
385 </xs:sequence>
386 </xs:complexType>
387 <xs:complexType name="CashBalanceAvailabilityDate1">
388 <xs:sequence>
389 <xs:choice>
390 <xs:element name="NbOfDays" type="Max15PlusSignedNumericText"/>
391 <xs:element name="ActlDt" type="ISODate"/>
392 </xs:choice>
393 </xs:sequence>
394 </xs:complexType>
395 <xs:complexType name="CashDeposit1">
396 <xs:sequence>
397 <xs:element name="NoteDnmtn" type="ActiveCurrencyAndAmount"/>
398 <xs:element name="NbOfNotes" type="Max15NumericText"/>
399 <xs:element name="Amt" type="ActiveCurrencyAndAmount"/>
400 </xs:sequence>
401 </xs:complexType>
402 <xs:simpleType name="ChargeBearerType1Code">
403 <xs:restriction base="xs:string">
404 <xs:enumeration value="DEBT"/>
405 <xs:enumeration value="CRED"/>
406 <xs:enumeration value="SHAR"/>
407 <xs:enumeration value="SLEV"/>
408 </xs:restriction>
409 </xs:simpleType>
410 <xs:complexType name="ChargeType3Choice">
411 <xs:sequence>
412 <xs:choice>
413 <xs:element name="Cd" type="ExternalChargeType1Code"/>
414 <xs:element name="Prtry" type="GenericIdentification3"/>
415 </xs:choice>
416 </xs:sequence>
417 </xs:complexType>
418 <xs:complexType name="Charges3">
419 <xs:sequence>
420 <xs:element maxOccurs="1" minOccurs="0" name="TtlChrgsAndTaxAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
421 <xs:element maxOccurs="unbounded" minOccurs="0" name="Rcrd" type="ChargesRecord1"/>
422 </xs:sequence>
423 </xs:complexType>
424 <xs:complexType name="ChargesRecord1">
425 <xs:sequence>
426 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
427 <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
428 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="ChargeType3Choice"/>
429 <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="PercentageRate"/>
430 <xs:element maxOccurs="1" minOccurs="0" name="Br" type="ChargeBearerType1Code"/>
431 <xs:element maxOccurs="1" minOccurs="0" name="Agt" type="BranchAndFinancialInstitutionIdentification5"/>
432 <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxCharges2"/>
433 </xs:sequence>
434 </xs:complexType>
435 <xs:complexType name="ClearingSystemIdentification2Choice">
436 <xs:sequence>
437 <xs:choice>
438 <xs:element name="Cd" type="ExternalClearingSystemIdentification1Code"/>
439 <xs:element name="Prtry" type="Max35Text"/>
440 </xs:choice>
441 </xs:sequence>
442 </xs:complexType>
443 <xs:complexType name="ClearingSystemMemberIdentification2">
444 <xs:sequence>
445 <xs:element maxOccurs="1" minOccurs="0" name="ClrSysId" type="ClearingSystemIdentification2Choice"/>
446 <xs:element name="MmbId" type="Max35Text"/>
447 </xs:sequence>
448 </xs:complexType>
449 <xs:complexType name="ContactDetails2">
450 <xs:sequence>
451 <xs:element maxOccurs="1" minOccurs="0" name="NmPrfx" type="NamePrefix1Code"/>
452 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
453 <xs:element maxOccurs="1" minOccurs="0" name="PhneNb" type="PhoneNumber"/>
454 <xs:element maxOccurs="1" minOccurs="0" name="MobNb" type="PhoneNumber"/>
455 <xs:element maxOccurs="1" minOccurs="0" name="FaxNb" type="PhoneNumber"/>
456 <xs:element maxOccurs="1" minOccurs="0" name="EmailAdr" type="Max2048Text"/>
457 <xs:element maxOccurs="1" minOccurs="0" name="Othr" type="Max35Text"/>
458 </xs:sequence>
459 </xs:complexType>
460 <xs:simpleType name="CopyDuplicate1Code">
461 <xs:restriction base="xs:string">
462 <xs:enumeration value="CODU"/>
463 <xs:enumeration value="COPY"/>
464 <xs:enumeration value="DUPL"/>
465 </xs:restriction>
466 </xs:simpleType>
467 <xs:complexType name="CorporateAction9">
468 <xs:sequence>
469 <xs:element name="EvtTp" type="Max35Text"/>
470 <xs:element name="EvtId" type="Max35Text"/>
471 </xs:sequence>
472 </xs:complexType>
473 <xs:simpleType name="CountryCode">
474 <xs:restriction base="xs:string">
475 <xs:pattern value="[A-Z]{2,2}"/>
476 </xs:restriction>
477 </xs:simpleType>
478 <xs:simpleType name="CreditDebitCode">
479 <xs:restriction base="xs:string">
480 <xs:enumeration value="CRDT"/>
481 <xs:enumeration value="DBIT"/>
482 </xs:restriction>
483 </xs:simpleType>
484 <xs:complexType name="CreditLine2">
485 <xs:sequence>
486 <xs:element name="Incl" type="TrueFalseIndicator"/>
487 <xs:element maxOccurs="1" minOccurs="0" name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
488 </xs:sequence>
489 </xs:complexType>
490 <xs:complexType name="CreditorReferenceInformation2">
491 <xs:sequence>
492 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CreditorReferenceType2"/>
493 <xs:element maxOccurs="1" minOccurs="0" name="Ref" type="Max35Text"/>
494 </xs:sequence>
495 </xs:complexType>
496 <xs:complexType name="CreditorReferenceType1Choice">
497 <xs:sequence>
498 <xs:choice>
499 <xs:element name="Cd" type="DocumentType3Code"/>
500 <xs:element name="Prtry" type="Max35Text"/>
501 </xs:choice>
502 </xs:sequence>
503 </xs:complexType>
504 <xs:complexType name="CreditorReferenceType2">
505 <xs:sequence>
506 <xs:element name="CdOrPrtry" type="CreditorReferenceType1Choice"/>
507 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
508 </xs:sequence>
509 </xs:complexType>
510 <xs:complexType name="CurrencyAndAmountRange2">
511 <xs:sequence>
512 <xs:element name="Amt" type="ImpliedCurrencyAmountRangeChoice"/>
513 <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
514 <xs:element name="Ccy" type="ActiveOrHistoricCurrencyCode"/>
515 </xs:sequence>
516 </xs:complexType>
517 <xs:complexType name="CurrencyExchange5">
518 <xs:sequence>
519 <xs:element name="SrcCcy" type="ActiveOrHistoricCurrencyCode"/>
520 <xs:element maxOccurs="1" minOccurs="0" name="TrgtCcy" type="ActiveOrHistoricCurrencyCode"/>
521 <xs:element maxOccurs="1" minOccurs="0" name="UnitCcy" type="ActiveOrHistoricCurrencyCode"/>
522 <xs:element name="XchgRate" type="BaseOneRate"/>
523 <xs:element maxOccurs="1" minOccurs="0" name="CtrctId" type="Max35Text"/>
524 <xs:element maxOccurs="1" minOccurs="0" name="QtnDt" type="ISODateTime"/>
525 </xs:sequence>
526 </xs:complexType>
527 <xs:complexType name="DateAndDateTimeChoice">
528 <xs:sequence>
529 <xs:choice>
530 <xs:element name="Dt" type="ISODate"/>
531 <xs:element name="DtTm" type="ISODateTime"/>
532 </xs:choice>
533 </xs:sequence>
534 </xs:complexType>
535 <xs:complexType name="DateAndPlaceOfBirth">
536 <xs:sequence>
537 <xs:element name="BirthDt" type="ISODate"/>
538 <xs:element maxOccurs="1" minOccurs="0" name="PrvcOfBirth" type="Max35Text"/>
539 <xs:element name="CityOfBirth" type="Max35Text"/>
540 <xs:element name="CtryOfBirth" type="CountryCode"/>
541 </xs:sequence>
542 </xs:complexType>
543 <xs:complexType name="DateOrDateTimePeriodChoice">
544 <xs:sequence>
545 <xs:choice>
546 <xs:element name="Dt" type="DatePeriodDetails"/>
547 <xs:element name="DtTm" type="DateTimePeriodDetails"/>
548 </xs:choice>
549 </xs:sequence>
550 </xs:complexType>
551 <xs:complexType name="DatePeriodDetails">
552 <xs:sequence>
553 <xs:element name="FrDt" type="ISODate"/>
554 <xs:element name="ToDt" type="ISODate"/>
555 </xs:sequence>
556 </xs:complexType>
557 <xs:complexType name="DateTimePeriodDetails">
558 <xs:sequence>
559 <xs:element name="FrDtTm" type="ISODateTime"/>
560 <xs:element name="ToDtTm" type="ISODateTime"/>
561 </xs:sequence>
562 </xs:complexType>
563 <xs:simpleType name="DecimalNumber">
564 <xs:restriction base="xs:decimal">
565 <xs:fractionDigits value="17"/>
566 <xs:totalDigits value="18"/>
567 </xs:restriction>
568 </xs:simpleType>
569 <xs:complexType name="DiscountAmountAndType1">
570 <xs:sequence>
571 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="DiscountAmountType1Choice"/>
572 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
573 </xs:sequence>
574 </xs:complexType>
575 <xs:complexType name="DiscountAmountType1Choice">
576 <xs:sequence>
577 <xs:choice>
578 <xs:element name="Cd" type="ExternalDiscountAmountType1Code"/>
579 <xs:element name="Prtry" type="Max35Text"/>
580 </xs:choice>
581 </xs:sequence>
582 </xs:complexType>
583 <xs:complexType name="DisplayCapabilities1">
584 <xs:sequence>
585 <xs:element name="DispTp" type="UserInterface2Code"/>
586 <xs:element name="NbOfLines" type="Max3NumericText"/>
587 <xs:element name="LineWidth" type="Max3NumericText"/>
588 </xs:sequence>
589 </xs:complexType>
590 <xs:complexType name="Document">
591 <xs:sequence>
592 <xs:element name="BkToCstmrAcctRpt" type="BankToCustomerAccountReportV03"/>
593 </xs:sequence>
594 </xs:complexType>
595 <xs:complexType name="DocumentAdjustment1">
596 <xs:sequence>
597 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
598 <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
599 <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="Max4Text"/>
600 <xs:element maxOccurs="1" minOccurs="0" name="AddtlInf" type="Max140Text"/>
601 </xs:sequence>
602 </xs:complexType>
603 <xs:simpleType name="DocumentType3Code">
604 <xs:restriction base="xs:string">
605 <xs:enumeration value="RADM"/>
606 <xs:enumeration value="RPIN"/>
607 <xs:enumeration value="FXDR"/>
608 <xs:enumeration value="DISP"/>
609 <xs:enumeration value="PUOR"/>
610 <xs:enumeration value="SCOR"/>
611 </xs:restriction>
612 </xs:simpleType>
613 <xs:simpleType name="DocumentType5Code">
614 <xs:restriction base="xs:string">
615 <xs:enumeration value="MSIN"/>
616 <xs:enumeration value="CNFA"/>
617 <xs:enumeration value="DNFA"/>
618 <xs:enumeration value="CINV"/>
619 <xs:enumeration value="CREN"/>
620 <xs:enumeration value="DEBN"/>
621 <xs:enumeration value="HIRI"/>
622 <xs:enumeration value="SBIN"/>
623 <xs:enumeration value="CMCN"/>
624 <xs:enumeration value="SOAC"/>
625 <xs:enumeration value="DISP"/>
626 <xs:enumeration value="BOLD"/>
627 <xs:enumeration value="VCHR"/>
628 <xs:enumeration value="AROI"/>
629 <xs:enumeration value="TSUT"/>
630 </xs:restriction>
631 </xs:simpleType>
632 <xs:complexType name="EntryDetails2">
633 <xs:sequence>
634 <xs:element maxOccurs="1" minOccurs="0" name="Btch" type="BatchInformation2"/>
635 <xs:element maxOccurs="unbounded" minOccurs="0" name="TxDtls" type="EntryTransaction3"/>
636 </xs:sequence>
637 </xs:complexType>
638 <xs:simpleType name="EntryStatus2Code">
639 <xs:restriction base="xs:string">
640 <xs:enumeration value="BOOK"/>
641 <xs:enumeration value="PDNG"/>
642 <xs:enumeration value="INFO"/>
643 </xs:restriction>
644 </xs:simpleType>
645 <xs:complexType name="EntryTransaction3">
646 <xs:sequence>
647 <xs:element maxOccurs="1" minOccurs="0" name="Refs" type="TransactionReferences3"/>
648 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
649 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
650 <xs:element maxOccurs="1" minOccurs="0" name="AmtDtls" type="AmountAndCurrencyExchange3"/>
651 <xs:element maxOccurs="unbounded" minOccurs="0" name="Avlbty" type="CashBalanceAvailability2"/>
652 <xs:element maxOccurs="1" minOccurs="0" name="BkTxCd" type="BankTransactionCodeStructure4"/>
653 <xs:element maxOccurs="unbounded" minOccurs="0" name="Chrgs" type="Charges3"/>
654 <xs:element maxOccurs="unbounded" minOccurs="0" name="Intrst" type="TransactionInterest3"/>
655 <xs:element maxOccurs="1" minOccurs="0" name="RltdPties" type="TransactionParties3"/>
656 <xs:element maxOccurs="1" minOccurs="0" name="RltdAgts" type="TransactionAgents3"/>
657 <xs:element maxOccurs="1" minOccurs="0" name="Purp" type="Purpose2Choice"/>
658 <xs:element maxOccurs="10" minOccurs="0" name="RltdRmtInf" type="RemittanceLocation2"/>
659 <xs:element maxOccurs="1" minOccurs="0" name="RmtInf" type="RemittanceInformation7"/>
660 <xs:element maxOccurs="1" minOccurs="0" name="RltdDts" type="TransactionDates2"/>
661 <xs:element maxOccurs="1" minOccurs="0" name="RltdPric" type="TransactionPrice3Choice"/>
662 <xs:element maxOccurs="unbounded" minOccurs="0" name="RltdQties" type="TransactionQuantities2Choice"/>
663 <xs:element maxOccurs="1" minOccurs="0" name="FinInstrmId" type="SecurityIdentification14"/>
664 <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxInformation3"/>
665 <xs:element maxOccurs="1" minOccurs="0" name="RtrInf" type="PaymentReturnReason2"/>
666 <xs:element maxOccurs="1" minOccurs="0" name="CorpActn" type="CorporateAction9"/>
667 <xs:element maxOccurs="1" minOccurs="0" name="SfkpgAcct" type="SecuritiesAccount13"/>
668 <xs:element maxOccurs="unbounded" minOccurs="0" name="CshDpst" type="CashDeposit1"/>
669 <xs:element maxOccurs="1" minOccurs="0" name="CardTx" type="CardTransaction1"/>
670 <xs:element maxOccurs="1" minOccurs="0" name="AddtlTxInf" type="Max500Text"/>
671 </xs:sequence>
672 </xs:complexType>
673 <xs:simpleType name="Exact1NumericText">
674 <xs:restriction base="xs:string">
675 <xs:pattern value="[0-9]"/>
676 </xs:restriction>
677 </xs:simpleType>
678 <xs:simpleType name="Exact3NumericText">
679 <xs:restriction base="xs:string">
680 <xs:pattern value="[0-9]{3}"/>
681 </xs:restriction>
682 </xs:simpleType>
683 <xs:simpleType name="Exact4AlphaNumericText">
684 <xs:restriction base="xs:string">
685 <xs:pattern value="[a-zA-Z0-9]{4}"/>
686 </xs:restriction>
687 </xs:simpleType>
688 <xs:simpleType name="ExternalAccountIdentification1Code">
689 <xs:restriction base="xs:string">
690 <xs:minLength value="1"/>
691 <xs:maxLength value="4"/>
692 </xs:restriction>
693 </xs:simpleType>
694 <xs:simpleType name="ExternalBalanceSubType1Code">
695 <xs:restriction base="xs:string">
696 <xs:minLength value="1"/>
697 <xs:maxLength value="4"/>
698 </xs:restriction>
699 </xs:simpleType>
700 <xs:simpleType name="ExternalBankTransactionDomain1Code">
701 <xs:restriction base="xs:string">
702 <xs:minLength value="1"/>
703 <xs:maxLength value="4"/>
704 </xs:restriction>
705 </xs:simpleType>
706 <xs:simpleType name="ExternalBankTransactionFamily1Code">
707 <xs:restriction base="xs:string">
708 <xs:minLength value="1"/>
709 <xs:maxLength value="4"/>
710 </xs:restriction>
711 </xs:simpleType>
712 <xs:simpleType name="ExternalBankTransactionSubFamily1Code">
713 <xs:restriction base="xs:string">
714 <xs:minLength value="1"/>
715 <xs:maxLength value="4"/>
716 </xs:restriction>
717 </xs:simpleType>
718 <xs:simpleType name="ExternalCardTransactionCategory1Code">
719 <xs:restriction base="xs:string">
720 <xs:minLength value="1"/>
721 <xs:maxLength value="4"/>
722 </xs:restriction>
723 </xs:simpleType>
724 <xs:simpleType name="ExternalCashAccountType1Code">
725 <xs:restriction base="xs:string">
726 <xs:minLength value="1"/>
727 <xs:maxLength value="4"/>
728 </xs:restriction>
729 </xs:simpleType>
730 <xs:simpleType name="ExternalChargeType1Code">
731 <xs:restriction base="xs:string">
732 <xs:minLength value="1"/>
733 <xs:maxLength value="4"/>
734 </xs:restriction>
735 </xs:simpleType>
736 <xs:simpleType name="ExternalClearingSystemIdentification1Code">
737 <xs:restriction base="xs:string">
738 <xs:minLength value="1"/>
739 <xs:maxLength value="5"/>
740 </xs:restriction>
741 </xs:simpleType>
742 <xs:simpleType name="ExternalDiscountAmountType1Code">
743 <xs:restriction base="xs:string">
744 <xs:minLength value="1"/>
745 <xs:maxLength value="4"/>
746 </xs:restriction>
747 </xs:simpleType>
748 <xs:simpleType name="ExternalFinancialInstitutionIdentification1Code">
749 <xs:restriction base="xs:string">
750 <xs:minLength value="1"/>
751 <xs:maxLength value="4"/>
752 </xs:restriction>
753 </xs:simpleType>
754 <xs:simpleType name="ExternalFinancialInstrumentIdentificationType1Code">
755 <xs:restriction base="xs:string">
756 <xs:minLength value="1"/>
757 <xs:maxLength value="4"/>
758 </xs:restriction>
759 </xs:simpleType>
760 <xs:simpleType name="ExternalOrganisationIdentification1Code">
761 <xs:restriction base="xs:string">
762 <xs:minLength value="1"/>
763 <xs:maxLength value="4"/>
764 </xs:restriction>
765 </xs:simpleType>
766 <xs:simpleType name="ExternalPersonIdentification1Code">
767 <xs:restriction base="xs:string">
768 <xs:minLength value="1"/>
769 <xs:maxLength value="4"/>
770 </xs:restriction>
771 </xs:simpleType>
772 <xs:simpleType name="ExternalPurpose1Code">
773 <xs:restriction base="xs:string">
774 <xs:minLength value="1"/>
775 <xs:maxLength value="4"/>
776 </xs:restriction>
777 </xs:simpleType>
778 <xs:simpleType name="ExternalReportingSource1Code">
779 <xs:restriction base="xs:string">
780 <xs:minLength value="1"/>
781 <xs:maxLength value="4"/>
782 </xs:restriction>
783 </xs:simpleType>
784 <xs:simpleType name="ExternalReturnReason1Code">
785 <xs:restriction base="xs:string">
786 <xs:minLength value="1"/>
787 <xs:maxLength value="4"/>
788 </xs:restriction>
789 </xs:simpleType>
790 <xs:simpleType name="ExternalTaxAmountType1Code">
791 <xs:restriction base="xs:string">
792 <xs:minLength value="1"/>
793 <xs:maxLength value="4"/>
794 </xs:restriction>
795 </xs:simpleType>
796 <xs:simpleType name="ExternalTechnicalInputChannel1Code">
797 <xs:restriction base="xs:string">
798 <xs:minLength value="1"/>
799 <xs:maxLength value="4"/>
800 </xs:restriction>
801 </xs:simpleType>
802 <xs:complexType name="FinancialIdentificationSchemeName1Choice">
803 <xs:sequence>
804 <xs:choice>
805 <xs:element name="Cd" type="ExternalFinancialInstitutionIdentification1Code"/>
806 <xs:element name="Prtry" type="Max35Text"/>
807 </xs:choice>
808 </xs:sequence>
809 </xs:complexType>
810 <xs:complexType name="FinancialInstitutionIdentification8">
811 <xs:sequence>
812 <xs:element maxOccurs="1" minOccurs="0" name="BICFI" type="BICFIIdentifier"/>
813 <xs:element maxOccurs="1" minOccurs="0" name="ClrSysMmbId" type="ClearingSystemMemberIdentification2"/>
814 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
815 <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress6"/>
816 <xs:element maxOccurs="1" minOccurs="0" name="Othr" type="GenericFinancialIdentification1"/>
817 </xs:sequence>
818 </xs:complexType>
819 <xs:complexType name="FinancialInstrumentQuantityChoice">
820 <xs:sequence>
821 <xs:choice>
822 <xs:element name="Unit" type="DecimalNumber"/>
823 <xs:element name="FaceAmt" type="ImpliedCurrencyAndAmount"/>
824 <xs:element name="AmtsdVal" type="ImpliedCurrencyAndAmount"/>
825 </xs:choice>
826 </xs:sequence>
827 </xs:complexType>
828 <xs:complexType name="FromToAmountRange">
829 <xs:sequence>
830 <xs:element name="FrAmt" type="AmountRangeBoundary1"/>
831 <xs:element name="ToAmt" type="AmountRangeBoundary1"/>
832 </xs:sequence>
833 </xs:complexType>
834 <xs:complexType name="GenericAccountIdentification1">
835 <xs:sequence>
836 <xs:element name="Id" type="Max34Text"/>
837 <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="AccountSchemeName1Choice"/>
838 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
839 </xs:sequence>
840 </xs:complexType>
841 <xs:complexType name="GenericFinancialIdentification1">
842 <xs:sequence>
843 <xs:element name="Id" type="Max35Text"/>
844 <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="FinancialIdentificationSchemeName1Choice"/>
845 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
846 </xs:sequence>
847 </xs:complexType>
848 <xs:complexType name="GenericIdentification1">
849 <xs:sequence>
850 <xs:element name="Id" type="Max35Text"/>
851 <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="Max35Text"/>
852 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
853 </xs:sequence>
854 </xs:complexType>
855 <xs:complexType name="GenericIdentification20">
856 <xs:sequence>
857 <xs:element name="Id" type="Exact4AlphaNumericText"/>
858 <xs:element name="Issr" type="Max35Text"/>
859 <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="Max35Text"/>
860 </xs:sequence>
861 </xs:complexType>
862 <xs:complexType name="GenericIdentification3">
863 <xs:sequence>
864 <xs:element name="Id" type="Max35Text"/>
865 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
866 </xs:sequence>
867 </xs:complexType>
868 <xs:complexType name="GenericIdentification32">
869 <xs:sequence>
870 <xs:element name="Id" type="Max35Text"/>
871 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="PartyType3Code"/>
872 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="PartyType4Code"/>
873 <xs:element maxOccurs="1" minOccurs="0" name="ShrtNm" type="Max35Text"/>
874 </xs:sequence>
875 </xs:complexType>
876 <xs:complexType name="GenericOrganisationIdentification1">
877 <xs:sequence>
878 <xs:element name="Id" type="Max35Text"/>
879 <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="OrganisationIdentificationSchemeName1Choice"/>
880 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
881 </xs:sequence>
882 </xs:complexType>
883 <xs:complexType name="GenericPersonIdentification1">
884 <xs:sequence>
885 <xs:element name="Id" type="Max35Text"/>
886 <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="PersonIdentificationSchemeName1Choice"/>
887 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
888 </xs:sequence>
889 </xs:complexType>
890 <xs:complexType name="GroupHeader58">
891 <xs:sequence>
892 <xs:element name="MsgId" type="Max35Text"/>
893 <xs:element name="CreDtTm" type="ISODateTime"/>
894 <xs:element maxOccurs="1" minOccurs="0" name="MsgRcpt" type="PartyIdentification43"/>
895 <xs:element maxOccurs="1" minOccurs="0" name="MsgPgntn" type="Pagination"/>
896 <xs:element maxOccurs="1" minOccurs="0" name="OrgnlBizQry" type="OriginalBusinessQuery1"/>
897 <xs:element maxOccurs="1" minOccurs="0" name="AddtlInf" type="Max500Text"/>
898 </xs:sequence>
899 </xs:complexType>
900 <xs:simpleType name="IBAN2007Identifier">
901 <xs:restriction base="xs:string">
902 <xs:pattern value="[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}"/>
903 </xs:restriction>
904 </xs:simpleType>
905 <xs:simpleType name="ISINIdentifier">
906 <xs:restriction base="xs:string">
907 <xs:pattern value="[A-Z0-9]{12,12}"/>
908 </xs:restriction>
909 </xs:simpleType>
910 <xs:simpleType name="ISODate">
911 <xs:restriction base="xs:date"/>
912 </xs:simpleType>
913 <xs:simpleType name="ISODateTime">
914 <xs:restriction base="xs:dateTime"/>
915 </xs:simpleType>
916 <xs:simpleType name="ISOYearMonth">
917 <xs:restriction base="xs:gYearMonth"/>
918 </xs:simpleType>
919 <xs:complexType name="IdentificationSource3Choice">
920 <xs:sequence>
921 <xs:choice>
922 <xs:element name="Cd" type="ExternalFinancialInstrumentIdentificationType1Code"/>
923 <xs:element name="Prtry" type="Max35Text"/>
924 </xs:choice>
925 </xs:sequence>
926 </xs:complexType>
927 <xs:complexType name="ImpliedCurrencyAmountRangeChoice">
928 <xs:sequence>
929 <xs:choice>
930 <xs:element name="FrAmt" type="AmountRangeBoundary1"/>
931 <xs:element name="ToAmt" type="AmountRangeBoundary1"/>
932 <xs:element name="FrToAmt" type="FromToAmountRange"/>
933 <xs:element name="EQAmt" type="ImpliedCurrencyAndAmount"/>
934 <xs:element name="NEQAmt" type="ImpliedCurrencyAndAmount"/>
935 </xs:choice>
936 </xs:sequence>
937 </xs:complexType>
938 <xs:simpleType name="ImpliedCurrencyAndAmount">
939 <xs:restriction base="xs:decimal">
940 <xs:fractionDigits value="5"/>
941 <xs:totalDigits value="18"/>
942 <xs:minInclusive value="0"/>
943 </xs:restriction>
944 </xs:simpleType>
945 <xs:complexType name="InterestRecord1">
946 <xs:sequence>
947 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
948 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
949 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="InterestType1Choice"/>
950 <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="Rate3"/>
951 <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DateTimePeriodDetails"/>
952 <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="Max35Text"/>
953 <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxCharges2"/>
954 </xs:sequence>
955 </xs:complexType>
956 <xs:complexType name="InterestType1Choice">
957 <xs:sequence>
958 <xs:choice>
959 <xs:element name="Cd" type="InterestType1Code"/>
960 <xs:element name="Prtry" type="Max35Text"/>
961 </xs:choice>
962 </xs:sequence>
963 </xs:complexType>
964 <xs:simpleType name="InterestType1Code">
965 <xs:restriction base="xs:string">
966 <xs:enumeration value="INDY"/>
967 <xs:enumeration value="OVRN"/>
968 </xs:restriction>
969 </xs:simpleType>
970 <xs:simpleType name="Max105Text">
971 <xs:restriction base="xs:string">
972 <xs:minLength value="1"/>
973 <xs:maxLength value="105"/>
974 </xs:restriction>
975 </xs:simpleType>
976 <xs:simpleType name="Max140Text">
977 <xs:restriction base="xs:string">
978 <xs:minLength value="1"/>
979 <xs:maxLength value="140"/>
980 </xs:restriction>
981 </xs:simpleType>
982 <xs:simpleType name="Max15NumericText">
983 <xs:restriction base="xs:string">
984 <xs:pattern value="[0-9]{1,15}"/>
985 </xs:restriction>
986 </xs:simpleType>
987 <xs:simpleType name="Max15PlusSignedNumericText">
988 <xs:restriction base="xs:string">
989 <xs:pattern value="[\+]{0,1}[0-9]{1,15}"/>
990 </xs:restriction>
991 </xs:simpleType>
992 <xs:simpleType name="Max16Text">
993 <xs:restriction base="xs:string">
994 <xs:minLength value="1"/>
995 <xs:maxLength value="16"/>
996 </xs:restriction>
997 </xs:simpleType>
998 <xs:simpleType name="Max2048Text">
999 <xs:restriction base="xs:string">
1000 <xs:minLength value="1"/>
1001 <xs:maxLength value="2048"/>
1002 </xs:restriction>
1003 </xs:simpleType>
1004 <xs:simpleType name="Max34Text">
1005 <xs:restriction base="xs:string">
1006 <xs:minLength value="1"/>
1007 <xs:maxLength value="34"/>
1008 </xs:restriction>
1009 </xs:simpleType>
1010 <xs:simpleType name="Max350Text">
1011 <xs:restriction base="xs:string">
1012 <xs:minLength value="1"/>
1013 <xs:maxLength value="350"/>
1014 </xs:restriction>
1015 </xs:simpleType>
1016 <xs:simpleType name="Max35Text">
1017 <xs:restriction base="xs:string">
1018 <xs:minLength value="1"/>
1019 <xs:maxLength value="35"/>
1020 </xs:restriction>
1021 </xs:simpleType>
1022 <xs:simpleType name="Max3NumericText">
1023 <xs:restriction base="xs:string">
1024 <xs:pattern value="[0-9]{1,3}"/>
1025 </xs:restriction>
1026 </xs:simpleType>
1027 <xs:simpleType name="Max4Text">
1028 <xs:restriction base="xs:string">
1029 <xs:minLength value="1"/>
1030 <xs:maxLength value="4"/>
1031 </xs:restriction>
1032 </xs:simpleType>
1033 <xs:simpleType name="Max500Text">
1034 <xs:restriction base="xs:string">
1035 <xs:minLength value="1"/>
1036 <xs:maxLength value="500"/>
1037 </xs:restriction>
1038 </xs:simpleType>
1039 <xs:simpleType name="Max5NumericText">
1040 <xs:restriction base="xs:string">
1041 <xs:pattern value="[0-9]{1,5}"/>
1042 </xs:restriction>
1043 </xs:simpleType>
1044 <xs:simpleType name="Max70Text">
1045 <xs:restriction base="xs:string">
1046 <xs:minLength value="1"/>
1047 <xs:maxLength value="70"/>
1048 </xs:restriction>
1049 </xs:simpleType>
1050 <xs:complexType name="MessageIdentification2">
1051 <xs:sequence>
1052 <xs:element maxOccurs="1" minOccurs="0" name="MsgNmId" type="Max35Text"/>
1053 <xs:element maxOccurs="1" minOccurs="0" name="MsgId" type="Max35Text"/>
1054 </xs:sequence>
1055 </xs:complexType>
1056 <xs:simpleType name="Min2Max3NumericText">
1057 <xs:restriction base="xs:string">
1058 <xs:pattern value="[0-9]{2,3}"/>
1059 </xs:restriction>
1060 </xs:simpleType>
1061 <xs:simpleType name="Min3Max4NumericText">
1062 <xs:restriction base="xs:string">
1063 <xs:pattern value="[0-9]{3,4}"/>
1064 </xs:restriction>
1065 </xs:simpleType>
1066 <xs:simpleType name="Min8Max28NumericText">
1067 <xs:restriction base="xs:string">
1068 <xs:pattern value="[0-9]{8,28}"/>
1069 </xs:restriction>
1070 </xs:simpleType>
1071 <xs:complexType name="NameAndAddress10">
1072 <xs:sequence>
1073 <xs:element name="Nm" type="Max140Text"/>
1074 <xs:element name="Adr" type="PostalAddress6"/>
1075 </xs:sequence>
1076 </xs:complexType>
1077 <xs:simpleType name="NamePrefix1Code">
1078 <xs:restriction base="xs:string">
1079 <xs:enumeration value="DOCT"/>
1080 <xs:enumeration value="MIST"/>
1081 <xs:enumeration value="MISS"/>
1082 <xs:enumeration value="MADM"/>
1083 </xs:restriction>
1084 </xs:simpleType>
1085 <xs:simpleType name="Number">
1086 <xs:restriction base="xs:decimal">
1087 <xs:fractionDigits value="0"/>
1088 <xs:totalDigits value="18"/>
1089 </xs:restriction>
1090 </xs:simpleType>
1091 <xs:complexType name="NumberAndSumOfTransactions1">
1092 <xs:sequence>
1093 <xs:element maxOccurs="1" minOccurs="0" name="NbOfNtries" type="Max15NumericText"/>
1094 <xs:element maxOccurs="1" minOccurs="0" name="Sum" type="DecimalNumber"/>
1095 </xs:sequence>
1096 </xs:complexType>
1097 <xs:complexType name="NumberAndSumOfTransactions3">
1098 <xs:sequence>
1099 <xs:element maxOccurs="1" minOccurs="0" name="NbOfNtries" type="Max15NumericText"/>
1100 <xs:element maxOccurs="1" minOccurs="0" name="Sum" type="DecimalNumber"/>
1101 <xs:element maxOccurs="1" minOccurs="0" name="TtlNetNtryAmt" type="DecimalNumber"/>
1102 <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
1103 </xs:sequence>
1104 </xs:complexType>
1105 <xs:simpleType name="OnLineCapability1Code">
1106 <xs:restriction base="xs:string">
1107 <xs:enumeration value="OFLN"/>
1108 <xs:enumeration value="ONLN"/>
1109 <xs:enumeration value="SMON"/>
1110 </xs:restriction>
1111 </xs:simpleType>
1112 <xs:complexType name="OrganisationIdentification8">
1113 <xs:sequence>
1114 <xs:element maxOccurs="1" minOccurs="0" name="AnyBIC" type="AnyBICIdentifier"/>
1115 <xs:element maxOccurs="unbounded" minOccurs="0" name="Othr" type="GenericOrganisationIdentification1"/>
1116 </xs:sequence>
1117 </xs:complexType>
1118 <xs:complexType name="OrganisationIdentificationSchemeName1Choice">
1119 <xs:sequence>
1120 <xs:choice>
1121 <xs:element name="Cd" type="ExternalOrganisationIdentification1Code"/>
1122 <xs:element name="Prtry" type="Max35Text"/>
1123 </xs:choice>
1124 </xs:sequence>
1125 </xs:complexType>
1126 <xs:complexType name="OriginalAndCurrentQuantities1">
1127 <xs:sequence>
1128 <xs:element name="FaceAmt" type="ImpliedCurrencyAndAmount"/>
1129 <xs:element name="AmtsdVal" type="ImpliedCurrencyAndAmount"/>
1130 </xs:sequence>
1131 </xs:complexType>
1132 <xs:complexType name="OriginalBusinessQuery1">
1133 <xs:sequence>
1134 <xs:element name="MsgId" type="Max35Text"/>
1135 <xs:element maxOccurs="1" minOccurs="0" name="MsgNmId" type="Max35Text"/>
1136 <xs:element maxOccurs="1" minOccurs="0" name="CreDtTm" type="ISODateTime"/>
1137 </xs:sequence>
1138 </xs:complexType>
1139 <xs:complexType name="OtherIdentification1">
1140 <xs:sequence>
1141 <xs:element name="Id" type="Max35Text"/>
1142 <xs:element maxOccurs="1" minOccurs="0" name="Sfx" type="Max16Text"/>
1143 <xs:element name="Tp" type="IdentificationSource3Choice"/>
1144 </xs:sequence>
1145 </xs:complexType>
1146 <xs:simpleType name="POIComponentType1Code">
1147 <xs:restriction base="xs:string">
1148 <xs:enumeration value="SOFT"/>
1149 <xs:enumeration value="EMVK"/>
1150 <xs:enumeration value="EMVO"/>
1151 <xs:enumeration value="MRIT"/>
1152 <xs:enumeration value="CHIT"/>
1153 <xs:enumeration value="SECM"/>
1154 <xs:enumeration value="PEDV"/>
1155 </xs:restriction>
1156 </xs:simpleType>
1157 <xs:complexType name="Pagination">
1158 <xs:sequence>
1159 <xs:element name="PgNb" type="Max5NumericText"/>
1160 <xs:element name="LastPgInd" type="YesNoIndicator"/>
1161 </xs:sequence>
1162 </xs:complexType>
1163 <xs:complexType name="Party11Choice">
1164 <xs:sequence>
1165 <xs:choice>
1166 <xs:element name="OrgId" type="OrganisationIdentification8"/>
1167 <xs:element name="PrvtId" type="PersonIdentification5"/>
1168 </xs:choice>
1169 </xs:sequence>
1170 </xs:complexType>
1171 <xs:complexType name="PartyIdentification43">
1172 <xs:sequence>
1173 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
1174 <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress6"/>
1175 <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Party11Choice"/>
1176 <xs:element maxOccurs="1" minOccurs="0" name="CtryOfRes" type="CountryCode"/>
1177 <xs:element maxOccurs="1" minOccurs="0" name="CtctDtls" type="ContactDetails2"/>
1178 </xs:sequence>
1179 </xs:complexType>
1180 <xs:simpleType name="PartyType3Code">
1181 <xs:restriction base="xs:string">
1182 <xs:enumeration value="OPOI"/>
1183 <xs:enumeration value="MERC"/>
1184 <xs:enumeration value="ACCP"/>
1185 <xs:enumeration value="ITAG"/>
1186 <xs:enumeration value="ACQR"/>
1187 <xs:enumeration value="CISS"/>
1188 <xs:enumeration value="DLIS"/>
1189 </xs:restriction>
1190 </xs:simpleType>
1191 <xs:simpleType name="PartyType4Code">
1192 <xs:restriction base="xs:string">
1193 <xs:enumeration value="MERC"/>
1194 <xs:enumeration value="ACCP"/>
1195 <xs:enumeration value="ITAG"/>
1196 <xs:enumeration value="ACQR"/>
1197 <xs:enumeration value="CISS"/>
1198 <xs:enumeration value="TAXH"/>
1199 </xs:restriction>
1200 </xs:simpleType>
1201 <xs:complexType name="PaymentCard4">
1202 <xs:sequence>
1203 <xs:element maxOccurs="1" minOccurs="0" name="PlainCardData" type="PlainCardData1"/>
1204 <xs:element maxOccurs="1" minOccurs="0" name="CardCtryCd" type="Exact3NumericText"/>
1205 <xs:element maxOccurs="1" minOccurs="0" name="CardBrnd" type="GenericIdentification1"/>
1206 <xs:element maxOccurs="1" minOccurs="0" name="AddtlCardData" type="Max70Text"/>
1207 </xs:sequence>
1208 </xs:complexType>
1209 <xs:complexType name="PaymentReturnReason2">
1210 <xs:sequence>
1211 <xs:element maxOccurs="1" minOccurs="0" name="OrgnlBkTxCd" type="BankTransactionCodeStructure4"/>
1212 <xs:element maxOccurs="1" minOccurs="0" name="Orgtr" type="PartyIdentification43"/>
1213 <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="ReturnReason5Choice"/>
1214 <xs:element maxOccurs="unbounded" minOccurs="0" name="AddtlInf" type="Max105Text"/>
1215 </xs:sequence>
1216 </xs:complexType>
1217 <xs:simpleType name="PercentageRate">
1218 <xs:restriction base="xs:decimal">
1219 <xs:fractionDigits value="10"/>
1220 <xs:totalDigits value="11"/>
1221 </xs:restriction>
1222 </xs:simpleType>
1223 <xs:complexType name="PersonIdentification5">
1224 <xs:sequence>
1225 <xs:element maxOccurs="1" minOccurs="0" name="DtAndPlcOfBirth" type="DateAndPlaceOfBirth"/>
1226 <xs:element maxOccurs="unbounded" minOccurs="0" name="Othr" type="GenericPersonIdentification1"/>
1227 </xs:sequence>
1228 </xs:complexType>
1229 <xs:complexType name="PersonIdentificationSchemeName1Choice">
1230 <xs:sequence>
1231 <xs:choice>
1232 <xs:element name="Cd" type="ExternalPersonIdentification1Code"/>
1233 <xs:element name="Prtry" type="Max35Text"/>
1234 </xs:choice>
1235 </xs:sequence>
1236 </xs:complexType>
1237 <xs:simpleType name="PhoneNumber">
1238 <xs:restriction base="xs:string">
1239 <xs:pattern value="\+[0-9]{1,3}-[0-9()+\-]{1,30}"/>
1240 </xs:restriction>
1241 </xs:simpleType>
1242 <xs:complexType name="PlainCardData1">
1243 <xs:sequence>
1244 <xs:element name="PAN" type="Min8Max28NumericText"/>
1245 <xs:element maxOccurs="1" minOccurs="0" name="CardSeqNb" type="Min2Max3NumericText"/>
1246 <xs:element maxOccurs="1" minOccurs="0" name="FctvDt" type="ISOYearMonth"/>
1247 <xs:element name="XpryDt" type="ISOYearMonth"/>
1248 <xs:element maxOccurs="1" minOccurs="0" name="SvcCd" type="Exact3NumericText"/>
1249 <xs:element maxOccurs="unbounded" minOccurs="0" name="TrckData" type="TrackData1"/>
1250 <xs:element maxOccurs="1" minOccurs="0" name="CardSctyCd" type="CardSecurityInformation1"/>
1251 </xs:sequence>
1252 </xs:complexType>
1253 <xs:complexType name="PointOfInteraction1">
1254 <xs:sequence>
1255 <xs:element name="Id" type="GenericIdentification32"/>
1256 <xs:element maxOccurs="1" minOccurs="0" name="SysNm" type="Max70Text"/>
1257 <xs:element maxOccurs="1" minOccurs="0" name="GrpId" type="Max35Text"/>
1258 <xs:element maxOccurs="1" minOccurs="0" name="Cpblties" type="PointOfInteractionCapabilities1"/>
1259 <xs:element maxOccurs="unbounded" minOccurs="0" name="Cmpnt" type="PointOfInteractionComponent1"/>
1260 </xs:sequence>
1261 </xs:complexType>
1262 <xs:complexType name="PointOfInteractionCapabilities1">
1263 <xs:sequence>
1264 <xs:element maxOccurs="unbounded" minOccurs="0" name="CardRdngCpblties" type="CardDataReading1Code"/>
1265 <xs:element maxOccurs="unbounded" minOccurs="0" name="CrdhldrVrfctnCpblties" type="CardholderVerificationCapability1Code"/>
1266 <xs:element maxOccurs="1" minOccurs="0" name="OnLineCpblties" type="OnLineCapability1Code"/>
1267 <xs:element maxOccurs="unbounded" minOccurs="0" name="DispCpblties" type="DisplayCapabilities1"/>
1268 <xs:element maxOccurs="1" minOccurs="0" name="PrtLineWidth" type="Max3NumericText"/>
1269 </xs:sequence>
1270 </xs:complexType>
1271 <xs:complexType name="PointOfInteractionComponent1">
1272 <xs:sequence>
1273 <xs:element name="POICmpntTp" type="POIComponentType1Code"/>
1274 <xs:element maxOccurs="1" minOccurs="0" name="ManfctrId" type="Max35Text"/>
1275 <xs:element maxOccurs="1" minOccurs="0" name="Mdl" type="Max35Text"/>
1276 <xs:element maxOccurs="1" minOccurs="0" name="VrsnNb" type="Max16Text"/>
1277 <xs:element maxOccurs="1" minOccurs="0" name="SrlNb" type="Max35Text"/>
1278 <xs:element maxOccurs="unbounded" minOccurs="0" name="ApprvlNb" type="Max70Text"/>
1279 </xs:sequence>
1280 </xs:complexType>
1281 <xs:complexType name="PostalAddress6">
1282 <xs:sequence>
1283 <xs:element maxOccurs="1" minOccurs="0" name="AdrTp" type="AddressType2Code"/>
1284 <xs:element maxOccurs="1" minOccurs="0" name="Dept" type="Max70Text"/>
1285 <xs:element maxOccurs="1" minOccurs="0" name="SubDept" type="Max70Text"/>
1286 <xs:element maxOccurs="1" minOccurs="0" name="StrtNm" type="Max70Text"/>
1287 <xs:element maxOccurs="1" minOccurs="0" name="BldgNb" type="Max16Text"/>
1288 <xs:element maxOccurs="1" minOccurs="0" name="PstCd" type="Max16Text"/>
1289 <xs:element maxOccurs="1" minOccurs="0" name="TwnNm" type="Max35Text"/>
1290 <xs:element maxOccurs="1" minOccurs="0" name="CtrySubDvsn" type="Max35Text"/>
1291 <xs:element maxOccurs="1" minOccurs="0" name="Ctry" type="CountryCode"/>
1292 <xs:element maxOccurs="7" minOccurs="0" name="AdrLine" type="Max70Text"/>
1293 </xs:sequence>
1294 </xs:complexType>
1295 <xs:complexType name="Price2">
1296 <xs:sequence>
1297 <xs:element name="Tp" type="YieldedOrValueType1Choice"/>
1298 <xs:element name="Val" type="PriceRateOrAmountChoice"/>
1299 </xs:sequence>
1300 </xs:complexType>
1301 <xs:complexType name="PriceRateOrAmountChoice">
1302 <xs:sequence>
1303 <xs:choice>
1304 <xs:element name="Rate" type="PercentageRate"/>
1305 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAnd13DecimalAmount"/>
1306 </xs:choice>
1307 </xs:sequence>
1308 </xs:complexType>
1309 <xs:simpleType name="PriceValueType1Code">
1310 <xs:restriction base="xs:string">
1311 <xs:enumeration value="DISC"/>
1312 <xs:enumeration value="PREM"/>
1313 <xs:enumeration value="PARV"/>
1314 </xs:restriction>
1315 </xs:simpleType>
1316 <xs:complexType name="Product2">
1317 <xs:sequence>
1318 <xs:element name="PdctCd" type="Max70Text"/>
1319 <xs:element maxOccurs="1" minOccurs="0" name="UnitOfMeasr" type="UnitOfMeasure1Code"/>
1320 <xs:element maxOccurs="1" minOccurs="0" name="PdctQty" type="DecimalNumber"/>
1321 <xs:element maxOccurs="1" minOccurs="0" name="UnitPric" type="ImpliedCurrencyAndAmount"/>
1322 <xs:element maxOccurs="1" minOccurs="0" name="PdctAmt" type="ImpliedCurrencyAndAmount"/>
1323 <xs:element maxOccurs="1" minOccurs="0" name="TaxTp" type="Max35Text"/>
1324 <xs:element maxOccurs="1" minOccurs="0" name="AddtlPdctInf" type="Max35Text"/>
1325 </xs:sequence>
1326 </xs:complexType>
1327 <xs:complexType name="ProprietaryAgent3">
1328 <xs:sequence>
1329 <xs:element name="Tp" type="Max35Text"/>
1330 <xs:element name="Agt" type="BranchAndFinancialInstitutionIdentification5"/>
1331 </xs:sequence>
1332 </xs:complexType>
1333 <xs:complexType name="ProprietaryBankTransactionCodeStructure1">
1334 <xs:sequence>
1335 <xs:element name="Cd" type="Max35Text"/>
1336 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
1337 </xs:sequence>
1338 </xs:complexType>
1339 <xs:complexType name="ProprietaryDate2">
1340 <xs:sequence>
1341 <xs:element name="Tp" type="Max35Text"/>
1342 <xs:element name="Dt" type="DateAndDateTimeChoice"/>
1343 </xs:sequence>
1344 </xs:complexType>
1345 <xs:complexType name="ProprietaryParty3">
1346 <xs:sequence>
1347 <xs:element name="Tp" type="Max35Text"/>
1348 <xs:element name="Pty" type="PartyIdentification43"/>
1349 </xs:sequence>
1350 </xs:complexType>
1351 <xs:complexType name="ProprietaryPrice2">
1352 <xs:sequence>
1353 <xs:element name="Tp" type="Max35Text"/>
1354 <xs:element name="Pric" type="ActiveOrHistoricCurrencyAndAmount"/>
1355 </xs:sequence>
1356 </xs:complexType>
1357 <xs:complexType name="ProprietaryQuantity1">
1358 <xs:sequence>
1359 <xs:element name="Tp" type="Max35Text"/>
1360 <xs:element name="Qty" type="Max35Text"/>
1361 </xs:sequence>
1362 </xs:complexType>
1363 <xs:complexType name="ProprietaryReference1">
1364 <xs:sequence>
1365 <xs:element name="Tp" type="Max35Text"/>
1366 <xs:element name="Ref" type="Max35Text"/>
1367 </xs:sequence>
1368 </xs:complexType>
1369 <xs:complexType name="Purpose2Choice">
1370 <xs:sequence>
1371 <xs:choice>
1372 <xs:element name="Cd" type="ExternalPurpose1Code"/>
1373 <xs:element name="Prtry" type="Max35Text"/>
1374 </xs:choice>
1375 </xs:sequence>
1376 </xs:complexType>
1377 <xs:complexType name="Rate3">
1378 <xs:sequence>
1379 <xs:element name="Tp" type="RateType4Choice"/>
1380 <xs:element maxOccurs="1" minOccurs="0" name="VldtyRg" type="CurrencyAndAmountRange2"/>
1381 </xs:sequence>
1382 </xs:complexType>
1383 <xs:complexType name="RateType4Choice">
1384 <xs:sequence>
1385 <xs:choice>
1386 <xs:element name="Pctg" type="PercentageRate"/>
1387 <xs:element name="Othr" type="Max35Text"/>
1388 </xs:choice>
1389 </xs:sequence>
1390 </xs:complexType>
1391 <xs:complexType name="ReferredDocumentInformation3">
1392 <xs:sequence>
1393 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="ReferredDocumentType2"/>
1394 <xs:element maxOccurs="1" minOccurs="0" name="Nb" type="Max35Text"/>
1395 <xs:element maxOccurs="1" minOccurs="0" name="RltdDt" type="ISODate"/>
1396 </xs:sequence>
1397 </xs:complexType>
1398 <xs:complexType name="ReferredDocumentType1Choice">
1399 <xs:sequence>
1400 <xs:choice>
1401 <xs:element name="Cd" type="DocumentType5Code"/>
1402 <xs:element name="Prtry" type="Max35Text"/>
1403 </xs:choice>
1404 </xs:sequence>
1405 </xs:complexType>
1406 <xs:complexType name="ReferredDocumentType2">
1407 <xs:sequence>
1408 <xs:element name="CdOrPrtry" type="ReferredDocumentType1Choice"/>
1409 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
1410 </xs:sequence>
1411 </xs:complexType>
1412 <xs:complexType name="RemittanceAmount2">
1413 <xs:sequence>
1414 <xs:element maxOccurs="1" minOccurs="0" name="DuePyblAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1415 <xs:element maxOccurs="unbounded" minOccurs="0" name="DscntApldAmt" type="DiscountAmountAndType1"/>
1416 <xs:element maxOccurs="1" minOccurs="0" name="CdtNoteAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1417 <xs:element maxOccurs="unbounded" minOccurs="0" name="TaxAmt" type="TaxAmountAndType1"/>
1418 <xs:element maxOccurs="unbounded" minOccurs="0" name="AdjstmntAmtAndRsn" type="DocumentAdjustment1"/>
1419 <xs:element maxOccurs="1" minOccurs="0" name="RmtdAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1420 </xs:sequence>
1421 </xs:complexType>
1422 <xs:complexType name="RemittanceInformation7">
1423 <xs:sequence>
1424 <xs:element maxOccurs="unbounded" minOccurs="0" name="Ustrd" type="Max140Text"/>
1425 <xs:element maxOccurs="unbounded" minOccurs="0" name="Strd" type="StructuredRemittanceInformation9"/>
1426 </xs:sequence>
1427 </xs:complexType>
1428 <xs:complexType name="RemittanceLocation2">
1429 <xs:sequence>
1430 <xs:element maxOccurs="1" minOccurs="0" name="RmtId" type="Max35Text"/>
1431 <xs:element maxOccurs="1" minOccurs="0" name="RmtLctnMtd" type="RemittanceLocationMethod2Code"/>
1432 <xs:element maxOccurs="1" minOccurs="0" name="RmtLctnElctrncAdr" type="Max2048Text"/>
1433 <xs:element maxOccurs="1" minOccurs="0" name="RmtLctnPstlAdr" type="NameAndAddress10"/>
1434 </xs:sequence>
1435 </xs:complexType>
1436 <xs:simpleType name="RemittanceLocationMethod2Code">
1437 <xs:restriction base="xs:string">
1438 <xs:enumeration value="FAXI"/>
1439 <xs:enumeration value="EDIC"/>
1440 <xs:enumeration value="URID"/>
1441 <xs:enumeration value="EMAL"/>
1442 <xs:enumeration value="POST"/>
1443 <xs:enumeration value="SMSM"/>
1444 </xs:restriction>
1445 </xs:simpleType>
1446 <xs:complexType name="ReportEntry3">
1447 <xs:sequence>
1448 <xs:element maxOccurs="1" minOccurs="0" name="NtryRef" type="Max35Text"/>
1449 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
1450 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
1451 <xs:element maxOccurs="1" minOccurs="0" name="RvslInd" type="TrueFalseIndicator"/>
1452 <xs:element name="Sts" type="EntryStatus2Code"/>
1453 <xs:element maxOccurs="1" minOccurs="0" name="BookgDt" type="DateAndDateTimeChoice"/>
1454 <xs:element maxOccurs="1" minOccurs="0" name="ValDt" type="DateAndDateTimeChoice"/>
1455 <xs:element maxOccurs="1" minOccurs="0" name="AcctSvcrRef" type="Max35Text"/>
1456 <xs:element maxOccurs="unbounded" minOccurs="0" name="Avlbty" type="CashBalanceAvailability2"/>
1457 <xs:element name="BkTxCd" type="BankTransactionCodeStructure4"/>
1458 <xs:element maxOccurs="1" minOccurs="0" name="ComssnWvrInd" type="YesNoIndicator"/>
1459 <xs:element maxOccurs="1" minOccurs="0" name="AddtlInfInd" type="MessageIdentification2"/>
1460 <xs:element maxOccurs="1" minOccurs="0" name="AmtDtls" type="AmountAndCurrencyExchange3"/>
1461 <xs:element maxOccurs="unbounded" minOccurs="0" name="Chrgs" type="Charges3"/>
1462 <xs:element maxOccurs="1" minOccurs="0" name="TechInptChanl" type="TechnicalInputChannel1Choice"/>
1463 <xs:element maxOccurs="unbounded" minOccurs="0" name="Intrst" type="TransactionInterest3"/>
1464 <xs:element maxOccurs="1" minOccurs="0" name="CardTx" type="CardEntry1"/>
1465 <xs:element maxOccurs="unbounded" minOccurs="0" name="NtryDtls" type="EntryDetails2"/>
1466 <xs:element maxOccurs="1" minOccurs="0" name="AddtlNtryInf" type="Max500Text"/>
1467 </xs:sequence>
1468 </xs:complexType>
1469 <xs:complexType name="ReportingSource1Choice">
1470 <xs:sequence>
1471 <xs:choice>
1472 <xs:element name="Cd" type="ExternalReportingSource1Code"/>
1473 <xs:element name="Prtry" type="Max35Text"/>
1474 </xs:choice>
1475 </xs:sequence>
1476 </xs:complexType>
1477 <xs:complexType name="ReturnReason5Choice">
1478 <xs:sequence>
1479 <xs:choice>
1480 <xs:element name="Cd" type="ExternalReturnReason1Code"/>
1481 <xs:element name="Prtry" type="Max35Text"/>
1482 </xs:choice>
1483 </xs:sequence>
1484 </xs:complexType>
1485 <xs:complexType name="SecuritiesAccount13">
1486 <xs:sequence>
1487 <xs:element name="Id" type="Max35Text"/>
1488 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="GenericIdentification20"/>
1489 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max70Text"/>
1490 </xs:sequence>
1491 </xs:complexType>
1492 <xs:complexType name="SecurityIdentification14">
1493 <xs:sequence>
1494 <xs:element maxOccurs="1" minOccurs="0" name="ISIN" type="ISINIdentifier"/>
1495 <xs:element maxOccurs="unbounded" minOccurs="0" name="OthrId" type="OtherIdentification1"/>
1496 <xs:element maxOccurs="1" minOccurs="0" name="Desc" type="Max140Text"/>
1497 </xs:sequence>
1498 </xs:complexType>
1499 <xs:complexType name="StructuredRemittanceInformation9">
1500 <xs:sequence>
1501 <xs:element maxOccurs="unbounded" minOccurs="0" name="RfrdDocInf" type="ReferredDocumentInformation3"/>
1502 <xs:element maxOccurs="1" minOccurs="0" name="RfrdDocAmt" type="RemittanceAmount2"/>
1503 <xs:element maxOccurs="1" minOccurs="0" name="CdtrRefInf" type="CreditorReferenceInformation2"/>
1504 <xs:element maxOccurs="1" minOccurs="0" name="Invcr" type="PartyIdentification43"/>
1505 <xs:element maxOccurs="1" minOccurs="0" name="Invcee" type="PartyIdentification43"/>
1506 <xs:element maxOccurs="3" minOccurs="0" name="AddtlRmtInf" type="Max140Text"/>
1507 </xs:sequence>
1508 </xs:complexType>
1509 <xs:complexType name="SupplementaryData1">
1510 <xs:sequence>
1511 <xs:element maxOccurs="1" minOccurs="0" name="PlcAndNm" type="Max350Text"/>
1512 <xs:element name="Envlp" type="SupplementaryDataEnvelope1"/>
1513 </xs:sequence>
1514 </xs:complexType>
1515 <xs:complexType name="SupplementaryDataEnvelope1">
1516 <xs:sequence>
1517 <xs:any namespace="##any" processContents="lax"/>
1518 </xs:sequence>
1519 </xs:complexType>
1520 <xs:complexType name="TaxAmount1">
1521 <xs:sequence>
1522 <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="PercentageRate"/>
1523 <xs:element maxOccurs="1" minOccurs="0" name="TaxblBaseAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1524 <xs:element maxOccurs="1" minOccurs="0" name="TtlAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1525 <xs:element maxOccurs="unbounded" minOccurs="0" name="Dtls" type="TaxRecordDetails1"/>
1526 </xs:sequence>
1527 </xs:complexType>
1528 <xs:complexType name="TaxAmountAndType1">
1529 <xs:sequence>
1530 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="TaxAmountType1Choice"/>
1531 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
1532 </xs:sequence>
1533 </xs:complexType>
1534 <xs:complexType name="TaxAmountType1Choice">
1535 <xs:sequence>
1536 <xs:choice>
1537 <xs:element name="Cd" type="ExternalTaxAmountType1Code"/>
1538 <xs:element name="Prtry" type="Max35Text"/>
1539 </xs:choice>
1540 </xs:sequence>
1541 </xs:complexType>
1542 <xs:complexType name="TaxAuthorisation1">
1543 <xs:sequence>
1544 <xs:element maxOccurs="1" minOccurs="0" name="Titl" type="Max35Text"/>
1545 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
1546 </xs:sequence>
1547 </xs:complexType>
1548 <xs:complexType name="TaxCharges2">
1549 <xs:sequence>
1550 <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Max35Text"/>
1551 <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="PercentageRate"/>
1552 <xs:element maxOccurs="1" minOccurs="0" name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
1553 </xs:sequence>
1554 </xs:complexType>
1555 <xs:complexType name="TaxInformation3">
1556 <xs:sequence>
1557 <xs:element maxOccurs="1" minOccurs="0" name="Cdtr" type="TaxParty1"/>
1558 <xs:element maxOccurs="1" minOccurs="0" name="Dbtr" type="TaxParty2"/>
1559 <xs:element maxOccurs="1" minOccurs="0" name="AdmstnZn" type="Max35Text"/>
1560 <xs:element maxOccurs="1" minOccurs="0" name="RefNb" type="Max140Text"/>
1561 <xs:element maxOccurs="1" minOccurs="0" name="Mtd" type="Max35Text"/>
1562 <xs:element maxOccurs="1" minOccurs="0" name="TtlTaxblBaseAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1563 <xs:element maxOccurs="1" minOccurs="0" name="TtlTaxAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1564 <xs:element maxOccurs="1" minOccurs="0" name="Dt" type="ISODate"/>
1565 <xs:element maxOccurs="1" minOccurs="0" name="SeqNb" type="Number"/>
1566 <xs:element maxOccurs="unbounded" minOccurs="0" name="Rcrd" type="TaxRecord1"/>
1567 </xs:sequence>
1568 </xs:complexType>
1569 <xs:complexType name="TaxParty1">
1570 <xs:sequence>
1571 <xs:element maxOccurs="1" minOccurs="0" name="TaxId" type="Max35Text"/>
1572 <xs:element maxOccurs="1" minOccurs="0" name="RegnId" type="Max35Text"/>
1573 <xs:element maxOccurs="1" minOccurs="0" name="TaxTp" type="Max35Text"/>
1574 </xs:sequence>
1575 </xs:complexType>
1576 <xs:complexType name="TaxParty2">
1577 <xs:sequence>
1578 <xs:element maxOccurs="1" minOccurs="0" name="TaxId" type="Max35Text"/>
1579 <xs:element maxOccurs="1" minOccurs="0" name="RegnId" type="Max35Text"/>
1580 <xs:element maxOccurs="1" minOccurs="0" name="TaxTp" type="Max35Text"/>
1581 <xs:element maxOccurs="1" minOccurs="0" name="Authstn" type="TaxAuthorisation1"/>
1582 </xs:sequence>
1583 </xs:complexType>
1584 <xs:complexType name="TaxPeriod1">
1585 <xs:sequence>
1586 <xs:element maxOccurs="1" minOccurs="0" name="Yr" type="ISODate"/>
1587 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="TaxRecordPeriod1Code"/>
1588 <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DatePeriodDetails"/>
1589 </xs:sequence>
1590 </xs:complexType>
1591 <xs:complexType name="TaxRecord1">
1592 <xs:sequence>
1593 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="Max35Text"/>
1594 <xs:element maxOccurs="1" minOccurs="0" name="Ctgy" type="Max35Text"/>
1595 <xs:element maxOccurs="1" minOccurs="0" name="CtgyDtls" type="Max35Text"/>
1596 <xs:element maxOccurs="1" minOccurs="0" name="DbtrSts" type="Max35Text"/>
1597 <xs:element maxOccurs="1" minOccurs="0" name="CertId" type="Max35Text"/>
1598 <xs:element maxOccurs="1" minOccurs="0" name="FrmsCd" type="Max35Text"/>
1599 <xs:element maxOccurs="1" minOccurs="0" name="Prd" type="TaxPeriod1"/>
1600 <xs:element maxOccurs="1" minOccurs="0" name="TaxAmt" type="TaxAmount1"/>
1601 <xs:element maxOccurs="1" minOccurs="0" name="AddtlInf" type="Max140Text"/>
1602 </xs:sequence>
1603 </xs:complexType>
1604 <xs:complexType name="TaxRecordDetails1">
1605 <xs:sequence>
1606 <xs:element maxOccurs="1" minOccurs="0" name="Prd" type="TaxPeriod1"/>
1607 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
1608 </xs:sequence>
1609 </xs:complexType>
1610 <xs:simpleType name="TaxRecordPeriod1Code">
1611 <xs:restriction base="xs:string">
1612 <xs:enumeration value="MM01"/>
1613 <xs:enumeration value="MM02"/>
1614 <xs:enumeration value="MM03"/>
1615 <xs:enumeration value="MM04"/>
1616 <xs:enumeration value="MM05"/>
1617 <xs:enumeration value="MM06"/>
1618 <xs:enumeration value="MM07"/>
1619 <xs:enumeration value="MM08"/>
1620 <xs:enumeration value="MM09"/>
1621 <xs:enumeration value="MM10"/>
1622 <xs:enumeration value="MM11"/>
1623 <xs:enumeration value="MM12"/>
1624 <xs:enumeration value="QTR1"/>
1625 <xs:enumeration value="QTR2"/>
1626 <xs:enumeration value="QTR3"/>
1627 <xs:enumeration value="QTR4"/>
1628 <xs:enumeration value="HLF1"/>
1629 <xs:enumeration value="HLF2"/>
1630 </xs:restriction>
1631 </xs:simpleType>
1632 <xs:complexType name="TechnicalInputChannel1Choice">
1633 <xs:sequence>
1634 <xs:choice>
1635 <xs:element name="Cd" type="ExternalTechnicalInputChannel1Code"/>
1636 <xs:element name="Prtry" type="Max35Text"/>
1637 </xs:choice>
1638 </xs:sequence>
1639 </xs:complexType>
1640 <xs:complexType name="TotalTransactions3">
1641 <xs:sequence>
1642 <xs:element maxOccurs="1" minOccurs="0" name="TtlNtries" type="NumberAndSumOfTransactions3"/>
1643 <xs:element maxOccurs="1" minOccurs="0" name="TtlCdtNtries" type="NumberAndSumOfTransactions1"/>
1644 <xs:element maxOccurs="1" minOccurs="0" name="TtlDbtNtries" type="NumberAndSumOfTransactions1"/>
1645 <xs:element maxOccurs="unbounded" minOccurs="0" name="TtlNtriesPerBkTxCd" type="TotalsPerBankTransactionCode2"/>
1646 </xs:sequence>
1647 </xs:complexType>
1648 <xs:complexType name="TotalsPerBankTransactionCode2">
1649 <xs:sequence>
1650 <xs:element maxOccurs="1" minOccurs="0" name="NbOfNtries" type="Max15NumericText"/>
1651 <xs:element maxOccurs="1" minOccurs="0" name="Sum" type="DecimalNumber"/>
1652 <xs:element maxOccurs="1" minOccurs="0" name="TtlNetNtryAmt" type="DecimalNumber"/>
1653 <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
1654 <xs:element maxOccurs="1" minOccurs="0" name="FcstInd" type="TrueFalseIndicator"/>
1655 <xs:element name="BkTxCd" type="BankTransactionCodeStructure4"/>
1656 <xs:element maxOccurs="unbounded" minOccurs="0" name="Avlbty" type="CashBalanceAvailability2"/>
1657 </xs:sequence>
1658 </xs:complexType>
1659 <xs:complexType name="TrackData1">
1660 <xs:sequence>
1661 <xs:element maxOccurs="1" minOccurs="0" name="TrckNb" type="Exact1NumericText"/>
1662 <xs:element name="TrckVal" type="Max140Text"/>
1663 </xs:sequence>
1664 </xs:complexType>
1665 <xs:complexType name="TransactionAgents3">
1666 <xs:sequence>
1667 <xs:element maxOccurs="1" minOccurs="0" name="DbtrAgt" type="BranchAndFinancialInstitutionIdentification5"/>
1668 <xs:element maxOccurs="1" minOccurs="0" name="CdtrAgt" type="BranchAndFinancialInstitutionIdentification5"/>
1669 <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt1" type="BranchAndFinancialInstitutionIdentification5"/>
1670 <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt2" type="BranchAndFinancialInstitutionIdentification5"/>
1671 <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt3" type="BranchAndFinancialInstitutionIdentification5"/>
1672 <xs:element maxOccurs="1" minOccurs="0" name="RcvgAgt" type="BranchAndFinancialInstitutionIdentification5"/>
1673 <xs:element maxOccurs="1" minOccurs="0" name="DlvrgAgt" type="BranchAndFinancialInstitutionIdentification5"/>
1674 <xs:element maxOccurs="1" minOccurs="0" name="IssgAgt" type="BranchAndFinancialInstitutionIdentification5"/>
1675 <xs:element maxOccurs="1" minOccurs="0" name="SttlmPlc" type="BranchAndFinancialInstitutionIdentification5"/>
1676 <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryAgent3"/>
1677 </xs:sequence>
1678 </xs:complexType>
1679 <xs:complexType name="TransactionDates2">
1680 <xs:sequence>
1681 <xs:element maxOccurs="1" minOccurs="0" name="AccptncDtTm" type="ISODateTime"/>
1682 <xs:element maxOccurs="1" minOccurs="0" name="TradActvtyCtrctlSttlmDt" type="ISODate"/>
1683 <xs:element maxOccurs="1" minOccurs="0" name="TradDt" type="ISODate"/>
1684 <xs:element maxOccurs="1" minOccurs="0" name="IntrBkSttlmDt" type="ISODate"/>
1685 <xs:element maxOccurs="1" minOccurs="0" name="StartDt" type="ISODate"/>
1686 <xs:element maxOccurs="1" minOccurs="0" name="EndDt" type="ISODate"/>
1687 <xs:element maxOccurs="1" minOccurs="0" name="TxDtTm" type="ISODateTime"/>
1688 <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryDate2"/>
1689 </xs:sequence>
1690 </xs:complexType>
1691 <xs:complexType name="TransactionIdentifier1">
1692 <xs:sequence>
1693 <xs:element name="TxDtTm" type="ISODateTime"/>
1694 <xs:element name="TxRef" type="Max35Text"/>
1695 </xs:sequence>
1696 </xs:complexType>
1697 <xs:complexType name="TransactionInterest3">
1698 <xs:sequence>
1699 <xs:element maxOccurs="1" minOccurs="0" name="TtlIntrstAndTaxAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1700 <xs:element maxOccurs="unbounded" minOccurs="0" name="Rcrd" type="InterestRecord1"/>
1701 </xs:sequence>
1702 </xs:complexType>
1703 <xs:complexType name="TransactionParties3">
1704 <xs:sequence>
1705 <xs:element maxOccurs="1" minOccurs="0" name="InitgPty" type="PartyIdentification43"/>
1706 <xs:element maxOccurs="1" minOccurs="0" name="Dbtr" type="PartyIdentification43"/>
1707 <xs:element maxOccurs="1" minOccurs="0" name="DbtrAcct" type="CashAccount24"/>
1708 <xs:element maxOccurs="1" minOccurs="0" name="UltmtDbtr" type="PartyIdentification43"/>
1709 <xs:element maxOccurs="1" minOccurs="0" name="Cdtr" type="PartyIdentification43"/>
1710 <xs:element maxOccurs="1" minOccurs="0" name="CdtrAcct" type="CashAccount24"/>
1711 <xs:element maxOccurs="1" minOccurs="0" name="UltmtCdtr" type="PartyIdentification43"/>
1712 <xs:element maxOccurs="1" minOccurs="0" name="TradgPty" type="PartyIdentification43"/>
1713 <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryParty3"/>
1714 </xs:sequence>
1715 </xs:complexType>
1716 <xs:complexType name="TransactionPrice3Choice">
1717 <xs:sequence>
1718 <xs:choice>
1719 <xs:element name="DealPric" type="Price2"/>
1720 <xs:element maxOccurs="unbounded" minOccurs="1" name="Prtry" type="ProprietaryPrice2"/>
1721 </xs:choice>
1722 </xs:sequence>
1723 </xs:complexType>
1724 <xs:complexType name="TransactionQuantities2Choice">
1725 <xs:sequence>
1726 <xs:choice>
1727 <xs:element name="Qty" type="FinancialInstrumentQuantityChoice"/>
1728 <xs:element name="OrgnlAndCurFaceAmt" type="OriginalAndCurrentQuantities1"/>
1729 <xs:element name="Prtry" type="ProprietaryQuantity1"/>
1730 </xs:choice>
1731 </xs:sequence>
1732 </xs:complexType>
1733 <xs:complexType name="TransactionReferences3">
1734 <xs:sequence>
1735 <xs:element maxOccurs="1" minOccurs="0" name="MsgId" type="Max35Text"/>
1736 <xs:element maxOccurs="1" minOccurs="0" name="AcctSvcrRef" type="Max35Text"/>
1737 <xs:element maxOccurs="1" minOccurs="0" name="PmtInfId" type="Max35Text"/>
1738 <xs:element maxOccurs="1" minOccurs="0" name="InstrId" type="Max35Text"/>
1739 <xs:element maxOccurs="1" minOccurs="0" name="EndToEndId" type="Max35Text"/>
1740 <xs:element maxOccurs="1" minOccurs="0" name="TxId" type="Max35Text"/>
1741 <xs:element maxOccurs="1" minOccurs="0" name="MndtId" type="Max35Text"/>
1742 <xs:element maxOccurs="1" minOccurs="0" name="ChqNb" type="Max35Text"/>
1743 <xs:element maxOccurs="1" minOccurs="0" name="ClrSysRef" type="Max35Text"/>
1744 <xs:element maxOccurs="1" minOccurs="0" name="AcctOwnrTxId" type="Max35Text"/>
1745 <xs:element maxOccurs="1" minOccurs="0" name="AcctSvcrTxId" type="Max35Text"/>
1746 <xs:element maxOccurs="1" minOccurs="0" name="MktInfrstrctrTxId" type="Max35Text"/>
1747 <xs:element maxOccurs="1" minOccurs="0" name="PrcgId" type="Max35Text"/>
1748 <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryReference1"/>
1749 </xs:sequence>
1750 </xs:complexType>
1751 <xs:simpleType name="TrueFalseIndicator">
1752 <xs:restriction base="xs:boolean"/>
1753 </xs:simpleType>
1754 <xs:simpleType name="UnitOfMeasure1Code">
1755 <xs:restriction base="xs:string">
1756 <xs:enumeration value="PIEC"/>
1757 <xs:enumeration value="TONS"/>
1758 <xs:enumeration value="FOOT"/>
1759 <xs:enumeration value="GBGA"/>
1760 <xs:enumeration value="USGA"/>
1761 <xs:enumeration value="GRAM"/>
1762 <xs:enumeration value="INCH"/>
1763 <xs:enumeration value="KILO"/>
1764 <xs:enumeration value="PUND"/>
1765 <xs:enumeration value="METR"/>
1766 <xs:enumeration value="CMET"/>
1767 <xs:enumeration value="MMET"/>
1768 <xs:enumeration value="LITR"/>
1769 <xs:enumeration value="CELI"/>
1770 <xs:enumeration value="MILI"/>
1771 <xs:enumeration value="GBOU"/>
1772 <xs:enumeration value="USOU"/>
1773 <xs:enumeration value="GBQA"/>
1774 <xs:enumeration value="USQA"/>
1775 <xs:enumeration value="GBPI"/>
1776 <xs:enumeration value="USPI"/>
1777 <xs:enumeration value="MILE"/>
1778 <xs:enumeration value="KMET"/>
1779 <xs:enumeration value="YARD"/>
1780 <xs:enumeration value="SQKI"/>
1781 <xs:enumeration value="HECT"/>
1782 <xs:enumeration value="ARES"/>
1783 <xs:enumeration value="SMET"/>
1784 <xs:enumeration value="SCMT"/>
1785 <xs:enumeration value="SMIL"/>
1786 <xs:enumeration value="SQMI"/>
1787 <xs:enumeration value="SQYA"/>
1788 <xs:enumeration value="SQFO"/>
1789 <xs:enumeration value="SQIN"/>
1790 <xs:enumeration value="ACRE"/>
1791 </xs:restriction>
1792 </xs:simpleType>
1793 <xs:simpleType name="UserInterface2Code">
1794 <xs:restriction base="xs:string">
1795 <xs:enumeration value="MDSP"/>
1796 <xs:enumeration value="CDSP"/>
1797 </xs:restriction>
1798 </xs:simpleType>
1799 <xs:simpleType name="YesNoIndicator">
1800 <xs:restriction base="xs:boolean"/>
1801 </xs:simpleType>
1802 <xs:complexType name="YieldedOrValueType1Choice">
1803 <xs:sequence>
1804 <xs:choice>
1805 <xs:element name="Yldd" type="YesNoIndicator"/>
1806 <xs:element name="ValTp" type="PriceValueType1Code"/>
1807 </xs:choice>
1808 </xs:sequence>
1809 </xs:complexType>
1810 </xs:schema>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!--Generated by Standards Editor (build:R1.0.41.3) on 2013 Mar 05 13:39:36, ISO 20022 version : 2013-->
2 <xs:schema xmlns="urn:iso:std:iso:20022:tech:xsd:camt.052.001.04" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="urn:iso:std:iso:20022:tech:xsd:camt.052.001.04">
3 <xs:element name="Document" type="Document"/>
4 <xs:complexType name="AccountIdentification4Choice">
5 <xs:choice>
6 <xs:element name="IBAN" type="IBAN2007Identifier"/>
7 <xs:element name="Othr" type="GenericAccountIdentification1"/>
8 </xs:choice>
9 </xs:complexType>
10 <xs:complexType name="AccountInterest3">
11 <xs:sequence>
12 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="InterestType1Choice"/>
13 <xs:element maxOccurs="unbounded" minOccurs="0" name="Rate" type="Rate3"/>
14 <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DateTimePeriodDetails"/>
15 <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="Max35Text"/>
16 <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxCharges2"/>
17 </xs:sequence>
18 </xs:complexType>
19 <xs:complexType name="AccountReport16">
20 <xs:sequence>
21 <xs:element name="Id" type="Max35Text"/>
22 <xs:element maxOccurs="1" minOccurs="0" name="RptPgntn" type="Pagination"/>
23 <xs:element maxOccurs="1" minOccurs="0" name="ElctrncSeqNb" type="Number"/>
24 <xs:element maxOccurs="1" minOccurs="0" name="LglSeqNb" type="Number"/>
25 <xs:element name="CreDtTm" type="ISODateTime"/>
26 <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DateTimePeriodDetails"/>
27 <xs:element maxOccurs="1" minOccurs="0" name="CpyDplctInd" type="CopyDuplicate1Code"/>
28 <xs:element maxOccurs="1" minOccurs="0" name="RptgSrc" type="ReportingSource1Choice"/>
29 <xs:element name="Acct" type="CashAccount25"/>
30 <xs:element maxOccurs="1" minOccurs="0" name="RltdAcct" type="CashAccount24"/>
31 <xs:element maxOccurs="unbounded" minOccurs="0" name="Intrst" type="AccountInterest3"/>
32 <xs:element maxOccurs="unbounded" minOccurs="0" name="Bal" type="CashBalance3"/>
33 <xs:element maxOccurs="1" minOccurs="0" name="TxsSummry" type="TotalTransactions4"/>
34 <xs:element maxOccurs="unbounded" minOccurs="0" name="Ntry" type="ReportEntry4"/>
35 <xs:element maxOccurs="1" minOccurs="0" name="AddtlRptInf" type="Max500Text"/>
36 </xs:sequence>
37 </xs:complexType>
38 <xs:complexType name="AccountSchemeName1Choice">
39 <xs:choice>
40 <xs:element name="Cd" type="ExternalAccountIdentification1Code"/>
41 <xs:element name="Prtry" type="Max35Text"/>
42 </xs:choice>
43 </xs:complexType>
44 <xs:simpleType name="ActiveCurrencyAndAmount_SimpleType">
45 <xs:restriction base="xs:decimal">
46 <xs:fractionDigits value="5"/>
47 <xs:totalDigits value="18"/>
48 <xs:minInclusive value="0"/>
49 </xs:restriction>
50 </xs:simpleType>
51 <xs:complexType name="ActiveCurrencyAndAmount">
52 <xs:simpleContent>
53 <xs:extension base="ActiveCurrencyAndAmount_SimpleType">
54 <xs:attribute name="Ccy" type="ActiveCurrencyCode" use="required"/>
55 </xs:extension>
56 </xs:simpleContent>
57 </xs:complexType>
58 <xs:simpleType name="ActiveCurrencyCode">
59 <xs:restriction base="xs:string">
60 <xs:pattern value="[A-Z]{3,3}"/>
61 </xs:restriction>
62 </xs:simpleType>
63 <xs:simpleType name="ActiveOrHistoricCurrencyAnd13DecimalAmount_SimpleType">
64 <xs:restriction base="xs:decimal">
65 <xs:fractionDigits value="13"/>
66 <xs:totalDigits value="18"/>
67 <xs:minInclusive value="0"/>
68 </xs:restriction>
69 </xs:simpleType>
70 <xs:complexType name="ActiveOrHistoricCurrencyAnd13DecimalAmount">
71 <xs:simpleContent>
72 <xs:extension base="ActiveOrHistoricCurrencyAnd13DecimalAmount_SimpleType">
73 <xs:attribute name="Ccy" type="ActiveOrHistoricCurrencyCode" use="required"/>
74 </xs:extension>
75 </xs:simpleContent>
76 </xs:complexType>
77 <xs:simpleType name="ActiveOrHistoricCurrencyAndAmount_SimpleType">
78 <xs:restriction base="xs:decimal">
79 <xs:fractionDigits value="5"/>
80 <xs:totalDigits value="18"/>
81 <xs:minInclusive value="0"/>
82 </xs:restriction>
83 </xs:simpleType>
84 <xs:complexType name="ActiveOrHistoricCurrencyAndAmount">
85 <xs:simpleContent>
86 <xs:extension base="ActiveOrHistoricCurrencyAndAmount_SimpleType">
87 <xs:attribute name="Ccy" type="ActiveOrHistoricCurrencyCode" use="required"/>
88 </xs:extension>
89 </xs:simpleContent>
90 </xs:complexType>
91 <xs:simpleType name="ActiveOrHistoricCurrencyCode">
92 <xs:restriction base="xs:string">
93 <xs:pattern value="[A-Z]{3,3}"/>
94 </xs:restriction>
95 </xs:simpleType>
96 <xs:simpleType name="AddressType2Code">
97 <xs:restriction base="xs:string">
98 <xs:enumeration value="ADDR"/>
99 <xs:enumeration value="PBOX"/>
100 <xs:enumeration value="HOME"/>
101 <xs:enumeration value="BIZZ"/>
102 <xs:enumeration value="MLTO"/>
103 <xs:enumeration value="DLVY"/>
104 </xs:restriction>
105 </xs:simpleType>
106 <xs:complexType name="AmountAndCurrencyExchange3">
107 <xs:sequence>
108 <xs:element maxOccurs="1" minOccurs="0" name="InstdAmt" type="AmountAndCurrencyExchangeDetails3"/>
109 <xs:element maxOccurs="1" minOccurs="0" name="TxAmt" type="AmountAndCurrencyExchangeDetails3"/>
110 <xs:element maxOccurs="1" minOccurs="0" name="CntrValAmt" type="AmountAndCurrencyExchangeDetails3"/>
111 <xs:element maxOccurs="1" minOccurs="0" name="AnncdPstngAmt" type="AmountAndCurrencyExchangeDetails3"/>
112 <xs:element maxOccurs="unbounded" minOccurs="0" name="PrtryAmt" type="AmountAndCurrencyExchangeDetails4"/>
113 </xs:sequence>
114 </xs:complexType>
115 <xs:complexType name="AmountAndCurrencyExchangeDetails3">
116 <xs:sequence>
117 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
118 <xs:element maxOccurs="1" minOccurs="0" name="CcyXchg" type="CurrencyExchange5"/>
119 </xs:sequence>
120 </xs:complexType>
121 <xs:complexType name="AmountAndCurrencyExchangeDetails4">
122 <xs:sequence>
123 <xs:element name="Tp" type="Max35Text"/>
124 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
125 <xs:element maxOccurs="1" minOccurs="0" name="CcyXchg" type="CurrencyExchange5"/>
126 </xs:sequence>
127 </xs:complexType>
128 <xs:complexType name="AmountAndDirection35">
129 <xs:sequence>
130 <xs:element name="Amt" type="NonNegativeDecimalNumber"/>
131 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
132 </xs:sequence>
133 </xs:complexType>
134 <xs:complexType name="AmountRangeBoundary1">
135 <xs:sequence>
136 <xs:element name="BdryAmt" type="ImpliedCurrencyAndAmount"/>
137 <xs:element name="Incl" type="YesNoIndicator"/>
138 </xs:sequence>
139 </xs:complexType>
140 <xs:simpleType name="AnyBICIdentifier">
141 <xs:restriction base="xs:string">
142 <xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
143 </xs:restriction>
144 </xs:simpleType>
145 <xs:simpleType name="BICFIIdentifier">
146 <xs:restriction base="xs:string">
147 <xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
148 </xs:restriction>
149 </xs:simpleType>
150 <xs:complexType name="BalanceSubType1Choice">
151 <xs:choice>
152 <xs:element name="Cd" type="ExternalBalanceSubType1Code"/>
153 <xs:element name="Prtry" type="Max35Text"/>
154 </xs:choice>
155 </xs:complexType>
156 <xs:complexType name="BalanceType12">
157 <xs:sequence>
158 <xs:element name="CdOrPrtry" type="BalanceType5Choice"/>
159 <xs:element maxOccurs="1" minOccurs="0" name="SubTp" type="BalanceSubType1Choice"/>
160 </xs:sequence>
161 </xs:complexType>
162 <xs:simpleType name="BalanceType12Code">
163 <xs:restriction base="xs:string">
164 <xs:enumeration value="XPCD"/>
165 <xs:enumeration value="OPAV"/>
166 <xs:enumeration value="ITAV"/>
167 <xs:enumeration value="CLAV"/>
168 <xs:enumeration value="FWAV"/>
169 <xs:enumeration value="CLBD"/>
170 <xs:enumeration value="ITBD"/>
171 <xs:enumeration value="OPBD"/>
172 <xs:enumeration value="PRCD"/>
173 <xs:enumeration value="INFO"/>
174 </xs:restriction>
175 </xs:simpleType>
176 <xs:complexType name="BalanceType5Choice">
177 <xs:choice>
178 <xs:element name="Cd" type="BalanceType12Code"/>
179 <xs:element name="Prtry" type="Max35Text"/>
180 </xs:choice>
181 </xs:complexType>
182 <xs:complexType name="BankToCustomerAccountReportV04">
183 <xs:sequence>
184 <xs:element name="GrpHdr" type="GroupHeader58"/>
185 <xs:element maxOccurs="unbounded" minOccurs="1" name="Rpt" type="AccountReport16"/>
186 <xs:element maxOccurs="unbounded" minOccurs="0" name="SplmtryData" type="SupplementaryData1"/>
187 </xs:sequence>
188 </xs:complexType>
189 <xs:complexType name="BankTransactionCodeStructure4">
190 <xs:sequence>
191 <xs:element maxOccurs="1" minOccurs="0" name="Domn" type="BankTransactionCodeStructure5"/>
192 <xs:element maxOccurs="1" minOccurs="0" name="Prtry" type="ProprietaryBankTransactionCodeStructure1"/>
193 </xs:sequence>
194 </xs:complexType>
195 <xs:complexType name="BankTransactionCodeStructure5">
196 <xs:sequence>
197 <xs:element name="Cd" type="ExternalBankTransactionDomain1Code"/>
198 <xs:element name="Fmly" type="BankTransactionCodeStructure6"/>
199 </xs:sequence>
200 </xs:complexType>
201 <xs:complexType name="BankTransactionCodeStructure6">
202 <xs:sequence>
203 <xs:element name="Cd" type="ExternalBankTransactionFamily1Code"/>
204 <xs:element name="SubFmlyCd" type="ExternalBankTransactionSubFamily1Code"/>
205 </xs:sequence>
206 </xs:complexType>
207 <xs:simpleType name="BaseOneRate">
208 <xs:restriction base="xs:decimal">
209 <xs:fractionDigits value="10"/>
210 <xs:totalDigits value="11"/>
211 </xs:restriction>
212 </xs:simpleType>
213 <xs:complexType name="BatchInformation2">
214 <xs:sequence>
215 <xs:element maxOccurs="1" minOccurs="0" name="MsgId" type="Max35Text"/>
216 <xs:element maxOccurs="1" minOccurs="0" name="PmtInfId" type="Max35Text"/>
217 <xs:element maxOccurs="1" minOccurs="0" name="NbOfTxs" type="Max15NumericText"/>
218 <xs:element maxOccurs="1" minOccurs="0" name="TtlAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
219 <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
220 </xs:sequence>
221 </xs:complexType>
222 <xs:complexType name="BranchAndFinancialInstitutionIdentification5">
223 <xs:sequence>
224 <xs:element name="FinInstnId" type="FinancialInstitutionIdentification8"/>
225 <xs:element maxOccurs="1" minOccurs="0" name="BrnchId" type="BranchData2"/>
226 </xs:sequence>
227 </xs:complexType>
228 <xs:complexType name="BranchData2">
229 <xs:sequence>
230 <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Max35Text"/>
231 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
232 <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress6"/>
233 </xs:sequence>
234 </xs:complexType>
235 <xs:simpleType name="CSCManagement1Code">
236 <xs:restriction base="xs:string">
237 <xs:enumeration value="PRST"/>
238 <xs:enumeration value="BYPS"/>
239 <xs:enumeration value="UNRD"/>
240 <xs:enumeration value="NCSC"/>
241 </xs:restriction>
242 </xs:simpleType>
243 <xs:complexType name="CardAggregated1">
244 <xs:sequence>
245 <xs:element maxOccurs="1" minOccurs="0" name="AddtlSvc" type="CardPaymentServiceType2Code"/>
246 <xs:element maxOccurs="1" minOccurs="0" name="TxCtgy" type="ExternalCardTransactionCategory1Code"/>
247 <xs:element maxOccurs="1" minOccurs="0" name="SaleRcncltnId" type="Max35Text"/>
248 <xs:element maxOccurs="1" minOccurs="0" name="SeqNbRg" type="CardSequenceNumberRange1"/>
249 <xs:element maxOccurs="1" minOccurs="0" name="TxDtRg" type="DateOrDateTimePeriodChoice"/>
250 </xs:sequence>
251 </xs:complexType>
252 <xs:simpleType name="CardDataReading1Code">
253 <xs:restriction base="xs:string">
254 <xs:enumeration value="TAGC"/>
255 <xs:enumeration value="PHYS"/>
256 <xs:enumeration value="BRCD"/>
257 <xs:enumeration value="MGST"/>
258 <xs:enumeration value="CICC"/>
259 <xs:enumeration value="DFLE"/>
260 <xs:enumeration value="CTLS"/>
261 <xs:enumeration value="ECTL"/>
262 </xs:restriction>
263 </xs:simpleType>
264 <xs:complexType name="CardEntry1">
265 <xs:sequence>
266 <xs:element maxOccurs="1" minOccurs="0" name="Card" type="PaymentCard4"/>
267 <xs:element maxOccurs="1" minOccurs="0" name="POI" type="PointOfInteraction1"/>
268 <xs:element maxOccurs="1" minOccurs="0" name="AggtdNtry" type="CardAggregated1"/>
269 </xs:sequence>
270 </xs:complexType>
271 <xs:complexType name="CardIndividualTransaction1">
272 <xs:sequence>
273 <xs:element maxOccurs="1" minOccurs="0" name="AddtlSvc" type="CardPaymentServiceType2Code"/>
274 <xs:element maxOccurs="1" minOccurs="0" name="TxCtgy" type="ExternalCardTransactionCategory1Code"/>
275 <xs:element maxOccurs="1" minOccurs="0" name="SaleRcncltnId" type="Max35Text"/>
276 <xs:element maxOccurs="1" minOccurs="0" name="SaleRefNb" type="Max35Text"/>
277 <xs:element maxOccurs="1" minOccurs="0" name="SeqNb" type="Max35Text"/>
278 <xs:element maxOccurs="1" minOccurs="0" name="TxId" type="TransactionIdentifier1"/>
279 <xs:element maxOccurs="1" minOccurs="0" name="Pdct" type="Product2"/>
280 <xs:element maxOccurs="1" minOccurs="0" name="VldtnDt" type="ISODate"/>
281 <xs:element maxOccurs="1" minOccurs="0" name="VldtnSeqNb" type="Max35Text"/>
282 </xs:sequence>
283 </xs:complexType>
284 <xs:simpleType name="CardPaymentServiceType2Code">
285 <xs:restriction base="xs:string">
286 <xs:enumeration value="AGGR"/>
287 <xs:enumeration value="DCCV"/>
288 <xs:enumeration value="GRTT"/>
289 <xs:enumeration value="INSP"/>
290 <xs:enumeration value="LOYT"/>
291 <xs:enumeration value="NRES"/>
292 <xs:enumeration value="PUCO"/>
293 <xs:enumeration value="RECP"/>
294 <xs:enumeration value="SOAF"/>
295 <xs:enumeration value="UNAF"/>
296 <xs:enumeration value="VCAU"/>
297 </xs:restriction>
298 </xs:simpleType>
299 <xs:complexType name="CardSecurityInformation1">
300 <xs:sequence>
301 <xs:element name="CSCMgmt" type="CSCManagement1Code"/>
302 <xs:element maxOccurs="1" minOccurs="0" name="CSCVal" type="Min3Max4NumericText"/>
303 </xs:sequence>
304 </xs:complexType>
305 <xs:complexType name="CardSequenceNumberRange1">
306 <xs:sequence>
307 <xs:element maxOccurs="1" minOccurs="0" name="FrstTx" type="Max35Text"/>
308 <xs:element maxOccurs="1" minOccurs="0" name="LastTx" type="Max35Text"/>
309 </xs:sequence>
310 </xs:complexType>
311 <xs:complexType name="CardTransaction1">
312 <xs:sequence>
313 <xs:element maxOccurs="1" minOccurs="0" name="Card" type="PaymentCard4"/>
314 <xs:element maxOccurs="1" minOccurs="0" name="POI" type="PointOfInteraction1"/>
315 <xs:element maxOccurs="1" minOccurs="0" name="Tx" type="CardTransaction1Choice"/>
316 </xs:sequence>
317 </xs:complexType>
318 <xs:complexType name="CardTransaction1Choice">
319 <xs:choice>
320 <xs:element name="Aggtd" type="CardAggregated1"/>
321 <xs:element name="Indv" type="CardIndividualTransaction1"/>
322 </xs:choice>
323 </xs:complexType>
324 <xs:simpleType name="CardholderVerificationCapability1Code">
325 <xs:restriction base="xs:string">
326 <xs:enumeration value="MNSG"/>
327 <xs:enumeration value="NPIN"/>
328 <xs:enumeration value="FCPN"/>
329 <xs:enumeration value="FEPN"/>
330 <xs:enumeration value="FDSG"/>
331 <xs:enumeration value="FBIO"/>
332 <xs:enumeration value="MNVR"/>
333 <xs:enumeration value="FBIG"/>
334 <xs:enumeration value="APKI"/>
335 <xs:enumeration value="PKIS"/>
336 <xs:enumeration value="CHDT"/>
337 <xs:enumeration value="SCEC"/>
338 </xs:restriction>
339 </xs:simpleType>
340 <xs:complexType name="CashAccount24">
341 <xs:sequence>
342 <xs:element name="Id" type="AccountIdentification4Choice"/>
343 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CashAccountType2Choice"/>
344 <xs:element maxOccurs="1" minOccurs="0" name="Ccy" type="ActiveOrHistoricCurrencyCode"/>
345 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max70Text"/>
346 </xs:sequence>
347 </xs:complexType>
348 <xs:complexType name="CashAccount25">
349 <xs:sequence>
350 <xs:element name="Id" type="AccountIdentification4Choice"/>
351 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CashAccountType2Choice"/>
352 <xs:element maxOccurs="1" minOccurs="0" name="Ccy" type="ActiveOrHistoricCurrencyCode"/>
353 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max70Text"/>
354 <xs:element maxOccurs="1" minOccurs="0" name="Ownr" type="PartyIdentification43"/>
355 <xs:element maxOccurs="1" minOccurs="0" name="Svcr" type="BranchAndFinancialInstitutionIdentification5"/>
356 </xs:sequence>
357 </xs:complexType>
358 <xs:complexType name="CashAccountType2Choice">
359 <xs:choice>
360 <xs:element name="Cd" type="ExternalCashAccountType1Code"/>
361 <xs:element name="Prtry" type="Max35Text"/>
362 </xs:choice>
363 </xs:complexType>
364 <xs:complexType name="CashBalance3">
365 <xs:sequence>
366 <xs:element name="Tp" type="BalanceType12"/>
367 <xs:element maxOccurs="1" minOccurs="0" name="CdtLine" type="CreditLine2"/>
368 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
369 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
370 <xs:element name="Dt" type="DateAndDateTimeChoice"/>
371 <xs:element maxOccurs="unbounded" minOccurs="0" name="Avlbty" type="CashBalanceAvailability2"/>
372 </xs:sequence>
373 </xs:complexType>
374 <xs:complexType name="CashBalanceAvailability2">
375 <xs:sequence>
376 <xs:element name="Dt" type="CashBalanceAvailabilityDate1"/>
377 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
378 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
379 </xs:sequence>
380 </xs:complexType>
381 <xs:complexType name="CashBalanceAvailabilityDate1">
382 <xs:sequence>
383 <xs:choice>
384 <xs:element name="NbOfDays" type="Max15PlusSignedNumericText"/>
385 <xs:element name="ActlDt" type="ISODate"/>
386 </xs:choice>
387 </xs:sequence>
388 </xs:complexType>
389 <xs:complexType name="CashDeposit1">
390 <xs:sequence>
391 <xs:element name="NoteDnmtn" type="ActiveCurrencyAndAmount"/>
392 <xs:element name="NbOfNotes" type="Max15NumericText"/>
393 <xs:element name="Amt" type="ActiveCurrencyAndAmount"/>
394 </xs:sequence>
395 </xs:complexType>
396 <xs:simpleType name="ChargeBearerType1Code">
397 <xs:restriction base="xs:string">
398 <xs:enumeration value="DEBT"/>
399 <xs:enumeration value="CRED"/>
400 <xs:enumeration value="SHAR"/>
401 <xs:enumeration value="SLEV"/>
402 </xs:restriction>
403 </xs:simpleType>
404 <xs:simpleType name="ChargeIncludedIndicator">
405 <xs:restriction base="xs:boolean"/>
406 </xs:simpleType>
407 <xs:complexType name="ChargeType3Choice">
408 <xs:choice>
409 <xs:element name="Cd" type="ExternalChargeType1Code"/>
410 <xs:element name="Prtry" type="GenericIdentification3"/>
411 </xs:choice>
412 </xs:complexType>
413 <xs:complexType name="Charges4">
414 <xs:sequence>
415 <xs:element maxOccurs="1" minOccurs="0" name="TtlChrgsAndTaxAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
416 <xs:element maxOccurs="unbounded" minOccurs="0" name="Rcrd" type="ChargesRecord2"/>
417 </xs:sequence>
418 </xs:complexType>
419 <xs:complexType name="ChargesRecord2">
420 <xs:sequence>
421 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
422 <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
423 <xs:element maxOccurs="1" minOccurs="0" name="ChrgInclInd" type="ChargeIncludedIndicator"/>
424 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="ChargeType3Choice"/>
425 <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="PercentageRate"/>
426 <xs:element maxOccurs="1" minOccurs="0" name="Br" type="ChargeBearerType1Code"/>
427 <xs:element maxOccurs="1" minOccurs="0" name="Agt" type="BranchAndFinancialInstitutionIdentification5"/>
428 <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxCharges2"/>
429 </xs:sequence>
430 </xs:complexType>
431 <xs:complexType name="ClearingSystemIdentification2Choice">
432 <xs:choice>
433 <xs:element name="Cd" type="ExternalClearingSystemIdentification1Code"/>
434 <xs:element name="Prtry" type="Max35Text"/>
435 </xs:choice>
436 </xs:complexType>
437 <xs:complexType name="ClearingSystemMemberIdentification2">
438 <xs:sequence>
439 <xs:element maxOccurs="1" minOccurs="0" name="ClrSysId" type="ClearingSystemIdentification2Choice"/>
440 <xs:element name="MmbId" type="Max35Text"/>
441 </xs:sequence>
442 </xs:complexType>
443 <xs:complexType name="ContactDetails2">
444 <xs:sequence>
445 <xs:element maxOccurs="1" minOccurs="0" name="NmPrfx" type="NamePrefix1Code"/>
446 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
447 <xs:element maxOccurs="1" minOccurs="0" name="PhneNb" type="PhoneNumber"/>
448 <xs:element maxOccurs="1" minOccurs="0" name="MobNb" type="PhoneNumber"/>
449 <xs:element maxOccurs="1" minOccurs="0" name="FaxNb" type="PhoneNumber"/>
450 <xs:element maxOccurs="1" minOccurs="0" name="EmailAdr" type="Max2048Text"/>
451 <xs:element maxOccurs="1" minOccurs="0" name="Othr" type="Max35Text"/>
452 </xs:sequence>
453 </xs:complexType>
454 <xs:simpleType name="CopyDuplicate1Code">
455 <xs:restriction base="xs:string">
456 <xs:enumeration value="CODU"/>
457 <xs:enumeration value="COPY"/>
458 <xs:enumeration value="DUPL"/>
459 </xs:restriction>
460 </xs:simpleType>
461 <xs:complexType name="CorporateAction9">
462 <xs:sequence>
463 <xs:element name="EvtTp" type="Max35Text"/>
464 <xs:element name="EvtId" type="Max35Text"/>
465 </xs:sequence>
466 </xs:complexType>
467 <xs:simpleType name="CountryCode">
468 <xs:restriction base="xs:string">
469 <xs:pattern value="[A-Z]{2,2}"/>
470 </xs:restriction>
471 </xs:simpleType>
472 <xs:simpleType name="CreditDebitCode">
473 <xs:restriction base="xs:string">
474 <xs:enumeration value="CRDT"/>
475 <xs:enumeration value="DBIT"/>
476 </xs:restriction>
477 </xs:simpleType>
478 <xs:complexType name="CreditLine2">
479 <xs:sequence>
480 <xs:element name="Incl" type="TrueFalseIndicator"/>
481 <xs:element maxOccurs="1" minOccurs="0" name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
482 </xs:sequence>
483 </xs:complexType>
484 <xs:complexType name="CreditorReferenceInformation2">
485 <xs:sequence>
486 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CreditorReferenceType2"/>
487 <xs:element maxOccurs="1" minOccurs="0" name="Ref" type="Max35Text"/>
488 </xs:sequence>
489 </xs:complexType>
490 <xs:complexType name="CreditorReferenceType1Choice">
491 <xs:choice>
492 <xs:element name="Cd" type="DocumentType3Code"/>
493 <xs:element name="Prtry" type="Max35Text"/>
494 </xs:choice>
495 </xs:complexType>
496 <xs:complexType name="CreditorReferenceType2">
497 <xs:sequence>
498 <xs:element name="CdOrPrtry" type="CreditorReferenceType1Choice"/>
499 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
500 </xs:sequence>
501 </xs:complexType>
502 <xs:complexType name="CurrencyAndAmountRange2">
503 <xs:sequence>
504 <xs:element name="Amt" type="ImpliedCurrencyAmountRangeChoice"/>
505 <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
506 <xs:element name="Ccy" type="ActiveOrHistoricCurrencyCode"/>
507 </xs:sequence>
508 </xs:complexType>
509 <xs:complexType name="CurrencyExchange5">
510 <xs:sequence>
511 <xs:element name="SrcCcy" type="ActiveOrHistoricCurrencyCode"/>
512 <xs:element maxOccurs="1" minOccurs="0" name="TrgtCcy" type="ActiveOrHistoricCurrencyCode"/>
513 <xs:element maxOccurs="1" minOccurs="0" name="UnitCcy" type="ActiveOrHistoricCurrencyCode"/>
514 <xs:element name="XchgRate" type="BaseOneRate"/>
515 <xs:element maxOccurs="1" minOccurs="0" name="CtrctId" type="Max35Text"/>
516 <xs:element maxOccurs="1" minOccurs="0" name="QtnDt" type="ISODateTime"/>
517 </xs:sequence>
518 </xs:complexType>
519 <xs:complexType name="DateAndDateTimeChoice">
520 <xs:choice>
521 <xs:element name="Dt" type="ISODate"/>
522 <xs:element name="DtTm" type="ISODateTime"/>
523 </xs:choice>
524 </xs:complexType>
525 <xs:complexType name="DateAndPlaceOfBirth">
526 <xs:sequence>
527 <xs:element name="BirthDt" type="ISODate"/>
528 <xs:element maxOccurs="1" minOccurs="0" name="PrvcOfBirth" type="Max35Text"/>
529 <xs:element name="CityOfBirth" type="Max35Text"/>
530 <xs:element name="CtryOfBirth" type="CountryCode"/>
531 </xs:sequence>
532 </xs:complexType>
533 <xs:complexType name="DateOrDateTimePeriodChoice">
534 <xs:choice>
535 <xs:element name="Dt" type="DatePeriodDetails"/>
536 <xs:element name="DtTm" type="DateTimePeriodDetails"/>
537 </xs:choice>
538 </xs:complexType>
539 <xs:complexType name="DatePeriodDetails">
540 <xs:sequence>
541 <xs:element name="FrDt" type="ISODate"/>
542 <xs:element name="ToDt" type="ISODate"/>
543 </xs:sequence>
544 </xs:complexType>
545 <xs:complexType name="DateTimePeriodDetails">
546 <xs:sequence>
547 <xs:element name="FrDtTm" type="ISODateTime"/>
548 <xs:element name="ToDtTm" type="ISODateTime"/>
549 </xs:sequence>
550 </xs:complexType>
551 <xs:simpleType name="DecimalNumber">
552 <xs:restriction base="xs:decimal">
553 <xs:fractionDigits value="17"/>
554 <xs:totalDigits value="18"/>
555 </xs:restriction>
556 </xs:simpleType>
557 <xs:complexType name="DiscountAmountAndType1">
558 <xs:sequence>
559 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="DiscountAmountType1Choice"/>
560 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
561 </xs:sequence>
562 </xs:complexType>
563 <xs:complexType name="DiscountAmountType1Choice">
564 <xs:choice>
565 <xs:element name="Cd" type="ExternalDiscountAmountType1Code"/>
566 <xs:element name="Prtry" type="Max35Text"/>
567 </xs:choice>
568 </xs:complexType>
569 <xs:complexType name="DisplayCapabilities1">
570 <xs:sequence>
571 <xs:element name="DispTp" type="UserInterface2Code"/>
572 <xs:element name="NbOfLines" type="Max3NumericText"/>
573 <xs:element name="LineWidth" type="Max3NumericText"/>
574 </xs:sequence>
575 </xs:complexType>
576 <xs:complexType name="Document">
577 <xs:sequence>
578 <xs:element name="BkToCstmrAcctRpt" type="BankToCustomerAccountReportV04"/>
579 </xs:sequence>
580 </xs:complexType>
581 <xs:complexType name="DocumentAdjustment1">
582 <xs:sequence>
583 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
584 <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
585 <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="Max4Text"/>
586 <xs:element maxOccurs="1" minOccurs="0" name="AddtlInf" type="Max140Text"/>
587 </xs:sequence>
588 </xs:complexType>
589 <xs:simpleType name="DocumentType3Code">
590 <xs:restriction base="xs:string">
591 <xs:enumeration value="RADM"/>
592 <xs:enumeration value="RPIN"/>
593 <xs:enumeration value="FXDR"/>
594 <xs:enumeration value="DISP"/>
595 <xs:enumeration value="PUOR"/>
596 <xs:enumeration value="SCOR"/>
597 </xs:restriction>
598 </xs:simpleType>
599 <xs:simpleType name="DocumentType5Code">
600 <xs:restriction base="xs:string">
601 <xs:enumeration value="MSIN"/>
602 <xs:enumeration value="CNFA"/>
603 <xs:enumeration value="DNFA"/>
604 <xs:enumeration value="CINV"/>
605 <xs:enumeration value="CREN"/>
606 <xs:enumeration value="DEBN"/>
607 <xs:enumeration value="HIRI"/>
608 <xs:enumeration value="SBIN"/>
609 <xs:enumeration value="CMCN"/>
610 <xs:enumeration value="SOAC"/>
611 <xs:enumeration value="DISP"/>
612 <xs:enumeration value="BOLD"/>
613 <xs:enumeration value="VCHR"/>
614 <xs:enumeration value="AROI"/>
615 <xs:enumeration value="TSUT"/>
616 </xs:restriction>
617 </xs:simpleType>
618 <xs:complexType name="EntryDetails3">
619 <xs:sequence>
620 <xs:element maxOccurs="1" minOccurs="0" name="Btch" type="BatchInformation2"/>
621 <xs:element maxOccurs="unbounded" minOccurs="0" name="TxDtls" type="EntryTransaction4"/>
622 </xs:sequence>
623 </xs:complexType>
624 <xs:simpleType name="EntryStatus2Code">
625 <xs:restriction base="xs:string">
626 <xs:enumeration value="BOOK"/>
627 <xs:enumeration value="PDNG"/>
628 <xs:enumeration value="INFO"/>
629 </xs:restriction>
630 </xs:simpleType>
631 <xs:complexType name="EntryTransaction4">
632 <xs:sequence>
633 <xs:element maxOccurs="1" minOccurs="0" name="Refs" type="TransactionReferences3"/>
634 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
635 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
636 <xs:element maxOccurs="1" minOccurs="0" name="AmtDtls" type="AmountAndCurrencyExchange3"/>
637 <xs:element maxOccurs="unbounded" minOccurs="0" name="Avlbty" type="CashBalanceAvailability2"/>
638 <xs:element maxOccurs="1" minOccurs="0" name="BkTxCd" type="BankTransactionCodeStructure4"/>
639 <xs:element maxOccurs="1" minOccurs="0" name="Chrgs" type="Charges4"/>
640 <xs:element maxOccurs="1" minOccurs="0" name="Intrst" type="TransactionInterest3"/>
641 <xs:element maxOccurs="1" minOccurs="0" name="RltdPties" type="TransactionParties3"/>
642 <xs:element maxOccurs="1" minOccurs="0" name="RltdAgts" type="TransactionAgents3"/>
643 <xs:element maxOccurs="1" minOccurs="0" name="Purp" type="Purpose2Choice"/>
644 <xs:element maxOccurs="10" minOccurs="0" name="RltdRmtInf" type="RemittanceLocation2"/>
645 <xs:element maxOccurs="1" minOccurs="0" name="RmtInf" type="RemittanceInformation7"/>
646 <xs:element maxOccurs="1" minOccurs="0" name="RltdDts" type="TransactionDates2"/>
647 <xs:element maxOccurs="1" minOccurs="0" name="RltdPric" type="TransactionPrice3Choice"/>
648 <xs:element maxOccurs="unbounded" minOccurs="0" name="RltdQties" type="TransactionQuantities2Choice"/>
649 <xs:element maxOccurs="1" minOccurs="0" name="FinInstrmId" type="SecurityIdentification14"/>
650 <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxInformation3"/>
651 <xs:element maxOccurs="1" minOccurs="0" name="RtrInf" type="PaymentReturnReason2"/>
652 <xs:element maxOccurs="1" minOccurs="0" name="CorpActn" type="CorporateAction9"/>
653 <xs:element maxOccurs="1" minOccurs="0" name="SfkpgAcct" type="SecuritiesAccount13"/>
654 <xs:element maxOccurs="unbounded" minOccurs="0" name="CshDpst" type="CashDeposit1"/>
655 <xs:element maxOccurs="1" minOccurs="0" name="CardTx" type="CardTransaction1"/>
656 <xs:element maxOccurs="1" minOccurs="0" name="AddtlTxInf" type="Max500Text"/>
657 <xs:element maxOccurs="unbounded" minOccurs="0" name="SplmtryData" type="SupplementaryData1"/>
658 </xs:sequence>
659 </xs:complexType>
660 <xs:simpleType name="Exact1NumericText">
661 <xs:restriction base="xs:string">
662 <xs:pattern value="[0-9]"/>
663 </xs:restriction>
664 </xs:simpleType>
665 <xs:simpleType name="Exact3NumericText">
666 <xs:restriction base="xs:string">
667 <xs:pattern value="[0-9]{3}"/>
668 </xs:restriction>
669 </xs:simpleType>
670 <xs:simpleType name="Exact4AlphaNumericText">
671 <xs:restriction base="xs:string">
672 <xs:pattern value="[a-zA-Z0-9]{4}"/>
673 </xs:restriction>
674 </xs:simpleType>
675 <xs:simpleType name="ExternalAccountIdentification1Code">
676 <xs:restriction base="xs:string">
677 <xs:minLength value="1"/>
678 <xs:maxLength value="4"/>
679 </xs:restriction>
680 </xs:simpleType>
681 <xs:simpleType name="ExternalBalanceSubType1Code">
682 <xs:restriction base="xs:string">
683 <xs:minLength value="1"/>
684 <xs:maxLength value="4"/>
685 </xs:restriction>
686 </xs:simpleType>
687 <xs:simpleType name="ExternalBankTransactionDomain1Code">
688 <xs:restriction base="xs:string">
689 <xs:minLength value="1"/>
690 <xs:maxLength value="4"/>
691 </xs:restriction>
692 </xs:simpleType>
693 <xs:simpleType name="ExternalBankTransactionFamily1Code">
694 <xs:restriction base="xs:string">
695 <xs:minLength value="1"/>
696 <xs:maxLength value="4"/>
697 </xs:restriction>
698 </xs:simpleType>
699 <xs:simpleType name="ExternalBankTransactionSubFamily1Code">
700 <xs:restriction base="xs:string">
701 <xs:minLength value="1"/>
702 <xs:maxLength value="4"/>
703 </xs:restriction>
704 </xs:simpleType>
705 <xs:simpleType name="ExternalCardTransactionCategory1Code">
706 <xs:restriction base="xs:string">
707 <xs:minLength value="1"/>
708 <xs:maxLength value="4"/>
709 </xs:restriction>
710 </xs:simpleType>
711 <xs:simpleType name="ExternalCashAccountType1Code">
712 <xs:restriction base="xs:string">
713 <xs:minLength value="1"/>
714 <xs:maxLength value="4"/>
715 </xs:restriction>
716 </xs:simpleType>
717 <xs:simpleType name="ExternalChargeType1Code">
718 <xs:restriction base="xs:string">
719 <xs:minLength value="1"/>
720 <xs:maxLength value="4"/>
721 </xs:restriction>
722 </xs:simpleType>
723 <xs:simpleType name="ExternalClearingSystemIdentification1Code">
724 <xs:restriction base="xs:string">
725 <xs:minLength value="1"/>
726 <xs:maxLength value="5"/>
727 </xs:restriction>
728 </xs:simpleType>
729 <xs:simpleType name="ExternalDiscountAmountType1Code">
730 <xs:restriction base="xs:string">
731 <xs:minLength value="1"/>
732 <xs:maxLength value="4"/>
733 </xs:restriction>
734 </xs:simpleType>
735 <xs:simpleType name="ExternalFinancialInstitutionIdentification1Code">
736 <xs:restriction base="xs:string">
737 <xs:minLength value="1"/>
738 <xs:maxLength value="4"/>
739 </xs:restriction>
740 </xs:simpleType>
741 <xs:simpleType name="ExternalFinancialInstrumentIdentificationType1Code">
742 <xs:restriction base="xs:string">
743 <xs:minLength value="1"/>
744 <xs:maxLength value="4"/>
745 </xs:restriction>
746 </xs:simpleType>
747 <xs:simpleType name="ExternalOrganisationIdentification1Code">
748 <xs:restriction base="xs:string">
749 <xs:minLength value="1"/>
750 <xs:maxLength value="4"/>
751 </xs:restriction>
752 </xs:simpleType>
753 <xs:simpleType name="ExternalPersonIdentification1Code">
754 <xs:restriction base="xs:string">
755 <xs:minLength value="1"/>
756 <xs:maxLength value="4"/>
757 </xs:restriction>
758 </xs:simpleType>
759 <xs:simpleType name="ExternalPurpose1Code">
760 <xs:restriction base="xs:string">
761 <xs:minLength value="1"/>
762 <xs:maxLength value="4"/>
763 </xs:restriction>
764 </xs:simpleType>
765 <xs:simpleType name="ExternalReportingSource1Code">
766 <xs:restriction base="xs:string">
767 <xs:minLength value="1"/>
768 <xs:maxLength value="4"/>
769 </xs:restriction>
770 </xs:simpleType>
771 <xs:simpleType name="ExternalReturnReason1Code">
772 <xs:restriction base="xs:string">
773 <xs:minLength value="1"/>
774 <xs:maxLength value="4"/>
775 </xs:restriction>
776 </xs:simpleType>
777 <xs:simpleType name="ExternalTaxAmountType1Code">
778 <xs:restriction base="xs:string">
779 <xs:minLength value="1"/>
780 <xs:maxLength value="4"/>
781 </xs:restriction>
782 </xs:simpleType>
783 <xs:simpleType name="ExternalTechnicalInputChannel1Code">
784 <xs:restriction base="xs:string">
785 <xs:minLength value="1"/>
786 <xs:maxLength value="4"/>
787 </xs:restriction>
788 </xs:simpleType>
789 <xs:complexType name="FinancialIdentificationSchemeName1Choice">
790 <xs:choice>
791 <xs:element name="Cd" type="ExternalFinancialInstitutionIdentification1Code"/>
792 <xs:element name="Prtry" type="Max35Text"/>
793 </xs:choice>
794 </xs:complexType>
795 <xs:complexType name="FinancialInstitutionIdentification8">
796 <xs:sequence>
797 <xs:element maxOccurs="1" minOccurs="0" name="BICFI" type="BICFIIdentifier"/>
798 <xs:element maxOccurs="1" minOccurs="0" name="ClrSysMmbId" type="ClearingSystemMemberIdentification2"/>
799 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
800 <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress6"/>
801 <xs:element maxOccurs="1" minOccurs="0" name="Othr" type="GenericFinancialIdentification1"/>
802 </xs:sequence>
803 </xs:complexType>
804 <xs:complexType name="FinancialInstrumentQuantityChoice">
805 <xs:choice>
806 <xs:element name="Unit" type="DecimalNumber"/>
807 <xs:element name="FaceAmt" type="ImpliedCurrencyAndAmount"/>
808 <xs:element name="AmtsdVal" type="ImpliedCurrencyAndAmount"/>
809 </xs:choice>
810 </xs:complexType>
811 <xs:complexType name="FromToAmountRange">
812 <xs:sequence>
813 <xs:element name="FrAmt" type="AmountRangeBoundary1"/>
814 <xs:element name="ToAmt" type="AmountRangeBoundary1"/>
815 </xs:sequence>
816 </xs:complexType>
817 <xs:complexType name="GenericAccountIdentification1">
818 <xs:sequence>
819 <xs:element name="Id" type="Max34Text"/>
820 <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="AccountSchemeName1Choice"/>
821 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
822 </xs:sequence>
823 </xs:complexType>
824 <xs:complexType name="GenericFinancialIdentification1">
825 <xs:sequence>
826 <xs:element name="Id" type="Max35Text"/>
827 <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="FinancialIdentificationSchemeName1Choice"/>
828 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
829 </xs:sequence>
830 </xs:complexType>
831 <xs:complexType name="GenericIdentification1">
832 <xs:sequence>
833 <xs:element name="Id" type="Max35Text"/>
834 <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="Max35Text"/>
835 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
836 </xs:sequence>
837 </xs:complexType>
838 <xs:complexType name="GenericIdentification20">
839 <xs:sequence>
840 <xs:element name="Id" type="Exact4AlphaNumericText"/>
841 <xs:element name="Issr" type="Max35Text"/>
842 <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="Max35Text"/>
843 </xs:sequence>
844 </xs:complexType>
845 <xs:complexType name="GenericIdentification3">
846 <xs:sequence>
847 <xs:element name="Id" type="Max35Text"/>
848 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
849 </xs:sequence>
850 </xs:complexType>
851 <xs:complexType name="GenericIdentification32">
852 <xs:sequence>
853 <xs:element name="Id" type="Max35Text"/>
854 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="PartyType3Code"/>
855 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="PartyType4Code"/>
856 <xs:element maxOccurs="1" minOccurs="0" name="ShrtNm" type="Max35Text"/>
857 </xs:sequence>
858 </xs:complexType>
859 <xs:complexType name="GenericOrganisationIdentification1">
860 <xs:sequence>
861 <xs:element name="Id" type="Max35Text"/>
862 <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="OrganisationIdentificationSchemeName1Choice"/>
863 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
864 </xs:sequence>
865 </xs:complexType>
866 <xs:complexType name="GenericPersonIdentification1">
867 <xs:sequence>
868 <xs:element name="Id" type="Max35Text"/>
869 <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="PersonIdentificationSchemeName1Choice"/>
870 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
871 </xs:sequence>
872 </xs:complexType>
873 <xs:complexType name="GroupHeader58">
874 <xs:sequence>
875 <xs:element name="MsgId" type="Max35Text"/>
876 <xs:element name="CreDtTm" type="ISODateTime"/>
877 <xs:element maxOccurs="1" minOccurs="0" name="MsgRcpt" type="PartyIdentification43"/>
878 <xs:element maxOccurs="1" minOccurs="0" name="MsgPgntn" type="Pagination"/>
879 <xs:element maxOccurs="1" minOccurs="0" name="OrgnlBizQry" type="OriginalBusinessQuery1"/>
880 <xs:element maxOccurs="1" minOccurs="0" name="AddtlInf" type="Max500Text"/>
881 </xs:sequence>
882 </xs:complexType>
883 <xs:simpleType name="IBAN2007Identifier">
884 <xs:restriction base="xs:string">
885 <xs:pattern value="[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}"/>
886 </xs:restriction>
887 </xs:simpleType>
888 <xs:simpleType name="ISINIdentifier">
889 <xs:restriction base="xs:string">
890 <xs:pattern value="[A-Z0-9]{12,12}"/>
891 </xs:restriction>
892 </xs:simpleType>
893 <xs:simpleType name="ISODate">
894 <xs:restriction base="xs:date"/>
895 </xs:simpleType>
896 <xs:simpleType name="ISODateTime">
897 <xs:restriction base="xs:dateTime"/>
898 </xs:simpleType>
899 <xs:simpleType name="ISOYearMonth">
900 <xs:restriction base="xs:gYearMonth"/>
901 </xs:simpleType>
902 <xs:complexType name="IdentificationSource3Choice">
903 <xs:choice>
904 <xs:element name="Cd" type="ExternalFinancialInstrumentIdentificationType1Code"/>
905 <xs:element name="Prtry" type="Max35Text"/>
906 </xs:choice>
907 </xs:complexType>
908 <xs:complexType name="ImpliedCurrencyAmountRangeChoice">
909 <xs:choice>
910 <xs:element name="FrAmt" type="AmountRangeBoundary1"/>
911 <xs:element name="ToAmt" type="AmountRangeBoundary1"/>
912 <xs:element name="FrToAmt" type="FromToAmountRange"/>
913 <xs:element name="EQAmt" type="ImpliedCurrencyAndAmount"/>
914 <xs:element name="NEQAmt" type="ImpliedCurrencyAndAmount"/>
915 </xs:choice>
916 </xs:complexType>
917 <xs:simpleType name="ImpliedCurrencyAndAmount">
918 <xs:restriction base="xs:decimal">
919 <xs:fractionDigits value="5"/>
920 <xs:totalDigits value="18"/>
921 <xs:minInclusive value="0"/>
922 </xs:restriction>
923 </xs:simpleType>
924 <xs:complexType name="InterestRecord1">
925 <xs:sequence>
926 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
927 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
928 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="InterestType1Choice"/>
929 <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="Rate3"/>
930 <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DateTimePeriodDetails"/>
931 <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="Max35Text"/>
932 <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxCharges2"/>
933 </xs:sequence>
934 </xs:complexType>
935 <xs:complexType name="InterestType1Choice">
936 <xs:choice>
937 <xs:element name="Cd" type="InterestType1Code"/>
938 <xs:element name="Prtry" type="Max35Text"/>
939 </xs:choice>
940 </xs:complexType>
941 <xs:simpleType name="InterestType1Code">
942 <xs:restriction base="xs:string">
943 <xs:enumeration value="INDY"/>
944 <xs:enumeration value="OVRN"/>
945 </xs:restriction>
946 </xs:simpleType>
947 <xs:simpleType name="Max105Text">
948 <xs:restriction base="xs:string">
949 <xs:minLength value="1"/>
950 <xs:maxLength value="105"/>
951 </xs:restriction>
952 </xs:simpleType>
953 <xs:simpleType name="Max140Text">
954 <xs:restriction base="xs:string">
955 <xs:minLength value="1"/>
956 <xs:maxLength value="140"/>
957 </xs:restriction>
958 </xs:simpleType>
959 <xs:simpleType name="Max15NumericText">
960 <xs:restriction base="xs:string">
961 <xs:pattern value="[0-9]{1,15}"/>
962 </xs:restriction>
963 </xs:simpleType>
964 <xs:simpleType name="Max15PlusSignedNumericText">
965 <xs:restriction base="xs:string">
966 <xs:pattern value="[\+]{0,1}[0-9]{1,15}"/>
967 </xs:restriction>
968 </xs:simpleType>
969 <xs:simpleType name="Max16Text">
970 <xs:restriction base="xs:string">
971 <xs:minLength value="1"/>
972 <xs:maxLength value="16"/>
973 </xs:restriction>
974 </xs:simpleType>
975 <xs:simpleType name="Max2048Text">
976 <xs:restriction base="xs:string">
977 <xs:minLength value="1"/>
978 <xs:maxLength value="2048"/>
979 </xs:restriction>
980 </xs:simpleType>
981 <xs:simpleType name="Max34Text">
982 <xs:restriction base="xs:string">
983 <xs:minLength value="1"/>
984 <xs:maxLength value="34"/>
985 </xs:restriction>
986 </xs:simpleType>
987 <xs:simpleType name="Max350Text">
988 <xs:restriction base="xs:string">
989 <xs:minLength value="1"/>
990 <xs:maxLength value="350"/>
991 </xs:restriction>
992 </xs:simpleType>
993 <xs:simpleType name="Max35Text">
994 <xs:restriction base="xs:string">
995 <xs:minLength value="1"/>
996 <xs:maxLength value="35"/>
997 </xs:restriction>
998 </xs:simpleType>
999 <xs:simpleType name="Max3NumericText">
1000 <xs:restriction base="xs:string">
1001 <xs:pattern value="[0-9]{1,3}"/>
1002 </xs:restriction>
1003 </xs:simpleType>
1004 <xs:simpleType name="Max4Text">
1005 <xs:restriction base="xs:string">
1006 <xs:minLength value="1"/>
1007 <xs:maxLength value="4"/>
1008 </xs:restriction>
1009 </xs:simpleType>
1010 <xs:simpleType name="Max500Text">
1011 <xs:restriction base="xs:string">
1012 <xs:minLength value="1"/>
1013 <xs:maxLength value="500"/>
1014 </xs:restriction>
1015 </xs:simpleType>
1016 <xs:simpleType name="Max5NumericText">
1017 <xs:restriction base="xs:string">
1018 <xs:pattern value="[0-9]{1,5}"/>
1019 </xs:restriction>
1020 </xs:simpleType>
1021 <xs:simpleType name="Max70Text">
1022 <xs:restriction base="xs:string">
1023 <xs:minLength value="1"/>
1024 <xs:maxLength value="70"/>
1025 </xs:restriction>
1026 </xs:simpleType>
1027 <xs:complexType name="MessageIdentification2">
1028 <xs:sequence>
1029 <xs:element maxOccurs="1" minOccurs="0" name="MsgNmId" type="Max35Text"/>
1030 <xs:element maxOccurs="1" minOccurs="0" name="MsgId" type="Max35Text"/>
1031 </xs:sequence>
1032 </xs:complexType>
1033 <xs:simpleType name="Min2Max3NumericText">
1034 <xs:restriction base="xs:string">
1035 <xs:pattern value="[0-9]{2,3}"/>
1036 </xs:restriction>
1037 </xs:simpleType>
1038 <xs:simpleType name="Min3Max4NumericText">
1039 <xs:restriction base="xs:string">
1040 <xs:pattern value="[0-9]{3,4}"/>
1041 </xs:restriction>
1042 </xs:simpleType>
1043 <xs:simpleType name="Min8Max28NumericText">
1044 <xs:restriction base="xs:string">
1045 <xs:pattern value="[0-9]{8,28}"/>
1046 </xs:restriction>
1047 </xs:simpleType>
1048 <xs:complexType name="NameAndAddress10">
1049 <xs:sequence>
1050 <xs:element name="Nm" type="Max140Text"/>
1051 <xs:element name="Adr" type="PostalAddress6"/>
1052 </xs:sequence>
1053 </xs:complexType>
1054 <xs:simpleType name="NamePrefix1Code">
1055 <xs:restriction base="xs:string">
1056 <xs:enumeration value="DOCT"/>
1057 <xs:enumeration value="MIST"/>
1058 <xs:enumeration value="MISS"/>
1059 <xs:enumeration value="MADM"/>
1060 </xs:restriction>
1061 </xs:simpleType>
1062 <xs:simpleType name="NonNegativeDecimalNumber">
1063 <xs:restriction base="xs:decimal">
1064 <xs:fractionDigits value="17"/>
1065 <xs:totalDigits value="18"/>
1066 <xs:minInclusive value="0"/>
1067 </xs:restriction>
1068 </xs:simpleType>
1069 <xs:simpleType name="Number">
1070 <xs:restriction base="xs:decimal">
1071 <xs:fractionDigits value="0"/>
1072 <xs:totalDigits value="18"/>
1073 </xs:restriction>
1074 </xs:simpleType>
1075 <xs:complexType name="NumberAndSumOfTransactions1">
1076 <xs:sequence>
1077 <xs:element maxOccurs="1" minOccurs="0" name="NbOfNtries" type="Max15NumericText"/>
1078 <xs:element maxOccurs="1" minOccurs="0" name="Sum" type="DecimalNumber"/>
1079 </xs:sequence>
1080 </xs:complexType>
1081 <xs:complexType name="NumberAndSumOfTransactions4">
1082 <xs:sequence>
1083 <xs:element maxOccurs="1" minOccurs="0" name="NbOfNtries" type="Max15NumericText"/>
1084 <xs:element maxOccurs="1" minOccurs="0" name="Sum" type="DecimalNumber"/>
1085 <xs:element maxOccurs="1" minOccurs="0" name="TtlNetNtry" type="AmountAndDirection35"/>
1086 </xs:sequence>
1087 </xs:complexType>
1088 <xs:simpleType name="OnLineCapability1Code">
1089 <xs:restriction base="xs:string">
1090 <xs:enumeration value="OFLN"/>
1091 <xs:enumeration value="ONLN"/>
1092 <xs:enumeration value="SMON"/>
1093 </xs:restriction>
1094 </xs:simpleType>
1095 <xs:complexType name="OrganisationIdentification8">
1096 <xs:sequence>
1097 <xs:element maxOccurs="1" minOccurs="0" name="AnyBIC" type="AnyBICIdentifier"/>
1098 <xs:element maxOccurs="unbounded" minOccurs="0" name="Othr" type="GenericOrganisationIdentification1"/>
1099 </xs:sequence>
1100 </xs:complexType>
1101 <xs:complexType name="OrganisationIdentificationSchemeName1Choice">
1102 <xs:choice>
1103 <xs:element name="Cd" type="ExternalOrganisationIdentification1Code"/>
1104 <xs:element name="Prtry" type="Max35Text"/>
1105 </xs:choice>
1106 </xs:complexType>
1107 <xs:complexType name="OriginalAndCurrentQuantities1">
1108 <xs:sequence>
1109 <xs:element name="FaceAmt" type="ImpliedCurrencyAndAmount"/>
1110 <xs:element name="AmtsdVal" type="ImpliedCurrencyAndAmount"/>
1111 </xs:sequence>
1112 </xs:complexType>
1113 <xs:complexType name="OriginalBusinessQuery1">
1114 <xs:sequence>
1115 <xs:element name="MsgId" type="Max35Text"/>
1116 <xs:element maxOccurs="1" minOccurs="0" name="MsgNmId" type="Max35Text"/>
1117 <xs:element maxOccurs="1" minOccurs="0" name="CreDtTm" type="ISODateTime"/>
1118 </xs:sequence>
1119 </xs:complexType>
1120 <xs:complexType name="OtherIdentification1">
1121 <xs:sequence>
1122 <xs:element name="Id" type="Max35Text"/>
1123 <xs:element maxOccurs="1" minOccurs="0" name="Sfx" type="Max16Text"/>
1124 <xs:element name="Tp" type="IdentificationSource3Choice"/>
1125 </xs:sequence>
1126 </xs:complexType>
1127 <xs:simpleType name="POIComponentType1Code">
1128 <xs:restriction base="xs:string">
1129 <xs:enumeration value="SOFT"/>
1130 <xs:enumeration value="EMVK"/>
1131 <xs:enumeration value="EMVO"/>
1132 <xs:enumeration value="MRIT"/>
1133 <xs:enumeration value="CHIT"/>
1134 <xs:enumeration value="SECM"/>
1135 <xs:enumeration value="PEDV"/>
1136 </xs:restriction>
1137 </xs:simpleType>
1138 <xs:complexType name="Pagination">
1139 <xs:sequence>
1140 <xs:element name="PgNb" type="Max5NumericText"/>
1141 <xs:element name="LastPgInd" type="YesNoIndicator"/>
1142 </xs:sequence>
1143 </xs:complexType>
1144 <xs:complexType name="Party11Choice">
1145 <xs:choice>
1146 <xs:element name="OrgId" type="OrganisationIdentification8"/>
1147 <xs:element name="PrvtId" type="PersonIdentification5"/>
1148 </xs:choice>
1149 </xs:complexType>
1150 <xs:complexType name="PartyIdentification43">
1151 <xs:sequence>
1152 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
1153 <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress6"/>
1154 <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Party11Choice"/>
1155 <xs:element maxOccurs="1" minOccurs="0" name="CtryOfRes" type="CountryCode"/>
1156 <xs:element maxOccurs="1" minOccurs="0" name="CtctDtls" type="ContactDetails2"/>
1157 </xs:sequence>
1158 </xs:complexType>
1159 <xs:simpleType name="PartyType3Code">
1160 <xs:restriction base="xs:string">
1161 <xs:enumeration value="OPOI"/>
1162 <xs:enumeration value="MERC"/>
1163 <xs:enumeration value="ACCP"/>
1164 <xs:enumeration value="ITAG"/>
1165 <xs:enumeration value="ACQR"/>
1166 <xs:enumeration value="CISS"/>
1167 <xs:enumeration value="DLIS"/>
1168 </xs:restriction>
1169 </xs:simpleType>
1170 <xs:simpleType name="PartyType4Code">
1171 <xs:restriction base="xs:string">
1172 <xs:enumeration value="MERC"/>
1173 <xs:enumeration value="ACCP"/>
1174 <xs:enumeration value="ITAG"/>
1175 <xs:enumeration value="ACQR"/>
1176 <xs:enumeration value="CISS"/>
1177 <xs:enumeration value="TAXH"/>
1178 </xs:restriction>
1179 </xs:simpleType>
1180 <xs:complexType name="PaymentCard4">
1181 <xs:sequence>
1182 <xs:element maxOccurs="1" minOccurs="0" name="PlainCardData" type="PlainCardData1"/>
1183 <xs:element maxOccurs="1" minOccurs="0" name="CardCtryCd" type="Exact3NumericText"/>
1184 <xs:element maxOccurs="1" minOccurs="0" name="CardBrnd" type="GenericIdentification1"/>
1185 <xs:element maxOccurs="1" minOccurs="0" name="AddtlCardData" type="Max70Text"/>
1186 </xs:sequence>
1187 </xs:complexType>
1188 <xs:complexType name="PaymentReturnReason2">
1189 <xs:sequence>
1190 <xs:element maxOccurs="1" minOccurs="0" name="OrgnlBkTxCd" type="BankTransactionCodeStructure4"/>
1191 <xs:element maxOccurs="1" minOccurs="0" name="Orgtr" type="PartyIdentification43"/>
1192 <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="ReturnReason5Choice"/>
1193 <xs:element maxOccurs="unbounded" minOccurs="0" name="AddtlInf" type="Max105Text"/>
1194 </xs:sequence>
1195 </xs:complexType>
1196 <xs:simpleType name="PercentageRate">
1197 <xs:restriction base="xs:decimal">
1198 <xs:fractionDigits value="10"/>
1199 <xs:totalDigits value="11"/>
1200 </xs:restriction>
1201 </xs:simpleType>
1202 <xs:complexType name="PersonIdentification5">
1203 <xs:sequence>
1204 <xs:element maxOccurs="1" minOccurs="0" name="DtAndPlcOfBirth" type="DateAndPlaceOfBirth"/>
1205 <xs:element maxOccurs="unbounded" minOccurs="0" name="Othr" type="GenericPersonIdentification1"/>
1206 </xs:sequence>
1207 </xs:complexType>
1208 <xs:complexType name="PersonIdentificationSchemeName1Choice">
1209 <xs:choice>
1210 <xs:element name="Cd" type="ExternalPersonIdentification1Code"/>
1211 <xs:element name="Prtry" type="Max35Text"/>
1212 </xs:choice>
1213 </xs:complexType>
1214 <xs:simpleType name="PhoneNumber">
1215 <xs:restriction base="xs:string">
1216 <xs:pattern value="\+[0-9]{1,3}-[0-9()+\-]{1,30}"/>
1217 </xs:restriction>
1218 </xs:simpleType>
1219 <xs:complexType name="PlainCardData1">
1220 <xs:sequence>
1221 <xs:element name="PAN" type="Min8Max28NumericText"/>
1222 <xs:element maxOccurs="1" minOccurs="0" name="CardSeqNb" type="Min2Max3NumericText"/>
1223 <xs:element maxOccurs="1" minOccurs="0" name="FctvDt" type="ISOYearMonth"/>
1224 <xs:element name="XpryDt" type="ISOYearMonth"/>
1225 <xs:element maxOccurs="1" minOccurs="0" name="SvcCd" type="Exact3NumericText"/>
1226 <xs:element maxOccurs="unbounded" minOccurs="0" name="TrckData" type="TrackData1"/>
1227 <xs:element maxOccurs="1" minOccurs="0" name="CardSctyCd" type="CardSecurityInformation1"/>
1228 </xs:sequence>
1229 </xs:complexType>
1230 <xs:complexType name="PointOfInteraction1">
1231 <xs:sequence>
1232 <xs:element name="Id" type="GenericIdentification32"/>
1233 <xs:element maxOccurs="1" minOccurs="0" name="SysNm" type="Max70Text"/>
1234 <xs:element maxOccurs="1" minOccurs="0" name="GrpId" type="Max35Text"/>
1235 <xs:element maxOccurs="1" minOccurs="0" name="Cpblties" type="PointOfInteractionCapabilities1"/>
1236 <xs:element maxOccurs="unbounded" minOccurs="0" name="Cmpnt" type="PointOfInteractionComponent1"/>
1237 </xs:sequence>
1238 </xs:complexType>
1239 <xs:complexType name="PointOfInteractionCapabilities1">
1240 <xs:sequence>
1241 <xs:element maxOccurs="unbounded" minOccurs="0" name="CardRdngCpblties" type="CardDataReading1Code"/>
1242 <xs:element maxOccurs="unbounded" minOccurs="0" name="CrdhldrVrfctnCpblties" type="CardholderVerificationCapability1Code"/>
1243 <xs:element maxOccurs="1" minOccurs="0" name="OnLineCpblties" type="OnLineCapability1Code"/>
1244 <xs:element maxOccurs="unbounded" minOccurs="0" name="DispCpblties" type="DisplayCapabilities1"/>
1245 <xs:element maxOccurs="1" minOccurs="0" name="PrtLineWidth" type="Max3NumericText"/>
1246 </xs:sequence>
1247 </xs:complexType>
1248 <xs:complexType name="PointOfInteractionComponent1">
1249 <xs:sequence>
1250 <xs:element name="POICmpntTp" type="POIComponentType1Code"/>
1251 <xs:element maxOccurs="1" minOccurs="0" name="ManfctrId" type="Max35Text"/>
1252 <xs:element maxOccurs="1" minOccurs="0" name="Mdl" type="Max35Text"/>
1253 <xs:element maxOccurs="1" minOccurs="0" name="VrsnNb" type="Max16Text"/>
1254 <xs:element maxOccurs="1" minOccurs="0" name="SrlNb" type="Max35Text"/>
1255 <xs:element maxOccurs="unbounded" minOccurs="0" name="ApprvlNb" type="Max70Text"/>
1256 </xs:sequence>
1257 </xs:complexType>
1258 <xs:complexType name="PostalAddress6">
1259 <xs:sequence>
1260 <xs:element maxOccurs="1" minOccurs="0" name="AdrTp" type="AddressType2Code"/>
1261 <xs:element maxOccurs="1" minOccurs="0" name="Dept" type="Max70Text"/>
1262 <xs:element maxOccurs="1" minOccurs="0" name="SubDept" type="Max70Text"/>
1263 <xs:element maxOccurs="1" minOccurs="0" name="StrtNm" type="Max70Text"/>
1264 <xs:element maxOccurs="1" minOccurs="0" name="BldgNb" type="Max16Text"/>
1265 <xs:element maxOccurs="1" minOccurs="0" name="PstCd" type="Max16Text"/>
1266 <xs:element maxOccurs="1" minOccurs="0" name="TwnNm" type="Max35Text"/>
1267 <xs:element maxOccurs="1" minOccurs="0" name="CtrySubDvsn" type="Max35Text"/>
1268 <xs:element maxOccurs="1" minOccurs="0" name="Ctry" type="CountryCode"/>
1269 <xs:element maxOccurs="7" minOccurs="0" name="AdrLine" type="Max70Text"/>
1270 </xs:sequence>
1271 </xs:complexType>
1272 <xs:complexType name="Price2">
1273 <xs:sequence>
1274 <xs:element name="Tp" type="YieldedOrValueType1Choice"/>
1275 <xs:element name="Val" type="PriceRateOrAmountChoice"/>
1276 </xs:sequence>
1277 </xs:complexType>
1278 <xs:complexType name="PriceRateOrAmountChoice">
1279 <xs:choice>
1280 <xs:element name="Rate" type="PercentageRate"/>
1281 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAnd13DecimalAmount"/>
1282 </xs:choice>
1283 </xs:complexType>
1284 <xs:simpleType name="PriceValueType1Code">
1285 <xs:restriction base="xs:string">
1286 <xs:enumeration value="DISC"/>
1287 <xs:enumeration value="PREM"/>
1288 <xs:enumeration value="PARV"/>
1289 </xs:restriction>
1290 </xs:simpleType>
1291 <xs:complexType name="Product2">
1292 <xs:sequence>
1293 <xs:element name="PdctCd" type="Max70Text"/>
1294 <xs:element maxOccurs="1" minOccurs="0" name="UnitOfMeasr" type="UnitOfMeasure1Code"/>
1295 <xs:element maxOccurs="1" minOccurs="0" name="PdctQty" type="DecimalNumber"/>
1296 <xs:element maxOccurs="1" minOccurs="0" name="UnitPric" type="ImpliedCurrencyAndAmount"/>
1297 <xs:element maxOccurs="1" minOccurs="0" name="PdctAmt" type="ImpliedCurrencyAndAmount"/>
1298 <xs:element maxOccurs="1" minOccurs="0" name="TaxTp" type="Max35Text"/>
1299 <xs:element maxOccurs="1" minOccurs="0" name="AddtlPdctInf" type="Max35Text"/>
1300 </xs:sequence>
1301 </xs:complexType>
1302 <xs:complexType name="ProprietaryAgent3">
1303 <xs:sequence>
1304 <xs:element name="Tp" type="Max35Text"/>
1305 <xs:element name="Agt" type="BranchAndFinancialInstitutionIdentification5"/>
1306 </xs:sequence>
1307 </xs:complexType>
1308 <xs:complexType name="ProprietaryBankTransactionCodeStructure1">
1309 <xs:sequence>
1310 <xs:element name="Cd" type="Max35Text"/>
1311 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
1312 </xs:sequence>
1313 </xs:complexType>
1314 <xs:complexType name="ProprietaryDate2">
1315 <xs:sequence>
1316 <xs:element name="Tp" type="Max35Text"/>
1317 <xs:element name="Dt" type="DateAndDateTimeChoice"/>
1318 </xs:sequence>
1319 </xs:complexType>
1320 <xs:complexType name="ProprietaryParty3">
1321 <xs:sequence>
1322 <xs:element name="Tp" type="Max35Text"/>
1323 <xs:element name="Pty" type="PartyIdentification43"/>
1324 </xs:sequence>
1325 </xs:complexType>
1326 <xs:complexType name="ProprietaryPrice2">
1327 <xs:sequence>
1328 <xs:element name="Tp" type="Max35Text"/>
1329 <xs:element name="Pric" type="ActiveOrHistoricCurrencyAndAmount"/>
1330 </xs:sequence>
1331 </xs:complexType>
1332 <xs:complexType name="ProprietaryQuantity1">
1333 <xs:sequence>
1334 <xs:element name="Tp" type="Max35Text"/>
1335 <xs:element name="Qty" type="Max35Text"/>
1336 </xs:sequence>
1337 </xs:complexType>
1338 <xs:complexType name="ProprietaryReference1">
1339 <xs:sequence>
1340 <xs:element name="Tp" type="Max35Text"/>
1341 <xs:element name="Ref" type="Max35Text"/>
1342 </xs:sequence>
1343 </xs:complexType>
1344 <xs:complexType name="Purpose2Choice">
1345 <xs:choice>
1346 <xs:element name="Cd" type="ExternalPurpose1Code"/>
1347 <xs:element name="Prtry" type="Max35Text"/>
1348 </xs:choice>
1349 </xs:complexType>
1350 <xs:complexType name="Rate3">
1351 <xs:sequence>
1352 <xs:element name="Tp" type="RateType4Choice"/>
1353 <xs:element maxOccurs="1" minOccurs="0" name="VldtyRg" type="CurrencyAndAmountRange2"/>
1354 </xs:sequence>
1355 </xs:complexType>
1356 <xs:complexType name="RateType4Choice">
1357 <xs:choice>
1358 <xs:element name="Pctg" type="PercentageRate"/>
1359 <xs:element name="Othr" type="Max35Text"/>
1360 </xs:choice>
1361 </xs:complexType>
1362 <xs:complexType name="ReferredDocumentInformation3">
1363 <xs:sequence>
1364 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="ReferredDocumentType2"/>
1365 <xs:element maxOccurs="1" minOccurs="0" name="Nb" type="Max35Text"/>
1366 <xs:element maxOccurs="1" minOccurs="0" name="RltdDt" type="ISODate"/>
1367 </xs:sequence>
1368 </xs:complexType>
1369 <xs:complexType name="ReferredDocumentType1Choice">
1370 <xs:choice>
1371 <xs:element name="Cd" type="DocumentType5Code"/>
1372 <xs:element name="Prtry" type="Max35Text"/>
1373 </xs:choice>
1374 </xs:complexType>
1375 <xs:complexType name="ReferredDocumentType2">
1376 <xs:sequence>
1377 <xs:element name="CdOrPrtry" type="ReferredDocumentType1Choice"/>
1378 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
1379 </xs:sequence>
1380 </xs:complexType>
1381 <xs:complexType name="RemittanceAmount2">
1382 <xs:sequence>
1383 <xs:element maxOccurs="1" minOccurs="0" name="DuePyblAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1384 <xs:element maxOccurs="unbounded" minOccurs="0" name="DscntApldAmt" type="DiscountAmountAndType1"/>
1385 <xs:element maxOccurs="1" minOccurs="0" name="CdtNoteAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1386 <xs:element maxOccurs="unbounded" minOccurs="0" name="TaxAmt" type="TaxAmountAndType1"/>
1387 <xs:element maxOccurs="unbounded" minOccurs="0" name="AdjstmntAmtAndRsn" type="DocumentAdjustment1"/>
1388 <xs:element maxOccurs="1" minOccurs="0" name="RmtdAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1389 </xs:sequence>
1390 </xs:complexType>
1391 <xs:complexType name="RemittanceInformation7">
1392 <xs:sequence>
1393 <xs:element maxOccurs="unbounded" minOccurs="0" name="Ustrd" type="Max140Text"/>
1394 <xs:element maxOccurs="unbounded" minOccurs="0" name="Strd" type="StructuredRemittanceInformation9"/>
1395 </xs:sequence>
1396 </xs:complexType>
1397 <xs:complexType name="RemittanceLocation2">
1398 <xs:sequence>
1399 <xs:element maxOccurs="1" minOccurs="0" name="RmtId" type="Max35Text"/>
1400 <xs:element maxOccurs="1" minOccurs="0" name="RmtLctnMtd" type="RemittanceLocationMethod2Code"/>
1401 <xs:element maxOccurs="1" minOccurs="0" name="RmtLctnElctrncAdr" type="Max2048Text"/>
1402 <xs:element maxOccurs="1" minOccurs="0" name="RmtLctnPstlAdr" type="NameAndAddress10"/>
1403 </xs:sequence>
1404 </xs:complexType>
1405 <xs:simpleType name="RemittanceLocationMethod2Code">
1406 <xs:restriction base="xs:string">
1407 <xs:enumeration value="FAXI"/>
1408 <xs:enumeration value="EDIC"/>
1409 <xs:enumeration value="URID"/>
1410 <xs:enumeration value="EMAL"/>
1411 <xs:enumeration value="POST"/>
1412 <xs:enumeration value="SMSM"/>
1413 </xs:restriction>
1414 </xs:simpleType>
1415 <xs:complexType name="ReportEntry4">
1416 <xs:sequence>
1417 <xs:element maxOccurs="1" minOccurs="0" name="NtryRef" type="Max35Text"/>
1418 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
1419 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
1420 <xs:element maxOccurs="1" minOccurs="0" name="RvslInd" type="TrueFalseIndicator"/>
1421 <xs:element name="Sts" type="EntryStatus2Code"/>
1422 <xs:element maxOccurs="1" minOccurs="0" name="BookgDt" type="DateAndDateTimeChoice"/>
1423 <xs:element maxOccurs="1" minOccurs="0" name="ValDt" type="DateAndDateTimeChoice"/>
1424 <xs:element maxOccurs="1" minOccurs="0" name="AcctSvcrRef" type="Max35Text"/>
1425 <xs:element maxOccurs="unbounded" minOccurs="0" name="Avlbty" type="CashBalanceAvailability2"/>
1426 <xs:element name="BkTxCd" type="BankTransactionCodeStructure4"/>
1427 <xs:element maxOccurs="1" minOccurs="0" name="ComssnWvrInd" type="YesNoIndicator"/>
1428 <xs:element maxOccurs="1" minOccurs="0" name="AddtlInfInd" type="MessageIdentification2"/>
1429 <xs:element maxOccurs="1" minOccurs="0" name="AmtDtls" type="AmountAndCurrencyExchange3"/>
1430 <xs:element maxOccurs="1" minOccurs="0" name="Chrgs" type="Charges4"/>
1431 <xs:element maxOccurs="1" minOccurs="0" name="TechInptChanl" type="TechnicalInputChannel1Choice"/>
1432 <xs:element maxOccurs="1" minOccurs="0" name="Intrst" type="TransactionInterest3"/>
1433 <xs:element maxOccurs="1" minOccurs="0" name="CardTx" type="CardEntry1"/>
1434 <xs:element maxOccurs="unbounded" minOccurs="0" name="NtryDtls" type="EntryDetails3"/>
1435 <xs:element maxOccurs="1" minOccurs="0" name="AddtlNtryInf" type="Max500Text"/>
1436 </xs:sequence>
1437 </xs:complexType>
1438 <xs:complexType name="ReportingSource1Choice">
1439 <xs:choice>
1440 <xs:element name="Cd" type="ExternalReportingSource1Code"/>
1441 <xs:element name="Prtry" type="Max35Text"/>
1442 </xs:choice>
1443 </xs:complexType>
1444 <xs:complexType name="ReturnReason5Choice">
1445 <xs:choice>
1446 <xs:element name="Cd" type="ExternalReturnReason1Code"/>
1447 <xs:element name="Prtry" type="Max35Text"/>
1448 </xs:choice>
1449 </xs:complexType>
1450 <xs:complexType name="SecuritiesAccount13">
1451 <xs:sequence>
1452 <xs:element name="Id" type="Max35Text"/>
1453 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="GenericIdentification20"/>
1454 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max70Text"/>
1455 </xs:sequence>
1456 </xs:complexType>
1457 <xs:complexType name="SecurityIdentification14">
1458 <xs:sequence>
1459 <xs:element maxOccurs="1" minOccurs="0" name="ISIN" type="ISINIdentifier"/>
1460 <xs:element maxOccurs="unbounded" minOccurs="0" name="OthrId" type="OtherIdentification1"/>
1461 <xs:element maxOccurs="1" minOccurs="0" name="Desc" type="Max140Text"/>
1462 </xs:sequence>
1463 </xs:complexType>
1464 <xs:complexType name="StructuredRemittanceInformation9">
1465 <xs:sequence>
1466 <xs:element maxOccurs="unbounded" minOccurs="0" name="RfrdDocInf" type="ReferredDocumentInformation3"/>
1467 <xs:element maxOccurs="1" minOccurs="0" name="RfrdDocAmt" type="RemittanceAmount2"/>
1468 <xs:element maxOccurs="1" minOccurs="0" name="CdtrRefInf" type="CreditorReferenceInformation2"/>
1469 <xs:element maxOccurs="1" minOccurs="0" name="Invcr" type="PartyIdentification43"/>
1470 <xs:element maxOccurs="1" minOccurs="0" name="Invcee" type="PartyIdentification43"/>
1471 <xs:element maxOccurs="3" minOccurs="0" name="AddtlRmtInf" type="Max140Text"/>
1472 </xs:sequence>
1473 </xs:complexType>
1474 <xs:complexType name="SupplementaryData1">
1475 <xs:sequence>
1476 <xs:element maxOccurs="1" minOccurs="0" name="PlcAndNm" type="Max350Text"/>
1477 <xs:element name="Envlp" type="SupplementaryDataEnvelope1"/>
1478 </xs:sequence>
1479 </xs:complexType>
1480 <xs:complexType name="SupplementaryDataEnvelope1">
1481 <xs:sequence>
1482 <xs:any namespace="##any" processContents="lax"/>
1483 </xs:sequence>
1484 </xs:complexType>
1485 <xs:complexType name="TaxAmount1">
1486 <xs:sequence>
1487 <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="PercentageRate"/>
1488 <xs:element maxOccurs="1" minOccurs="0" name="TaxblBaseAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1489 <xs:element maxOccurs="1" minOccurs="0" name="TtlAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1490 <xs:element maxOccurs="unbounded" minOccurs="0" name="Dtls" type="TaxRecordDetails1"/>
1491 </xs:sequence>
1492 </xs:complexType>
1493 <xs:complexType name="TaxAmountAndType1">
1494 <xs:sequence>
1495 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="TaxAmountType1Choice"/>
1496 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
1497 </xs:sequence>
1498 </xs:complexType>
1499 <xs:complexType name="TaxAmountType1Choice">
1500 <xs:choice>
1501 <xs:element name="Cd" type="ExternalTaxAmountType1Code"/>
1502 <xs:element name="Prtry" type="Max35Text"/>
1503 </xs:choice>
1504 </xs:complexType>
1505 <xs:complexType name="TaxAuthorisation1">
1506 <xs:sequence>
1507 <xs:element maxOccurs="1" minOccurs="0" name="Titl" type="Max35Text"/>
1508 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
1509 </xs:sequence>
1510 </xs:complexType>
1511 <xs:complexType name="TaxCharges2">
1512 <xs:sequence>
1513 <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Max35Text"/>
1514 <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="PercentageRate"/>
1515 <xs:element maxOccurs="1" minOccurs="0" name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
1516 </xs:sequence>
1517 </xs:complexType>
1518 <xs:complexType name="TaxInformation3">
1519 <xs:sequence>
1520 <xs:element maxOccurs="1" minOccurs="0" name="Cdtr" type="TaxParty1"/>
1521 <xs:element maxOccurs="1" minOccurs="0" name="Dbtr" type="TaxParty2"/>
1522 <xs:element maxOccurs="1" minOccurs="0" name="AdmstnZn" type="Max35Text"/>
1523 <xs:element maxOccurs="1" minOccurs="0" name="RefNb" type="Max140Text"/>
1524 <xs:element maxOccurs="1" minOccurs="0" name="Mtd" type="Max35Text"/>
1525 <xs:element maxOccurs="1" minOccurs="0" name="TtlTaxblBaseAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1526 <xs:element maxOccurs="1" minOccurs="0" name="TtlTaxAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1527 <xs:element maxOccurs="1" minOccurs="0" name="Dt" type="ISODate"/>
1528 <xs:element maxOccurs="1" minOccurs="0" name="SeqNb" type="Number"/>
1529 <xs:element maxOccurs="unbounded" minOccurs="0" name="Rcrd" type="TaxRecord1"/>
1530 </xs:sequence>
1531 </xs:complexType>
1532 <xs:complexType name="TaxParty1">
1533 <xs:sequence>
1534 <xs:element maxOccurs="1" minOccurs="0" name="TaxId" type="Max35Text"/>
1535 <xs:element maxOccurs="1" minOccurs="0" name="RegnId" type="Max35Text"/>
1536 <xs:element maxOccurs="1" minOccurs="0" name="TaxTp" type="Max35Text"/>
1537 </xs:sequence>
1538 </xs:complexType>
1539 <xs:complexType name="TaxParty2">
1540 <xs:sequence>
1541 <xs:element maxOccurs="1" minOccurs="0" name="TaxId" type="Max35Text"/>
1542 <xs:element maxOccurs="1" minOccurs="0" name="RegnId" type="Max35Text"/>
1543 <xs:element maxOccurs="1" minOccurs="0" name="TaxTp" type="Max35Text"/>
1544 <xs:element maxOccurs="1" minOccurs="0" name="Authstn" type="TaxAuthorisation1"/>
1545 </xs:sequence>
1546 </xs:complexType>
1547 <xs:complexType name="TaxPeriod1">
1548 <xs:sequence>
1549 <xs:element maxOccurs="1" minOccurs="0" name="Yr" type="ISODate"/>
1550 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="TaxRecordPeriod1Code"/>
1551 <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DatePeriodDetails"/>
1552 </xs:sequence>
1553 </xs:complexType>
1554 <xs:complexType name="TaxRecord1">
1555 <xs:sequence>
1556 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="Max35Text"/>
1557 <xs:element maxOccurs="1" minOccurs="0" name="Ctgy" type="Max35Text"/>
1558 <xs:element maxOccurs="1" minOccurs="0" name="CtgyDtls" type="Max35Text"/>
1559 <xs:element maxOccurs="1" minOccurs="0" name="DbtrSts" type="Max35Text"/>
1560 <xs:element maxOccurs="1" minOccurs="0" name="CertId" type="Max35Text"/>
1561 <xs:element maxOccurs="1" minOccurs="0" name="FrmsCd" type="Max35Text"/>
1562 <xs:element maxOccurs="1" minOccurs="0" name="Prd" type="TaxPeriod1"/>
1563 <xs:element maxOccurs="1" minOccurs="0" name="TaxAmt" type="TaxAmount1"/>
1564 <xs:element maxOccurs="1" minOccurs="0" name="AddtlInf" type="Max140Text"/>
1565 </xs:sequence>
1566 </xs:complexType>
1567 <xs:complexType name="TaxRecordDetails1">
1568 <xs:sequence>
1569 <xs:element maxOccurs="1" minOccurs="0" name="Prd" type="TaxPeriod1"/>
1570 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
1571 </xs:sequence>
1572 </xs:complexType>
1573 <xs:simpleType name="TaxRecordPeriod1Code">
1574 <xs:restriction base="xs:string">
1575 <xs:enumeration value="MM01"/>
1576 <xs:enumeration value="MM02"/>
1577 <xs:enumeration value="MM03"/>
1578 <xs:enumeration value="MM04"/>
1579 <xs:enumeration value="MM05"/>
1580 <xs:enumeration value="MM06"/>
1581 <xs:enumeration value="MM07"/>
1582 <xs:enumeration value="MM08"/>
1583 <xs:enumeration value="MM09"/>
1584 <xs:enumeration value="MM10"/>
1585 <xs:enumeration value="MM11"/>
1586 <xs:enumeration value="MM12"/>
1587 <xs:enumeration value="QTR1"/>
1588 <xs:enumeration value="QTR2"/>
1589 <xs:enumeration value="QTR3"/>
1590 <xs:enumeration value="QTR4"/>
1591 <xs:enumeration value="HLF1"/>
1592 <xs:enumeration value="HLF2"/>
1593 </xs:restriction>
1594 </xs:simpleType>
1595 <xs:complexType name="TechnicalInputChannel1Choice">
1596 <xs:choice>
1597 <xs:element name="Cd" type="ExternalTechnicalInputChannel1Code"/>
1598 <xs:element name="Prtry" type="Max35Text"/>
1599 </xs:choice>
1600 </xs:complexType>
1601 <xs:complexType name="TotalTransactions4">
1602 <xs:sequence>
1603 <xs:element maxOccurs="1" minOccurs="0" name="TtlNtries" type="NumberAndSumOfTransactions4"/>
1604 <xs:element maxOccurs="1" minOccurs="0" name="TtlCdtNtries" type="NumberAndSumOfTransactions1"/>
1605 <xs:element maxOccurs="1" minOccurs="0" name="TtlDbtNtries" type="NumberAndSumOfTransactions1"/>
1606 <xs:element maxOccurs="unbounded" minOccurs="0" name="TtlNtriesPerBkTxCd" type="TotalsPerBankTransactionCode3"/>
1607 </xs:sequence>
1608 </xs:complexType>
1609 <xs:complexType name="TotalsPerBankTransactionCode3">
1610 <xs:sequence>
1611 <xs:element maxOccurs="1" minOccurs="0" name="NbOfNtries" type="Max15NumericText"/>
1612 <xs:element maxOccurs="1" minOccurs="0" name="Sum" type="DecimalNumber"/>
1613 <xs:element maxOccurs="1" minOccurs="0" name="TtlNetNtry" type="AmountAndDirection35"/>
1614 <xs:element maxOccurs="1" minOccurs="0" name="FcstInd" type="TrueFalseIndicator"/>
1615 <xs:element name="BkTxCd" type="BankTransactionCodeStructure4"/>
1616 <xs:element maxOccurs="unbounded" minOccurs="0" name="Avlbty" type="CashBalanceAvailability2"/>
1617 </xs:sequence>
1618 </xs:complexType>
1619 <xs:complexType name="TrackData1">
1620 <xs:sequence>
1621 <xs:element maxOccurs="1" minOccurs="0" name="TrckNb" type="Exact1NumericText"/>
1622 <xs:element name="TrckVal" type="Max140Text"/>
1623 </xs:sequence>
1624 </xs:complexType>
1625 <xs:complexType name="TransactionAgents3">
1626 <xs:sequence>
1627 <xs:element maxOccurs="1" minOccurs="0" name="DbtrAgt" type="BranchAndFinancialInstitutionIdentification5"/>
1628 <xs:element maxOccurs="1" minOccurs="0" name="CdtrAgt" type="BranchAndFinancialInstitutionIdentification5"/>
1629 <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt1" type="BranchAndFinancialInstitutionIdentification5"/>
1630 <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt2" type="BranchAndFinancialInstitutionIdentification5"/>
1631 <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt3" type="BranchAndFinancialInstitutionIdentification5"/>
1632 <xs:element maxOccurs="1" minOccurs="0" name="RcvgAgt" type="BranchAndFinancialInstitutionIdentification5"/>
1633 <xs:element maxOccurs="1" minOccurs="0" name="DlvrgAgt" type="BranchAndFinancialInstitutionIdentification5"/>
1634 <xs:element maxOccurs="1" minOccurs="0" name="IssgAgt" type="BranchAndFinancialInstitutionIdentification5"/>
1635 <xs:element maxOccurs="1" minOccurs="0" name="SttlmPlc" type="BranchAndFinancialInstitutionIdentification5"/>
1636 <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryAgent3"/>
1637 </xs:sequence>
1638 </xs:complexType>
1639 <xs:complexType name="TransactionDates2">
1640 <xs:sequence>
1641 <xs:element maxOccurs="1" minOccurs="0" name="AccptncDtTm" type="ISODateTime"/>
1642 <xs:element maxOccurs="1" minOccurs="0" name="TradActvtyCtrctlSttlmDt" type="ISODate"/>
1643 <xs:element maxOccurs="1" minOccurs="0" name="TradDt" type="ISODate"/>
1644 <xs:element maxOccurs="1" minOccurs="0" name="IntrBkSttlmDt" type="ISODate"/>
1645 <xs:element maxOccurs="1" minOccurs="0" name="StartDt" type="ISODate"/>
1646 <xs:element maxOccurs="1" minOccurs="0" name="EndDt" type="ISODate"/>
1647 <xs:element maxOccurs="1" minOccurs="0" name="TxDtTm" type="ISODateTime"/>
1648 <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryDate2"/>
1649 </xs:sequence>
1650 </xs:complexType>
1651 <xs:complexType name="TransactionIdentifier1">
1652 <xs:sequence>
1653 <xs:element name="TxDtTm" type="ISODateTime"/>
1654 <xs:element name="TxRef" type="Max35Text"/>
1655 </xs:sequence>
1656 </xs:complexType>
1657 <xs:complexType name="TransactionInterest3">
1658 <xs:sequence>
1659 <xs:element maxOccurs="1" minOccurs="0" name="TtlIntrstAndTaxAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1660 <xs:element maxOccurs="unbounded" minOccurs="0" name="Rcrd" type="InterestRecord1"/>
1661 </xs:sequence>
1662 </xs:complexType>
1663 <xs:complexType name="TransactionParties3">
1664 <xs:sequence>
1665 <xs:element maxOccurs="1" minOccurs="0" name="InitgPty" type="PartyIdentification43"/>
1666 <xs:element maxOccurs="1" minOccurs="0" name="Dbtr" type="PartyIdentification43"/>
1667 <xs:element maxOccurs="1" minOccurs="0" name="DbtrAcct" type="CashAccount24"/>
1668 <xs:element maxOccurs="1" minOccurs="0" name="UltmtDbtr" type="PartyIdentification43"/>
1669 <xs:element maxOccurs="1" minOccurs="0" name="Cdtr" type="PartyIdentification43"/>
1670 <xs:element maxOccurs="1" minOccurs="0" name="CdtrAcct" type="CashAccount24"/>
1671 <xs:element maxOccurs="1" minOccurs="0" name="UltmtCdtr" type="PartyIdentification43"/>
1672 <xs:element maxOccurs="1" minOccurs="0" name="TradgPty" type="PartyIdentification43"/>
1673 <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryParty3"/>
1674 </xs:sequence>
1675 </xs:complexType>
1676 <xs:complexType name="TransactionPrice3Choice">
1677 <xs:choice>
1678 <xs:element name="DealPric" type="Price2"/>
1679 <xs:element maxOccurs="unbounded" minOccurs="1" name="Prtry" type="ProprietaryPrice2"/>
1680 </xs:choice>
1681 </xs:complexType>
1682 <xs:complexType name="TransactionQuantities2Choice">
1683 <xs:choice>
1684 <xs:element name="Qty" type="FinancialInstrumentQuantityChoice"/>
1685 <xs:element name="OrgnlAndCurFaceAmt" type="OriginalAndCurrentQuantities1"/>
1686 <xs:element name="Prtry" type="ProprietaryQuantity1"/>
1687 </xs:choice>
1688 </xs:complexType>
1689 <xs:complexType name="TransactionReferences3">
1690 <xs:sequence>
1691 <xs:element maxOccurs="1" minOccurs="0" name="MsgId" type="Max35Text"/>
1692 <xs:element maxOccurs="1" minOccurs="0" name="AcctSvcrRef" type="Max35Text"/>
1693 <xs:element maxOccurs="1" minOccurs="0" name="PmtInfId" type="Max35Text"/>
1694 <xs:element maxOccurs="1" minOccurs="0" name="InstrId" type="Max35Text"/>
1695 <xs:element maxOccurs="1" minOccurs="0" name="EndToEndId" type="Max35Text"/>
1696 <xs:element maxOccurs="1" minOccurs="0" name="TxId" type="Max35Text"/>
1697 <xs:element maxOccurs="1" minOccurs="0" name="MndtId" type="Max35Text"/>
1698 <xs:element maxOccurs="1" minOccurs="0" name="ChqNb" type="Max35Text"/>
1699 <xs:element maxOccurs="1" minOccurs="0" name="ClrSysRef" type="Max35Text"/>
1700 <xs:element maxOccurs="1" minOccurs="0" name="AcctOwnrTxId" type="Max35Text"/>
1701 <xs:element maxOccurs="1" minOccurs="0" name="AcctSvcrTxId" type="Max35Text"/>
1702 <xs:element maxOccurs="1" minOccurs="0" name="MktInfrstrctrTxId" type="Max35Text"/>
1703 <xs:element maxOccurs="1" minOccurs="0" name="PrcgId" type="Max35Text"/>
1704 <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryReference1"/>
1705 </xs:sequence>
1706 </xs:complexType>
1707 <xs:simpleType name="TrueFalseIndicator">
1708 <xs:restriction base="xs:boolean"/>
1709 </xs:simpleType>
1710 <xs:simpleType name="UnitOfMeasure1Code">
1711 <xs:restriction base="xs:string">
1712 <xs:enumeration value="PIEC"/>
1713 <xs:enumeration value="TONS"/>
1714 <xs:enumeration value="FOOT"/>
1715 <xs:enumeration value="GBGA"/>
1716 <xs:enumeration value="USGA"/>
1717 <xs:enumeration value="GRAM"/>
1718 <xs:enumeration value="INCH"/>
1719 <xs:enumeration value="KILO"/>
1720 <xs:enumeration value="PUND"/>
1721 <xs:enumeration value="METR"/>
1722 <xs:enumeration value="CMET"/>
1723 <xs:enumeration value="MMET"/>
1724 <xs:enumeration value="LITR"/>
1725 <xs:enumeration value="CELI"/>
1726 <xs:enumeration value="MILI"/>
1727 <xs:enumeration value="GBOU"/>
1728 <xs:enumeration value="USOU"/>
1729 <xs:enumeration value="GBQA"/>
1730 <xs:enumeration value="USQA"/>
1731 <xs:enumeration value="GBPI"/>
1732 <xs:enumeration value="USPI"/>
1733 <xs:enumeration value="MILE"/>
1734 <xs:enumeration value="KMET"/>
1735 <xs:enumeration value="YARD"/>
1736 <xs:enumeration value="SQKI"/>
1737 <xs:enumeration value="HECT"/>
1738 <xs:enumeration value="ARES"/>
1739 <xs:enumeration value="SMET"/>
1740 <xs:enumeration value="SCMT"/>
1741 <xs:enumeration value="SMIL"/>
1742 <xs:enumeration value="SQMI"/>
1743 <xs:enumeration value="SQYA"/>
1744 <xs:enumeration value="SQFO"/>
1745 <xs:enumeration value="SQIN"/>
1746 <xs:enumeration value="ACRE"/>
1747 </xs:restriction>
1748 </xs:simpleType>
1749 <xs:simpleType name="UserInterface2Code">
1750 <xs:restriction base="xs:string">
1751 <xs:enumeration value="MDSP"/>
1752 <xs:enumeration value="CDSP"/>
1753 </xs:restriction>
1754 </xs:simpleType>
1755 <xs:simpleType name="YesNoIndicator">
1756 <xs:restriction base="xs:boolean"/>
1757 </xs:simpleType>
1758 <xs:complexType name="YieldedOrValueType1Choice">
1759 <xs:choice>
1760 <xs:element name="Yldd" type="YesNoIndicator"/>
1761 <xs:element name="ValTp" type="PriceValueType1Code"/>
1762 </xs:choice>
1763 </xs:complexType>
1764 </xs:schema>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!--Generated by Standards Editor (build:R1.6.5.2_DEV) on 2015 Feb 24 14:06:11, ISO 20022 version : 2013-->
2 <xs:schema xmlns="urn:iso:std:iso:20022:tech:xsd:camt.052.001.05" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="urn:iso:std:iso:20022:tech:xsd:camt.052.001.05">
3 <xs:element name="Document" type="Document"/>
4 <xs:complexType name="AccountIdentification4Choice">
5 <xs:choice>
6 <xs:element name="IBAN" type="IBAN2007Identifier"/>
7 <xs:element name="Othr" type="GenericAccountIdentification1"/>
8 </xs:choice>
9 </xs:complexType>
10 <xs:complexType name="AccountInterest3">
11 <xs:sequence>
12 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="InterestType1Choice"/>
13 <xs:element maxOccurs="unbounded" minOccurs="0" name="Rate" type="Rate3"/>
14 <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DateTimePeriodDetails"/>
15 <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="Max35Text"/>
16 <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxCharges2"/>
17 </xs:sequence>
18 </xs:complexType>
19 <xs:complexType name="AccountReport18">
20 <xs:sequence>
21 <xs:element name="Id" type="Max35Text"/>
22 <xs:element maxOccurs="1" minOccurs="0" name="RptPgntn" type="Pagination"/>
23 <xs:element maxOccurs="1" minOccurs="0" name="ElctrncSeqNb" type="Number"/>
24 <xs:element maxOccurs="1" minOccurs="0" name="LglSeqNb" type="Number"/>
25 <xs:element name="CreDtTm" type="ISODateTime"/>
26 <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DateTimePeriodDetails"/>
27 <xs:element maxOccurs="1" minOccurs="0" name="CpyDplctInd" type="CopyDuplicate1Code"/>
28 <xs:element maxOccurs="1" minOccurs="0" name="RptgSrc" type="ReportingSource1Choice"/>
29 <xs:element name="Acct" type="CashAccount25"/>
30 <xs:element maxOccurs="1" minOccurs="0" name="RltdAcct" type="CashAccount24"/>
31 <xs:element maxOccurs="unbounded" minOccurs="0" name="Intrst" type="AccountInterest3"/>
32 <xs:element maxOccurs="unbounded" minOccurs="0" name="Bal" type="CashBalance3"/>
33 <xs:element maxOccurs="1" minOccurs="0" name="TxsSummry" type="TotalTransactions4"/>
34 <xs:element maxOccurs="unbounded" minOccurs="0" name="Ntry" type="ReportEntry7"/>
35 <xs:element maxOccurs="1" minOccurs="0" name="AddtlRptInf" type="Max500Text"/>
36 </xs:sequence>
37 </xs:complexType>
38 <xs:complexType name="AccountSchemeName1Choice">
39 <xs:choice>
40 <xs:element name="Cd" type="ExternalAccountIdentification1Code"/>
41 <xs:element name="Prtry" type="Max35Text"/>
42 </xs:choice>
43 </xs:complexType>
44 <xs:simpleType name="ActiveCurrencyAndAmount_SimpleType">
45 <xs:restriction base="xs:decimal">
46 <xs:fractionDigits value="5"/>
47 <xs:totalDigits value="18"/>
48 <xs:minInclusive value="0"/>
49 </xs:restriction>
50 </xs:simpleType>
51 <xs:complexType name="ActiveCurrencyAndAmount">
52 <xs:simpleContent>
53 <xs:extension base="ActiveCurrencyAndAmount_SimpleType">
54 <xs:attribute name="Ccy" type="ActiveCurrencyCode" use="required"/>
55 </xs:extension>
56 </xs:simpleContent>
57 </xs:complexType>
58 <xs:simpleType name="ActiveCurrencyCode">
59 <xs:restriction base="xs:string">
60 <xs:pattern value="[A-Z]{3,3}"/>
61 </xs:restriction>
62 </xs:simpleType>
63 <xs:simpleType name="ActiveOrHistoricCurrencyAnd13DecimalAmount_SimpleType">
64 <xs:restriction base="xs:decimal">
65 <xs:fractionDigits value="13"/>
66 <xs:totalDigits value="18"/>
67 <xs:minInclusive value="0"/>
68 </xs:restriction>
69 </xs:simpleType>
70 <xs:complexType name="ActiveOrHistoricCurrencyAnd13DecimalAmount">
71 <xs:simpleContent>
72 <xs:extension base="ActiveOrHistoricCurrencyAnd13DecimalAmount_SimpleType">
73 <xs:attribute name="Ccy" type="ActiveOrHistoricCurrencyCode" use="required"/>
74 </xs:extension>
75 </xs:simpleContent>
76 </xs:complexType>
77 <xs:simpleType name="ActiveOrHistoricCurrencyAndAmount_SimpleType">
78 <xs:restriction base="xs:decimal">
79 <xs:fractionDigits value="5"/>
80 <xs:totalDigits value="18"/>
81 <xs:minInclusive value="0"/>
82 </xs:restriction>
83 </xs:simpleType>
84 <xs:complexType name="ActiveOrHistoricCurrencyAndAmount">
85 <xs:simpleContent>
86 <xs:extension base="ActiveOrHistoricCurrencyAndAmount_SimpleType">
87 <xs:attribute name="Ccy" type="ActiveOrHistoricCurrencyCode" use="required"/>
88 </xs:extension>
89 </xs:simpleContent>
90 </xs:complexType>
91 <xs:simpleType name="ActiveOrHistoricCurrencyCode">
92 <xs:restriction base="xs:string">
93 <xs:pattern value="[A-Z]{3,3}"/>
94 </xs:restriction>
95 </xs:simpleType>
96 <xs:simpleType name="AddressType2Code">
97 <xs:restriction base="xs:string">
98 <xs:enumeration value="ADDR"/>
99 <xs:enumeration value="PBOX"/>
100 <xs:enumeration value="HOME"/>
101 <xs:enumeration value="BIZZ"/>
102 <xs:enumeration value="MLTO"/>
103 <xs:enumeration value="DLVY"/>
104 </xs:restriction>
105 </xs:simpleType>
106 <xs:complexType name="AmountAndCurrencyExchange3">
107 <xs:sequence>
108 <xs:element maxOccurs="1" minOccurs="0" name="InstdAmt" type="AmountAndCurrencyExchangeDetails3"/>
109 <xs:element maxOccurs="1" minOccurs="0" name="TxAmt" type="AmountAndCurrencyExchangeDetails3"/>
110 <xs:element maxOccurs="1" minOccurs="0" name="CntrValAmt" type="AmountAndCurrencyExchangeDetails3"/>
111 <xs:element maxOccurs="1" minOccurs="0" name="AnncdPstngAmt" type="AmountAndCurrencyExchangeDetails3"/>
112 <xs:element maxOccurs="unbounded" minOccurs="0" name="PrtryAmt" type="AmountAndCurrencyExchangeDetails4"/>
113 </xs:sequence>
114 </xs:complexType>
115 <xs:complexType name="AmountAndCurrencyExchangeDetails3">
116 <xs:sequence>
117 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
118 <xs:element maxOccurs="1" minOccurs="0" name="CcyXchg" type="CurrencyExchange5"/>
119 </xs:sequence>
120 </xs:complexType>
121 <xs:complexType name="AmountAndCurrencyExchangeDetails4">
122 <xs:sequence>
123 <xs:element name="Tp" type="Max35Text"/>
124 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
125 <xs:element maxOccurs="1" minOccurs="0" name="CcyXchg" type="CurrencyExchange5"/>
126 </xs:sequence>
127 </xs:complexType>
128 <xs:complexType name="AmountAndDirection35">
129 <xs:sequence>
130 <xs:element name="Amt" type="NonNegativeDecimalNumber"/>
131 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
132 </xs:sequence>
133 </xs:complexType>
134 <xs:complexType name="AmountRangeBoundary1">
135 <xs:sequence>
136 <xs:element name="BdryAmt" type="ImpliedCurrencyAndAmount"/>
137 <xs:element name="Incl" type="YesNoIndicator"/>
138 </xs:sequence>
139 </xs:complexType>
140 <xs:simpleType name="AnyBICIdentifier">
141 <xs:restriction base="xs:string">
142 <xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
143 </xs:restriction>
144 </xs:simpleType>
145 <xs:simpleType name="AttendanceContext1Code">
146 <xs:restriction base="xs:string">
147 <xs:enumeration value="ATTD"/>
148 <xs:enumeration value="SATT"/>
149 <xs:enumeration value="UATT"/>
150 </xs:restriction>
151 </xs:simpleType>
152 <xs:simpleType name="AuthenticationEntity1Code">
153 <xs:restriction base="xs:string">
154 <xs:enumeration value="ICCD"/>
155 <xs:enumeration value="AGNT"/>
156 <xs:enumeration value="MERC"/>
157 </xs:restriction>
158 </xs:simpleType>
159 <xs:simpleType name="AuthenticationMethod1Code">
160 <xs:restriction base="xs:string">
161 <xs:enumeration value="UKNW"/>
162 <xs:enumeration value="BYPS"/>
163 <xs:enumeration value="NPIN"/>
164 <xs:enumeration value="FPIN"/>
165 <xs:enumeration value="CPSG"/>
166 <xs:enumeration value="PPSG"/>
167 <xs:enumeration value="MANU"/>
168 <xs:enumeration value="MERC"/>
169 <xs:enumeration value="SCRT"/>
170 <xs:enumeration value="SNCT"/>
171 <xs:enumeration value="SCNL"/>
172 </xs:restriction>
173 </xs:simpleType>
174 <xs:simpleType name="BICFIIdentifier">
175 <xs:restriction base="xs:string">
176 <xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
177 </xs:restriction>
178 </xs:simpleType>
179 <xs:complexType name="BalanceSubType1Choice">
180 <xs:choice>
181 <xs:element name="Cd" type="ExternalBalanceSubType1Code"/>
182 <xs:element name="Prtry" type="Max35Text"/>
183 </xs:choice>
184 </xs:complexType>
185 <xs:complexType name="BalanceType12">
186 <xs:sequence>
187 <xs:element name="CdOrPrtry" type="BalanceType5Choice"/>
188 <xs:element maxOccurs="1" minOccurs="0" name="SubTp" type="BalanceSubType1Choice"/>
189 </xs:sequence>
190 </xs:complexType>
191 <xs:simpleType name="BalanceType12Code">
192 <xs:restriction base="xs:string">
193 <xs:enumeration value="XPCD"/>
194 <xs:enumeration value="OPAV"/>
195 <xs:enumeration value="ITAV"/>
196 <xs:enumeration value="CLAV"/>
197 <xs:enumeration value="FWAV"/>
198 <xs:enumeration value="CLBD"/>
199 <xs:enumeration value="ITBD"/>
200 <xs:enumeration value="OPBD"/>
201 <xs:enumeration value="PRCD"/>
202 <xs:enumeration value="INFO"/>
203 </xs:restriction>
204 </xs:simpleType>
205 <xs:complexType name="BalanceType5Choice">
206 <xs:choice>
207 <xs:element name="Cd" type="BalanceType12Code"/>
208 <xs:element name="Prtry" type="Max35Text"/>
209 </xs:choice>
210 </xs:complexType>
211 <xs:complexType name="BankToCustomerAccountReportV05">
212 <xs:sequence>
213 <xs:element name="GrpHdr" type="GroupHeader58"/>
214 <xs:element maxOccurs="unbounded" minOccurs="1" name="Rpt" type="AccountReport18"/>
215 <xs:element maxOccurs="unbounded" minOccurs="0" name="SplmtryData" type="SupplementaryData1"/>
216 </xs:sequence>
217 </xs:complexType>
218 <xs:complexType name="BankTransactionCodeStructure4">
219 <xs:sequence>
220 <xs:element maxOccurs="1" minOccurs="0" name="Domn" type="BankTransactionCodeStructure5"/>
221 <xs:element maxOccurs="1" minOccurs="0" name="Prtry" type="ProprietaryBankTransactionCodeStructure1"/>
222 </xs:sequence>
223 </xs:complexType>
224 <xs:complexType name="BankTransactionCodeStructure5">
225 <xs:sequence>
226 <xs:element name="Cd" type="ExternalBankTransactionDomain1Code"/>
227 <xs:element name="Fmly" type="BankTransactionCodeStructure6"/>
228 </xs:sequence>
229 </xs:complexType>
230 <xs:complexType name="BankTransactionCodeStructure6">
231 <xs:sequence>
232 <xs:element name="Cd" type="ExternalBankTransactionFamily1Code"/>
233 <xs:element name="SubFmlyCd" type="ExternalBankTransactionSubFamily1Code"/>
234 </xs:sequence>
235 </xs:complexType>
236 <xs:simpleType name="BaseOneRate">
237 <xs:restriction base="xs:decimal">
238 <xs:fractionDigits value="10"/>
239 <xs:totalDigits value="11"/>
240 </xs:restriction>
241 </xs:simpleType>
242 <xs:complexType name="BatchInformation2">
243 <xs:sequence>
244 <xs:element maxOccurs="1" minOccurs="0" name="MsgId" type="Max35Text"/>
245 <xs:element maxOccurs="1" minOccurs="0" name="PmtInfId" type="Max35Text"/>
246 <xs:element maxOccurs="1" minOccurs="0" name="NbOfTxs" type="Max15NumericText"/>
247 <xs:element maxOccurs="1" minOccurs="0" name="TtlAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
248 <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
249 </xs:sequence>
250 </xs:complexType>
251 <xs:complexType name="BranchAndFinancialInstitutionIdentification5">
252 <xs:sequence>
253 <xs:element name="FinInstnId" type="FinancialInstitutionIdentification8"/>
254 <xs:element maxOccurs="1" minOccurs="0" name="BrnchId" type="BranchData2"/>
255 </xs:sequence>
256 </xs:complexType>
257 <xs:complexType name="BranchData2">
258 <xs:sequence>
259 <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Max35Text"/>
260 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
261 <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress6"/>
262 </xs:sequence>
263 </xs:complexType>
264 <xs:simpleType name="CSCManagement1Code">
265 <xs:restriction base="xs:string">
266 <xs:enumeration value="PRST"/>
267 <xs:enumeration value="BYPS"/>
268 <xs:enumeration value="UNRD"/>
269 <xs:enumeration value="NCSC"/>
270 </xs:restriction>
271 </xs:simpleType>
272 <xs:complexType name="CardAggregated1">
273 <xs:sequence>
274 <xs:element maxOccurs="1" minOccurs="0" name="AddtlSvc" type="CardPaymentServiceType2Code"/>
275 <xs:element maxOccurs="1" minOccurs="0" name="TxCtgy" type="ExternalCardTransactionCategory1Code"/>
276 <xs:element maxOccurs="1" minOccurs="0" name="SaleRcncltnId" type="Max35Text"/>
277 <xs:element maxOccurs="1" minOccurs="0" name="SeqNbRg" type="CardSequenceNumberRange1"/>
278 <xs:element maxOccurs="1" minOccurs="0" name="TxDtRg" type="DateOrDateTimePeriodChoice"/>
279 </xs:sequence>
280 </xs:complexType>
281 <xs:simpleType name="CardDataReading1Code">
282 <xs:restriction base="xs:string">
283 <xs:enumeration value="TAGC"/>
284 <xs:enumeration value="PHYS"/>
285 <xs:enumeration value="BRCD"/>
286 <xs:enumeration value="MGST"/>
287 <xs:enumeration value="CICC"/>
288 <xs:enumeration value="DFLE"/>
289 <xs:enumeration value="CTLS"/>
290 <xs:enumeration value="ECTL"/>
291 </xs:restriction>
292 </xs:simpleType>
293 <xs:complexType name="CardEntry2">
294 <xs:sequence>
295 <xs:element maxOccurs="1" minOccurs="0" name="Card" type="PaymentCard4"/>
296 <xs:element maxOccurs="1" minOccurs="0" name="POI" type="PointOfInteraction1"/>
297 <xs:element maxOccurs="1" minOccurs="0" name="AggtdNtry" type="CardAggregated1"/>
298 <xs:element maxOccurs="1" minOccurs="0" name="PrePdAcct" type="CashAccount24"/>
299 </xs:sequence>
300 </xs:complexType>
301 <xs:complexType name="CardIndividualTransaction2">
302 <xs:sequence>
303 <xs:element maxOccurs="1" minOccurs="0" name="ICCRltdData" type="Max1025Text"/>
304 <xs:element maxOccurs="1" minOccurs="0" name="PmtCntxt" type="PaymentContext3"/>
305 <xs:element maxOccurs="1" minOccurs="0" name="AddtlSvc" type="CardPaymentServiceType2Code"/>
306 <xs:element maxOccurs="1" minOccurs="0" name="TxCtgy" type="ExternalCardTransactionCategory1Code"/>
307 <xs:element maxOccurs="1" minOccurs="0" name="SaleRcncltnId" type="Max35Text"/>
308 <xs:element maxOccurs="1" minOccurs="0" name="SaleRefNb" type="Max35Text"/>
309 <xs:element maxOccurs="1" minOccurs="0" name="RePresntmntRsn" type="ExternalRePresentmentReason1Code"/>
310 <xs:element maxOccurs="1" minOccurs="0" name="SeqNb" type="Max35Text"/>
311 <xs:element maxOccurs="1" minOccurs="0" name="TxId" type="TransactionIdentifier1"/>
312 <xs:element maxOccurs="1" minOccurs="0" name="Pdct" type="Product2"/>
313 <xs:element maxOccurs="1" minOccurs="0" name="VldtnDt" type="ISODate"/>
314 <xs:element maxOccurs="1" minOccurs="0" name="VldtnSeqNb" type="Max35Text"/>
315 </xs:sequence>
316 </xs:complexType>
317 <xs:simpleType name="CardPaymentServiceType2Code">
318 <xs:restriction base="xs:string">
319 <xs:enumeration value="AGGR"/>
320 <xs:enumeration value="DCCV"/>
321 <xs:enumeration value="GRTT"/>
322 <xs:enumeration value="INSP"/>
323 <xs:enumeration value="LOYT"/>
324 <xs:enumeration value="NRES"/>
325 <xs:enumeration value="PUCO"/>
326 <xs:enumeration value="RECP"/>
327 <xs:enumeration value="SOAF"/>
328 <xs:enumeration value="UNAF"/>
329 <xs:enumeration value="VCAU"/>
330 </xs:restriction>
331 </xs:simpleType>
332 <xs:complexType name="CardSecurityInformation1">
333 <xs:sequence>
334 <xs:element name="CSCMgmt" type="CSCManagement1Code"/>
335 <xs:element maxOccurs="1" minOccurs="0" name="CSCVal" type="Min3Max4NumericText"/>
336 </xs:sequence>
337 </xs:complexType>
338 <xs:complexType name="CardSequenceNumberRange1">
339 <xs:sequence>
340 <xs:element maxOccurs="1" minOccurs="0" name="FrstTx" type="Max35Text"/>
341 <xs:element maxOccurs="1" minOccurs="0" name="LastTx" type="Max35Text"/>
342 </xs:sequence>
343 </xs:complexType>
344 <xs:complexType name="CardTransaction2">
345 <xs:sequence>
346 <xs:element maxOccurs="1" minOccurs="0" name="Card" type="PaymentCard4"/>
347 <xs:element maxOccurs="1" minOccurs="0" name="POI" type="PointOfInteraction1"/>
348 <xs:element maxOccurs="1" minOccurs="0" name="Tx" type="CardTransaction2Choice"/>
349 <xs:element maxOccurs="1" minOccurs="0" name="PrePdAcct" type="CashAccount24"/>
350 </xs:sequence>
351 </xs:complexType>
352 <xs:complexType name="CardTransaction2Choice">
353 <xs:choice>
354 <xs:element name="Aggtd" type="CardAggregated1"/>
355 <xs:element name="Indv" type="CardIndividualTransaction2"/>
356 </xs:choice>
357 </xs:complexType>
358 <xs:complexType name="CardholderAuthentication2">
359 <xs:sequence>
360 <xs:element name="AuthntcnMtd" type="AuthenticationMethod1Code"/>
361 <xs:element name="AuthntcnNtty" type="AuthenticationEntity1Code"/>
362 </xs:sequence>
363 </xs:complexType>
364 <xs:simpleType name="CardholderVerificationCapability1Code">
365 <xs:restriction base="xs:string">
366 <xs:enumeration value="MNSG"/>
367 <xs:enumeration value="NPIN"/>
368 <xs:enumeration value="FCPN"/>
369 <xs:enumeration value="FEPN"/>
370 <xs:enumeration value="FDSG"/>
371 <xs:enumeration value="FBIO"/>
372 <xs:enumeration value="MNVR"/>
373 <xs:enumeration value="FBIG"/>
374 <xs:enumeration value="APKI"/>
375 <xs:enumeration value="PKIS"/>
376 <xs:enumeration value="CHDT"/>
377 <xs:enumeration value="SCEC"/>
378 </xs:restriction>
379 </xs:simpleType>
380 <xs:complexType name="CashAccount24">
381 <xs:sequence>
382 <xs:element name="Id" type="AccountIdentification4Choice"/>
383 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CashAccountType2Choice"/>
384 <xs:element maxOccurs="1" minOccurs="0" name="Ccy" type="ActiveOrHistoricCurrencyCode"/>
385 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max70Text"/>
386 </xs:sequence>
387 </xs:complexType>
388 <xs:complexType name="CashAccount25">
389 <xs:sequence>
390 <xs:element name="Id" type="AccountIdentification4Choice"/>
391 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CashAccountType2Choice"/>
392 <xs:element maxOccurs="1" minOccurs="0" name="Ccy" type="ActiveOrHistoricCurrencyCode"/>
393 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max70Text"/>
394 <xs:element maxOccurs="1" minOccurs="0" name="Ownr" type="PartyIdentification43"/>
395 <xs:element maxOccurs="1" minOccurs="0" name="Svcr" type="BranchAndFinancialInstitutionIdentification5"/>
396 </xs:sequence>
397 </xs:complexType>
398 <xs:complexType name="CashAccountType2Choice">
399 <xs:choice>
400 <xs:element name="Cd" type="ExternalCashAccountType1Code"/>
401 <xs:element name="Prtry" type="Max35Text"/>
402 </xs:choice>
403 </xs:complexType>
404 <xs:complexType name="CashBalance3">
405 <xs:sequence>
406 <xs:element name="Tp" type="BalanceType12"/>
407 <xs:element maxOccurs="1" minOccurs="0" name="CdtLine" type="CreditLine2"/>
408 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
409 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
410 <xs:element name="Dt" type="DateAndDateTimeChoice"/>
411 <xs:element maxOccurs="unbounded" minOccurs="0" name="Avlbty" type="CashBalanceAvailability2"/>
412 </xs:sequence>
413 </xs:complexType>
414 <xs:complexType name="CashBalanceAvailability2">
415 <xs:sequence>
416 <xs:element name="Dt" type="CashBalanceAvailabilityDate1"/>
417 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
418 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
419 </xs:sequence>
420 </xs:complexType>
421 <xs:complexType name="CashBalanceAvailabilityDate1">
422 <xs:sequence>
423 <xs:choice>
424 <xs:element name="NbOfDays" type="Max15PlusSignedNumericText"/>
425 <xs:element name="ActlDt" type="ISODate"/>
426 </xs:choice>
427 </xs:sequence>
428 </xs:complexType>
429 <xs:complexType name="CashDeposit1">
430 <xs:sequence>
431 <xs:element name="NoteDnmtn" type="ActiveCurrencyAndAmount"/>
432 <xs:element name="NbOfNotes" type="Max15NumericText"/>
433 <xs:element name="Amt" type="ActiveCurrencyAndAmount"/>
434 </xs:sequence>
435 </xs:complexType>
436 <xs:simpleType name="ChargeBearerType1Code">
437 <xs:restriction base="xs:string">
438 <xs:enumeration value="DEBT"/>
439 <xs:enumeration value="CRED"/>
440 <xs:enumeration value="SHAR"/>
441 <xs:enumeration value="SLEV"/>
442 </xs:restriction>
443 </xs:simpleType>
444 <xs:simpleType name="ChargeIncludedIndicator">
445 <xs:restriction base="xs:boolean"/>
446 </xs:simpleType>
447 <xs:complexType name="ChargeType3Choice">
448 <xs:choice>
449 <xs:element name="Cd" type="ExternalChargeType1Code"/>
450 <xs:element name="Prtry" type="GenericIdentification3"/>
451 </xs:choice>
452 </xs:complexType>
453 <xs:complexType name="Charges4">
454 <xs:sequence>
455 <xs:element maxOccurs="1" minOccurs="0" name="TtlChrgsAndTaxAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
456 <xs:element maxOccurs="unbounded" minOccurs="0" name="Rcrd" type="ChargesRecord2"/>
457 </xs:sequence>
458 </xs:complexType>
459 <xs:complexType name="ChargesRecord2">
460 <xs:sequence>
461 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
462 <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
463 <xs:element maxOccurs="1" minOccurs="0" name="ChrgInclInd" type="ChargeIncludedIndicator"/>
464 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="ChargeType3Choice"/>
465 <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="PercentageRate"/>
466 <xs:element maxOccurs="1" minOccurs="0" name="Br" type="ChargeBearerType1Code"/>
467 <xs:element maxOccurs="1" minOccurs="0" name="Agt" type="BranchAndFinancialInstitutionIdentification5"/>
468 <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxCharges2"/>
469 </xs:sequence>
470 </xs:complexType>
471 <xs:complexType name="ClearingSystemIdentification2Choice">
472 <xs:choice>
473 <xs:element name="Cd" type="ExternalClearingSystemIdentification1Code"/>
474 <xs:element name="Prtry" type="Max35Text"/>
475 </xs:choice>
476 </xs:complexType>
477 <xs:complexType name="ClearingSystemMemberIdentification2">
478 <xs:sequence>
479 <xs:element maxOccurs="1" minOccurs="0" name="ClrSysId" type="ClearingSystemIdentification2Choice"/>
480 <xs:element name="MmbId" type="Max35Text"/>
481 </xs:sequence>
482 </xs:complexType>
483 <xs:complexType name="ContactDetails2">
484 <xs:sequence>
485 <xs:element maxOccurs="1" minOccurs="0" name="NmPrfx" type="NamePrefix1Code"/>
486 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
487 <xs:element maxOccurs="1" minOccurs="0" name="PhneNb" type="PhoneNumber"/>
488 <xs:element maxOccurs="1" minOccurs="0" name="MobNb" type="PhoneNumber"/>
489 <xs:element maxOccurs="1" minOccurs="0" name="FaxNb" type="PhoneNumber"/>
490 <xs:element maxOccurs="1" minOccurs="0" name="EmailAdr" type="Max2048Text"/>
491 <xs:element maxOccurs="1" minOccurs="0" name="Othr" type="Max35Text"/>
492 </xs:sequence>
493 </xs:complexType>
494 <xs:simpleType name="CopyDuplicate1Code">
495 <xs:restriction base="xs:string">
496 <xs:enumeration value="CODU"/>
497 <xs:enumeration value="COPY"/>
498 <xs:enumeration value="DUPL"/>
499 </xs:restriction>
500 </xs:simpleType>
501 <xs:complexType name="CorporateAction9">
502 <xs:sequence>
503 <xs:element name="EvtTp" type="Max35Text"/>
504 <xs:element name="EvtId" type="Max35Text"/>
505 </xs:sequence>
506 </xs:complexType>
507 <xs:simpleType name="CountryCode">
508 <xs:restriction base="xs:string">
509 <xs:pattern value="[A-Z]{2,2}"/>
510 </xs:restriction>
511 </xs:simpleType>
512 <xs:simpleType name="CreditDebitCode">
513 <xs:restriction base="xs:string">
514 <xs:enumeration value="CRDT"/>
515 <xs:enumeration value="DBIT"/>
516 </xs:restriction>
517 </xs:simpleType>
518 <xs:complexType name="CreditLine2">
519 <xs:sequence>
520 <xs:element name="Incl" type="TrueFalseIndicator"/>
521 <xs:element maxOccurs="1" minOccurs="0" name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
522 </xs:sequence>
523 </xs:complexType>
524 <xs:complexType name="CreditorReferenceInformation2">
525 <xs:sequence>
526 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CreditorReferenceType2"/>
527 <xs:element maxOccurs="1" minOccurs="0" name="Ref" type="Max35Text"/>
528 </xs:sequence>
529 </xs:complexType>
530 <xs:complexType name="CreditorReferenceType1Choice">
531 <xs:choice>
532 <xs:element name="Cd" type="DocumentType3Code"/>
533 <xs:element name="Prtry" type="Max35Text"/>
534 </xs:choice>
535 </xs:complexType>
536 <xs:complexType name="CreditorReferenceType2">
537 <xs:sequence>
538 <xs:element name="CdOrPrtry" type="CreditorReferenceType1Choice"/>
539 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
540 </xs:sequence>
541 </xs:complexType>
542 <xs:complexType name="CurrencyAndAmountRange2">
543 <xs:sequence>
544 <xs:element name="Amt" type="ImpliedCurrencyAmountRangeChoice"/>
545 <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
546 <xs:element name="Ccy" type="ActiveOrHistoricCurrencyCode"/>
547 </xs:sequence>
548 </xs:complexType>
549 <xs:complexType name="CurrencyExchange5">
550 <xs:sequence>
551 <xs:element name="SrcCcy" type="ActiveOrHistoricCurrencyCode"/>
552 <xs:element maxOccurs="1" minOccurs="0" name="TrgtCcy" type="ActiveOrHistoricCurrencyCode"/>
553 <xs:element maxOccurs="1" minOccurs="0" name="UnitCcy" type="ActiveOrHistoricCurrencyCode"/>
554 <xs:element name="XchgRate" type="BaseOneRate"/>
555 <xs:element maxOccurs="1" minOccurs="0" name="CtrctId" type="Max35Text"/>
556 <xs:element maxOccurs="1" minOccurs="0" name="QtnDt" type="ISODateTime"/>
557 </xs:sequence>
558 </xs:complexType>
559 <xs:complexType name="DateAndDateTimeChoice">
560 <xs:choice>
561 <xs:element name="Dt" type="ISODate"/>
562 <xs:element name="DtTm" type="ISODateTime"/>
563 </xs:choice>
564 </xs:complexType>
565 <xs:complexType name="DateAndPlaceOfBirth">
566 <xs:sequence>
567 <xs:element name="BirthDt" type="ISODate"/>
568 <xs:element maxOccurs="1" minOccurs="0" name="PrvcOfBirth" type="Max35Text"/>
569 <xs:element name="CityOfBirth" type="Max35Text"/>
570 <xs:element name="CtryOfBirth" type="CountryCode"/>
571 </xs:sequence>
572 </xs:complexType>
573 <xs:complexType name="DateOrDateTimePeriodChoice">
574 <xs:choice>
575 <xs:element name="Dt" type="DatePeriodDetails"/>
576 <xs:element name="DtTm" type="DateTimePeriodDetails"/>
577 </xs:choice>
578 </xs:complexType>
579 <xs:complexType name="DatePeriodDetails">
580 <xs:sequence>
581 <xs:element name="FrDt" type="ISODate"/>
582 <xs:element name="ToDt" type="ISODate"/>
583 </xs:sequence>
584 </xs:complexType>
585 <xs:complexType name="DateTimePeriodDetails">
586 <xs:sequence>
587 <xs:element name="FrDtTm" type="ISODateTime"/>
588 <xs:element name="ToDtTm" type="ISODateTime"/>
589 </xs:sequence>
590 </xs:complexType>
591 <xs:simpleType name="DecimalNumber">
592 <xs:restriction base="xs:decimal">
593 <xs:fractionDigits value="17"/>
594 <xs:totalDigits value="18"/>
595 </xs:restriction>
596 </xs:simpleType>
597 <xs:complexType name="DiscountAmountAndType1">
598 <xs:sequence>
599 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="DiscountAmountType1Choice"/>
600 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
601 </xs:sequence>
602 </xs:complexType>
603 <xs:complexType name="DiscountAmountType1Choice">
604 <xs:choice>
605 <xs:element name="Cd" type="ExternalDiscountAmountType1Code"/>
606 <xs:element name="Prtry" type="Max35Text"/>
607 </xs:choice>
608 </xs:complexType>
609 <xs:complexType name="DisplayCapabilities1">
610 <xs:sequence>
611 <xs:element name="DispTp" type="UserInterface2Code"/>
612 <xs:element name="NbOfLines" type="Max3NumericText"/>
613 <xs:element name="LineWidth" type="Max3NumericText"/>
614 </xs:sequence>
615 </xs:complexType>
616 <xs:complexType name="Document">
617 <xs:sequence>
618 <xs:element name="BkToCstmrAcctRpt" type="BankToCustomerAccountReportV05"/>
619 </xs:sequence>
620 </xs:complexType>
621 <xs:complexType name="DocumentAdjustment1">
622 <xs:sequence>
623 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
624 <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
625 <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="Max4Text"/>
626 <xs:element maxOccurs="1" minOccurs="0" name="AddtlInf" type="Max140Text"/>
627 </xs:sequence>
628 </xs:complexType>
629 <xs:simpleType name="DocumentType3Code">
630 <xs:restriction base="xs:string">
631 <xs:enumeration value="RADM"/>
632 <xs:enumeration value="RPIN"/>
633 <xs:enumeration value="FXDR"/>
634 <xs:enumeration value="DISP"/>
635 <xs:enumeration value="PUOR"/>
636 <xs:enumeration value="SCOR"/>
637 </xs:restriction>
638 </xs:simpleType>
639 <xs:simpleType name="DocumentType6Code">
640 <xs:restriction base="xs:string">
641 <xs:enumeration value="MSIN"/>
642 <xs:enumeration value="CNFA"/>
643 <xs:enumeration value="DNFA"/>
644 <xs:enumeration value="CINV"/>
645 <xs:enumeration value="CREN"/>
646 <xs:enumeration value="DEBN"/>
647 <xs:enumeration value="HIRI"/>
648 <xs:enumeration value="SBIN"/>
649 <xs:enumeration value="CMCN"/>
650 <xs:enumeration value="SOAC"/>
651 <xs:enumeration value="DISP"/>
652 <xs:enumeration value="BOLD"/>
653 <xs:enumeration value="VCHR"/>
654 <xs:enumeration value="AROI"/>
655 <xs:enumeration value="TSUT"/>
656 <xs:enumeration value="PUOR"/>
657 </xs:restriction>
658 </xs:simpleType>
659 <xs:complexType name="EntryDetails6">
660 <xs:sequence>
661 <xs:element maxOccurs="1" minOccurs="0" name="Btch" type="BatchInformation2"/>
662 <xs:element maxOccurs="unbounded" minOccurs="0" name="TxDtls" type="EntryTransaction7"/>
663 </xs:sequence>
664 </xs:complexType>
665 <xs:simpleType name="EntryStatus2Code">
666 <xs:restriction base="xs:string">
667 <xs:enumeration value="BOOK"/>
668 <xs:enumeration value="PDNG"/>
669 <xs:enumeration value="INFO"/>
670 </xs:restriction>
671 </xs:simpleType>
672 <xs:complexType name="EntryTransaction7">
673 <xs:sequence>
674 <xs:element maxOccurs="1" minOccurs="0" name="Refs" type="TransactionReferences3"/>
675 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
676 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
677 <xs:element maxOccurs="1" minOccurs="0" name="AmtDtls" type="AmountAndCurrencyExchange3"/>
678 <xs:element maxOccurs="unbounded" minOccurs="0" name="Avlbty" type="CashBalanceAvailability2"/>
679 <xs:element maxOccurs="1" minOccurs="0" name="BkTxCd" type="BankTransactionCodeStructure4"/>
680 <xs:element maxOccurs="1" minOccurs="0" name="Chrgs" type="Charges4"/>
681 <xs:element maxOccurs="1" minOccurs="0" name="Intrst" type="TransactionInterest3"/>
682 <xs:element maxOccurs="1" minOccurs="0" name="RltdPties" type="TransactionParties3"/>
683 <xs:element maxOccurs="1" minOccurs="0" name="RltdAgts" type="TransactionAgents3"/>
684 <xs:element maxOccurs="1" minOccurs="0" name="Purp" type="Purpose2Choice"/>
685 <xs:element maxOccurs="10" minOccurs="0" name="RltdRmtInf" type="RemittanceLocation4"/>
686 <xs:element maxOccurs="1" minOccurs="0" name="RmtInf" type="RemittanceInformation10"/>
687 <xs:element maxOccurs="1" minOccurs="0" name="RltdDts" type="TransactionDates2"/>
688 <xs:element maxOccurs="1" minOccurs="0" name="RltdPric" type="TransactionPrice3Choice"/>
689 <xs:element maxOccurs="unbounded" minOccurs="0" name="RltdQties" type="TransactionQuantities2Choice"/>
690 <xs:element maxOccurs="1" minOccurs="0" name="FinInstrmId" type="SecurityIdentification14"/>
691 <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxInformation3"/>
692 <xs:element maxOccurs="1" minOccurs="0" name="RtrInf" type="PaymentReturnReason2"/>
693 <xs:element maxOccurs="1" minOccurs="0" name="CorpActn" type="CorporateAction9"/>
694 <xs:element maxOccurs="1" minOccurs="0" name="SfkpgAcct" type="SecuritiesAccount13"/>
695 <xs:element maxOccurs="unbounded" minOccurs="0" name="CshDpst" type="CashDeposit1"/>
696 <xs:element maxOccurs="1" minOccurs="0" name="CardTx" type="CardTransaction2"/>
697 <xs:element maxOccurs="1" minOccurs="0" name="AddtlTxInf" type="Max500Text"/>
698 <xs:element maxOccurs="unbounded" minOccurs="0" name="SplmtryData" type="SupplementaryData1"/>
699 </xs:sequence>
700 </xs:complexType>
701 <xs:simpleType name="Exact1NumericText">
702 <xs:restriction base="xs:string">
703 <xs:pattern value="[0-9]"/>
704 </xs:restriction>
705 </xs:simpleType>
706 <xs:simpleType name="Exact3NumericText">
707 <xs:restriction base="xs:string">
708 <xs:pattern value="[0-9]{3}"/>
709 </xs:restriction>
710 </xs:simpleType>
711 <xs:simpleType name="Exact4AlphaNumericText">
712 <xs:restriction base="xs:string">
713 <xs:pattern value="[a-zA-Z0-9]{4}"/>
714 </xs:restriction>
715 </xs:simpleType>
716 <xs:simpleType name="ExternalAccountIdentification1Code">
717 <xs:restriction base="xs:string">
718 <xs:minLength value="1"/>
719 <xs:maxLength value="4"/>
720 </xs:restriction>
721 </xs:simpleType>
722 <xs:simpleType name="ExternalBalanceSubType1Code">
723 <xs:restriction base="xs:string">
724 <xs:minLength value="1"/>
725 <xs:maxLength value="4"/>
726 </xs:restriction>
727 </xs:simpleType>
728 <xs:simpleType name="ExternalBankTransactionDomain1Code">
729 <xs:restriction base="xs:string">
730 <xs:minLength value="1"/>
731 <xs:maxLength value="4"/>
732 </xs:restriction>
733 </xs:simpleType>
734 <xs:simpleType name="ExternalBankTransactionFamily1Code">
735 <xs:restriction base="xs:string">
736 <xs:minLength value="1"/>
737 <xs:maxLength value="4"/>
738 </xs:restriction>
739 </xs:simpleType>
740 <xs:simpleType name="ExternalBankTransactionSubFamily1Code">
741 <xs:restriction base="xs:string">
742 <xs:minLength value="1"/>
743 <xs:maxLength value="4"/>
744 </xs:restriction>
745 </xs:simpleType>
746 <xs:simpleType name="ExternalCardTransactionCategory1Code">
747 <xs:restriction base="xs:string">
748 <xs:minLength value="1"/>
749 <xs:maxLength value="4"/>
750 </xs:restriction>
751 </xs:simpleType>
752 <xs:simpleType name="ExternalCashAccountType1Code">
753 <xs:restriction base="xs:string">
754 <xs:minLength value="1"/>
755 <xs:maxLength value="4"/>
756 </xs:restriction>
757 </xs:simpleType>
758 <xs:simpleType name="ExternalChargeType1Code">
759 <xs:restriction base="xs:string">
760 <xs:minLength value="1"/>
761 <xs:maxLength value="4"/>
762 </xs:restriction>
763 </xs:simpleType>
764 <xs:simpleType name="ExternalClearingSystemIdentification1Code">
765 <xs:restriction base="xs:string">
766 <xs:minLength value="1"/>
767 <xs:maxLength value="5"/>
768 </xs:restriction>
769 </xs:simpleType>
770 <xs:simpleType name="ExternalDiscountAmountType1Code">
771 <xs:restriction base="xs:string">
772 <xs:minLength value="1"/>
773 <xs:maxLength value="4"/>
774 </xs:restriction>
775 </xs:simpleType>
776 <xs:simpleType name="ExternalFinancialInstitutionIdentification1Code">
777 <xs:restriction base="xs:string">
778 <xs:minLength value="1"/>
779 <xs:maxLength value="4"/>
780 </xs:restriction>
781 </xs:simpleType>
782 <xs:simpleType name="ExternalFinancialInstrumentIdentificationType1Code">
783 <xs:restriction base="xs:string">
784 <xs:minLength value="1"/>
785 <xs:maxLength value="4"/>
786 </xs:restriction>
787 </xs:simpleType>
788 <xs:simpleType name="ExternalGarnishmentType1Code">
789 <xs:restriction base="xs:string">
790 <xs:minLength value="1"/>
791 <xs:maxLength value="4"/>
792 </xs:restriction>
793 </xs:simpleType>
794 <xs:simpleType name="ExternalOrganisationIdentification1Code">
795 <xs:restriction base="xs:string">
796 <xs:minLength value="1"/>
797 <xs:maxLength value="4"/>
798 </xs:restriction>
799 </xs:simpleType>
800 <xs:simpleType name="ExternalPersonIdentification1Code">
801 <xs:restriction base="xs:string">
802 <xs:minLength value="1"/>
803 <xs:maxLength value="4"/>
804 </xs:restriction>
805 </xs:simpleType>
806 <xs:simpleType name="ExternalPurpose1Code">
807 <xs:restriction base="xs:string">
808 <xs:minLength value="1"/>
809 <xs:maxLength value="4"/>
810 </xs:restriction>
811 </xs:simpleType>
812 <xs:simpleType name="ExternalRePresentmentReason1Code">
813 <xs:restriction base="xs:string">
814 <xs:minLength value="1"/>
815 <xs:maxLength value="4"/>
816 </xs:restriction>
817 </xs:simpleType>
818 <xs:simpleType name="ExternalReportingSource1Code">
819 <xs:restriction base="xs:string">
820 <xs:minLength value="1"/>
821 <xs:maxLength value="4"/>
822 </xs:restriction>
823 </xs:simpleType>
824 <xs:simpleType name="ExternalReturnReason1Code">
825 <xs:restriction base="xs:string">
826 <xs:minLength value="1"/>
827 <xs:maxLength value="4"/>
828 </xs:restriction>
829 </xs:simpleType>
830 <xs:simpleType name="ExternalTaxAmountType1Code">
831 <xs:restriction base="xs:string">
832 <xs:minLength value="1"/>
833 <xs:maxLength value="4"/>
834 </xs:restriction>
835 </xs:simpleType>
836 <xs:simpleType name="ExternalTechnicalInputChannel1Code">
837 <xs:restriction base="xs:string">
838 <xs:minLength value="1"/>
839 <xs:maxLength value="4"/>
840 </xs:restriction>
841 </xs:simpleType>
842 <xs:complexType name="FinancialIdentificationSchemeName1Choice">
843 <xs:choice>
844 <xs:element name="Cd" type="ExternalFinancialInstitutionIdentification1Code"/>
845 <xs:element name="Prtry" type="Max35Text"/>
846 </xs:choice>
847 </xs:complexType>
848 <xs:complexType name="FinancialInstitutionIdentification8">
849 <xs:sequence>
850 <xs:element maxOccurs="1" minOccurs="0" name="BICFI" type="BICFIIdentifier"/>
851 <xs:element maxOccurs="1" minOccurs="0" name="ClrSysMmbId" type="ClearingSystemMemberIdentification2"/>
852 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
853 <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress6"/>
854 <xs:element maxOccurs="1" minOccurs="0" name="Othr" type="GenericFinancialIdentification1"/>
855 </xs:sequence>
856 </xs:complexType>
857 <xs:complexType name="FinancialInstrumentQuantityChoice">
858 <xs:choice>
859 <xs:element name="Unit" type="DecimalNumber"/>
860 <xs:element name="FaceAmt" type="ImpliedCurrencyAndAmount"/>
861 <xs:element name="AmtsdVal" type="ImpliedCurrencyAndAmount"/>
862 </xs:choice>
863 </xs:complexType>
864 <xs:complexType name="FromToAmountRange">
865 <xs:sequence>
866 <xs:element name="FrAmt" type="AmountRangeBoundary1"/>
867 <xs:element name="ToAmt" type="AmountRangeBoundary1"/>
868 </xs:sequence>
869 </xs:complexType>
870 <xs:complexType name="Garnishment1">
871 <xs:sequence>
872 <xs:element name="Tp" type="GarnishmentType1"/>
873 <xs:element maxOccurs="1" minOccurs="0" name="Grnshee" type="PartyIdentification43"/>
874 <xs:element maxOccurs="1" minOccurs="0" name="GrnshmtAdmstr" type="PartyIdentification43"/>
875 <xs:element maxOccurs="1" minOccurs="0" name="RefNb" type="Max140Text"/>
876 <xs:element maxOccurs="1" minOccurs="0" name="Dt" type="ISODate"/>
877 <xs:element maxOccurs="1" minOccurs="0" name="RmtdAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
878 <xs:element maxOccurs="1" minOccurs="0" name="FmlyMdclInsrncInd" type="TrueFalseIndicator"/>
879 <xs:element maxOccurs="1" minOccurs="0" name="MplyeeTermntnInd" type="TrueFalseIndicator"/>
880 </xs:sequence>
881 </xs:complexType>
882 <xs:complexType name="GarnishmentType1">
883 <xs:sequence>
884 <xs:element name="CdOrPrtry" type="GarnishmentType1Choice"/>
885 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
886 </xs:sequence>
887 </xs:complexType>
888 <xs:complexType name="GarnishmentType1Choice">
889 <xs:choice>
890 <xs:element name="Cd" type="ExternalGarnishmentType1Code"/>
891 <xs:element name="Prtry" type="Max35Text"/>
892 </xs:choice>
893 </xs:complexType>
894 <xs:complexType name="GenericAccountIdentification1">
895 <xs:sequence>
896 <xs:element name="Id" type="Max34Text"/>
897 <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="AccountSchemeName1Choice"/>
898 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
899 </xs:sequence>
900 </xs:complexType>
901 <xs:complexType name="GenericFinancialIdentification1">
902 <xs:sequence>
903 <xs:element name="Id" type="Max35Text"/>
904 <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="FinancialIdentificationSchemeName1Choice"/>
905 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
906 </xs:sequence>
907 </xs:complexType>
908 <xs:complexType name="GenericIdentification1">
909 <xs:sequence>
910 <xs:element name="Id" type="Max35Text"/>
911 <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="Max35Text"/>
912 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
913 </xs:sequence>
914 </xs:complexType>
915 <xs:complexType name="GenericIdentification20">
916 <xs:sequence>
917 <xs:element name="Id" type="Exact4AlphaNumericText"/>
918 <xs:element name="Issr" type="Max35Text"/>
919 <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="Max35Text"/>
920 </xs:sequence>
921 </xs:complexType>
922 <xs:complexType name="GenericIdentification3">
923 <xs:sequence>
924 <xs:element name="Id" type="Max35Text"/>
925 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
926 </xs:sequence>
927 </xs:complexType>
928 <xs:complexType name="GenericIdentification32">
929 <xs:sequence>
930 <xs:element name="Id" type="Max35Text"/>
931 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="PartyType3Code"/>
932 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="PartyType4Code"/>
933 <xs:element maxOccurs="1" minOccurs="0" name="ShrtNm" type="Max35Text"/>
934 </xs:sequence>
935 </xs:complexType>
936 <xs:complexType name="GenericOrganisationIdentification1">
937 <xs:sequence>
938 <xs:element name="Id" type="Max35Text"/>
939 <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="OrganisationIdentificationSchemeName1Choice"/>
940 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
941 </xs:sequence>
942 </xs:complexType>
943 <xs:complexType name="GenericPersonIdentification1">
944 <xs:sequence>
945 <xs:element name="Id" type="Max35Text"/>
946 <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="PersonIdentificationSchemeName1Choice"/>
947 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
948 </xs:sequence>
949 </xs:complexType>
950 <xs:complexType name="GroupHeader58">
951 <xs:sequence>
952 <xs:element name="MsgId" type="Max35Text"/>
953 <xs:element name="CreDtTm" type="ISODateTime"/>
954 <xs:element maxOccurs="1" minOccurs="0" name="MsgRcpt" type="PartyIdentification43"/>
955 <xs:element maxOccurs="1" minOccurs="0" name="MsgPgntn" type="Pagination"/>
956 <xs:element maxOccurs="1" minOccurs="0" name="OrgnlBizQry" type="OriginalBusinessQuery1"/>
957 <xs:element maxOccurs="1" minOccurs="0" name="AddtlInf" type="Max500Text"/>
958 </xs:sequence>
959 </xs:complexType>
960 <xs:simpleType name="IBAN2007Identifier">
961 <xs:restriction base="xs:string">
962 <xs:pattern value="[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}"/>
963 </xs:restriction>
964 </xs:simpleType>
965 <xs:simpleType name="ISINIdentifier">
966 <xs:restriction base="xs:string">
967 <xs:pattern value="[A-Z0-9]{12,12}"/>
968 </xs:restriction>
969 </xs:simpleType>
970 <xs:simpleType name="ISO2ALanguageCode">
971 <xs:restriction base="xs:string">
972 <xs:pattern value="[a-z]{2,2}"/>
973 </xs:restriction>
974 </xs:simpleType>
975 <xs:simpleType name="ISODate">
976 <xs:restriction base="xs:date"/>
977 </xs:simpleType>
978 <xs:simpleType name="ISODateTime">
979 <xs:restriction base="xs:dateTime"/>
980 </xs:simpleType>
981 <xs:simpleType name="ISOYearMonth">
982 <xs:restriction base="xs:gYearMonth"/>
983 </xs:simpleType>
984 <xs:complexType name="IdentificationSource3Choice">
985 <xs:choice>
986 <xs:element name="Cd" type="ExternalFinancialInstrumentIdentificationType1Code"/>
987 <xs:element name="Prtry" type="Max35Text"/>
988 </xs:choice>
989 </xs:complexType>
990 <xs:complexType name="ImpliedCurrencyAmountRangeChoice">
991 <xs:choice>
992 <xs:element name="FrAmt" type="AmountRangeBoundary1"/>
993 <xs:element name="ToAmt" type="AmountRangeBoundary1"/>
994 <xs:element name="FrToAmt" type="FromToAmountRange"/>
995 <xs:element name="EQAmt" type="ImpliedCurrencyAndAmount"/>
996 <xs:element name="NEQAmt" type="ImpliedCurrencyAndAmount"/>
997 </xs:choice>
998 </xs:complexType>
999 <xs:simpleType name="ImpliedCurrencyAndAmount">
1000 <xs:restriction base="xs:decimal">
1001 <xs:fractionDigits value="5"/>
1002 <xs:totalDigits value="18"/>
1003 <xs:minInclusive value="0"/>
1004 </xs:restriction>
1005 </xs:simpleType>
1006 <xs:complexType name="InterestRecord1">
1007 <xs:sequence>
1008 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
1009 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
1010 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="InterestType1Choice"/>
1011 <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="Rate3"/>
1012 <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DateTimePeriodDetails"/>
1013 <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="Max35Text"/>
1014 <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxCharges2"/>
1015 </xs:sequence>
1016 </xs:complexType>
1017 <xs:complexType name="InterestType1Choice">
1018 <xs:choice>
1019 <xs:element name="Cd" type="InterestType1Code"/>
1020 <xs:element name="Prtry" type="Max35Text"/>
1021 </xs:choice>
1022 </xs:complexType>
1023 <xs:simpleType name="InterestType1Code">
1024 <xs:restriction base="xs:string">
1025 <xs:enumeration value="INDY"/>
1026 <xs:enumeration value="OVRN"/>
1027 </xs:restriction>
1028 </xs:simpleType>
1029 <xs:simpleType name="Max1025Text">
1030 <xs:restriction base="xs:string">
1031 <xs:minLength value="1"/>
1032 <xs:maxLength value="1025"/>
1033 </xs:restriction>
1034 </xs:simpleType>
1035 <xs:simpleType name="Max105Text">
1036 <xs:restriction base="xs:string">
1037 <xs:minLength value="1"/>
1038 <xs:maxLength value="105"/>
1039 </xs:restriction>
1040 </xs:simpleType>
1041 <xs:simpleType name="Max140Text">
1042 <xs:restriction base="xs:string">
1043 <xs:minLength value="1"/>
1044 <xs:maxLength value="140"/>
1045 </xs:restriction>
1046 </xs:simpleType>
1047 <xs:simpleType name="Max15NumericText">
1048 <xs:restriction base="xs:string">
1049 <xs:pattern value="[0-9]{1,15}"/>
1050 </xs:restriction>
1051 </xs:simpleType>
1052 <xs:simpleType name="Max15PlusSignedNumericText">
1053 <xs:restriction base="xs:string">
1054 <xs:pattern value="[\+]{0,1}[0-9]{1,15}"/>
1055 </xs:restriction>
1056 </xs:simpleType>
1057 <xs:simpleType name="Max16Text">
1058 <xs:restriction base="xs:string">
1059 <xs:minLength value="1"/>
1060 <xs:maxLength value="16"/>
1061 </xs:restriction>
1062 </xs:simpleType>
1063 <xs:simpleType name="Max2048Text">
1064 <xs:restriction base="xs:string">
1065 <xs:minLength value="1"/>
1066 <xs:maxLength value="2048"/>
1067 </xs:restriction>
1068 </xs:simpleType>
1069 <xs:simpleType name="Max34Text">
1070 <xs:restriction base="xs:string">
1071 <xs:minLength value="1"/>
1072 <xs:maxLength value="34"/>
1073 </xs:restriction>
1074 </xs:simpleType>
1075 <xs:simpleType name="Max350Text">
1076 <xs:restriction base="xs:string">
1077 <xs:minLength value="1"/>
1078 <xs:maxLength value="350"/>
1079 </xs:restriction>
1080 </xs:simpleType>
1081 <xs:simpleType name="Max35Text">
1082 <xs:restriction base="xs:string">
1083 <xs:minLength value="1"/>
1084 <xs:maxLength value="35"/>
1085 </xs:restriction>
1086 </xs:simpleType>
1087 <xs:simpleType name="Max3NumericText">
1088 <xs:restriction base="xs:string">
1089 <xs:pattern value="[0-9]{1,3}"/>
1090 </xs:restriction>
1091 </xs:simpleType>
1092 <xs:simpleType name="Max4Text">
1093 <xs:restriction base="xs:string">
1094 <xs:minLength value="1"/>
1095 <xs:maxLength value="4"/>
1096 </xs:restriction>
1097 </xs:simpleType>
1098 <xs:simpleType name="Max500Text">
1099 <xs:restriction base="xs:string">
1100 <xs:minLength value="1"/>
1101 <xs:maxLength value="500"/>
1102 </xs:restriction>
1103 </xs:simpleType>
1104 <xs:simpleType name="Max5NumericText">
1105 <xs:restriction base="xs:string">
1106 <xs:pattern value="[0-9]{1,5}"/>
1107 </xs:restriction>
1108 </xs:simpleType>
1109 <xs:simpleType name="Max70Text">
1110 <xs:restriction base="xs:string">
1111 <xs:minLength value="1"/>
1112 <xs:maxLength value="70"/>
1113 </xs:restriction>
1114 </xs:simpleType>
1115 <xs:complexType name="MessageIdentification2">
1116 <xs:sequence>
1117 <xs:element maxOccurs="1" minOccurs="0" name="MsgNmId" type="Max35Text"/>
1118 <xs:element maxOccurs="1" minOccurs="0" name="MsgId" type="Max35Text"/>
1119 </xs:sequence>
1120 </xs:complexType>
1121 <xs:simpleType name="Min2Max3NumericText">
1122 <xs:restriction base="xs:string">
1123 <xs:pattern value="[0-9]{2,3}"/>
1124 </xs:restriction>
1125 </xs:simpleType>
1126 <xs:simpleType name="Min3Max4NumericText">
1127 <xs:restriction base="xs:string">
1128 <xs:pattern value="[0-9]{3,4}"/>
1129 </xs:restriction>
1130 </xs:simpleType>
1131 <xs:simpleType name="Min8Max28NumericText">
1132 <xs:restriction base="xs:string">
1133 <xs:pattern value="[0-9]{8,28}"/>
1134 </xs:restriction>
1135 </xs:simpleType>
1136 <xs:complexType name="NameAndAddress10">
1137 <xs:sequence>
1138 <xs:element name="Nm" type="Max140Text"/>
1139 <xs:element name="Adr" type="PostalAddress6"/>
1140 </xs:sequence>
1141 </xs:complexType>
1142 <xs:simpleType name="NamePrefix1Code">
1143 <xs:restriction base="xs:string">
1144 <xs:enumeration value="DOCT"/>
1145 <xs:enumeration value="MIST"/>
1146 <xs:enumeration value="MISS"/>
1147 <xs:enumeration value="MADM"/>
1148 </xs:restriction>
1149 </xs:simpleType>
1150 <xs:simpleType name="NonNegativeDecimalNumber">
1151 <xs:restriction base="xs:decimal">
1152 <xs:fractionDigits value="17"/>
1153 <xs:totalDigits value="18"/>
1154 <xs:minInclusive value="0"/>
1155 </xs:restriction>
1156 </xs:simpleType>
1157 <xs:simpleType name="Number">
1158 <xs:restriction base="xs:decimal">
1159 <xs:fractionDigits value="0"/>
1160 <xs:totalDigits value="18"/>
1161 </xs:restriction>
1162 </xs:simpleType>
1163 <xs:complexType name="NumberAndSumOfTransactions1">
1164 <xs:sequence>
1165 <xs:element maxOccurs="1" minOccurs="0" name="NbOfNtries" type="Max15NumericText"/>
1166 <xs:element maxOccurs="1" minOccurs="0" name="Sum" type="DecimalNumber"/>
1167 </xs:sequence>
1168 </xs:complexType>
1169 <xs:complexType name="NumberAndSumOfTransactions4">
1170 <xs:sequence>
1171 <xs:element maxOccurs="1" minOccurs="0" name="NbOfNtries" type="Max15NumericText"/>
1172 <xs:element maxOccurs="1" minOccurs="0" name="Sum" type="DecimalNumber"/>
1173 <xs:element maxOccurs="1" minOccurs="0" name="TtlNetNtry" type="AmountAndDirection35"/>
1174 </xs:sequence>
1175 </xs:complexType>
1176 <xs:simpleType name="OnLineCapability1Code">
1177 <xs:restriction base="xs:string">
1178 <xs:enumeration value="OFLN"/>
1179 <xs:enumeration value="ONLN"/>
1180 <xs:enumeration value="SMON"/>
1181 </xs:restriction>
1182 </xs:simpleType>
1183 <xs:complexType name="OrganisationIdentification8">
1184 <xs:sequence>
1185 <xs:element maxOccurs="1" minOccurs="0" name="AnyBIC" type="AnyBICIdentifier"/>
1186 <xs:element maxOccurs="unbounded" minOccurs="0" name="Othr" type="GenericOrganisationIdentification1"/>
1187 </xs:sequence>
1188 </xs:complexType>
1189 <xs:complexType name="OrganisationIdentificationSchemeName1Choice">
1190 <xs:choice>
1191 <xs:element name="Cd" type="ExternalOrganisationIdentification1Code"/>
1192 <xs:element name="Prtry" type="Max35Text"/>
1193 </xs:choice>
1194 </xs:complexType>
1195 <xs:complexType name="OriginalAndCurrentQuantities1">
1196 <xs:sequence>
1197 <xs:element name="FaceAmt" type="ImpliedCurrencyAndAmount"/>
1198 <xs:element name="AmtsdVal" type="ImpliedCurrencyAndAmount"/>
1199 </xs:sequence>
1200 </xs:complexType>
1201 <xs:complexType name="OriginalBusinessQuery1">
1202 <xs:sequence>
1203 <xs:element name="MsgId" type="Max35Text"/>
1204 <xs:element maxOccurs="1" minOccurs="0" name="MsgNmId" type="Max35Text"/>
1205 <xs:element maxOccurs="1" minOccurs="0" name="CreDtTm" type="ISODateTime"/>
1206 </xs:sequence>
1207 </xs:complexType>
1208 <xs:complexType name="OtherIdentification1">
1209 <xs:sequence>
1210 <xs:element name="Id" type="Max35Text"/>
1211 <xs:element maxOccurs="1" minOccurs="0" name="Sfx" type="Max16Text"/>
1212 <xs:element name="Tp" type="IdentificationSource3Choice"/>
1213 </xs:sequence>
1214 </xs:complexType>
1215 <xs:simpleType name="POIComponentType1Code">
1216 <xs:restriction base="xs:string">
1217 <xs:enumeration value="SOFT"/>
1218 <xs:enumeration value="EMVK"/>
1219 <xs:enumeration value="EMVO"/>
1220 <xs:enumeration value="MRIT"/>
1221 <xs:enumeration value="CHIT"/>
1222 <xs:enumeration value="SECM"/>
1223 <xs:enumeration value="PEDV"/>
1224 </xs:restriction>
1225 </xs:simpleType>
1226 <xs:complexType name="Pagination">
1227 <xs:sequence>
1228 <xs:element name="PgNb" type="Max5NumericText"/>
1229 <xs:element name="LastPgInd" type="YesNoIndicator"/>
1230 </xs:sequence>
1231 </xs:complexType>
1232 <xs:complexType name="Party11Choice">
1233 <xs:choice>
1234 <xs:element name="OrgId" type="OrganisationIdentification8"/>
1235 <xs:element name="PrvtId" type="PersonIdentification5"/>
1236 </xs:choice>
1237 </xs:complexType>
1238 <xs:complexType name="PartyIdentification43">
1239 <xs:sequence>
1240 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
1241 <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress6"/>
1242 <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Party11Choice"/>
1243 <xs:element maxOccurs="1" minOccurs="0" name="CtryOfRes" type="CountryCode"/>
1244 <xs:element maxOccurs="1" minOccurs="0" name="CtctDtls" type="ContactDetails2"/>
1245 </xs:sequence>
1246 </xs:complexType>
1247 <xs:simpleType name="PartyType3Code">
1248 <xs:restriction base="xs:string">
1249 <xs:enumeration value="OPOI"/>
1250 <xs:enumeration value="MERC"/>
1251 <xs:enumeration value="ACCP"/>
1252 <xs:enumeration value="ITAG"/>
1253 <xs:enumeration value="ACQR"/>
1254 <xs:enumeration value="CISS"/>
1255 <xs:enumeration value="DLIS"/>
1256 </xs:restriction>
1257 </xs:simpleType>
1258 <xs:simpleType name="PartyType4Code">
1259 <xs:restriction base="xs:string">
1260 <xs:enumeration value="MERC"/>
1261 <xs:enumeration value="ACCP"/>
1262 <xs:enumeration value="ITAG"/>
1263 <xs:enumeration value="ACQR"/>
1264 <xs:enumeration value="CISS"/>
1265 <xs:enumeration value="TAXH"/>
1266 </xs:restriction>
1267 </xs:simpleType>
1268 <xs:complexType name="PaymentCard4">
1269 <xs:sequence>
1270 <xs:element maxOccurs="1" minOccurs="0" name="PlainCardData" type="PlainCardData1"/>
1271 <xs:element maxOccurs="1" minOccurs="0" name="CardCtryCd" type="Exact3NumericText"/>
1272 <xs:element maxOccurs="1" minOccurs="0" name="CardBrnd" type="GenericIdentification1"/>
1273 <xs:element maxOccurs="1" minOccurs="0" name="AddtlCardData" type="Max70Text"/>
1274 </xs:sequence>
1275 </xs:complexType>
1276 <xs:complexType name="PaymentContext3">
1277 <xs:sequence>
1278 <xs:element maxOccurs="1" minOccurs="0" name="CardPres" type="TrueFalseIndicator"/>
1279 <xs:element maxOccurs="1" minOccurs="0" name="CrdhldrPres" type="TrueFalseIndicator"/>
1280 <xs:element maxOccurs="1" minOccurs="0" name="OnLineCntxt" type="TrueFalseIndicator"/>
1281 <xs:element maxOccurs="1" minOccurs="0" name="AttndncCntxt" type="AttendanceContext1Code"/>
1282 <xs:element maxOccurs="1" minOccurs="0" name="TxEnvt" type="TransactionEnvironment1Code"/>
1283 <xs:element maxOccurs="1" minOccurs="0" name="TxChanl" type="TransactionChannel1Code"/>
1284 <xs:element maxOccurs="1" minOccurs="0" name="AttndntMsgCpbl" type="TrueFalseIndicator"/>
1285 <xs:element maxOccurs="1" minOccurs="0" name="AttndntLang" type="ISO2ALanguageCode"/>
1286 <xs:element name="CardDataNtryMd" type="CardDataReading1Code"/>
1287 <xs:element maxOccurs="1" minOccurs="0" name="FllbckInd" type="TrueFalseIndicator"/>
1288 <xs:element maxOccurs="1" minOccurs="0" name="AuthntcnMtd" type="CardholderAuthentication2"/>
1289 </xs:sequence>
1290 </xs:complexType>
1291 <xs:complexType name="PaymentReturnReason2">
1292 <xs:sequence>
1293 <xs:element maxOccurs="1" minOccurs="0" name="OrgnlBkTxCd" type="BankTransactionCodeStructure4"/>
1294 <xs:element maxOccurs="1" minOccurs="0" name="Orgtr" type="PartyIdentification43"/>
1295 <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="ReturnReason5Choice"/>
1296 <xs:element maxOccurs="unbounded" minOccurs="0" name="AddtlInf" type="Max105Text"/>
1297 </xs:sequence>
1298 </xs:complexType>
1299 <xs:simpleType name="PercentageRate">
1300 <xs:restriction base="xs:decimal">
1301 <xs:fractionDigits value="10"/>
1302 <xs:totalDigits value="11"/>
1303 </xs:restriction>
1304 </xs:simpleType>
1305 <xs:complexType name="PersonIdentification5">
1306 <xs:sequence>
1307 <xs:element maxOccurs="1" minOccurs="0" name="DtAndPlcOfBirth" type="DateAndPlaceOfBirth"/>
1308 <xs:element maxOccurs="unbounded" minOccurs="0" name="Othr" type="GenericPersonIdentification1"/>
1309 </xs:sequence>
1310 </xs:complexType>
1311 <xs:complexType name="PersonIdentificationSchemeName1Choice">
1312 <xs:choice>
1313 <xs:element name="Cd" type="ExternalPersonIdentification1Code"/>
1314 <xs:element name="Prtry" type="Max35Text"/>
1315 </xs:choice>
1316 </xs:complexType>
1317 <xs:simpleType name="PhoneNumber">
1318 <xs:restriction base="xs:string">
1319 <xs:pattern value="\+[0-9]{1,3}-[0-9()+\-]{1,30}"/>
1320 </xs:restriction>
1321 </xs:simpleType>
1322 <xs:complexType name="PlainCardData1">
1323 <xs:sequence>
1324 <xs:element name="PAN" type="Min8Max28NumericText"/>
1325 <xs:element maxOccurs="1" minOccurs="0" name="CardSeqNb" type="Min2Max3NumericText"/>
1326 <xs:element maxOccurs="1" minOccurs="0" name="FctvDt" type="ISOYearMonth"/>
1327 <xs:element name="XpryDt" type="ISOYearMonth"/>
1328 <xs:element maxOccurs="1" minOccurs="0" name="SvcCd" type="Exact3NumericText"/>
1329 <xs:element maxOccurs="unbounded" minOccurs="0" name="TrckData" type="TrackData1"/>
1330 <xs:element maxOccurs="1" minOccurs="0" name="CardSctyCd" type="CardSecurityInformation1"/>
1331 </xs:sequence>
1332 </xs:complexType>
1333 <xs:complexType name="PointOfInteraction1">
1334 <xs:sequence>
1335 <xs:element name="Id" type="GenericIdentification32"/>
1336 <xs:element maxOccurs="1" minOccurs="0" name="SysNm" type="Max70Text"/>
1337 <xs:element maxOccurs="1" minOccurs="0" name="GrpId" type="Max35Text"/>
1338 <xs:element maxOccurs="1" minOccurs="0" name="Cpblties" type="PointOfInteractionCapabilities1"/>
1339 <xs:element maxOccurs="unbounded" minOccurs="0" name="Cmpnt" type="PointOfInteractionComponent1"/>
1340 </xs:sequence>
1341 </xs:complexType>
1342 <xs:complexType name="PointOfInteractionCapabilities1">
1343 <xs:sequence>
1344 <xs:element maxOccurs="unbounded" minOccurs="0" name="CardRdngCpblties" type="CardDataReading1Code"/>
1345 <xs:element maxOccurs="unbounded" minOccurs="0" name="CrdhldrVrfctnCpblties" type="CardholderVerificationCapability1Code"/>
1346 <xs:element maxOccurs="1" minOccurs="0" name="OnLineCpblties" type="OnLineCapability1Code"/>
1347 <xs:element maxOccurs="unbounded" minOccurs="0" name="DispCpblties" type="DisplayCapabilities1"/>
1348 <xs:element maxOccurs="1" minOccurs="0" name="PrtLineWidth" type="Max3NumericText"/>
1349 </xs:sequence>
1350 </xs:complexType>
1351 <xs:complexType name="PointOfInteractionComponent1">
1352 <xs:sequence>
1353 <xs:element name="POICmpntTp" type="POIComponentType1Code"/>
1354 <xs:element maxOccurs="1" minOccurs="0" name="ManfctrId" type="Max35Text"/>
1355 <xs:element maxOccurs="1" minOccurs="0" name="Mdl" type="Max35Text"/>
1356 <xs:element maxOccurs="1" minOccurs="0" name="VrsnNb" type="Max16Text"/>
1357 <xs:element maxOccurs="1" minOccurs="0" name="SrlNb" type="Max35Text"/>
1358 <xs:element maxOccurs="unbounded" minOccurs="0" name="ApprvlNb" type="Max70Text"/>
1359 </xs:sequence>
1360 </xs:complexType>
1361 <xs:complexType name="PostalAddress6">
1362 <xs:sequence>
1363 <xs:element maxOccurs="1" minOccurs="0" name="AdrTp" type="AddressType2Code"/>
1364 <xs:element maxOccurs="1" minOccurs="0" name="Dept" type="Max70Text"/>
1365 <xs:element maxOccurs="1" minOccurs="0" name="SubDept" type="Max70Text"/>
1366 <xs:element maxOccurs="1" minOccurs="0" name="StrtNm" type="Max70Text"/>
1367 <xs:element maxOccurs="1" minOccurs="0" name="BldgNb" type="Max16Text"/>
1368 <xs:element maxOccurs="1" minOccurs="0" name="PstCd" type="Max16Text"/>
1369 <xs:element maxOccurs="1" minOccurs="0" name="TwnNm" type="Max35Text"/>
1370 <xs:element maxOccurs="1" minOccurs="0" name="CtrySubDvsn" type="Max35Text"/>
1371 <xs:element maxOccurs="1" minOccurs="0" name="Ctry" type="CountryCode"/>
1372 <xs:element maxOccurs="7" minOccurs="0" name="AdrLine" type="Max70Text"/>
1373 </xs:sequence>
1374 </xs:complexType>
1375 <xs:complexType name="Price2">
1376 <xs:sequence>
1377 <xs:element name="Tp" type="YieldedOrValueType1Choice"/>
1378 <xs:element name="Val" type="PriceRateOrAmountChoice"/>
1379 </xs:sequence>
1380 </xs:complexType>
1381 <xs:complexType name="PriceRateOrAmountChoice">
1382 <xs:choice>
1383 <xs:element name="Rate" type="PercentageRate"/>
1384 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAnd13DecimalAmount"/>
1385 </xs:choice>
1386 </xs:complexType>
1387 <xs:simpleType name="PriceValueType1Code">
1388 <xs:restriction base="xs:string">
1389 <xs:enumeration value="DISC"/>
1390 <xs:enumeration value="PREM"/>
1391 <xs:enumeration value="PARV"/>
1392 </xs:restriction>
1393 </xs:simpleType>
1394 <xs:complexType name="Product2">
1395 <xs:sequence>
1396 <xs:element name="PdctCd" type="Max70Text"/>
1397 <xs:element maxOccurs="1" minOccurs="0" name="UnitOfMeasr" type="UnitOfMeasure1Code"/>
1398 <xs:element maxOccurs="1" minOccurs="0" name="PdctQty" type="DecimalNumber"/>
1399 <xs:element maxOccurs="1" minOccurs="0" name="UnitPric" type="ImpliedCurrencyAndAmount"/>
1400 <xs:element maxOccurs="1" minOccurs="0" name="PdctAmt" type="ImpliedCurrencyAndAmount"/>
1401 <xs:element maxOccurs="1" minOccurs="0" name="TaxTp" type="Max35Text"/>
1402 <xs:element maxOccurs="1" minOccurs="0" name="AddtlPdctInf" type="Max35Text"/>
1403 </xs:sequence>
1404 </xs:complexType>
1405 <xs:complexType name="ProprietaryAgent3">
1406 <xs:sequence>
1407 <xs:element name="Tp" type="Max35Text"/>
1408 <xs:element name="Agt" type="BranchAndFinancialInstitutionIdentification5"/>
1409 </xs:sequence>
1410 </xs:complexType>
1411 <xs:complexType name="ProprietaryBankTransactionCodeStructure1">
1412 <xs:sequence>
1413 <xs:element name="Cd" type="Max35Text"/>
1414 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
1415 </xs:sequence>
1416 </xs:complexType>
1417 <xs:complexType name="ProprietaryDate2">
1418 <xs:sequence>
1419 <xs:element name="Tp" type="Max35Text"/>
1420 <xs:element name="Dt" type="DateAndDateTimeChoice"/>
1421 </xs:sequence>
1422 </xs:complexType>
1423 <xs:complexType name="ProprietaryParty3">
1424 <xs:sequence>
1425 <xs:element name="Tp" type="Max35Text"/>
1426 <xs:element name="Pty" type="PartyIdentification43"/>
1427 </xs:sequence>
1428 </xs:complexType>
1429 <xs:complexType name="ProprietaryPrice2">
1430 <xs:sequence>
1431 <xs:element name="Tp" type="Max35Text"/>
1432 <xs:element name="Pric" type="ActiveOrHistoricCurrencyAndAmount"/>
1433 </xs:sequence>
1434 </xs:complexType>
1435 <xs:complexType name="ProprietaryQuantity1">
1436 <xs:sequence>
1437 <xs:element name="Tp" type="Max35Text"/>
1438 <xs:element name="Qty" type="Max35Text"/>
1439 </xs:sequence>
1440 </xs:complexType>
1441 <xs:complexType name="ProprietaryReference1">
1442 <xs:sequence>
1443 <xs:element name="Tp" type="Max35Text"/>
1444 <xs:element name="Ref" type="Max35Text"/>
1445 </xs:sequence>
1446 </xs:complexType>
1447 <xs:complexType name="Purpose2Choice">
1448 <xs:choice>
1449 <xs:element name="Cd" type="ExternalPurpose1Code"/>
1450 <xs:element name="Prtry" type="Max35Text"/>
1451 </xs:choice>
1452 </xs:complexType>
1453 <xs:complexType name="Rate3">
1454 <xs:sequence>
1455 <xs:element name="Tp" type="RateType4Choice"/>
1456 <xs:element maxOccurs="1" minOccurs="0" name="VldtyRg" type="CurrencyAndAmountRange2"/>
1457 </xs:sequence>
1458 </xs:complexType>
1459 <xs:complexType name="RateType4Choice">
1460 <xs:choice>
1461 <xs:element name="Pctg" type="PercentageRate"/>
1462 <xs:element name="Othr" type="Max35Text"/>
1463 </xs:choice>
1464 </xs:complexType>
1465 <xs:complexType name="ReferredDocumentInformation6">
1466 <xs:sequence>
1467 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="ReferredDocumentType4"/>
1468 <xs:element maxOccurs="1" minOccurs="0" name="Nb" type="Max35Text"/>
1469 <xs:element maxOccurs="1" minOccurs="0" name="RltdDt" type="ISODate"/>
1470 </xs:sequence>
1471 </xs:complexType>
1472 <xs:complexType name="ReferredDocumentType3Choice">
1473 <xs:choice>
1474 <xs:element name="Cd" type="DocumentType6Code"/>
1475 <xs:element name="Prtry" type="Max35Text"/>
1476 </xs:choice>
1477 </xs:complexType>
1478 <xs:complexType name="ReferredDocumentType4">
1479 <xs:sequence>
1480 <xs:element name="CdOrPrtry" type="ReferredDocumentType3Choice"/>
1481 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
1482 </xs:sequence>
1483 </xs:complexType>
1484 <xs:complexType name="RemittanceAmount2">
1485 <xs:sequence>
1486 <xs:element maxOccurs="1" minOccurs="0" name="DuePyblAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1487 <xs:element maxOccurs="unbounded" minOccurs="0" name="DscntApldAmt" type="DiscountAmountAndType1"/>
1488 <xs:element maxOccurs="1" minOccurs="0" name="CdtNoteAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1489 <xs:element maxOccurs="unbounded" minOccurs="0" name="TaxAmt" type="TaxAmountAndType1"/>
1490 <xs:element maxOccurs="unbounded" minOccurs="0" name="AdjstmntAmtAndRsn" type="DocumentAdjustment1"/>
1491 <xs:element maxOccurs="1" minOccurs="0" name="RmtdAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1492 </xs:sequence>
1493 </xs:complexType>
1494 <xs:complexType name="RemittanceInformation10">
1495 <xs:sequence>
1496 <xs:element maxOccurs="unbounded" minOccurs="0" name="Ustrd" type="Max140Text"/>
1497 <xs:element maxOccurs="unbounded" minOccurs="0" name="Strd" type="StructuredRemittanceInformation12"/>
1498 </xs:sequence>
1499 </xs:complexType>
1500 <xs:complexType name="RemittanceLocation4">
1501 <xs:sequence>
1502 <xs:element maxOccurs="1" minOccurs="0" name="RmtId" type="Max35Text"/>
1503 <xs:element maxOccurs="unbounded" minOccurs="0" name="RmtLctnDtls" type="RemittanceLocationDetails1"/>
1504 </xs:sequence>
1505 </xs:complexType>
1506 <xs:complexType name="RemittanceLocationDetails1">
1507 <xs:sequence>
1508 <xs:element name="Mtd" type="RemittanceLocationMethod2Code"/>
1509 <xs:element maxOccurs="1" minOccurs="0" name="ElctrncAdr" type="Max2048Text"/>
1510 <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="NameAndAddress10"/>
1511 </xs:sequence>
1512 </xs:complexType>
1513 <xs:simpleType name="RemittanceLocationMethod2Code">
1514 <xs:restriction base="xs:string">
1515 <xs:enumeration value="FAXI"/>
1516 <xs:enumeration value="EDIC"/>
1517 <xs:enumeration value="URID"/>
1518 <xs:enumeration value="EMAL"/>
1519 <xs:enumeration value="POST"/>
1520 <xs:enumeration value="SMSM"/>
1521 </xs:restriction>
1522 </xs:simpleType>
1523 <xs:complexType name="ReportEntry7">
1524 <xs:sequence>
1525 <xs:element maxOccurs="1" minOccurs="0" name="NtryRef" type="Max35Text"/>
1526 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
1527 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
1528 <xs:element maxOccurs="1" minOccurs="0" name="RvslInd" type="TrueFalseIndicator"/>
1529 <xs:element name="Sts" type="EntryStatus2Code"/>
1530 <xs:element maxOccurs="1" minOccurs="0" name="BookgDt" type="DateAndDateTimeChoice"/>
1531 <xs:element maxOccurs="1" minOccurs="0" name="ValDt" type="DateAndDateTimeChoice"/>
1532 <xs:element maxOccurs="1" minOccurs="0" name="AcctSvcrRef" type="Max35Text"/>
1533 <xs:element maxOccurs="unbounded" minOccurs="0" name="Avlbty" type="CashBalanceAvailability2"/>
1534 <xs:element name="BkTxCd" type="BankTransactionCodeStructure4"/>
1535 <xs:element maxOccurs="1" minOccurs="0" name="ComssnWvrInd" type="YesNoIndicator"/>
1536 <xs:element maxOccurs="1" minOccurs="0" name="AddtlInfInd" type="MessageIdentification2"/>
1537 <xs:element maxOccurs="1" minOccurs="0" name="AmtDtls" type="AmountAndCurrencyExchange3"/>
1538 <xs:element maxOccurs="1" minOccurs="0" name="Chrgs" type="Charges4"/>
1539 <xs:element maxOccurs="1" minOccurs="0" name="TechInptChanl" type="TechnicalInputChannel1Choice"/>
1540 <xs:element maxOccurs="1" minOccurs="0" name="Intrst" type="TransactionInterest3"/>
1541 <xs:element maxOccurs="1" minOccurs="0" name="CardTx" type="CardEntry2"/>
1542 <xs:element maxOccurs="unbounded" minOccurs="0" name="NtryDtls" type="EntryDetails6"/>
1543 <xs:element maxOccurs="1" minOccurs="0" name="AddtlNtryInf" type="Max500Text"/>
1544 </xs:sequence>
1545 </xs:complexType>
1546 <xs:complexType name="ReportingSource1Choice">
1547 <xs:choice>
1548 <xs:element name="Cd" type="ExternalReportingSource1Code"/>
1549 <xs:element name="Prtry" type="Max35Text"/>
1550 </xs:choice>
1551 </xs:complexType>
1552 <xs:complexType name="ReturnReason5Choice">
1553 <xs:choice>
1554 <xs:element name="Cd" type="ExternalReturnReason1Code"/>
1555 <xs:element name="Prtry" type="Max35Text"/>
1556 </xs:choice>
1557 </xs:complexType>
1558 <xs:complexType name="SecuritiesAccount13">
1559 <xs:sequence>
1560 <xs:element name="Id" type="Max35Text"/>
1561 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="GenericIdentification20"/>
1562 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max70Text"/>
1563 </xs:sequence>
1564 </xs:complexType>
1565 <xs:complexType name="SecurityIdentification14">
1566 <xs:sequence>
1567 <xs:element maxOccurs="1" minOccurs="0" name="ISIN" type="ISINIdentifier"/>
1568 <xs:element maxOccurs="unbounded" minOccurs="0" name="OthrId" type="OtherIdentification1"/>
1569 <xs:element maxOccurs="1" minOccurs="0" name="Desc" type="Max140Text"/>
1570 </xs:sequence>
1571 </xs:complexType>
1572 <xs:complexType name="StructuredRemittanceInformation12">
1573 <xs:sequence>
1574 <xs:element maxOccurs="unbounded" minOccurs="0" name="RfrdDocInf" type="ReferredDocumentInformation6"/>
1575 <xs:element maxOccurs="1" minOccurs="0" name="RfrdDocAmt" type="RemittanceAmount2"/>
1576 <xs:element maxOccurs="1" minOccurs="0" name="CdtrRefInf" type="CreditorReferenceInformation2"/>
1577 <xs:element maxOccurs="1" minOccurs="0" name="Invcr" type="PartyIdentification43"/>
1578 <xs:element maxOccurs="1" minOccurs="0" name="Invcee" type="PartyIdentification43"/>
1579 <xs:element maxOccurs="1" minOccurs="0" name="TaxRmt" type="TaxInformation4"/>
1580 <xs:element maxOccurs="1" minOccurs="0" name="GrnshmtRmt" type="Garnishment1"/>
1581 <xs:element maxOccurs="3" minOccurs="0" name="AddtlRmtInf" type="Max140Text"/>
1582 </xs:sequence>
1583 </xs:complexType>
1584 <xs:complexType name="SupplementaryData1">
1585 <xs:sequence>
1586 <xs:element maxOccurs="1" minOccurs="0" name="PlcAndNm" type="Max350Text"/>
1587 <xs:element name="Envlp" type="SupplementaryDataEnvelope1"/>
1588 </xs:sequence>
1589 </xs:complexType>
1590 <xs:complexType name="SupplementaryDataEnvelope1">
1591 <xs:sequence>
1592 <xs:any namespace="##any" processContents="lax"/>
1593 </xs:sequence>
1594 </xs:complexType>
1595 <xs:complexType name="TaxAmount1">
1596 <xs:sequence>
1597 <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="PercentageRate"/>
1598 <xs:element maxOccurs="1" minOccurs="0" name="TaxblBaseAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1599 <xs:element maxOccurs="1" minOccurs="0" name="TtlAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1600 <xs:element maxOccurs="unbounded" minOccurs="0" name="Dtls" type="TaxRecordDetails1"/>
1601 </xs:sequence>
1602 </xs:complexType>
1603 <xs:complexType name="TaxAmountAndType1">
1604 <xs:sequence>
1605 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="TaxAmountType1Choice"/>
1606 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
1607 </xs:sequence>
1608 </xs:complexType>
1609 <xs:complexType name="TaxAmountType1Choice">
1610 <xs:choice>
1611 <xs:element name="Cd" type="ExternalTaxAmountType1Code"/>
1612 <xs:element name="Prtry" type="Max35Text"/>
1613 </xs:choice>
1614 </xs:complexType>
1615 <xs:complexType name="TaxAuthorisation1">
1616 <xs:sequence>
1617 <xs:element maxOccurs="1" minOccurs="0" name="Titl" type="Max35Text"/>
1618 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
1619 </xs:sequence>
1620 </xs:complexType>
1621 <xs:complexType name="TaxCharges2">
1622 <xs:sequence>
1623 <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Max35Text"/>
1624 <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="PercentageRate"/>
1625 <xs:element maxOccurs="1" minOccurs="0" name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
1626 </xs:sequence>
1627 </xs:complexType>
1628 <xs:complexType name="TaxInformation3">
1629 <xs:sequence>
1630 <xs:element maxOccurs="1" minOccurs="0" name="Cdtr" type="TaxParty1"/>
1631 <xs:element maxOccurs="1" minOccurs="0" name="Dbtr" type="TaxParty2"/>
1632 <xs:element maxOccurs="1" minOccurs="0" name="AdmstnZn" type="Max35Text"/>
1633 <xs:element maxOccurs="1" minOccurs="0" name="RefNb" type="Max140Text"/>
1634 <xs:element maxOccurs="1" minOccurs="0" name="Mtd" type="Max35Text"/>
1635 <xs:element maxOccurs="1" minOccurs="0" name="TtlTaxblBaseAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1636 <xs:element maxOccurs="1" minOccurs="0" name="TtlTaxAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1637 <xs:element maxOccurs="1" minOccurs="0" name="Dt" type="ISODate"/>
1638 <xs:element maxOccurs="1" minOccurs="0" name="SeqNb" type="Number"/>
1639 <xs:element maxOccurs="unbounded" minOccurs="0" name="Rcrd" type="TaxRecord1"/>
1640 </xs:sequence>
1641 </xs:complexType>
1642 <xs:complexType name="TaxInformation4">
1643 <xs:sequence>
1644 <xs:element maxOccurs="1" minOccurs="0" name="Cdtr" type="TaxParty1"/>
1645 <xs:element maxOccurs="1" minOccurs="0" name="Dbtr" type="TaxParty2"/>
1646 <xs:element maxOccurs="1" minOccurs="0" name="UltmtDbtr" type="TaxParty2"/>
1647 <xs:element maxOccurs="1" minOccurs="0" name="AdmstnZone" type="Max35Text"/>
1648 <xs:element maxOccurs="1" minOccurs="0" name="RefNb" type="Max140Text"/>
1649 <xs:element maxOccurs="1" minOccurs="0" name="Mtd" type="Max35Text"/>
1650 <xs:element maxOccurs="1" minOccurs="0" name="TtlTaxblBaseAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1651 <xs:element maxOccurs="1" minOccurs="0" name="TtlTaxAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1652 <xs:element maxOccurs="1" minOccurs="0" name="Dt" type="ISODate"/>
1653 <xs:element maxOccurs="1" minOccurs="0" name="SeqNb" type="Number"/>
1654 <xs:element maxOccurs="unbounded" minOccurs="0" name="Rcrd" type="TaxRecord1"/>
1655 </xs:sequence>
1656 </xs:complexType>
1657 <xs:complexType name="TaxParty1">
1658 <xs:sequence>
1659 <xs:element maxOccurs="1" minOccurs="0" name="TaxId" type="Max35Text"/>
1660 <xs:element maxOccurs="1" minOccurs="0" name="RegnId" type="Max35Text"/>
1661 <xs:element maxOccurs="1" minOccurs="0" name="TaxTp" type="Max35Text"/>
1662 </xs:sequence>
1663 </xs:complexType>
1664 <xs:complexType name="TaxParty2">
1665 <xs:sequence>
1666 <xs:element maxOccurs="1" minOccurs="0" name="TaxId" type="Max35Text"/>
1667 <xs:element maxOccurs="1" minOccurs="0" name="RegnId" type="Max35Text"/>
1668 <xs:element maxOccurs="1" minOccurs="0" name="TaxTp" type="Max35Text"/>
1669 <xs:element maxOccurs="1" minOccurs="0" name="Authstn" type="TaxAuthorisation1"/>
1670 </xs:sequence>
1671 </xs:complexType>
1672 <xs:complexType name="TaxPeriod1">
1673 <xs:sequence>
1674 <xs:element maxOccurs="1" minOccurs="0" name="Yr" type="ISODate"/>
1675 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="TaxRecordPeriod1Code"/>
1676 <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DatePeriodDetails"/>
1677 </xs:sequence>
1678 </xs:complexType>
1679 <xs:complexType name="TaxRecord1">
1680 <xs:sequence>
1681 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="Max35Text"/>
1682 <xs:element maxOccurs="1" minOccurs="0" name="Ctgy" type="Max35Text"/>
1683 <xs:element maxOccurs="1" minOccurs="0" name="CtgyDtls" type="Max35Text"/>
1684 <xs:element maxOccurs="1" minOccurs="0" name="DbtrSts" type="Max35Text"/>
1685 <xs:element maxOccurs="1" minOccurs="0" name="CertId" type="Max35Text"/>
1686 <xs:element maxOccurs="1" minOccurs="0" name="FrmsCd" type="Max35Text"/>
1687 <xs:element maxOccurs="1" minOccurs="0" name="Prd" type="TaxPeriod1"/>
1688 <xs:element maxOccurs="1" minOccurs="0" name="TaxAmt" type="TaxAmount1"/>
1689 <xs:element maxOccurs="1" minOccurs="0" name="AddtlInf" type="Max140Text"/>
1690 </xs:sequence>
1691 </xs:complexType>
1692 <xs:complexType name="TaxRecordDetails1">
1693 <xs:sequence>
1694 <xs:element maxOccurs="1" minOccurs="0" name="Prd" type="TaxPeriod1"/>
1695 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
1696 </xs:sequence>
1697 </xs:complexType>
1698 <xs:simpleType name="TaxRecordPeriod1Code">
1699 <xs:restriction base="xs:string">
1700 <xs:enumeration value="MM01"/>
1701 <xs:enumeration value="MM02"/>
1702 <xs:enumeration value="MM03"/>
1703 <xs:enumeration value="MM04"/>
1704 <xs:enumeration value="MM05"/>
1705 <xs:enumeration value="MM06"/>
1706 <xs:enumeration value="MM07"/>
1707 <xs:enumeration value="MM08"/>
1708 <xs:enumeration value="MM09"/>
1709 <xs:enumeration value="MM10"/>
1710 <xs:enumeration value="MM11"/>
1711 <xs:enumeration value="MM12"/>
1712 <xs:enumeration value="QTR1"/>
1713 <xs:enumeration value="QTR2"/>
1714 <xs:enumeration value="QTR3"/>
1715 <xs:enumeration value="QTR4"/>
1716 <xs:enumeration value="HLF1"/>
1717 <xs:enumeration value="HLF2"/>
1718 </xs:restriction>
1719 </xs:simpleType>
1720 <xs:complexType name="TechnicalInputChannel1Choice">
1721 <xs:choice>
1722 <xs:element name="Cd" type="ExternalTechnicalInputChannel1Code"/>
1723 <xs:element name="Prtry" type="Max35Text"/>
1724 </xs:choice>
1725 </xs:complexType>
1726 <xs:complexType name="TotalTransactions4">
1727 <xs:sequence>
1728 <xs:element maxOccurs="1" minOccurs="0" name="TtlNtries" type="NumberAndSumOfTransactions4"/>
1729 <xs:element maxOccurs="1" minOccurs="0" name="TtlCdtNtries" type="NumberAndSumOfTransactions1"/>
1730 <xs:element maxOccurs="1" minOccurs="0" name="TtlDbtNtries" type="NumberAndSumOfTransactions1"/>
1731 <xs:element maxOccurs="unbounded" minOccurs="0" name="TtlNtriesPerBkTxCd" type="TotalsPerBankTransactionCode3"/>
1732 </xs:sequence>
1733 </xs:complexType>
1734 <xs:complexType name="TotalsPerBankTransactionCode3">
1735 <xs:sequence>
1736 <xs:element maxOccurs="1" minOccurs="0" name="NbOfNtries" type="Max15NumericText"/>
1737 <xs:element maxOccurs="1" minOccurs="0" name="Sum" type="DecimalNumber"/>
1738 <xs:element maxOccurs="1" minOccurs="0" name="TtlNetNtry" type="AmountAndDirection35"/>
1739 <xs:element maxOccurs="1" minOccurs="0" name="FcstInd" type="TrueFalseIndicator"/>
1740 <xs:element name="BkTxCd" type="BankTransactionCodeStructure4"/>
1741 <xs:element maxOccurs="unbounded" minOccurs="0" name="Avlbty" type="CashBalanceAvailability2"/>
1742 </xs:sequence>
1743 </xs:complexType>
1744 <xs:complexType name="TrackData1">
1745 <xs:sequence>
1746 <xs:element maxOccurs="1" minOccurs="0" name="TrckNb" type="Exact1NumericText"/>
1747 <xs:element name="TrckVal" type="Max140Text"/>
1748 </xs:sequence>
1749 </xs:complexType>
1750 <xs:complexType name="TransactionAgents3">
1751 <xs:sequence>
1752 <xs:element maxOccurs="1" minOccurs="0" name="DbtrAgt" type="BranchAndFinancialInstitutionIdentification5"/>
1753 <xs:element maxOccurs="1" minOccurs="0" name="CdtrAgt" type="BranchAndFinancialInstitutionIdentification5"/>
1754 <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt1" type="BranchAndFinancialInstitutionIdentification5"/>
1755 <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt2" type="BranchAndFinancialInstitutionIdentification5"/>
1756 <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt3" type="BranchAndFinancialInstitutionIdentification5"/>
1757 <xs:element maxOccurs="1" minOccurs="0" name="RcvgAgt" type="BranchAndFinancialInstitutionIdentification5"/>
1758 <xs:element maxOccurs="1" minOccurs="0" name="DlvrgAgt" type="BranchAndFinancialInstitutionIdentification5"/>
1759 <xs:element maxOccurs="1" minOccurs="0" name="IssgAgt" type="BranchAndFinancialInstitutionIdentification5"/>
1760 <xs:element maxOccurs="1" minOccurs="0" name="SttlmPlc" type="BranchAndFinancialInstitutionIdentification5"/>
1761 <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryAgent3"/>
1762 </xs:sequence>
1763 </xs:complexType>
1764 <xs:simpleType name="TransactionChannel1Code">
1765 <xs:restriction base="xs:string">
1766 <xs:enumeration value="MAIL"/>
1767 <xs:enumeration value="TLPH"/>
1768 <xs:enumeration value="ECOM"/>
1769 <xs:enumeration value="TVPY"/>
1770 </xs:restriction>
1771 </xs:simpleType>
1772 <xs:complexType name="TransactionDates2">
1773 <xs:sequence>
1774 <xs:element maxOccurs="1" minOccurs="0" name="AccptncDtTm" type="ISODateTime"/>
1775 <xs:element maxOccurs="1" minOccurs="0" name="TradActvtyCtrctlSttlmDt" type="ISODate"/>
1776 <xs:element maxOccurs="1" minOccurs="0" name="TradDt" type="ISODate"/>
1777 <xs:element maxOccurs="1" minOccurs="0" name="IntrBkSttlmDt" type="ISODate"/>
1778 <xs:element maxOccurs="1" minOccurs="0" name="StartDt" type="ISODate"/>
1779 <xs:element maxOccurs="1" minOccurs="0" name="EndDt" type="ISODate"/>
1780 <xs:element maxOccurs="1" minOccurs="0" name="TxDtTm" type="ISODateTime"/>
1781 <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryDate2"/>
1782 </xs:sequence>
1783 </xs:complexType>
1784 <xs:simpleType name="TransactionEnvironment1Code">
1785 <xs:restriction base="xs:string">
1786 <xs:enumeration value="MERC"/>
1787 <xs:enumeration value="PRIV"/>
1788 <xs:enumeration value="PUBL"/>
1789 </xs:restriction>
1790 </xs:simpleType>
1791 <xs:complexType name="TransactionIdentifier1">
1792 <xs:sequence>
1793 <xs:element name="TxDtTm" type="ISODateTime"/>
1794 <xs:element name="TxRef" type="Max35Text"/>
1795 </xs:sequence>
1796 </xs:complexType>
1797 <xs:complexType name="TransactionInterest3">
1798 <xs:sequence>
1799 <xs:element maxOccurs="1" minOccurs="0" name="TtlIntrstAndTaxAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1800 <xs:element maxOccurs="unbounded" minOccurs="0" name="Rcrd" type="InterestRecord1"/>
1801 </xs:sequence>
1802 </xs:complexType>
1803 <xs:complexType name="TransactionParties3">
1804 <xs:sequence>
1805 <xs:element maxOccurs="1" minOccurs="0" name="InitgPty" type="PartyIdentification43"/>
1806 <xs:element maxOccurs="1" minOccurs="0" name="Dbtr" type="PartyIdentification43"/>
1807 <xs:element maxOccurs="1" minOccurs="0" name="DbtrAcct" type="CashAccount24"/>
1808 <xs:element maxOccurs="1" minOccurs="0" name="UltmtDbtr" type="PartyIdentification43"/>
1809 <xs:element maxOccurs="1" minOccurs="0" name="Cdtr" type="PartyIdentification43"/>
1810 <xs:element maxOccurs="1" minOccurs="0" name="CdtrAcct" type="CashAccount24"/>
1811 <xs:element maxOccurs="1" minOccurs="0" name="UltmtCdtr" type="PartyIdentification43"/>
1812 <xs:element maxOccurs="1" minOccurs="0" name="TradgPty" type="PartyIdentification43"/>
1813 <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryParty3"/>
1814 </xs:sequence>
1815 </xs:complexType>
1816 <xs:complexType name="TransactionPrice3Choice">
1817 <xs:choice>
1818 <xs:element name="DealPric" type="Price2"/>
1819 <xs:element maxOccurs="unbounded" minOccurs="1" name="Prtry" type="ProprietaryPrice2"/>
1820 </xs:choice>
1821 </xs:complexType>
1822 <xs:complexType name="TransactionQuantities2Choice">
1823 <xs:choice>
1824 <xs:element name="Qty" type="FinancialInstrumentQuantityChoice"/>
1825 <xs:element name="OrgnlAndCurFaceAmt" type="OriginalAndCurrentQuantities1"/>
1826 <xs:element name="Prtry" type="ProprietaryQuantity1"/>
1827 </xs:choice>
1828 </xs:complexType>
1829 <xs:complexType name="TransactionReferences3">
1830 <xs:sequence>
1831 <xs:element maxOccurs="1" minOccurs="0" name="MsgId" type="Max35Text"/>
1832 <xs:element maxOccurs="1" minOccurs="0" name="AcctSvcrRef" type="Max35Text"/>
1833 <xs:element maxOccurs="1" minOccurs="0" name="PmtInfId" type="Max35Text"/>
1834 <xs:element maxOccurs="1" minOccurs="0" name="InstrId" type="Max35Text"/>
1835 <xs:element maxOccurs="1" minOccurs="0" name="EndToEndId" type="Max35Text"/>
1836 <xs:element maxOccurs="1" minOccurs="0" name="TxId" type="Max35Text"/>
1837 <xs:element maxOccurs="1" minOccurs="0" name="MndtId" type="Max35Text"/>
1838 <xs:element maxOccurs="1" minOccurs="0" name="ChqNb" type="Max35Text"/>
1839 <xs:element maxOccurs="1" minOccurs="0" name="ClrSysRef" type="Max35Text"/>
1840 <xs:element maxOccurs="1" minOccurs="0" name="AcctOwnrTxId" type="Max35Text"/>
1841 <xs:element maxOccurs="1" minOccurs="0" name="AcctSvcrTxId" type="Max35Text"/>
1842 <xs:element maxOccurs="1" minOccurs="0" name="MktInfrstrctrTxId" type="Max35Text"/>
1843 <xs:element maxOccurs="1" minOccurs="0" name="PrcgId" type="Max35Text"/>
1844 <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryReference1"/>
1845 </xs:sequence>
1846 </xs:complexType>
1847 <xs:simpleType name="TrueFalseIndicator">
1848 <xs:restriction base="xs:boolean"/>
1849 </xs:simpleType>
1850 <xs:simpleType name="UnitOfMeasure1Code">
1851 <xs:restriction base="xs:string">
1852 <xs:enumeration value="PIEC"/>
1853 <xs:enumeration value="TONS"/>
1854 <xs:enumeration value="FOOT"/>
1855 <xs:enumeration value="GBGA"/>
1856 <xs:enumeration value="USGA"/>
1857 <xs:enumeration value="GRAM"/>
1858 <xs:enumeration value="INCH"/>
1859 <xs:enumeration value="KILO"/>
1860 <xs:enumeration value="PUND"/>
1861 <xs:enumeration value="METR"/>
1862 <xs:enumeration value="CMET"/>
1863 <xs:enumeration value="MMET"/>
1864 <xs:enumeration value="LITR"/>
1865 <xs:enumeration value="CELI"/>
1866 <xs:enumeration value="MILI"/>
1867 <xs:enumeration value="GBOU"/>
1868 <xs:enumeration value="USOU"/>
1869 <xs:enumeration value="GBQA"/>
1870 <xs:enumeration value="USQA"/>
1871 <xs:enumeration value="GBPI"/>
1872 <xs:enumeration value="USPI"/>
1873 <xs:enumeration value="MILE"/>
1874 <xs:enumeration value="KMET"/>
1875 <xs:enumeration value="YARD"/>
1876 <xs:enumeration value="SQKI"/>
1877 <xs:enumeration value="HECT"/>
1878 <xs:enumeration value="ARES"/>
1879 <xs:enumeration value="SMET"/>
1880 <xs:enumeration value="SCMT"/>
1881 <xs:enumeration value="SMIL"/>
1882 <xs:enumeration value="SQMI"/>
1883 <xs:enumeration value="SQYA"/>
1884 <xs:enumeration value="SQFO"/>
1885 <xs:enumeration value="SQIN"/>
1886 <xs:enumeration value="ACRE"/>
1887 </xs:restriction>
1888 </xs:simpleType>
1889 <xs:simpleType name="UserInterface2Code">
1890 <xs:restriction base="xs:string">
1891 <xs:enumeration value="MDSP"/>
1892 <xs:enumeration value="CDSP"/>
1893 </xs:restriction>
1894 </xs:simpleType>
1895 <xs:simpleType name="YesNoIndicator">
1896 <xs:restriction base="xs:boolean"/>
1897 </xs:simpleType>
1898 <xs:complexType name="YieldedOrValueType1Choice">
1899 <xs:choice>
1900 <xs:element name="Yldd" type="YesNoIndicator"/>
1901 <xs:element name="ValTp" type="PriceValueType1Code"/>
1902 </xs:choice>
1903 </xs:complexType>
1904 </xs:schema>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!--Generated by Standards Editor (build:R1.6.5.6) on 2016 Feb 12 18:17:13, ISO 20022 version : 2013-->
2 <xs:schema xmlns="urn:iso:std:iso:20022:tech:xsd:camt.052.001.06" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="urn:iso:std:iso:20022:tech:xsd:camt.052.001.06">
3 <xs:element name="Document" type="Document"/>
4 <xs:complexType name="AccountIdentification4Choice">
5 <xs:choice>
6 <xs:element name="IBAN" type="IBAN2007Identifier"/>
7 <xs:element name="Othr" type="GenericAccountIdentification1"/>
8 </xs:choice>
9 </xs:complexType>
10 <xs:complexType name="AccountInterest3">
11 <xs:sequence>
12 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="InterestType1Choice"/>
13 <xs:element maxOccurs="unbounded" minOccurs="0" name="Rate" type="Rate3"/>
14 <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DateTimePeriodDetails"/>
15 <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="Max35Text"/>
16 <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxCharges2"/>
17 </xs:sequence>
18 </xs:complexType>
19 <xs:complexType name="AccountReport19">
20 <xs:sequence>
21 <xs:element name="Id" type="Max35Text"/>
22 <xs:element maxOccurs="1" minOccurs="0" name="RptPgntn" type="Pagination"/>
23 <xs:element maxOccurs="1" minOccurs="0" name="ElctrncSeqNb" type="Number"/>
24 <xs:element maxOccurs="1" minOccurs="0" name="LglSeqNb" type="Number"/>
25 <xs:element name="CreDtTm" type="ISODateTime"/>
26 <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DateTimePeriodDetails"/>
27 <xs:element maxOccurs="1" minOccurs="0" name="CpyDplctInd" type="CopyDuplicate1Code"/>
28 <xs:element maxOccurs="1" minOccurs="0" name="RptgSrc" type="ReportingSource1Choice"/>
29 <xs:element name="Acct" type="CashAccount25"/>
30 <xs:element maxOccurs="1" minOccurs="0" name="RltdAcct" type="CashAccount24"/>
31 <xs:element maxOccurs="unbounded" minOccurs="0" name="Intrst" type="AccountInterest3"/>
32 <xs:element maxOccurs="unbounded" minOccurs="0" name="Bal" type="CashBalance7"/>
33 <xs:element maxOccurs="1" minOccurs="0" name="TxsSummry" type="TotalTransactions5"/>
34 <xs:element maxOccurs="unbounded" minOccurs="0" name="Ntry" type="ReportEntry8"/>
35 <xs:element maxOccurs="1" minOccurs="0" name="AddtlRptInf" type="Max500Text"/>
36 </xs:sequence>
37 </xs:complexType>
38 <xs:complexType name="AccountSchemeName1Choice">
39 <xs:choice>
40 <xs:element name="Cd" type="ExternalAccountIdentification1Code"/>
41 <xs:element name="Prtry" type="Max35Text"/>
42 </xs:choice>
43 </xs:complexType>
44 <xs:simpleType name="ActiveCurrencyAndAmount_SimpleType">
45 <xs:restriction base="xs:decimal">
46 <xs:fractionDigits value="5"/>
47 <xs:totalDigits value="18"/>
48 <xs:minInclusive value="0"/>
49 </xs:restriction>
50 </xs:simpleType>
51 <xs:complexType name="ActiveCurrencyAndAmount">
52 <xs:simpleContent>
53 <xs:extension base="ActiveCurrencyAndAmount_SimpleType">
54 <xs:attribute name="Ccy" type="ActiveCurrencyCode" use="required"/>
55 </xs:extension>
56 </xs:simpleContent>
57 </xs:complexType>
58 <xs:simpleType name="ActiveCurrencyCode">
59 <xs:restriction base="xs:string">
60 <xs:pattern value="[A-Z]{3,3}"/>
61 </xs:restriction>
62 </xs:simpleType>
63 <xs:simpleType name="ActiveOrHistoricCurrencyAnd13DecimalAmount_SimpleType">
64 <xs:restriction base="xs:decimal">
65 <xs:fractionDigits value="13"/>
66 <xs:totalDigits value="18"/>
67 <xs:minInclusive value="0"/>
68 </xs:restriction>
69 </xs:simpleType>
70 <xs:complexType name="ActiveOrHistoricCurrencyAnd13DecimalAmount">
71 <xs:simpleContent>
72 <xs:extension base="ActiveOrHistoricCurrencyAnd13DecimalAmount_SimpleType">
73 <xs:attribute name="Ccy" type="ActiveOrHistoricCurrencyCode" use="required"/>
74 </xs:extension>
75 </xs:simpleContent>
76 </xs:complexType>
77 <xs:simpleType name="ActiveOrHistoricCurrencyAndAmount_SimpleType">
78 <xs:restriction base="xs:decimal">
79 <xs:fractionDigits value="5"/>
80 <xs:totalDigits value="18"/>
81 <xs:minInclusive value="0"/>
82 </xs:restriction>
83 </xs:simpleType>
84 <xs:complexType name="ActiveOrHistoricCurrencyAndAmount">
85 <xs:simpleContent>
86 <xs:extension base="ActiveOrHistoricCurrencyAndAmount_SimpleType">
87 <xs:attribute name="Ccy" type="ActiveOrHistoricCurrencyCode" use="required"/>
88 </xs:extension>
89 </xs:simpleContent>
90 </xs:complexType>
91 <xs:simpleType name="ActiveOrHistoricCurrencyCode">
92 <xs:restriction base="xs:string">
93 <xs:pattern value="[A-Z]{3,3}"/>
94 </xs:restriction>
95 </xs:simpleType>
96 <xs:simpleType name="AddressType2Code">
97 <xs:restriction base="xs:string">
98 <xs:enumeration value="ADDR"/>
99 <xs:enumeration value="PBOX"/>
100 <xs:enumeration value="HOME"/>
101 <xs:enumeration value="BIZZ"/>
102 <xs:enumeration value="MLTO"/>
103 <xs:enumeration value="DLVY"/>
104 </xs:restriction>
105 </xs:simpleType>
106 <xs:complexType name="AmountAndCurrencyExchange3">
107 <xs:sequence>
108 <xs:element maxOccurs="1" minOccurs="0" name="InstdAmt" type="AmountAndCurrencyExchangeDetails3"/>
109 <xs:element maxOccurs="1" minOccurs="0" name="TxAmt" type="AmountAndCurrencyExchangeDetails3"/>
110 <xs:element maxOccurs="1" minOccurs="0" name="CntrValAmt" type="AmountAndCurrencyExchangeDetails3"/>
111 <xs:element maxOccurs="1" minOccurs="0" name="AnncdPstngAmt" type="AmountAndCurrencyExchangeDetails3"/>
112 <xs:element maxOccurs="unbounded" minOccurs="0" name="PrtryAmt" type="AmountAndCurrencyExchangeDetails4"/>
113 </xs:sequence>
114 </xs:complexType>
115 <xs:complexType name="AmountAndCurrencyExchangeDetails3">
116 <xs:sequence>
117 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
118 <xs:element maxOccurs="1" minOccurs="0" name="CcyXchg" type="CurrencyExchange5"/>
119 </xs:sequence>
120 </xs:complexType>
121 <xs:complexType name="AmountAndCurrencyExchangeDetails4">
122 <xs:sequence>
123 <xs:element name="Tp" type="Max35Text"/>
124 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
125 <xs:element maxOccurs="1" minOccurs="0" name="CcyXchg" type="CurrencyExchange5"/>
126 </xs:sequence>
127 </xs:complexType>
128 <xs:complexType name="AmountAndDirection35">
129 <xs:sequence>
130 <xs:element name="Amt" type="NonNegativeDecimalNumber"/>
131 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
132 </xs:sequence>
133 </xs:complexType>
134 <xs:complexType name="AmountRangeBoundary1">
135 <xs:sequence>
136 <xs:element name="BdryAmt" type="ImpliedCurrencyAndAmount"/>
137 <xs:element name="Incl" type="YesNoIndicator"/>
138 </xs:sequence>
139 </xs:complexType>
140 <xs:simpleType name="AnyBICIdentifier">
141 <xs:restriction base="xs:string">
142 <xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
143 </xs:restriction>
144 </xs:simpleType>
145 <xs:simpleType name="AttendanceContext1Code">
146 <xs:restriction base="xs:string">
147 <xs:enumeration value="ATTD"/>
148 <xs:enumeration value="SATT"/>
149 <xs:enumeration value="UATT"/>
150 </xs:restriction>
151 </xs:simpleType>
152 <xs:simpleType name="AuthenticationEntity1Code">
153 <xs:restriction base="xs:string">
154 <xs:enumeration value="ICCD"/>
155 <xs:enumeration value="AGNT"/>
156 <xs:enumeration value="MERC"/>
157 </xs:restriction>
158 </xs:simpleType>
159 <xs:simpleType name="AuthenticationMethod1Code">
160 <xs:restriction base="xs:string">
161 <xs:enumeration value="UKNW"/>
162 <xs:enumeration value="BYPS"/>
163 <xs:enumeration value="NPIN"/>
164 <xs:enumeration value="FPIN"/>
165 <xs:enumeration value="CPSG"/>
166 <xs:enumeration value="PPSG"/>
167 <xs:enumeration value="MANU"/>
168 <xs:enumeration value="MERC"/>
169 <xs:enumeration value="SCRT"/>
170 <xs:enumeration value="SNCT"/>
171 <xs:enumeration value="SCNL"/>
172 </xs:restriction>
173 </xs:simpleType>
174 <xs:simpleType name="BICFIIdentifier">
175 <xs:restriction base="xs:string">
176 <xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
177 </xs:restriction>
178 </xs:simpleType>
179 <xs:complexType name="BalanceSubType1Choice">
180 <xs:choice>
181 <xs:element name="Cd" type="ExternalBalanceSubType1Code"/>
182 <xs:element name="Prtry" type="Max35Text"/>
183 </xs:choice>
184 </xs:complexType>
185 <xs:complexType name="BalanceType12">
186 <xs:sequence>
187 <xs:element name="CdOrPrtry" type="BalanceType5Choice"/>
188 <xs:element maxOccurs="1" minOccurs="0" name="SubTp" type="BalanceSubType1Choice"/>
189 </xs:sequence>
190 </xs:complexType>
191 <xs:simpleType name="BalanceType12Code">
192 <xs:restriction base="xs:string">
193 <xs:enumeration value="XPCD"/>
194 <xs:enumeration value="OPAV"/>
195 <xs:enumeration value="ITAV"/>
196 <xs:enumeration value="CLAV"/>
197 <xs:enumeration value="FWAV"/>
198 <xs:enumeration value="CLBD"/>
199 <xs:enumeration value="ITBD"/>
200 <xs:enumeration value="OPBD"/>
201 <xs:enumeration value="PRCD"/>
202 <xs:enumeration value="INFO"/>
203 </xs:restriction>
204 </xs:simpleType>
205 <xs:complexType name="BalanceType5Choice">
206 <xs:choice>
207 <xs:element name="Cd" type="BalanceType12Code"/>
208 <xs:element name="Prtry" type="Max35Text"/>
209 </xs:choice>
210 </xs:complexType>
211 <xs:complexType name="BankToCustomerAccountReportV06">
212 <xs:sequence>
213 <xs:element name="GrpHdr" type="GroupHeader58"/>
214 <xs:element maxOccurs="unbounded" minOccurs="1" name="Rpt" type="AccountReport19"/>
215 <xs:element maxOccurs="unbounded" minOccurs="0" name="SplmtryData" type="SupplementaryData1"/>
216 </xs:sequence>
217 </xs:complexType>
218 <xs:complexType name="BankTransactionCodeStructure4">
219 <xs:sequence>
220 <xs:element maxOccurs="1" minOccurs="0" name="Domn" type="BankTransactionCodeStructure5"/>
221 <xs:element maxOccurs="1" minOccurs="0" name="Prtry" type="ProprietaryBankTransactionCodeStructure1"/>
222 </xs:sequence>
223 </xs:complexType>
224 <xs:complexType name="BankTransactionCodeStructure5">
225 <xs:sequence>
226 <xs:element name="Cd" type="ExternalBankTransactionDomain1Code"/>
227 <xs:element name="Fmly" type="BankTransactionCodeStructure6"/>
228 </xs:sequence>
229 </xs:complexType>
230 <xs:complexType name="BankTransactionCodeStructure6">
231 <xs:sequence>
232 <xs:element name="Cd" type="ExternalBankTransactionFamily1Code"/>
233 <xs:element name="SubFmlyCd" type="ExternalBankTransactionSubFamily1Code"/>
234 </xs:sequence>
235 </xs:complexType>
236 <xs:simpleType name="BaseOneRate">
237 <xs:restriction base="xs:decimal">
238 <xs:fractionDigits value="10"/>
239 <xs:totalDigits value="11"/>
240 </xs:restriction>
241 </xs:simpleType>
242 <xs:complexType name="BatchInformation2">
243 <xs:sequence>
244 <xs:element maxOccurs="1" minOccurs="0" name="MsgId" type="Max35Text"/>
245 <xs:element maxOccurs="1" minOccurs="0" name="PmtInfId" type="Max35Text"/>
246 <xs:element maxOccurs="1" minOccurs="0" name="NbOfTxs" type="Max15NumericText"/>
247 <xs:element maxOccurs="1" minOccurs="0" name="TtlAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
248 <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
249 </xs:sequence>
250 </xs:complexType>
251 <xs:complexType name="BranchAndFinancialInstitutionIdentification5">
252 <xs:sequence>
253 <xs:element name="FinInstnId" type="FinancialInstitutionIdentification8"/>
254 <xs:element maxOccurs="1" minOccurs="0" name="BrnchId" type="BranchData2"/>
255 </xs:sequence>
256 </xs:complexType>
257 <xs:complexType name="BranchData2">
258 <xs:sequence>
259 <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Max35Text"/>
260 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
261 <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress6"/>
262 </xs:sequence>
263 </xs:complexType>
264 <xs:simpleType name="CSCManagement1Code">
265 <xs:restriction base="xs:string">
266 <xs:enumeration value="PRST"/>
267 <xs:enumeration value="BYPS"/>
268 <xs:enumeration value="UNRD"/>
269 <xs:enumeration value="NCSC"/>
270 </xs:restriction>
271 </xs:simpleType>
272 <xs:complexType name="CardAggregated1">
273 <xs:sequence>
274 <xs:element maxOccurs="1" minOccurs="0" name="AddtlSvc" type="CardPaymentServiceType2Code"/>
275 <xs:element maxOccurs="1" minOccurs="0" name="TxCtgy" type="ExternalCardTransactionCategory1Code"/>
276 <xs:element maxOccurs="1" minOccurs="0" name="SaleRcncltnId" type="Max35Text"/>
277 <xs:element maxOccurs="1" minOccurs="0" name="SeqNbRg" type="CardSequenceNumberRange1"/>
278 <xs:element maxOccurs="1" minOccurs="0" name="TxDtRg" type="DateOrDateTimePeriodChoice"/>
279 </xs:sequence>
280 </xs:complexType>
281 <xs:simpleType name="CardDataReading1Code">
282 <xs:restriction base="xs:string">
283 <xs:enumeration value="TAGC"/>
284 <xs:enumeration value="PHYS"/>
285 <xs:enumeration value="BRCD"/>
286 <xs:enumeration value="MGST"/>
287 <xs:enumeration value="CICC"/>
288 <xs:enumeration value="DFLE"/>
289 <xs:enumeration value="CTLS"/>
290 <xs:enumeration value="ECTL"/>
291 </xs:restriction>
292 </xs:simpleType>
293 <xs:complexType name="CardEntry2">
294 <xs:sequence>
295 <xs:element maxOccurs="1" minOccurs="0" name="Card" type="PaymentCard4"/>
296 <xs:element maxOccurs="1" minOccurs="0" name="POI" type="PointOfInteraction1"/>
297 <xs:element maxOccurs="1" minOccurs="0" name="AggtdNtry" type="CardAggregated1"/>
298 <xs:element maxOccurs="1" minOccurs="0" name="PrePdAcct" type="CashAccount24"/>
299 </xs:sequence>
300 </xs:complexType>
301 <xs:complexType name="CardIndividualTransaction2">
302 <xs:sequence>
303 <xs:element maxOccurs="1" minOccurs="0" name="ICCRltdData" type="Max1025Text"/>
304 <xs:element maxOccurs="1" minOccurs="0" name="PmtCntxt" type="PaymentContext3"/>
305 <xs:element maxOccurs="1" minOccurs="0" name="AddtlSvc" type="CardPaymentServiceType2Code"/>
306 <xs:element maxOccurs="1" minOccurs="0" name="TxCtgy" type="ExternalCardTransactionCategory1Code"/>
307 <xs:element maxOccurs="1" minOccurs="0" name="SaleRcncltnId" type="Max35Text"/>
308 <xs:element maxOccurs="1" minOccurs="0" name="SaleRefNb" type="Max35Text"/>
309 <xs:element maxOccurs="1" minOccurs="0" name="RePresntmntRsn" type="ExternalRePresentmentReason1Code"/>
310 <xs:element maxOccurs="1" minOccurs="0" name="SeqNb" type="Max35Text"/>
311 <xs:element maxOccurs="1" minOccurs="0" name="TxId" type="TransactionIdentifier1"/>
312 <xs:element maxOccurs="1" minOccurs="0" name="Pdct" type="Product2"/>
313 <xs:element maxOccurs="1" minOccurs="0" name="VldtnDt" type="ISODate"/>
314 <xs:element maxOccurs="1" minOccurs="0" name="VldtnSeqNb" type="Max35Text"/>
315 </xs:sequence>
316 </xs:complexType>
317 <xs:simpleType name="CardPaymentServiceType2Code">
318 <xs:restriction base="xs:string">
319 <xs:enumeration value="AGGR"/>
320 <xs:enumeration value="DCCV"/>
321 <xs:enumeration value="GRTT"/>
322 <xs:enumeration value="INSP"/>
323 <xs:enumeration value="LOYT"/>
324 <xs:enumeration value="NRES"/>
325 <xs:enumeration value="PUCO"/>
326 <xs:enumeration value="RECP"/>
327 <xs:enumeration value="SOAF"/>
328 <xs:enumeration value="UNAF"/>
329 <xs:enumeration value="VCAU"/>
330 </xs:restriction>
331 </xs:simpleType>
332 <xs:complexType name="CardSecurityInformation1">
333 <xs:sequence>
334 <xs:element name="CSCMgmt" type="CSCManagement1Code"/>
335 <xs:element maxOccurs="1" minOccurs="0" name="CSCVal" type="Min3Max4NumericText"/>
336 </xs:sequence>
337 </xs:complexType>
338 <xs:complexType name="CardSequenceNumberRange1">
339 <xs:sequence>
340 <xs:element maxOccurs="1" minOccurs="0" name="FrstTx" type="Max35Text"/>
341 <xs:element maxOccurs="1" minOccurs="0" name="LastTx" type="Max35Text"/>
342 </xs:sequence>
343 </xs:complexType>
344 <xs:complexType name="CardTransaction2">
345 <xs:sequence>
346 <xs:element maxOccurs="1" minOccurs="0" name="Card" type="PaymentCard4"/>
347 <xs:element maxOccurs="1" minOccurs="0" name="POI" type="PointOfInteraction1"/>
348 <xs:element maxOccurs="1" minOccurs="0" name="Tx" type="CardTransaction2Choice"/>
349 <xs:element maxOccurs="1" minOccurs="0" name="PrePdAcct" type="CashAccount24"/>
350 </xs:sequence>
351 </xs:complexType>
352 <xs:complexType name="CardTransaction2Choice">
353 <xs:choice>
354 <xs:element name="Aggtd" type="CardAggregated1"/>
355 <xs:element name="Indv" type="CardIndividualTransaction2"/>
356 </xs:choice>
357 </xs:complexType>
358 <xs:complexType name="CardholderAuthentication2">
359 <xs:sequence>
360 <xs:element name="AuthntcnMtd" type="AuthenticationMethod1Code"/>
361 <xs:element name="AuthntcnNtty" type="AuthenticationEntity1Code"/>
362 </xs:sequence>
363 </xs:complexType>
364 <xs:simpleType name="CardholderVerificationCapability1Code">
365 <xs:restriction base="xs:string">
366 <xs:enumeration value="MNSG"/>
367 <xs:enumeration value="NPIN"/>
368 <xs:enumeration value="FCPN"/>
369 <xs:enumeration value="FEPN"/>
370 <xs:enumeration value="FDSG"/>
371 <xs:enumeration value="FBIO"/>
372 <xs:enumeration value="MNVR"/>
373 <xs:enumeration value="FBIG"/>
374 <xs:enumeration value="APKI"/>
375 <xs:enumeration value="PKIS"/>
376 <xs:enumeration value="CHDT"/>
377 <xs:enumeration value="SCEC"/>
378 </xs:restriction>
379 </xs:simpleType>
380 <xs:complexType name="CashAccount24">
381 <xs:sequence>
382 <xs:element name="Id" type="AccountIdentification4Choice"/>
383 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CashAccountType2Choice"/>
384 <xs:element maxOccurs="1" minOccurs="0" name="Ccy" type="ActiveOrHistoricCurrencyCode"/>
385 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max70Text"/>
386 </xs:sequence>
387 </xs:complexType>
388 <xs:complexType name="CashAccount25">
389 <xs:sequence>
390 <xs:element name="Id" type="AccountIdentification4Choice"/>
391 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CashAccountType2Choice"/>
392 <xs:element maxOccurs="1" minOccurs="0" name="Ccy" type="ActiveOrHistoricCurrencyCode"/>
393 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max70Text"/>
394 <xs:element maxOccurs="1" minOccurs="0" name="Ownr" type="PartyIdentification43"/>
395 <xs:element maxOccurs="1" minOccurs="0" name="Svcr" type="BranchAndFinancialInstitutionIdentification5"/>
396 </xs:sequence>
397 </xs:complexType>
398 <xs:complexType name="CashAccountType2Choice">
399 <xs:choice>
400 <xs:element name="Cd" type="ExternalCashAccountType1Code"/>
401 <xs:element name="Prtry" type="Max35Text"/>
402 </xs:choice>
403 </xs:complexType>
404 <xs:complexType name="CashAvailability1">
405 <xs:sequence>
406 <xs:element name="Dt" type="CashAvailabilityDate1Choice"/>
407 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
408 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
409 </xs:sequence>
410 </xs:complexType>
411 <xs:complexType name="CashAvailabilityDate1Choice">
412 <xs:choice>
413 <xs:element name="NbOfDays" type="Max15PlusSignedNumericText"/>
414 <xs:element name="ActlDt" type="ISODate"/>
415 </xs:choice>
416 </xs:complexType>
417 <xs:complexType name="CashBalance7">
418 <xs:sequence>
419 <xs:element name="Tp" type="BalanceType12"/>
420 <xs:element maxOccurs="1" minOccurs="0" name="CdtLine" type="CreditLine2"/>
421 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
422 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
423 <xs:element name="Dt" type="DateAndDateTimeChoice"/>
424 <xs:element maxOccurs="unbounded" minOccurs="0" name="Avlbty" type="CashAvailability1"/>
425 </xs:sequence>
426 </xs:complexType>
427 <xs:complexType name="CashDeposit1">
428 <xs:sequence>
429 <xs:element name="NoteDnmtn" type="ActiveCurrencyAndAmount"/>
430 <xs:element name="NbOfNotes" type="Max15NumericText"/>
431 <xs:element name="Amt" type="ActiveCurrencyAndAmount"/>
432 </xs:sequence>
433 </xs:complexType>
434 <xs:simpleType name="ChargeBearerType1Code">
435 <xs:restriction base="xs:string">
436 <xs:enumeration value="DEBT"/>
437 <xs:enumeration value="CRED"/>
438 <xs:enumeration value="SHAR"/>
439 <xs:enumeration value="SLEV"/>
440 </xs:restriction>
441 </xs:simpleType>
442 <xs:simpleType name="ChargeIncludedIndicator">
443 <xs:restriction base="xs:boolean"/>
444 </xs:simpleType>
445 <xs:complexType name="ChargeType3Choice">
446 <xs:choice>
447 <xs:element name="Cd" type="ExternalChargeType1Code"/>
448 <xs:element name="Prtry" type="GenericIdentification3"/>
449 </xs:choice>
450 </xs:complexType>
451 <xs:complexType name="Charges4">
452 <xs:sequence>
453 <xs:element maxOccurs="1" minOccurs="0" name="TtlChrgsAndTaxAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
454 <xs:element maxOccurs="unbounded" minOccurs="0" name="Rcrd" type="ChargesRecord2"/>
455 </xs:sequence>
456 </xs:complexType>
457 <xs:complexType name="ChargesRecord2">
458 <xs:sequence>
459 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
460 <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
461 <xs:element maxOccurs="1" minOccurs="0" name="ChrgInclInd" type="ChargeIncludedIndicator"/>
462 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="ChargeType3Choice"/>
463 <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="PercentageRate"/>
464 <xs:element maxOccurs="1" minOccurs="0" name="Br" type="ChargeBearerType1Code"/>
465 <xs:element maxOccurs="1" minOccurs="0" name="Agt" type="BranchAndFinancialInstitutionIdentification5"/>
466 <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxCharges2"/>
467 </xs:sequence>
468 </xs:complexType>
469 <xs:complexType name="ClearingSystemIdentification2Choice">
470 <xs:choice>
471 <xs:element name="Cd" type="ExternalClearingSystemIdentification1Code"/>
472 <xs:element name="Prtry" type="Max35Text"/>
473 </xs:choice>
474 </xs:complexType>
475 <xs:complexType name="ClearingSystemMemberIdentification2">
476 <xs:sequence>
477 <xs:element maxOccurs="1" minOccurs="0" name="ClrSysId" type="ClearingSystemIdentification2Choice"/>
478 <xs:element name="MmbId" type="Max35Text"/>
479 </xs:sequence>
480 </xs:complexType>
481 <xs:complexType name="ContactDetails2">
482 <xs:sequence>
483 <xs:element maxOccurs="1" minOccurs="0" name="NmPrfx" type="NamePrefix1Code"/>
484 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
485 <xs:element maxOccurs="1" minOccurs="0" name="PhneNb" type="PhoneNumber"/>
486 <xs:element maxOccurs="1" minOccurs="0" name="MobNb" type="PhoneNumber"/>
487 <xs:element maxOccurs="1" minOccurs="0" name="FaxNb" type="PhoneNumber"/>
488 <xs:element maxOccurs="1" minOccurs="0" name="EmailAdr" type="Max2048Text"/>
489 <xs:element maxOccurs="1" minOccurs="0" name="Othr" type="Max35Text"/>
490 </xs:sequence>
491 </xs:complexType>
492 <xs:simpleType name="CopyDuplicate1Code">
493 <xs:restriction base="xs:string">
494 <xs:enumeration value="CODU"/>
495 <xs:enumeration value="COPY"/>
496 <xs:enumeration value="DUPL"/>
497 </xs:restriction>
498 </xs:simpleType>
499 <xs:complexType name="CorporateAction9">
500 <xs:sequence>
501 <xs:element name="EvtTp" type="Max35Text"/>
502 <xs:element name="EvtId" type="Max35Text"/>
503 </xs:sequence>
504 </xs:complexType>
505 <xs:simpleType name="CountryCode">
506 <xs:restriction base="xs:string">
507 <xs:pattern value="[A-Z]{2,2}"/>
508 </xs:restriction>
509 </xs:simpleType>
510 <xs:simpleType name="CreditDebitCode">
511 <xs:restriction base="xs:string">
512 <xs:enumeration value="CRDT"/>
513 <xs:enumeration value="DBIT"/>
514 </xs:restriction>
515 </xs:simpleType>
516 <xs:complexType name="CreditLine2">
517 <xs:sequence>
518 <xs:element name="Incl" type="TrueFalseIndicator"/>
519 <xs:element maxOccurs="1" minOccurs="0" name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
520 </xs:sequence>
521 </xs:complexType>
522 <xs:complexType name="CreditorReferenceInformation2">
523 <xs:sequence>
524 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CreditorReferenceType2"/>
525 <xs:element maxOccurs="1" minOccurs="0" name="Ref" type="Max35Text"/>
526 </xs:sequence>
527 </xs:complexType>
528 <xs:complexType name="CreditorReferenceType1Choice">
529 <xs:choice>
530 <xs:element name="Cd" type="DocumentType3Code"/>
531 <xs:element name="Prtry" type="Max35Text"/>
532 </xs:choice>
533 </xs:complexType>
534 <xs:complexType name="CreditorReferenceType2">
535 <xs:sequence>
536 <xs:element name="CdOrPrtry" type="CreditorReferenceType1Choice"/>
537 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
538 </xs:sequence>
539 </xs:complexType>
540 <xs:complexType name="CurrencyAndAmountRange2">
541 <xs:sequence>
542 <xs:element name="Amt" type="ImpliedCurrencyAmountRangeChoice"/>
543 <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
544 <xs:element name="Ccy" type="ActiveOrHistoricCurrencyCode"/>
545 </xs:sequence>
546 </xs:complexType>
547 <xs:complexType name="CurrencyExchange5">
548 <xs:sequence>
549 <xs:element name="SrcCcy" type="ActiveOrHistoricCurrencyCode"/>
550 <xs:element maxOccurs="1" minOccurs="0" name="TrgtCcy" type="ActiveOrHistoricCurrencyCode"/>
551 <xs:element maxOccurs="1" minOccurs="0" name="UnitCcy" type="ActiveOrHistoricCurrencyCode"/>
552 <xs:element name="XchgRate" type="BaseOneRate"/>
553 <xs:element maxOccurs="1" minOccurs="0" name="CtrctId" type="Max35Text"/>
554 <xs:element maxOccurs="1" minOccurs="0" name="QtnDt" type="ISODateTime"/>
555 </xs:sequence>
556 </xs:complexType>
557 <xs:complexType name="DateAndDateTimeChoice">
558 <xs:choice>
559 <xs:element name="Dt" type="ISODate"/>
560 <xs:element name="DtTm" type="ISODateTime"/>
561 </xs:choice>
562 </xs:complexType>
563 <xs:complexType name="DateAndPlaceOfBirth">
564 <xs:sequence>
565 <xs:element name="BirthDt" type="ISODate"/>
566 <xs:element maxOccurs="1" minOccurs="0" name="PrvcOfBirth" type="Max35Text"/>
567 <xs:element name="CityOfBirth" type="Max35Text"/>
568 <xs:element name="CtryOfBirth" type="CountryCode"/>
569 </xs:sequence>
570 </xs:complexType>
571 <xs:complexType name="DateOrDateTimePeriodChoice">
572 <xs:choice>
573 <xs:element name="Dt" type="DatePeriodDetails"/>
574 <xs:element name="DtTm" type="DateTimePeriodDetails"/>
575 </xs:choice>
576 </xs:complexType>
577 <xs:complexType name="DatePeriodDetails">
578 <xs:sequence>
579 <xs:element name="FrDt" type="ISODate"/>
580 <xs:element name="ToDt" type="ISODate"/>
581 </xs:sequence>
582 </xs:complexType>
583 <xs:complexType name="DateTimePeriodDetails">
584 <xs:sequence>
585 <xs:element name="FrDtTm" type="ISODateTime"/>
586 <xs:element name="ToDtTm" type="ISODateTime"/>
587 </xs:sequence>
588 </xs:complexType>
589 <xs:simpleType name="DecimalNumber">
590 <xs:restriction base="xs:decimal">
591 <xs:fractionDigits value="17"/>
592 <xs:totalDigits value="18"/>
593 </xs:restriction>
594 </xs:simpleType>
595 <xs:complexType name="DiscountAmountAndType1">
596 <xs:sequence>
597 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="DiscountAmountType1Choice"/>
598 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
599 </xs:sequence>
600 </xs:complexType>
601 <xs:complexType name="DiscountAmountType1Choice">
602 <xs:choice>
603 <xs:element name="Cd" type="ExternalDiscountAmountType1Code"/>
604 <xs:element name="Prtry" type="Max35Text"/>
605 </xs:choice>
606 </xs:complexType>
607 <xs:complexType name="DisplayCapabilities1">
608 <xs:sequence>
609 <xs:element name="DispTp" type="UserInterface2Code"/>
610 <xs:element name="NbOfLines" type="Max3NumericText"/>
611 <xs:element name="LineWidth" type="Max3NumericText"/>
612 </xs:sequence>
613 </xs:complexType>
614 <xs:complexType name="Document">
615 <xs:sequence>
616 <xs:element name="BkToCstmrAcctRpt" type="BankToCustomerAccountReportV06"/>
617 </xs:sequence>
618 </xs:complexType>
619 <xs:complexType name="DocumentAdjustment1">
620 <xs:sequence>
621 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
622 <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
623 <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="Max4Text"/>
624 <xs:element maxOccurs="1" minOccurs="0" name="AddtlInf" type="Max140Text"/>
625 </xs:sequence>
626 </xs:complexType>
627 <xs:complexType name="DocumentLineIdentification1">
628 <xs:sequence>
629 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="DocumentLineType1"/>
630 <xs:element maxOccurs="1" minOccurs="0" name="Nb" type="Max35Text"/>
631 <xs:element maxOccurs="1" minOccurs="0" name="RltdDt" type="ISODate"/>
632 </xs:sequence>
633 </xs:complexType>
634 <xs:complexType name="DocumentLineInformation1">
635 <xs:sequence>
636 <xs:element maxOccurs="unbounded" minOccurs="1" name="Id" type="DocumentLineIdentification1"/>
637 <xs:element maxOccurs="1" minOccurs="0" name="Desc" type="Max2048Text"/>
638 <xs:element maxOccurs="1" minOccurs="0" name="Amt" type="RemittanceAmount3"/>
639 </xs:sequence>
640 </xs:complexType>
641 <xs:complexType name="DocumentLineType1">
642 <xs:sequence>
643 <xs:element name="CdOrPrtry" type="DocumentLineType1Choice"/>
644 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
645 </xs:sequence>
646 </xs:complexType>
647 <xs:complexType name="DocumentLineType1Choice">
648 <xs:choice>
649 <xs:element name="Cd" type="ExternalDocumentLineType1Code"/>
650 <xs:element name="Prtry" type="Max35Text"/>
651 </xs:choice>
652 </xs:complexType>
653 <xs:simpleType name="DocumentType3Code">
654 <xs:restriction base="xs:string">
655 <xs:enumeration value="RADM"/>
656 <xs:enumeration value="RPIN"/>
657 <xs:enumeration value="FXDR"/>
658 <xs:enumeration value="DISP"/>
659 <xs:enumeration value="PUOR"/>
660 <xs:enumeration value="SCOR"/>
661 </xs:restriction>
662 </xs:simpleType>
663 <xs:simpleType name="DocumentType6Code">
664 <xs:restriction base="xs:string">
665 <xs:enumeration value="MSIN"/>
666 <xs:enumeration value="CNFA"/>
667 <xs:enumeration value="DNFA"/>
668 <xs:enumeration value="CINV"/>
669 <xs:enumeration value="CREN"/>
670 <xs:enumeration value="DEBN"/>
671 <xs:enumeration value="HIRI"/>
672 <xs:enumeration value="SBIN"/>
673 <xs:enumeration value="CMCN"/>
674 <xs:enumeration value="SOAC"/>
675 <xs:enumeration value="DISP"/>
676 <xs:enumeration value="BOLD"/>
677 <xs:enumeration value="VCHR"/>
678 <xs:enumeration value="AROI"/>
679 <xs:enumeration value="TSUT"/>
680 <xs:enumeration value="PUOR"/>
681 </xs:restriction>
682 </xs:simpleType>
683 <xs:complexType name="EntryDetails7">
684 <xs:sequence>
685 <xs:element maxOccurs="1" minOccurs="0" name="Btch" type="BatchInformation2"/>
686 <xs:element maxOccurs="unbounded" minOccurs="0" name="TxDtls" type="EntryTransaction8"/>
687 </xs:sequence>
688 </xs:complexType>
689 <xs:simpleType name="EntryStatus2Code">
690 <xs:restriction base="xs:string">
691 <xs:enumeration value="BOOK"/>
692 <xs:enumeration value="PDNG"/>
693 <xs:enumeration value="INFO"/>
694 </xs:restriction>
695 </xs:simpleType>
696 <xs:complexType name="EntryTransaction8">
697 <xs:sequence>
698 <xs:element maxOccurs="1" minOccurs="0" name="Refs" type="TransactionReferences3"/>
699 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
700 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
701 <xs:element maxOccurs="1" minOccurs="0" name="AmtDtls" type="AmountAndCurrencyExchange3"/>
702 <xs:element maxOccurs="unbounded" minOccurs="0" name="Avlbty" type="CashAvailability1"/>
703 <xs:element maxOccurs="1" minOccurs="0" name="BkTxCd" type="BankTransactionCodeStructure4"/>
704 <xs:element maxOccurs="1" minOccurs="0" name="Chrgs" type="Charges4"/>
705 <xs:element maxOccurs="1" minOccurs="0" name="Intrst" type="TransactionInterest3"/>
706 <xs:element maxOccurs="1" minOccurs="0" name="RltdPties" type="TransactionParties3"/>
707 <xs:element maxOccurs="1" minOccurs="0" name="RltdAgts" type="TransactionAgents3"/>
708 <xs:element maxOccurs="1" minOccurs="0" name="Purp" type="Purpose2Choice"/>
709 <xs:element maxOccurs="10" minOccurs="0" name="RltdRmtInf" type="RemittanceLocation4"/>
710 <xs:element maxOccurs="1" minOccurs="0" name="RmtInf" type="RemittanceInformation11"/>
711 <xs:element maxOccurs="1" minOccurs="0" name="RltdDts" type="TransactionDates2"/>
712 <xs:element maxOccurs="1" minOccurs="0" name="RltdPric" type="TransactionPrice3Choice"/>
713 <xs:element maxOccurs="unbounded" minOccurs="0" name="RltdQties" type="TransactionQuantities2Choice"/>
714 <xs:element maxOccurs="1" minOccurs="0" name="FinInstrmId" type="SecurityIdentification19"/>
715 <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxInformation3"/>
716 <xs:element maxOccurs="1" minOccurs="0" name="RtrInf" type="PaymentReturnReason2"/>
717 <xs:element maxOccurs="1" minOccurs="0" name="CorpActn" type="CorporateAction9"/>
718 <xs:element maxOccurs="1" minOccurs="0" name="SfkpgAcct" type="SecuritiesAccount19"/>
719 <xs:element maxOccurs="unbounded" minOccurs="0" name="CshDpst" type="CashDeposit1"/>
720 <xs:element maxOccurs="1" minOccurs="0" name="CardTx" type="CardTransaction2"/>
721 <xs:element maxOccurs="1" minOccurs="0" name="AddtlTxInf" type="Max500Text"/>
722 <xs:element maxOccurs="unbounded" minOccurs="0" name="SplmtryData" type="SupplementaryData1"/>
723 </xs:sequence>
724 </xs:complexType>
725 <xs:simpleType name="Exact1NumericText">
726 <xs:restriction base="xs:string">
727 <xs:pattern value="[0-9]"/>
728 </xs:restriction>
729 </xs:simpleType>
730 <xs:simpleType name="Exact3NumericText">
731 <xs:restriction base="xs:string">
732 <xs:pattern value="[0-9]{3}"/>
733 </xs:restriction>
734 </xs:simpleType>
735 <xs:simpleType name="Exact4AlphaNumericText">
736 <xs:restriction base="xs:string">
737 <xs:pattern value="[a-zA-Z0-9]{4}"/>
738 </xs:restriction>
739 </xs:simpleType>
740 <xs:simpleType name="ExternalAccountIdentification1Code">
741 <xs:restriction base="xs:string">
742 <xs:minLength value="1"/>
743 <xs:maxLength value="4"/>
744 </xs:restriction>
745 </xs:simpleType>
746 <xs:simpleType name="ExternalBalanceSubType1Code">
747 <xs:restriction base="xs:string">
748 <xs:minLength value="1"/>
749 <xs:maxLength value="4"/>
750 </xs:restriction>
751 </xs:simpleType>
752 <xs:simpleType name="ExternalBankTransactionDomain1Code">
753 <xs:restriction base="xs:string">
754 <xs:minLength value="1"/>
755 <xs:maxLength value="4"/>
756 </xs:restriction>
757 </xs:simpleType>
758 <xs:simpleType name="ExternalBankTransactionFamily1Code">
759 <xs:restriction base="xs:string">
760 <xs:minLength value="1"/>
761 <xs:maxLength value="4"/>
762 </xs:restriction>
763 </xs:simpleType>
764 <xs:simpleType name="ExternalBankTransactionSubFamily1Code">
765 <xs:restriction base="xs:string">
766 <xs:minLength value="1"/>
767 <xs:maxLength value="4"/>
768 </xs:restriction>
769 </xs:simpleType>
770 <xs:simpleType name="ExternalCardTransactionCategory1Code">
771 <xs:restriction base="xs:string">
772 <xs:minLength value="1"/>
773 <xs:maxLength value="4"/>
774 </xs:restriction>
775 </xs:simpleType>
776 <xs:simpleType name="ExternalCashAccountType1Code">
777 <xs:restriction base="xs:string">
778 <xs:minLength value="1"/>
779 <xs:maxLength value="4"/>
780 </xs:restriction>
781 </xs:simpleType>
782 <xs:simpleType name="ExternalChargeType1Code">
783 <xs:restriction base="xs:string">
784 <xs:minLength value="1"/>
785 <xs:maxLength value="4"/>
786 </xs:restriction>
787 </xs:simpleType>
788 <xs:simpleType name="ExternalClearingSystemIdentification1Code">
789 <xs:restriction base="xs:string">
790 <xs:minLength value="1"/>
791 <xs:maxLength value="5"/>
792 </xs:restriction>
793 </xs:simpleType>
794 <xs:simpleType name="ExternalDiscountAmountType1Code">
795 <xs:restriction base="xs:string">
796 <xs:minLength value="1"/>
797 <xs:maxLength value="4"/>
798 </xs:restriction>
799 </xs:simpleType>
800 <xs:simpleType name="ExternalDocumentLineType1Code">
801 <xs:restriction base="xs:string">
802 <xs:minLength value="1"/>
803 <xs:maxLength value="4"/>
804 </xs:restriction>
805 </xs:simpleType>
806 <xs:simpleType name="ExternalFinancialInstitutionIdentification1Code">
807 <xs:restriction base="xs:string">
808 <xs:minLength value="1"/>
809 <xs:maxLength value="4"/>
810 </xs:restriction>
811 </xs:simpleType>
812 <xs:simpleType name="ExternalFinancialInstrumentIdentificationType1Code">
813 <xs:restriction base="xs:string">
814 <xs:minLength value="1"/>
815 <xs:maxLength value="4"/>
816 </xs:restriction>
817 </xs:simpleType>
818 <xs:simpleType name="ExternalGarnishmentType1Code">
819 <xs:restriction base="xs:string">
820 <xs:minLength value="1"/>
821 <xs:maxLength value="4"/>
822 </xs:restriction>
823 </xs:simpleType>
824 <xs:simpleType name="ExternalOrganisationIdentification1Code">
825 <xs:restriction base="xs:string">
826 <xs:minLength value="1"/>
827 <xs:maxLength value="4"/>
828 </xs:restriction>
829 </xs:simpleType>
830 <xs:simpleType name="ExternalPersonIdentification1Code">
831 <xs:restriction base="xs:string">
832 <xs:minLength value="1"/>
833 <xs:maxLength value="4"/>
834 </xs:restriction>
835 </xs:simpleType>
836 <xs:simpleType name="ExternalPurpose1Code">
837 <xs:restriction base="xs:string">
838 <xs:minLength value="1"/>
839 <xs:maxLength value="4"/>
840 </xs:restriction>
841 </xs:simpleType>
842 <xs:simpleType name="ExternalRePresentmentReason1Code">
843 <xs:restriction base="xs:string">
844 <xs:minLength value="1"/>
845 <xs:maxLength value="4"/>
846 </xs:restriction>
847 </xs:simpleType>
848 <xs:simpleType name="ExternalReportingSource1Code">
849 <xs:restriction base="xs:string">
850 <xs:minLength value="1"/>
851 <xs:maxLength value="4"/>
852 </xs:restriction>
853 </xs:simpleType>
854 <xs:simpleType name="ExternalReturnReason1Code">
855 <xs:restriction base="xs:string">
856 <xs:minLength value="1"/>
857 <xs:maxLength value="4"/>
858 </xs:restriction>
859 </xs:simpleType>
860 <xs:simpleType name="ExternalTaxAmountType1Code">
861 <xs:restriction base="xs:string">
862 <xs:minLength value="1"/>
863 <xs:maxLength value="4"/>
864 </xs:restriction>
865 </xs:simpleType>
866 <xs:simpleType name="ExternalTechnicalInputChannel1Code">
867 <xs:restriction base="xs:string">
868 <xs:minLength value="1"/>
869 <xs:maxLength value="4"/>
870 </xs:restriction>
871 </xs:simpleType>
872 <xs:complexType name="FinancialIdentificationSchemeName1Choice">
873 <xs:choice>
874 <xs:element name="Cd" type="ExternalFinancialInstitutionIdentification1Code"/>
875 <xs:element name="Prtry" type="Max35Text"/>
876 </xs:choice>
877 </xs:complexType>
878 <xs:complexType name="FinancialInstitutionIdentification8">
879 <xs:sequence>
880 <xs:element maxOccurs="1" minOccurs="0" name="BICFI" type="BICFIIdentifier"/>
881 <xs:element maxOccurs="1" minOccurs="0" name="ClrSysMmbId" type="ClearingSystemMemberIdentification2"/>
882 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
883 <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress6"/>
884 <xs:element maxOccurs="1" minOccurs="0" name="Othr" type="GenericFinancialIdentification1"/>
885 </xs:sequence>
886 </xs:complexType>
887 <xs:complexType name="FinancialInstrumentQuantityChoice">
888 <xs:choice>
889 <xs:element name="Unit" type="DecimalNumber"/>
890 <xs:element name="FaceAmt" type="ImpliedCurrencyAndAmount"/>
891 <xs:element name="AmtsdVal" type="ImpliedCurrencyAndAmount"/>
892 </xs:choice>
893 </xs:complexType>
894 <xs:complexType name="FromToAmountRange">
895 <xs:sequence>
896 <xs:element name="FrAmt" type="AmountRangeBoundary1"/>
897 <xs:element name="ToAmt" type="AmountRangeBoundary1"/>
898 </xs:sequence>
899 </xs:complexType>
900 <xs:complexType name="Garnishment1">
901 <xs:sequence>
902 <xs:element name="Tp" type="GarnishmentType1"/>
903 <xs:element maxOccurs="1" minOccurs="0" name="Grnshee" type="PartyIdentification43"/>
904 <xs:element maxOccurs="1" minOccurs="0" name="GrnshmtAdmstr" type="PartyIdentification43"/>
905 <xs:element maxOccurs="1" minOccurs="0" name="RefNb" type="Max140Text"/>
906 <xs:element maxOccurs="1" minOccurs="0" name="Dt" type="ISODate"/>
907 <xs:element maxOccurs="1" minOccurs="0" name="RmtdAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
908 <xs:element maxOccurs="1" minOccurs="0" name="FmlyMdclInsrncInd" type="TrueFalseIndicator"/>
909 <xs:element maxOccurs="1" minOccurs="0" name="MplyeeTermntnInd" type="TrueFalseIndicator"/>
910 </xs:sequence>
911 </xs:complexType>
912 <xs:complexType name="GarnishmentType1">
913 <xs:sequence>
914 <xs:element name="CdOrPrtry" type="GarnishmentType1Choice"/>
915 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
916 </xs:sequence>
917 </xs:complexType>
918 <xs:complexType name="GarnishmentType1Choice">
919 <xs:choice>
920 <xs:element name="Cd" type="ExternalGarnishmentType1Code"/>
921 <xs:element name="Prtry" type="Max35Text"/>
922 </xs:choice>
923 </xs:complexType>
924 <xs:complexType name="GenericAccountIdentification1">
925 <xs:sequence>
926 <xs:element name="Id" type="Max34Text"/>
927 <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="AccountSchemeName1Choice"/>
928 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
929 </xs:sequence>
930 </xs:complexType>
931 <xs:complexType name="GenericFinancialIdentification1">
932 <xs:sequence>
933 <xs:element name="Id" type="Max35Text"/>
934 <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="FinancialIdentificationSchemeName1Choice"/>
935 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
936 </xs:sequence>
937 </xs:complexType>
938 <xs:complexType name="GenericIdentification1">
939 <xs:sequence>
940 <xs:element name="Id" type="Max35Text"/>
941 <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="Max35Text"/>
942 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
943 </xs:sequence>
944 </xs:complexType>
945 <xs:complexType name="GenericIdentification3">
946 <xs:sequence>
947 <xs:element name="Id" type="Max35Text"/>
948 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
949 </xs:sequence>
950 </xs:complexType>
951 <xs:complexType name="GenericIdentification30">
952 <xs:sequence>
953 <xs:element name="Id" type="Exact4AlphaNumericText"/>
954 <xs:element name="Issr" type="Max35Text"/>
955 <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="Max35Text"/>
956 </xs:sequence>
957 </xs:complexType>
958 <xs:complexType name="GenericIdentification32">
959 <xs:sequence>
960 <xs:element name="Id" type="Max35Text"/>
961 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="PartyType3Code"/>
962 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="PartyType4Code"/>
963 <xs:element maxOccurs="1" minOccurs="0" name="ShrtNm" type="Max35Text"/>
964 </xs:sequence>
965 </xs:complexType>
966 <xs:complexType name="GenericOrganisationIdentification1">
967 <xs:sequence>
968 <xs:element name="Id" type="Max35Text"/>
969 <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="OrganisationIdentificationSchemeName1Choice"/>
970 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
971 </xs:sequence>
972 </xs:complexType>
973 <xs:complexType name="GenericPersonIdentification1">
974 <xs:sequence>
975 <xs:element name="Id" type="Max35Text"/>
976 <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="PersonIdentificationSchemeName1Choice"/>
977 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
978 </xs:sequence>
979 </xs:complexType>
980 <xs:complexType name="GroupHeader58">
981 <xs:sequence>
982 <xs:element name="MsgId" type="Max35Text"/>
983 <xs:element name="CreDtTm" type="ISODateTime"/>
984 <xs:element maxOccurs="1" minOccurs="0" name="MsgRcpt" type="PartyIdentification43"/>
985 <xs:element maxOccurs="1" minOccurs="0" name="MsgPgntn" type="Pagination"/>
986 <xs:element maxOccurs="1" minOccurs="0" name="OrgnlBizQry" type="OriginalBusinessQuery1"/>
987 <xs:element maxOccurs="1" minOccurs="0" name="AddtlInf" type="Max500Text"/>
988 </xs:sequence>
989 </xs:complexType>
990 <xs:simpleType name="IBAN2007Identifier">
991 <xs:restriction base="xs:string">
992 <xs:pattern value="[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}"/>
993 </xs:restriction>
994 </xs:simpleType>
995 <xs:simpleType name="ISINOct2015Identifier">
996 <xs:restriction base="xs:string">
997 <xs:pattern value="[A-Z]{2,2}[A-Z0-9]{9,9}[0-9]{1,1}"/>
998 </xs:restriction>
999 </xs:simpleType>
1000 <xs:simpleType name="ISO2ALanguageCode">
1001 <xs:restriction base="xs:string">
1002 <xs:pattern value="[a-z]{2,2}"/>
1003 </xs:restriction>
1004 </xs:simpleType>
1005 <xs:simpleType name="ISODate">
1006 <xs:restriction base="xs:date"/>
1007 </xs:simpleType>
1008 <xs:simpleType name="ISODateTime">
1009 <xs:restriction base="xs:dateTime"/>
1010 </xs:simpleType>
1011 <xs:simpleType name="ISOYearMonth">
1012 <xs:restriction base="xs:gYearMonth"/>
1013 </xs:simpleType>
1014 <xs:complexType name="IdentificationSource3Choice">
1015 <xs:choice>
1016 <xs:element name="Cd" type="ExternalFinancialInstrumentIdentificationType1Code"/>
1017 <xs:element name="Prtry" type="Max35Text"/>
1018 </xs:choice>
1019 </xs:complexType>
1020 <xs:complexType name="ImpliedCurrencyAmountRangeChoice">
1021 <xs:choice>
1022 <xs:element name="FrAmt" type="AmountRangeBoundary1"/>
1023 <xs:element name="ToAmt" type="AmountRangeBoundary1"/>
1024 <xs:element name="FrToAmt" type="FromToAmountRange"/>
1025 <xs:element name="EQAmt" type="ImpliedCurrencyAndAmount"/>
1026 <xs:element name="NEQAmt" type="ImpliedCurrencyAndAmount"/>
1027 </xs:choice>
1028 </xs:complexType>
1029 <xs:simpleType name="ImpliedCurrencyAndAmount">
1030 <xs:restriction base="xs:decimal">
1031 <xs:fractionDigits value="5"/>
1032 <xs:totalDigits value="18"/>
1033 <xs:minInclusive value="0"/>
1034 </xs:restriction>
1035 </xs:simpleType>
1036 <xs:complexType name="InterestRecord1">
1037 <xs:sequence>
1038 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
1039 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
1040 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="InterestType1Choice"/>
1041 <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="Rate3"/>
1042 <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DateTimePeriodDetails"/>
1043 <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="Max35Text"/>
1044 <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxCharges2"/>
1045 </xs:sequence>
1046 </xs:complexType>
1047 <xs:complexType name="InterestType1Choice">
1048 <xs:choice>
1049 <xs:element name="Cd" type="InterestType1Code"/>
1050 <xs:element name="Prtry" type="Max35Text"/>
1051 </xs:choice>
1052 </xs:complexType>
1053 <xs:simpleType name="InterestType1Code">
1054 <xs:restriction base="xs:string">
1055 <xs:enumeration value="INDY"/>
1056 <xs:enumeration value="OVRN"/>
1057 </xs:restriction>
1058 </xs:simpleType>
1059 <xs:simpleType name="Max1025Text">
1060 <xs:restriction base="xs:string">
1061 <xs:minLength value="1"/>
1062 <xs:maxLength value="1025"/>
1063 </xs:restriction>
1064 </xs:simpleType>
1065 <xs:simpleType name="Max105Text">
1066 <xs:restriction base="xs:string">
1067 <xs:minLength value="1"/>
1068 <xs:maxLength value="105"/>
1069 </xs:restriction>
1070 </xs:simpleType>
1071 <xs:simpleType name="Max140Text">
1072 <xs:restriction base="xs:string">
1073 <xs:minLength value="1"/>
1074 <xs:maxLength value="140"/>
1075 </xs:restriction>
1076 </xs:simpleType>
1077 <xs:simpleType name="Max15NumericText">
1078 <xs:restriction base="xs:string">
1079 <xs:pattern value="[0-9]{1,15}"/>
1080 </xs:restriction>
1081 </xs:simpleType>
1082 <xs:simpleType name="Max15PlusSignedNumericText">
1083 <xs:restriction base="xs:string">
1084 <xs:pattern value="[\+]{0,1}[0-9]{1,15}"/>
1085 </xs:restriction>
1086 </xs:simpleType>
1087 <xs:simpleType name="Max16Text">
1088 <xs:restriction base="xs:string">
1089 <xs:minLength value="1"/>
1090 <xs:maxLength value="16"/>
1091 </xs:restriction>
1092 </xs:simpleType>
1093 <xs:simpleType name="Max2048Text">
1094 <xs:restriction base="xs:string">
1095 <xs:minLength value="1"/>
1096 <xs:maxLength value="2048"/>
1097 </xs:restriction>
1098 </xs:simpleType>
1099 <xs:simpleType name="Max34Text">
1100 <xs:restriction base="xs:string">
1101 <xs:minLength value="1"/>
1102 <xs:maxLength value="34"/>
1103 </xs:restriction>
1104 </xs:simpleType>
1105 <xs:simpleType name="Max350Text">
1106 <xs:restriction base="xs:string">
1107 <xs:minLength value="1"/>
1108 <xs:maxLength value="350"/>
1109 </xs:restriction>
1110 </xs:simpleType>
1111 <xs:simpleType name="Max35Text">
1112 <xs:restriction base="xs:string">
1113 <xs:minLength value="1"/>
1114 <xs:maxLength value="35"/>
1115 </xs:restriction>
1116 </xs:simpleType>
1117 <xs:simpleType name="Max3NumericText">
1118 <xs:restriction base="xs:string">
1119 <xs:pattern value="[0-9]{1,3}"/>
1120 </xs:restriction>
1121 </xs:simpleType>
1122 <xs:simpleType name="Max4Text">
1123 <xs:restriction base="xs:string">
1124 <xs:minLength value="1"/>
1125 <xs:maxLength value="4"/>
1126 </xs:restriction>
1127 </xs:simpleType>
1128 <xs:simpleType name="Max500Text">
1129 <xs:restriction base="xs:string">
1130 <xs:minLength value="1"/>
1131 <xs:maxLength value="500"/>
1132 </xs:restriction>
1133 </xs:simpleType>
1134 <xs:simpleType name="Max5NumericText">
1135 <xs:restriction base="xs:string">
1136 <xs:pattern value="[0-9]{1,5}"/>
1137 </xs:restriction>
1138 </xs:simpleType>
1139 <xs:simpleType name="Max70Text">
1140 <xs:restriction base="xs:string">
1141 <xs:minLength value="1"/>
1142 <xs:maxLength value="70"/>
1143 </xs:restriction>
1144 </xs:simpleType>
1145 <xs:complexType name="MessageIdentification2">
1146 <xs:sequence>
1147 <xs:element maxOccurs="1" minOccurs="0" name="MsgNmId" type="Max35Text"/>
1148 <xs:element maxOccurs="1" minOccurs="0" name="MsgId" type="Max35Text"/>
1149 </xs:sequence>
1150 </xs:complexType>
1151 <xs:simpleType name="Min2Max3NumericText">
1152 <xs:restriction base="xs:string">
1153 <xs:pattern value="[0-9]{2,3}"/>
1154 </xs:restriction>
1155 </xs:simpleType>
1156 <xs:simpleType name="Min3Max4NumericText">
1157 <xs:restriction base="xs:string">
1158 <xs:pattern value="[0-9]{3,4}"/>
1159 </xs:restriction>
1160 </xs:simpleType>
1161 <xs:simpleType name="Min8Max28NumericText">
1162 <xs:restriction base="xs:string">
1163 <xs:pattern value="[0-9]{8,28}"/>
1164 </xs:restriction>
1165 </xs:simpleType>
1166 <xs:complexType name="NameAndAddress10">
1167 <xs:sequence>
1168 <xs:element name="Nm" type="Max140Text"/>
1169 <xs:element name="Adr" type="PostalAddress6"/>
1170 </xs:sequence>
1171 </xs:complexType>
1172 <xs:simpleType name="NamePrefix1Code">
1173 <xs:restriction base="xs:string">
1174 <xs:enumeration value="DOCT"/>
1175 <xs:enumeration value="MIST"/>
1176 <xs:enumeration value="MISS"/>
1177 <xs:enumeration value="MADM"/>
1178 </xs:restriction>
1179 </xs:simpleType>
1180 <xs:simpleType name="NonNegativeDecimalNumber">
1181 <xs:restriction base="xs:decimal">
1182 <xs:fractionDigits value="17"/>
1183 <xs:totalDigits value="18"/>
1184 <xs:minInclusive value="0"/>
1185 </xs:restriction>
1186 </xs:simpleType>
1187 <xs:simpleType name="Number">
1188 <xs:restriction base="xs:decimal">
1189 <xs:fractionDigits value="0"/>
1190 <xs:totalDigits value="18"/>
1191 </xs:restriction>
1192 </xs:simpleType>
1193 <xs:complexType name="NumberAndSumOfTransactions1">
1194 <xs:sequence>
1195 <xs:element maxOccurs="1" minOccurs="0" name="NbOfNtries" type="Max15NumericText"/>
1196 <xs:element maxOccurs="1" minOccurs="0" name="Sum" type="DecimalNumber"/>
1197 </xs:sequence>
1198 </xs:complexType>
1199 <xs:complexType name="NumberAndSumOfTransactions4">
1200 <xs:sequence>
1201 <xs:element maxOccurs="1" minOccurs="0" name="NbOfNtries" type="Max15NumericText"/>
1202 <xs:element maxOccurs="1" minOccurs="0" name="Sum" type="DecimalNumber"/>
1203 <xs:element maxOccurs="1" minOccurs="0" name="TtlNetNtry" type="AmountAndDirection35"/>
1204 </xs:sequence>
1205 </xs:complexType>
1206 <xs:simpleType name="OnLineCapability1Code">
1207 <xs:restriction base="xs:string">
1208 <xs:enumeration value="OFLN"/>
1209 <xs:enumeration value="ONLN"/>
1210 <xs:enumeration value="SMON"/>
1211 </xs:restriction>
1212 </xs:simpleType>
1213 <xs:complexType name="OrganisationIdentification8">
1214 <xs:sequence>
1215 <xs:element maxOccurs="1" minOccurs="0" name="AnyBIC" type="AnyBICIdentifier"/>
1216 <xs:element maxOccurs="unbounded" minOccurs="0" name="Othr" type="GenericOrganisationIdentification1"/>
1217 </xs:sequence>
1218 </xs:complexType>
1219 <xs:complexType name="OrganisationIdentificationSchemeName1Choice">
1220 <xs:choice>
1221 <xs:element name="Cd" type="ExternalOrganisationIdentification1Code"/>
1222 <xs:element name="Prtry" type="Max35Text"/>
1223 </xs:choice>
1224 </xs:complexType>
1225 <xs:complexType name="OriginalAndCurrentQuantities1">
1226 <xs:sequence>
1227 <xs:element name="FaceAmt" type="ImpliedCurrencyAndAmount"/>
1228 <xs:element name="AmtsdVal" type="ImpliedCurrencyAndAmount"/>
1229 </xs:sequence>
1230 </xs:complexType>
1231 <xs:complexType name="OriginalBusinessQuery1">
1232 <xs:sequence>
1233 <xs:element name="MsgId" type="Max35Text"/>
1234 <xs:element maxOccurs="1" minOccurs="0" name="MsgNmId" type="Max35Text"/>
1235 <xs:element maxOccurs="1" minOccurs="0" name="CreDtTm" type="ISODateTime"/>
1236 </xs:sequence>
1237 </xs:complexType>
1238 <xs:complexType name="OtherIdentification1">
1239 <xs:sequence>
1240 <xs:element name="Id" type="Max35Text"/>
1241 <xs:element maxOccurs="1" minOccurs="0" name="Sfx" type="Max16Text"/>
1242 <xs:element name="Tp" type="IdentificationSource3Choice"/>
1243 </xs:sequence>
1244 </xs:complexType>
1245 <xs:simpleType name="POIComponentType1Code">
1246 <xs:restriction base="xs:string">
1247 <xs:enumeration value="SOFT"/>
1248 <xs:enumeration value="EMVK"/>
1249 <xs:enumeration value="EMVO"/>
1250 <xs:enumeration value="MRIT"/>
1251 <xs:enumeration value="CHIT"/>
1252 <xs:enumeration value="SECM"/>
1253 <xs:enumeration value="PEDV"/>
1254 </xs:restriction>
1255 </xs:simpleType>
1256 <xs:complexType name="Pagination">
1257 <xs:sequence>
1258 <xs:element name="PgNb" type="Max5NumericText"/>
1259 <xs:element name="LastPgInd" type="YesNoIndicator"/>
1260 </xs:sequence>
1261 </xs:complexType>
1262 <xs:complexType name="Party11Choice">
1263 <xs:choice>
1264 <xs:element name="OrgId" type="OrganisationIdentification8"/>
1265 <xs:element name="PrvtId" type="PersonIdentification5"/>
1266 </xs:choice>
1267 </xs:complexType>
1268 <xs:complexType name="PartyIdentification43">
1269 <xs:sequence>
1270 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
1271 <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress6"/>
1272 <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Party11Choice"/>
1273 <xs:element maxOccurs="1" minOccurs="0" name="CtryOfRes" type="CountryCode"/>
1274 <xs:element maxOccurs="1" minOccurs="0" name="CtctDtls" type="ContactDetails2"/>
1275 </xs:sequence>
1276 </xs:complexType>
1277 <xs:simpleType name="PartyType3Code">
1278 <xs:restriction base="xs:string">
1279 <xs:enumeration value="OPOI"/>
1280 <xs:enumeration value="MERC"/>
1281 <xs:enumeration value="ACCP"/>
1282 <xs:enumeration value="ITAG"/>
1283 <xs:enumeration value="ACQR"/>
1284 <xs:enumeration value="CISS"/>
1285 <xs:enumeration value="DLIS"/>
1286 </xs:restriction>
1287 </xs:simpleType>
1288 <xs:simpleType name="PartyType4Code">
1289 <xs:restriction base="xs:string">
1290 <xs:enumeration value="MERC"/>
1291 <xs:enumeration value="ACCP"/>
1292 <xs:enumeration value="ITAG"/>
1293 <xs:enumeration value="ACQR"/>
1294 <xs:enumeration value="CISS"/>
1295 <xs:enumeration value="TAXH"/>
1296 </xs:restriction>
1297 </xs:simpleType>
1298 <xs:complexType name="PaymentCard4">
1299 <xs:sequence>
1300 <xs:element maxOccurs="1" minOccurs="0" name="PlainCardData" type="PlainCardData1"/>
1301 <xs:element maxOccurs="1" minOccurs="0" name="CardCtryCd" type="Exact3NumericText"/>
1302 <xs:element maxOccurs="1" minOccurs="0" name="CardBrnd" type="GenericIdentification1"/>
1303 <xs:element maxOccurs="1" minOccurs="0" name="AddtlCardData" type="Max70Text"/>
1304 </xs:sequence>
1305 </xs:complexType>
1306 <xs:complexType name="PaymentContext3">
1307 <xs:sequence>
1308 <xs:element maxOccurs="1" minOccurs="0" name="CardPres" type="TrueFalseIndicator"/>
1309 <xs:element maxOccurs="1" minOccurs="0" name="CrdhldrPres" type="TrueFalseIndicator"/>
1310 <xs:element maxOccurs="1" minOccurs="0" name="OnLineCntxt" type="TrueFalseIndicator"/>
1311 <xs:element maxOccurs="1" minOccurs="0" name="AttndncCntxt" type="AttendanceContext1Code"/>
1312 <xs:element maxOccurs="1" minOccurs="0" name="TxEnvt" type="TransactionEnvironment1Code"/>
1313 <xs:element maxOccurs="1" minOccurs="0" name="TxChanl" type="TransactionChannel1Code"/>
1314 <xs:element maxOccurs="1" minOccurs="0" name="AttndntMsgCpbl" type="TrueFalseIndicator"/>
1315 <xs:element maxOccurs="1" minOccurs="0" name="AttndntLang" type="ISO2ALanguageCode"/>
1316 <xs:element name="CardDataNtryMd" type="CardDataReading1Code"/>
1317 <xs:element maxOccurs="1" minOccurs="0" name="FllbckInd" type="TrueFalseIndicator"/>
1318 <xs:element maxOccurs="1" minOccurs="0" name="AuthntcnMtd" type="CardholderAuthentication2"/>
1319 </xs:sequence>
1320 </xs:complexType>
1321 <xs:complexType name="PaymentReturnReason2">
1322 <xs:sequence>
1323 <xs:element maxOccurs="1" minOccurs="0" name="OrgnlBkTxCd" type="BankTransactionCodeStructure4"/>
1324 <xs:element maxOccurs="1" minOccurs="0" name="Orgtr" type="PartyIdentification43"/>
1325 <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="ReturnReason5Choice"/>
1326 <xs:element maxOccurs="unbounded" minOccurs="0" name="AddtlInf" type="Max105Text"/>
1327 </xs:sequence>
1328 </xs:complexType>
1329 <xs:simpleType name="PercentageRate">
1330 <xs:restriction base="xs:decimal">
1331 <xs:fractionDigits value="10"/>
1332 <xs:totalDigits value="11"/>
1333 </xs:restriction>
1334 </xs:simpleType>
1335 <xs:complexType name="PersonIdentification5">
1336 <xs:sequence>
1337 <xs:element maxOccurs="1" minOccurs="0" name="DtAndPlcOfBirth" type="DateAndPlaceOfBirth"/>
1338 <xs:element maxOccurs="unbounded" minOccurs="0" name="Othr" type="GenericPersonIdentification1"/>
1339 </xs:sequence>
1340 </xs:complexType>
1341 <xs:complexType name="PersonIdentificationSchemeName1Choice">
1342 <xs:choice>
1343 <xs:element name="Cd" type="ExternalPersonIdentification1Code"/>
1344 <xs:element name="Prtry" type="Max35Text"/>
1345 </xs:choice>
1346 </xs:complexType>
1347 <xs:simpleType name="PhoneNumber">
1348 <xs:restriction base="xs:string">
1349 <xs:pattern value="\+[0-9]{1,3}-[0-9()+\-]{1,30}"/>
1350 </xs:restriction>
1351 </xs:simpleType>
1352 <xs:complexType name="PlainCardData1">
1353 <xs:sequence>
1354 <xs:element name="PAN" type="Min8Max28NumericText"/>
1355 <xs:element maxOccurs="1" minOccurs="0" name="CardSeqNb" type="Min2Max3NumericText"/>
1356 <xs:element maxOccurs="1" minOccurs="0" name="FctvDt" type="ISOYearMonth"/>
1357 <xs:element name="XpryDt" type="ISOYearMonth"/>
1358 <xs:element maxOccurs="1" minOccurs="0" name="SvcCd" type="Exact3NumericText"/>
1359 <xs:element maxOccurs="unbounded" minOccurs="0" name="TrckData" type="TrackData1"/>
1360 <xs:element maxOccurs="1" minOccurs="0" name="CardSctyCd" type="CardSecurityInformation1"/>
1361 </xs:sequence>
1362 </xs:complexType>
1363 <xs:complexType name="PointOfInteraction1">
1364 <xs:sequence>
1365 <xs:element name="Id" type="GenericIdentification32"/>
1366 <xs:element maxOccurs="1" minOccurs="0" name="SysNm" type="Max70Text"/>
1367 <xs:element maxOccurs="1" minOccurs="0" name="GrpId" type="Max35Text"/>
1368 <xs:element maxOccurs="1" minOccurs="0" name="Cpblties" type="PointOfInteractionCapabilities1"/>
1369 <xs:element maxOccurs="unbounded" minOccurs="0" name="Cmpnt" type="PointOfInteractionComponent1"/>
1370 </xs:sequence>
1371 </xs:complexType>
1372 <xs:complexType name="PointOfInteractionCapabilities1">
1373 <xs:sequence>
1374 <xs:element maxOccurs="unbounded" minOccurs="0" name="CardRdngCpblties" type="CardDataReading1Code"/>
1375 <xs:element maxOccurs="unbounded" minOccurs="0" name="CrdhldrVrfctnCpblties" type="CardholderVerificationCapability1Code"/>
1376 <xs:element maxOccurs="1" minOccurs="0" name="OnLineCpblties" type="OnLineCapability1Code"/>
1377 <xs:element maxOccurs="unbounded" minOccurs="0" name="DispCpblties" type="DisplayCapabilities1"/>
1378 <xs:element maxOccurs="1" minOccurs="0" name="PrtLineWidth" type="Max3NumericText"/>
1379 </xs:sequence>
1380 </xs:complexType>
1381 <xs:complexType name="PointOfInteractionComponent1">
1382 <xs:sequence>
1383 <xs:element name="POICmpntTp" type="POIComponentType1Code"/>
1384 <xs:element maxOccurs="1" minOccurs="0" name="ManfctrId" type="Max35Text"/>
1385 <xs:element maxOccurs="1" minOccurs="0" name="Mdl" type="Max35Text"/>
1386 <xs:element maxOccurs="1" minOccurs="0" name="VrsnNb" type="Max16Text"/>
1387 <xs:element maxOccurs="1" minOccurs="0" name="SrlNb" type="Max35Text"/>
1388 <xs:element maxOccurs="unbounded" minOccurs="0" name="ApprvlNb" type="Max70Text"/>
1389 </xs:sequence>
1390 </xs:complexType>
1391 <xs:complexType name="PostalAddress6">
1392 <xs:sequence>
1393 <xs:element maxOccurs="1" minOccurs="0" name="AdrTp" type="AddressType2Code"/>
1394 <xs:element maxOccurs="1" minOccurs="0" name="Dept" type="Max70Text"/>
1395 <xs:element maxOccurs="1" minOccurs="0" name="SubDept" type="Max70Text"/>
1396 <xs:element maxOccurs="1" minOccurs="0" name="StrtNm" type="Max70Text"/>
1397 <xs:element maxOccurs="1" minOccurs="0" name="BldgNb" type="Max16Text"/>
1398 <xs:element maxOccurs="1" minOccurs="0" name="PstCd" type="Max16Text"/>
1399 <xs:element maxOccurs="1" minOccurs="0" name="TwnNm" type="Max35Text"/>
1400 <xs:element maxOccurs="1" minOccurs="0" name="CtrySubDvsn" type="Max35Text"/>
1401 <xs:element maxOccurs="1" minOccurs="0" name="Ctry" type="CountryCode"/>
1402 <xs:element maxOccurs="7" minOccurs="0" name="AdrLine" type="Max70Text"/>
1403 </xs:sequence>
1404 </xs:complexType>
1405 <xs:complexType name="Price2">
1406 <xs:sequence>
1407 <xs:element name="Tp" type="YieldedOrValueType1Choice"/>
1408 <xs:element name="Val" type="PriceRateOrAmountChoice"/>
1409 </xs:sequence>
1410 </xs:complexType>
1411 <xs:complexType name="PriceRateOrAmountChoice">
1412 <xs:choice>
1413 <xs:element name="Rate" type="PercentageRate"/>
1414 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAnd13DecimalAmount"/>
1415 </xs:choice>
1416 </xs:complexType>
1417 <xs:simpleType name="PriceValueType1Code">
1418 <xs:restriction base="xs:string">
1419 <xs:enumeration value="DISC"/>
1420 <xs:enumeration value="PREM"/>
1421 <xs:enumeration value="PARV"/>
1422 </xs:restriction>
1423 </xs:simpleType>
1424 <xs:complexType name="Product2">
1425 <xs:sequence>
1426 <xs:element name="PdctCd" type="Max70Text"/>
1427 <xs:element maxOccurs="1" minOccurs="0" name="UnitOfMeasr" type="UnitOfMeasure1Code"/>
1428 <xs:element maxOccurs="1" minOccurs="0" name="PdctQty" type="DecimalNumber"/>
1429 <xs:element maxOccurs="1" minOccurs="0" name="UnitPric" type="ImpliedCurrencyAndAmount"/>
1430 <xs:element maxOccurs="1" minOccurs="0" name="PdctAmt" type="ImpliedCurrencyAndAmount"/>
1431 <xs:element maxOccurs="1" minOccurs="0" name="TaxTp" type="Max35Text"/>
1432 <xs:element maxOccurs="1" minOccurs="0" name="AddtlPdctInf" type="Max35Text"/>
1433 </xs:sequence>
1434 </xs:complexType>
1435 <xs:complexType name="ProprietaryAgent3">
1436 <xs:sequence>
1437 <xs:element name="Tp" type="Max35Text"/>
1438 <xs:element name="Agt" type="BranchAndFinancialInstitutionIdentification5"/>
1439 </xs:sequence>
1440 </xs:complexType>
1441 <xs:complexType name="ProprietaryBankTransactionCodeStructure1">
1442 <xs:sequence>
1443 <xs:element name="Cd" type="Max35Text"/>
1444 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
1445 </xs:sequence>
1446 </xs:complexType>
1447 <xs:complexType name="ProprietaryDate2">
1448 <xs:sequence>
1449 <xs:element name="Tp" type="Max35Text"/>
1450 <xs:element name="Dt" type="DateAndDateTimeChoice"/>
1451 </xs:sequence>
1452 </xs:complexType>
1453 <xs:complexType name="ProprietaryParty3">
1454 <xs:sequence>
1455 <xs:element name="Tp" type="Max35Text"/>
1456 <xs:element name="Pty" type="PartyIdentification43"/>
1457 </xs:sequence>
1458 </xs:complexType>
1459 <xs:complexType name="ProprietaryPrice2">
1460 <xs:sequence>
1461 <xs:element name="Tp" type="Max35Text"/>
1462 <xs:element name="Pric" type="ActiveOrHistoricCurrencyAndAmount"/>
1463 </xs:sequence>
1464 </xs:complexType>
1465 <xs:complexType name="ProprietaryQuantity1">
1466 <xs:sequence>
1467 <xs:element name="Tp" type="Max35Text"/>
1468 <xs:element name="Qty" type="Max35Text"/>
1469 </xs:sequence>
1470 </xs:complexType>
1471 <xs:complexType name="ProprietaryReference1">
1472 <xs:sequence>
1473 <xs:element name="Tp" type="Max35Text"/>
1474 <xs:element name="Ref" type="Max35Text"/>
1475 </xs:sequence>
1476 </xs:complexType>
1477 <xs:complexType name="Purpose2Choice">
1478 <xs:choice>
1479 <xs:element name="Cd" type="ExternalPurpose1Code"/>
1480 <xs:element name="Prtry" type="Max35Text"/>
1481 </xs:choice>
1482 </xs:complexType>
1483 <xs:complexType name="Rate3">
1484 <xs:sequence>
1485 <xs:element name="Tp" type="RateType4Choice"/>
1486 <xs:element maxOccurs="1" minOccurs="0" name="VldtyRg" type="CurrencyAndAmountRange2"/>
1487 </xs:sequence>
1488 </xs:complexType>
1489 <xs:complexType name="RateType4Choice">
1490 <xs:choice>
1491 <xs:element name="Pctg" type="PercentageRate"/>
1492 <xs:element name="Othr" type="Max35Text"/>
1493 </xs:choice>
1494 </xs:complexType>
1495 <xs:complexType name="ReferredDocumentInformation7">
1496 <xs:sequence>
1497 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="ReferredDocumentType4"/>
1498 <xs:element maxOccurs="1" minOccurs="0" name="Nb" type="Max35Text"/>
1499 <xs:element maxOccurs="1" minOccurs="0" name="RltdDt" type="ISODate"/>
1500 <xs:element maxOccurs="unbounded" minOccurs="0" name="LineDtls" type="DocumentLineInformation1"/>
1501 </xs:sequence>
1502 </xs:complexType>
1503 <xs:complexType name="ReferredDocumentType3Choice">
1504 <xs:choice>
1505 <xs:element name="Cd" type="DocumentType6Code"/>
1506 <xs:element name="Prtry" type="Max35Text"/>
1507 </xs:choice>
1508 </xs:complexType>
1509 <xs:complexType name="ReferredDocumentType4">
1510 <xs:sequence>
1511 <xs:element name="CdOrPrtry" type="ReferredDocumentType3Choice"/>
1512 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
1513 </xs:sequence>
1514 </xs:complexType>
1515 <xs:complexType name="RemittanceAmount2">
1516 <xs:sequence>
1517 <xs:element maxOccurs="1" minOccurs="0" name="DuePyblAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1518 <xs:element maxOccurs="unbounded" minOccurs="0" name="DscntApldAmt" type="DiscountAmountAndType1"/>
1519 <xs:element maxOccurs="1" minOccurs="0" name="CdtNoteAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1520 <xs:element maxOccurs="unbounded" minOccurs="0" name="TaxAmt" type="TaxAmountAndType1"/>
1521 <xs:element maxOccurs="unbounded" minOccurs="0" name="AdjstmntAmtAndRsn" type="DocumentAdjustment1"/>
1522 <xs:element maxOccurs="1" minOccurs="0" name="RmtdAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1523 </xs:sequence>
1524 </xs:complexType>
1525 <xs:complexType name="RemittanceAmount3">
1526 <xs:sequence>
1527 <xs:element maxOccurs="1" minOccurs="0" name="DuePyblAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1528 <xs:element maxOccurs="unbounded" minOccurs="0" name="DscntApldAmt" type="DiscountAmountAndType1"/>
1529 <xs:element maxOccurs="1" minOccurs="0" name="CdtNoteAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1530 <xs:element maxOccurs="unbounded" minOccurs="0" name="TaxAmt" type="TaxAmountAndType1"/>
1531 <xs:element maxOccurs="unbounded" minOccurs="0" name="AdjstmntAmtAndRsn" type="DocumentAdjustment1"/>
1532 <xs:element maxOccurs="1" minOccurs="0" name="RmtdAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1533 </xs:sequence>
1534 </xs:complexType>
1535 <xs:complexType name="RemittanceInformation11">
1536 <xs:sequence>
1537 <xs:element maxOccurs="unbounded" minOccurs="0" name="Ustrd" type="Max140Text"/>
1538 <xs:element maxOccurs="unbounded" minOccurs="0" name="Strd" type="StructuredRemittanceInformation13"/>
1539 </xs:sequence>
1540 </xs:complexType>
1541 <xs:complexType name="RemittanceLocation4">
1542 <xs:sequence>
1543 <xs:element maxOccurs="1" minOccurs="0" name="RmtId" type="Max35Text"/>
1544 <xs:element maxOccurs="unbounded" minOccurs="0" name="RmtLctnDtls" type="RemittanceLocationDetails1"/>
1545 </xs:sequence>
1546 </xs:complexType>
1547 <xs:complexType name="RemittanceLocationDetails1">
1548 <xs:sequence>
1549 <xs:element name="Mtd" type="RemittanceLocationMethod2Code"/>
1550 <xs:element maxOccurs="1" minOccurs="0" name="ElctrncAdr" type="Max2048Text"/>
1551 <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="NameAndAddress10"/>
1552 </xs:sequence>
1553 </xs:complexType>
1554 <xs:simpleType name="RemittanceLocationMethod2Code">
1555 <xs:restriction base="xs:string">
1556 <xs:enumeration value="FAXI"/>
1557 <xs:enumeration value="EDIC"/>
1558 <xs:enumeration value="URID"/>
1559 <xs:enumeration value="EMAL"/>
1560 <xs:enumeration value="POST"/>
1561 <xs:enumeration value="SMSM"/>
1562 </xs:restriction>
1563 </xs:simpleType>
1564 <xs:complexType name="ReportEntry8">
1565 <xs:sequence>
1566 <xs:element maxOccurs="1" minOccurs="0" name="NtryRef" type="Max35Text"/>
1567 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
1568 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
1569 <xs:element maxOccurs="1" minOccurs="0" name="RvslInd" type="TrueFalseIndicator"/>
1570 <xs:element name="Sts" type="EntryStatus2Code"/>
1571 <xs:element maxOccurs="1" minOccurs="0" name="BookgDt" type="DateAndDateTimeChoice"/>
1572 <xs:element maxOccurs="1" minOccurs="0" name="ValDt" type="DateAndDateTimeChoice"/>
1573 <xs:element maxOccurs="1" minOccurs="0" name="AcctSvcrRef" type="Max35Text"/>
1574 <xs:element maxOccurs="unbounded" minOccurs="0" name="Avlbty" type="CashAvailability1"/>
1575 <xs:element name="BkTxCd" type="BankTransactionCodeStructure4"/>
1576 <xs:element maxOccurs="1" minOccurs="0" name="ComssnWvrInd" type="YesNoIndicator"/>
1577 <xs:element maxOccurs="1" minOccurs="0" name="AddtlInfInd" type="MessageIdentification2"/>
1578 <xs:element maxOccurs="1" minOccurs="0" name="AmtDtls" type="AmountAndCurrencyExchange3"/>
1579 <xs:element maxOccurs="1" minOccurs="0" name="Chrgs" type="Charges4"/>
1580 <xs:element maxOccurs="1" minOccurs="0" name="TechInptChanl" type="TechnicalInputChannel1Choice"/>
1581 <xs:element maxOccurs="1" minOccurs="0" name="Intrst" type="TransactionInterest3"/>
1582 <xs:element maxOccurs="1" minOccurs="0" name="CardTx" type="CardEntry2"/>
1583 <xs:element maxOccurs="unbounded" minOccurs="0" name="NtryDtls" type="EntryDetails7"/>
1584 <xs:element maxOccurs="1" minOccurs="0" name="AddtlNtryInf" type="Max500Text"/>
1585 </xs:sequence>
1586 </xs:complexType>
1587 <xs:complexType name="ReportingSource1Choice">
1588 <xs:choice>
1589 <xs:element name="Cd" type="ExternalReportingSource1Code"/>
1590 <xs:element name="Prtry" type="Max35Text"/>
1591 </xs:choice>
1592 </xs:complexType>
1593 <xs:complexType name="ReturnReason5Choice">
1594 <xs:choice>
1595 <xs:element name="Cd" type="ExternalReturnReason1Code"/>
1596 <xs:element name="Prtry" type="Max35Text"/>
1597 </xs:choice>
1598 </xs:complexType>
1599 <xs:complexType name="SecuritiesAccount19">
1600 <xs:sequence>
1601 <xs:element name="Id" type="Max35Text"/>
1602 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="GenericIdentification30"/>
1603 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max70Text"/>
1604 </xs:sequence>
1605 </xs:complexType>
1606 <xs:complexType name="SecurityIdentification19">
1607 <xs:sequence>
1608 <xs:element maxOccurs="1" minOccurs="0" name="ISIN" type="ISINOct2015Identifier"/>
1609 <xs:element maxOccurs="unbounded" minOccurs="0" name="OthrId" type="OtherIdentification1"/>
1610 <xs:element maxOccurs="1" minOccurs="0" name="Desc" type="Max140Text"/>
1611 </xs:sequence>
1612 </xs:complexType>
1613 <xs:complexType name="StructuredRemittanceInformation13">
1614 <xs:sequence>
1615 <xs:element maxOccurs="unbounded" minOccurs="0" name="RfrdDocInf" type="ReferredDocumentInformation7"/>
1616 <xs:element maxOccurs="1" minOccurs="0" name="RfrdDocAmt" type="RemittanceAmount2"/>
1617 <xs:element maxOccurs="1" minOccurs="0" name="CdtrRefInf" type="CreditorReferenceInformation2"/>
1618 <xs:element maxOccurs="1" minOccurs="0" name="Invcr" type="PartyIdentification43"/>
1619 <xs:element maxOccurs="1" minOccurs="0" name="Invcee" type="PartyIdentification43"/>
1620 <xs:element maxOccurs="1" minOccurs="0" name="TaxRmt" type="TaxInformation4"/>
1621 <xs:element maxOccurs="1" minOccurs="0" name="GrnshmtRmt" type="Garnishment1"/>
1622 <xs:element maxOccurs="3" minOccurs="0" name="AddtlRmtInf" type="Max140Text"/>
1623 </xs:sequence>
1624 </xs:complexType>
1625 <xs:complexType name="SupplementaryData1">
1626 <xs:sequence>
1627 <xs:element maxOccurs="1" minOccurs="0" name="PlcAndNm" type="Max350Text"/>
1628 <xs:element name="Envlp" type="SupplementaryDataEnvelope1"/>
1629 </xs:sequence>
1630 </xs:complexType>
1631 <xs:complexType name="SupplementaryDataEnvelope1">
1632 <xs:sequence>
1633 <xs:any namespace="##any" processContents="lax"/>
1634 </xs:sequence>
1635 </xs:complexType>
1636 <xs:complexType name="TaxAmount1">
1637 <xs:sequence>
1638 <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="PercentageRate"/>
1639 <xs:element maxOccurs="1" minOccurs="0" name="TaxblBaseAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1640 <xs:element maxOccurs="1" minOccurs="0" name="TtlAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1641 <xs:element maxOccurs="unbounded" minOccurs="0" name="Dtls" type="TaxRecordDetails1"/>
1642 </xs:sequence>
1643 </xs:complexType>
1644 <xs:complexType name="TaxAmountAndType1">
1645 <xs:sequence>
1646 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="TaxAmountType1Choice"/>
1647 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
1648 </xs:sequence>
1649 </xs:complexType>
1650 <xs:complexType name="TaxAmountType1Choice">
1651 <xs:choice>
1652 <xs:element name="Cd" type="ExternalTaxAmountType1Code"/>
1653 <xs:element name="Prtry" type="Max35Text"/>
1654 </xs:choice>
1655 </xs:complexType>
1656 <xs:complexType name="TaxAuthorisation1">
1657 <xs:sequence>
1658 <xs:element maxOccurs="1" minOccurs="0" name="Titl" type="Max35Text"/>
1659 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
1660 </xs:sequence>
1661 </xs:complexType>
1662 <xs:complexType name="TaxCharges2">
1663 <xs:sequence>
1664 <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Max35Text"/>
1665 <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="PercentageRate"/>
1666 <xs:element maxOccurs="1" minOccurs="0" name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
1667 </xs:sequence>
1668 </xs:complexType>
1669 <xs:complexType name="TaxInformation3">
1670 <xs:sequence>
1671 <xs:element maxOccurs="1" minOccurs="0" name="Cdtr" type="TaxParty1"/>
1672 <xs:element maxOccurs="1" minOccurs="0" name="Dbtr" type="TaxParty2"/>
1673 <xs:element maxOccurs="1" minOccurs="0" name="AdmstnZn" type="Max35Text"/>
1674 <xs:element maxOccurs="1" minOccurs="0" name="RefNb" type="Max140Text"/>
1675 <xs:element maxOccurs="1" minOccurs="0" name="Mtd" type="Max35Text"/>
1676 <xs:element maxOccurs="1" minOccurs="0" name="TtlTaxblBaseAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1677 <xs:element maxOccurs="1" minOccurs="0" name="TtlTaxAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1678 <xs:element maxOccurs="1" minOccurs="0" name="Dt" type="ISODate"/>
1679 <xs:element maxOccurs="1" minOccurs="0" name="SeqNb" type="Number"/>
1680 <xs:element maxOccurs="unbounded" minOccurs="0" name="Rcrd" type="TaxRecord1"/>
1681 </xs:sequence>
1682 </xs:complexType>
1683 <xs:complexType name="TaxInformation4">
1684 <xs:sequence>
1685 <xs:element maxOccurs="1" minOccurs="0" name="Cdtr" type="TaxParty1"/>
1686 <xs:element maxOccurs="1" minOccurs="0" name="Dbtr" type="TaxParty2"/>
1687 <xs:element maxOccurs="1" minOccurs="0" name="UltmtDbtr" type="TaxParty2"/>
1688 <xs:element maxOccurs="1" minOccurs="0" name="AdmstnZone" type="Max35Text"/>
1689 <xs:element maxOccurs="1" minOccurs="0" name="RefNb" type="Max140Text"/>
1690 <xs:element maxOccurs="1" minOccurs="0" name="Mtd" type="Max35Text"/>
1691 <xs:element maxOccurs="1" minOccurs="0" name="TtlTaxblBaseAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1692 <xs:element maxOccurs="1" minOccurs="0" name="TtlTaxAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1693 <xs:element maxOccurs="1" minOccurs="0" name="Dt" type="ISODate"/>
1694 <xs:element maxOccurs="1" minOccurs="0" name="SeqNb" type="Number"/>
1695 <xs:element maxOccurs="unbounded" minOccurs="0" name="Rcrd" type="TaxRecord1"/>
1696 </xs:sequence>
1697 </xs:complexType>
1698 <xs:complexType name="TaxParty1">
1699 <xs:sequence>
1700 <xs:element maxOccurs="1" minOccurs="0" name="TaxId" type="Max35Text"/>
1701 <xs:element maxOccurs="1" minOccurs="0" name="RegnId" type="Max35Text"/>
1702 <xs:element maxOccurs="1" minOccurs="0" name="TaxTp" type="Max35Text"/>
1703 </xs:sequence>
1704 </xs:complexType>
1705 <xs:complexType name="TaxParty2">
1706 <xs:sequence>
1707 <xs:element maxOccurs="1" minOccurs="0" name="TaxId" type="Max35Text"/>
1708 <xs:element maxOccurs="1" minOccurs="0" name="RegnId" type="Max35Text"/>
1709 <xs:element maxOccurs="1" minOccurs="0" name="TaxTp" type="Max35Text"/>
1710 <xs:element maxOccurs="1" minOccurs="0" name="Authstn" type="TaxAuthorisation1"/>
1711 </xs:sequence>
1712 </xs:complexType>
1713 <xs:complexType name="TaxPeriod1">
1714 <xs:sequence>
1715 <xs:element maxOccurs="1" minOccurs="0" name="Yr" type="ISODate"/>
1716 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="TaxRecordPeriod1Code"/>
1717 <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DatePeriodDetails"/>
1718 </xs:sequence>
1719 </xs:complexType>
1720 <xs:complexType name="TaxRecord1">
1721 <xs:sequence>
1722 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="Max35Text"/>
1723 <xs:element maxOccurs="1" minOccurs="0" name="Ctgy" type="Max35Text"/>
1724 <xs:element maxOccurs="1" minOccurs="0" name="CtgyDtls" type="Max35Text"/>
1725 <xs:element maxOccurs="1" minOccurs="0" name="DbtrSts" type="Max35Text"/>
1726 <xs:element maxOccurs="1" minOccurs="0" name="CertId" type="Max35Text"/>
1727 <xs:element maxOccurs="1" minOccurs="0" name="FrmsCd" type="Max35Text"/>
1728 <xs:element maxOccurs="1" minOccurs="0" name="Prd" type="TaxPeriod1"/>
1729 <xs:element maxOccurs="1" minOccurs="0" name="TaxAmt" type="TaxAmount1"/>
1730 <xs:element maxOccurs="1" minOccurs="0" name="AddtlInf" type="Max140Text"/>
1731 </xs:sequence>
1732 </xs:complexType>
1733 <xs:complexType name="TaxRecordDetails1">
1734 <xs:sequence>
1735 <xs:element maxOccurs="1" minOccurs="0" name="Prd" type="TaxPeriod1"/>
1736 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
1737 </xs:sequence>
1738 </xs:complexType>
1739 <xs:simpleType name="TaxRecordPeriod1Code">
1740 <xs:restriction base="xs:string">
1741 <xs:enumeration value="MM01"/>
1742 <xs:enumeration value="MM02"/>
1743 <xs:enumeration value="MM03"/>
1744 <xs:enumeration value="MM04"/>
1745 <xs:enumeration value="MM05"/>
1746 <xs:enumeration value="MM06"/>
1747 <xs:enumeration value="MM07"/>
1748 <xs:enumeration value="MM08"/>
1749 <xs:enumeration value="MM09"/>
1750 <xs:enumeration value="MM10"/>
1751 <xs:enumeration value="MM11"/>
1752 <xs:enumeration value="MM12"/>
1753 <xs:enumeration value="QTR1"/>
1754 <xs:enumeration value="QTR2"/>
1755 <xs:enumeration value="QTR3"/>
1756 <xs:enumeration value="QTR4"/>
1757 <xs:enumeration value="HLF1"/>
1758 <xs:enumeration value="HLF2"/>
1759 </xs:restriction>
1760 </xs:simpleType>
1761 <xs:complexType name="TechnicalInputChannel1Choice">
1762 <xs:choice>
1763 <xs:element name="Cd" type="ExternalTechnicalInputChannel1Code"/>
1764 <xs:element name="Prtry" type="Max35Text"/>
1765 </xs:choice>
1766 </xs:complexType>
1767 <xs:complexType name="TotalTransactions5">
1768 <xs:sequence>
1769 <xs:element maxOccurs="1" minOccurs="0" name="TtlNtries" type="NumberAndSumOfTransactions4"/>
1770 <xs:element maxOccurs="1" minOccurs="0" name="TtlCdtNtries" type="NumberAndSumOfTransactions1"/>
1771 <xs:element maxOccurs="1" minOccurs="0" name="TtlDbtNtries" type="NumberAndSumOfTransactions1"/>
1772 <xs:element maxOccurs="unbounded" minOccurs="0" name="TtlNtriesPerBkTxCd" type="TotalsPerBankTransactionCode4"/>
1773 </xs:sequence>
1774 </xs:complexType>
1775 <xs:complexType name="TotalsPerBankTransactionCode4">
1776 <xs:sequence>
1777 <xs:element maxOccurs="1" minOccurs="0" name="NbOfNtries" type="Max15NumericText"/>
1778 <xs:element maxOccurs="1" minOccurs="0" name="Sum" type="DecimalNumber"/>
1779 <xs:element maxOccurs="1" minOccurs="0" name="TtlNetNtry" type="AmountAndDirection35"/>
1780 <xs:element maxOccurs="1" minOccurs="0" name="FcstInd" type="TrueFalseIndicator"/>
1781 <xs:element name="BkTxCd" type="BankTransactionCodeStructure4"/>
1782 <xs:element maxOccurs="unbounded" minOccurs="0" name="Avlbty" type="CashAvailability1"/>
1783 </xs:sequence>
1784 </xs:complexType>
1785 <xs:complexType name="TrackData1">
1786 <xs:sequence>
1787 <xs:element maxOccurs="1" minOccurs="0" name="TrckNb" type="Exact1NumericText"/>
1788 <xs:element name="TrckVal" type="Max140Text"/>
1789 </xs:sequence>
1790 </xs:complexType>
1791 <xs:complexType name="TransactionAgents3">
1792 <xs:sequence>
1793 <xs:element maxOccurs="1" minOccurs="0" name="DbtrAgt" type="BranchAndFinancialInstitutionIdentification5"/>
1794 <xs:element maxOccurs="1" minOccurs="0" name="CdtrAgt" type="BranchAndFinancialInstitutionIdentification5"/>
1795 <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt1" type="BranchAndFinancialInstitutionIdentification5"/>
1796 <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt2" type="BranchAndFinancialInstitutionIdentification5"/>
1797 <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt3" type="BranchAndFinancialInstitutionIdentification5"/>
1798 <xs:element maxOccurs="1" minOccurs="0" name="RcvgAgt" type="BranchAndFinancialInstitutionIdentification5"/>
1799 <xs:element maxOccurs="1" minOccurs="0" name="DlvrgAgt" type="BranchAndFinancialInstitutionIdentification5"/>
1800 <xs:element maxOccurs="1" minOccurs="0" name="IssgAgt" type="BranchAndFinancialInstitutionIdentification5"/>
1801 <xs:element maxOccurs="1" minOccurs="0" name="SttlmPlc" type="BranchAndFinancialInstitutionIdentification5"/>
1802 <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryAgent3"/>
1803 </xs:sequence>
1804 </xs:complexType>
1805 <xs:simpleType name="TransactionChannel1Code">
1806 <xs:restriction base="xs:string">
1807 <xs:enumeration value="MAIL"/>
1808 <xs:enumeration value="TLPH"/>
1809 <xs:enumeration value="ECOM"/>
1810 <xs:enumeration value="TVPY"/>
1811 </xs:restriction>
1812 </xs:simpleType>
1813 <xs:complexType name="TransactionDates2">
1814 <xs:sequence>
1815 <xs:element maxOccurs="1" minOccurs="0" name="AccptncDtTm" type="ISODateTime"/>
1816 <xs:element maxOccurs="1" minOccurs="0" name="TradActvtyCtrctlSttlmDt" type="ISODate"/>
1817 <xs:element maxOccurs="1" minOccurs="0" name="TradDt" type="ISODate"/>
1818 <xs:element maxOccurs="1" minOccurs="0" name="IntrBkSttlmDt" type="ISODate"/>
1819 <xs:element maxOccurs="1" minOccurs="0" name="StartDt" type="ISODate"/>
1820 <xs:element maxOccurs="1" minOccurs="0" name="EndDt" type="ISODate"/>
1821 <xs:element maxOccurs="1" minOccurs="0" name="TxDtTm" type="ISODateTime"/>
1822 <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryDate2"/>
1823 </xs:sequence>
1824 </xs:complexType>
1825 <xs:simpleType name="TransactionEnvironment1Code">
1826 <xs:restriction base="xs:string">
1827 <xs:enumeration value="MERC"/>
1828 <xs:enumeration value="PRIV"/>
1829 <xs:enumeration value="PUBL"/>
1830 </xs:restriction>
1831 </xs:simpleType>
1832 <xs:complexType name="TransactionIdentifier1">
1833 <xs:sequence>
1834 <xs:element name="TxDtTm" type="ISODateTime"/>
1835 <xs:element name="TxRef" type="Max35Text"/>
1836 </xs:sequence>
1837 </xs:complexType>
1838 <xs:complexType name="TransactionInterest3">
1839 <xs:sequence>
1840 <xs:element maxOccurs="1" minOccurs="0" name="TtlIntrstAndTaxAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1841 <xs:element maxOccurs="unbounded" minOccurs="0" name="Rcrd" type="InterestRecord1"/>
1842 </xs:sequence>
1843 </xs:complexType>
1844 <xs:complexType name="TransactionParties3">
1845 <xs:sequence>
1846 <xs:element maxOccurs="1" minOccurs="0" name="InitgPty" type="PartyIdentification43"/>
1847 <xs:element maxOccurs="1" minOccurs="0" name="Dbtr" type="PartyIdentification43"/>
1848 <xs:element maxOccurs="1" minOccurs="0" name="DbtrAcct" type="CashAccount24"/>
1849 <xs:element maxOccurs="1" minOccurs="0" name="UltmtDbtr" type="PartyIdentification43"/>
1850 <xs:element maxOccurs="1" minOccurs="0" name="Cdtr" type="PartyIdentification43"/>
1851 <xs:element maxOccurs="1" minOccurs="0" name="CdtrAcct" type="CashAccount24"/>
1852 <xs:element maxOccurs="1" minOccurs="0" name="UltmtCdtr" type="PartyIdentification43"/>
1853 <xs:element maxOccurs="1" minOccurs="0" name="TradgPty" type="PartyIdentification43"/>
1854 <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryParty3"/>
1855 </xs:sequence>
1856 </xs:complexType>
1857 <xs:complexType name="TransactionPrice3Choice">
1858 <xs:choice>
1859 <xs:element name="DealPric" type="Price2"/>
1860 <xs:element maxOccurs="unbounded" minOccurs="1" name="Prtry" type="ProprietaryPrice2"/>
1861 </xs:choice>
1862 </xs:complexType>
1863 <xs:complexType name="TransactionQuantities2Choice">
1864 <xs:choice>
1865 <xs:element name="Qty" type="FinancialInstrumentQuantityChoice"/>
1866 <xs:element name="OrgnlAndCurFaceAmt" type="OriginalAndCurrentQuantities1"/>
1867 <xs:element name="Prtry" type="ProprietaryQuantity1"/>
1868 </xs:choice>
1869 </xs:complexType>
1870 <xs:complexType name="TransactionReferences3">
1871 <xs:sequence>
1872 <xs:element maxOccurs="1" minOccurs="0" name="MsgId" type="Max35Text"/>
1873 <xs:element maxOccurs="1" minOccurs="0" name="AcctSvcrRef" type="Max35Text"/>
1874 <xs:element maxOccurs="1" minOccurs="0" name="PmtInfId" type="Max35Text"/>
1875 <xs:element maxOccurs="1" minOccurs="0" name="InstrId" type="Max35Text"/>
1876 <xs:element maxOccurs="1" minOccurs="0" name="EndToEndId" type="Max35Text"/>
1877 <xs:element maxOccurs="1" minOccurs="0" name="TxId" type="Max35Text"/>
1878 <xs:element maxOccurs="1" minOccurs="0" name="MndtId" type="Max35Text"/>
1879 <xs:element maxOccurs="1" minOccurs="0" name="ChqNb" type="Max35Text"/>
1880 <xs:element maxOccurs="1" minOccurs="0" name="ClrSysRef" type="Max35Text"/>
1881 <xs:element maxOccurs="1" minOccurs="0" name="AcctOwnrTxId" type="Max35Text"/>
1882 <xs:element maxOccurs="1" minOccurs="0" name="AcctSvcrTxId" type="Max35Text"/>
1883 <xs:element maxOccurs="1" minOccurs="0" name="MktInfrstrctrTxId" type="Max35Text"/>
1884 <xs:element maxOccurs="1" minOccurs="0" name="PrcgId" type="Max35Text"/>
1885 <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryReference1"/>
1886 </xs:sequence>
1887 </xs:complexType>
1888 <xs:simpleType name="TrueFalseIndicator">
1889 <xs:restriction base="xs:boolean"/>
1890 </xs:simpleType>
1891 <xs:simpleType name="UnitOfMeasure1Code">
1892 <xs:restriction base="xs:string">
1893 <xs:enumeration value="PIEC"/>
1894 <xs:enumeration value="TONS"/>
1895 <xs:enumeration value="FOOT"/>
1896 <xs:enumeration value="GBGA"/>
1897 <xs:enumeration value="USGA"/>
1898 <xs:enumeration value="GRAM"/>
1899 <xs:enumeration value="INCH"/>
1900 <xs:enumeration value="KILO"/>
1901 <xs:enumeration value="PUND"/>
1902 <xs:enumeration value="METR"/>
1903 <xs:enumeration value="CMET"/>
1904 <xs:enumeration value="MMET"/>
1905 <xs:enumeration value="LITR"/>
1906 <xs:enumeration value="CELI"/>
1907 <xs:enumeration value="MILI"/>
1908 <xs:enumeration value="GBOU"/>
1909 <xs:enumeration value="USOU"/>
1910 <xs:enumeration value="GBQA"/>
1911 <xs:enumeration value="USQA"/>
1912 <xs:enumeration value="GBPI"/>
1913 <xs:enumeration value="USPI"/>
1914 <xs:enumeration value="MILE"/>
1915 <xs:enumeration value="KMET"/>
1916 <xs:enumeration value="YARD"/>
1917 <xs:enumeration value="SQKI"/>
1918 <xs:enumeration value="HECT"/>
1919 <xs:enumeration value="ARES"/>
1920 <xs:enumeration value="SMET"/>
1921 <xs:enumeration value="SCMT"/>
1922 <xs:enumeration value="SMIL"/>
1923 <xs:enumeration value="SQMI"/>
1924 <xs:enumeration value="SQYA"/>
1925 <xs:enumeration value="SQFO"/>
1926 <xs:enumeration value="SQIN"/>
1927 <xs:enumeration value="ACRE"/>
1928 </xs:restriction>
1929 </xs:simpleType>
1930 <xs:simpleType name="UserInterface2Code">
1931 <xs:restriction base="xs:string">
1932 <xs:enumeration value="MDSP"/>
1933 <xs:enumeration value="CDSP"/>
1934 </xs:restriction>
1935 </xs:simpleType>
1936 <xs:simpleType name="YesNoIndicator">
1937 <xs:restriction base="xs:boolean"/>
1938 </xs:simpleType>
1939 <xs:complexType name="YieldedOrValueType1Choice">
1940 <xs:choice>
1941 <xs:element name="Yldd" type="YesNoIndicator"/>
1942 <xs:element name="ValTp" type="PriceValueType1Code"/>
1943 </xs:choice>
1944 </xs:complexType>
1945 </xs:schema>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <!--Generated by Standards Editor (build:R1.6.14) on 2018 Feb 07 07:50:54, ISO 20022 version : 2013-->
2 <xs:schema xmlns="urn:iso:std:iso:20022:tech:xsd:camt.052.001.07" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="urn:iso:std:iso:20022:tech:xsd:camt.052.001.07">
3 <xs:element name="Document" type="Document"/>
4 <xs:complexType name="AccountIdentification4Choice">
5 <xs:choice>
6 <xs:element name="IBAN" type="IBAN2007Identifier"/>
7 <xs:element name="Othr" type="GenericAccountIdentification1"/>
8 </xs:choice>
9 </xs:complexType>
10 <xs:complexType name="AccountInterest4">
11 <xs:sequence>
12 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="InterestType1Choice"/>
13 <xs:element maxOccurs="unbounded" minOccurs="0" name="Rate" type="Rate4"/>
14 <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DateTimePeriod1"/>
15 <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="Max35Text"/>
16 <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxCharges2"/>
17 </xs:sequence>
18 </xs:complexType>
19 <xs:complexType name="AccountReport22">
20 <xs:sequence>
21 <xs:element name="Id" type="Max35Text"/>
22 <xs:element maxOccurs="1" minOccurs="0" name="RptPgntn" type="Pagination1"/>
23 <xs:element maxOccurs="1" minOccurs="0" name="ElctrncSeqNb" type="Number"/>
24 <xs:element maxOccurs="1" minOccurs="0" name="RptgSeq" type="SequenceRange1Choice"/>
25 <xs:element maxOccurs="1" minOccurs="0" name="LglSeqNb" type="Number"/>
26 <xs:element maxOccurs="1" minOccurs="0" name="CreDtTm" type="ISODateTime"/>
27 <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DateTimePeriod1"/>
28 <xs:element maxOccurs="1" minOccurs="0" name="CpyDplctInd" type="CopyDuplicate1Code"/>
29 <xs:element maxOccurs="1" minOccurs="0" name="RptgSrc" type="ReportingSource1Choice"/>
30 <xs:element name="Acct" type="CashAccount36"/>
31 <xs:element maxOccurs="1" minOccurs="0" name="RltdAcct" type="CashAccount24"/>
32 <xs:element maxOccurs="unbounded" minOccurs="0" name="Intrst" type="AccountInterest4"/>
33 <xs:element maxOccurs="unbounded" minOccurs="0" name="Bal" type="CashBalance8"/>
34 <xs:element maxOccurs="1" minOccurs="0" name="TxsSummry" type="TotalTransactions6"/>
35 <xs:element maxOccurs="unbounded" minOccurs="0" name="Ntry" type="ReportEntry9"/>
36 <xs:element maxOccurs="1" minOccurs="0" name="AddtlRptInf" type="Max500Text"/>
37 </xs:sequence>
38 </xs:complexType>
39 <xs:complexType name="AccountSchemeName1Choice">
40 <xs:choice>
41 <xs:element name="Cd" type="ExternalAccountIdentification1Code"/>
42 <xs:element name="Prtry" type="Max35Text"/>
43 </xs:choice>
44 </xs:complexType>
45 <xs:simpleType name="ActiveCurrencyAndAmount_SimpleType">
46 <xs:restriction base="xs:decimal">
47 <xs:fractionDigits value="5"/>
48 <xs:totalDigits value="18"/>
49 <xs:minInclusive value="0"/>
50 </xs:restriction>
51 </xs:simpleType>
52 <xs:complexType name="ActiveCurrencyAndAmount">
53 <xs:simpleContent>
54 <xs:extension base="ActiveCurrencyAndAmount_SimpleType">
55 <xs:attribute name="Ccy" type="ActiveCurrencyCode" use="required"/>
56 </xs:extension>
57 </xs:simpleContent>
58 </xs:complexType>
59 <xs:simpleType name="ActiveCurrencyCode">
60 <xs:restriction base="xs:string">
61 <xs:pattern value="[A-Z]{3,3}"/>
62 </xs:restriction>
63 </xs:simpleType>
64 <xs:simpleType name="ActiveOrHistoricCurrencyAnd13DecimalAmount_SimpleType">
65 <xs:restriction base="xs:decimal">
66 <xs:fractionDigits value="13"/>
67 <xs:totalDigits value="18"/>
68 <xs:minInclusive value="0"/>
69 </xs:restriction>
70 </xs:simpleType>
71 <xs:complexType name="ActiveOrHistoricCurrencyAnd13DecimalAmount">
72 <xs:simpleContent>
73 <xs:extension base="ActiveOrHistoricCurrencyAnd13DecimalAmount_SimpleType">
74 <xs:attribute name="Ccy" type="ActiveOrHistoricCurrencyCode" use="required"/>
75 </xs:extension>
76 </xs:simpleContent>
77 </xs:complexType>
78 <xs:simpleType name="ActiveOrHistoricCurrencyAndAmount_SimpleType">
79 <xs:restriction base="xs:decimal">
80 <xs:fractionDigits value="5"/>
81 <xs:totalDigits value="18"/>
82 <xs:minInclusive value="0"/>
83 </xs:restriction>
84 </xs:simpleType>
85 <xs:complexType name="ActiveOrHistoricCurrencyAndAmount">
86 <xs:simpleContent>
87 <xs:extension base="ActiveOrHistoricCurrencyAndAmount_SimpleType">
88 <xs:attribute name="Ccy" type="ActiveOrHistoricCurrencyCode" use="required"/>
89 </xs:extension>
90 </xs:simpleContent>
91 </xs:complexType>
92 <xs:complexType name="ActiveOrHistoricCurrencyAndAmountRange2">
93 <xs:sequence>
94 <xs:element name="Amt" type="ImpliedCurrencyAmountRange1Choice"/>
95 <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
96 <xs:element name="Ccy" type="ActiveOrHistoricCurrencyCode"/>
97 </xs:sequence>
98 </xs:complexType>
99 <xs:simpleType name="ActiveOrHistoricCurrencyCode">
100 <xs:restriction base="xs:string">
101 <xs:pattern value="[A-Z]{3,3}"/>
102 </xs:restriction>
103 </xs:simpleType>
104 <xs:simpleType name="AddressType2Code">
105 <xs:restriction base="xs:string">
106 <xs:enumeration value="ADDR"/>
107 <xs:enumeration value="PBOX"/>
108 <xs:enumeration value="HOME"/>
109 <xs:enumeration value="BIZZ"/>
110 <xs:enumeration value="MLTO"/>
111 <xs:enumeration value="DLVY"/>
112 </xs:restriction>
113 </xs:simpleType>
114 <xs:complexType name="AmountAndCurrencyExchange3">
115 <xs:sequence>
116 <xs:element maxOccurs="1" minOccurs="0" name="InstdAmt" type="AmountAndCurrencyExchangeDetails3"/>
117 <xs:element maxOccurs="1" minOccurs="0" name="TxAmt" type="AmountAndCurrencyExchangeDetails3"/>
118 <xs:element maxOccurs="1" minOccurs="0" name="CntrValAmt" type="AmountAndCurrencyExchangeDetails3"/>
119 <xs:element maxOccurs="1" minOccurs="0" name="AnncdPstngAmt" type="AmountAndCurrencyExchangeDetails3"/>
120 <xs:element maxOccurs="unbounded" minOccurs="0" name="PrtryAmt" type="AmountAndCurrencyExchangeDetails4"/>
121 </xs:sequence>
122 </xs:complexType>
123 <xs:complexType name="AmountAndCurrencyExchangeDetails3">
124 <xs:sequence>
125 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
126 <xs:element maxOccurs="1" minOccurs="0" name="CcyXchg" type="CurrencyExchange5"/>
127 </xs:sequence>
128 </xs:complexType>
129 <xs:complexType name="AmountAndCurrencyExchangeDetails4">
130 <xs:sequence>
131 <xs:element name="Tp" type="Max35Text"/>
132 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
133 <xs:element maxOccurs="1" minOccurs="0" name="CcyXchg" type="CurrencyExchange5"/>
134 </xs:sequence>
135 </xs:complexType>
136 <xs:complexType name="AmountAndDirection35">
137 <xs:sequence>
138 <xs:element name="Amt" type="NonNegativeDecimalNumber"/>
139 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
140 </xs:sequence>
141 </xs:complexType>
142 <xs:complexType name="AmountRangeBoundary1">
143 <xs:sequence>
144 <xs:element name="BdryAmt" type="ImpliedCurrencyAndAmount"/>
145 <xs:element name="Incl" type="YesNoIndicator"/>
146 </xs:sequence>
147 </xs:complexType>
148 <xs:simpleType name="AnyBICIdentifier">
149 <xs:restriction base="xs:string">
150 <xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
151 </xs:restriction>
152 </xs:simpleType>
153 <xs:simpleType name="AttendanceContext1Code">
154 <xs:restriction base="xs:string">
155 <xs:enumeration value="ATTD"/>
156 <xs:enumeration value="SATT"/>
157 <xs:enumeration value="UATT"/>
158 </xs:restriction>
159 </xs:simpleType>
160 <xs:simpleType name="AuthenticationEntity1Code">
161 <xs:restriction base="xs:string">
162 <xs:enumeration value="ICCD"/>
163 <xs:enumeration value="AGNT"/>
164 <xs:enumeration value="MERC"/>
165 </xs:restriction>
166 </xs:simpleType>
167 <xs:simpleType name="AuthenticationMethod1Code">
168 <xs:restriction base="xs:string">
169 <xs:enumeration value="UKNW"/>
170 <xs:enumeration value="BYPS"/>
171 <xs:enumeration value="NPIN"/>
172 <xs:enumeration value="FPIN"/>
173 <xs:enumeration value="CPSG"/>
174 <xs:enumeration value="PPSG"/>
175 <xs:enumeration value="MANU"/>
176 <xs:enumeration value="MERC"/>
177 <xs:enumeration value="SCRT"/>
178 <xs:enumeration value="SNCT"/>
179 <xs:enumeration value="SCNL"/>
180 </xs:restriction>
181 </xs:simpleType>
182 <xs:simpleType name="BICFIIdentifier">
183 <xs:restriction base="xs:string">
184 <xs:pattern value="[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}"/>
185 </xs:restriction>
186 </xs:simpleType>
187 <xs:complexType name="BalanceSubType1Choice">
188 <xs:choice>
189 <xs:element name="Cd" type="ExternalBalanceSubType1Code"/>
190 <xs:element name="Prtry" type="Max35Text"/>
191 </xs:choice>
192 </xs:complexType>
193 <xs:complexType name="BalanceType10Choice">
194 <xs:choice>
195 <xs:element name="Cd" type="ExternalBalanceType1Code"/>
196 <xs:element name="Prtry" type="Max35Text"/>
197 </xs:choice>
198 </xs:complexType>
199 <xs:complexType name="BalanceType13">
200 <xs:sequence>
201 <xs:element name="CdOrPrtry" type="BalanceType10Choice"/>
202 <xs:element maxOccurs="1" minOccurs="0" name="SubTp" type="BalanceSubType1Choice"/>
203 </xs:sequence>
204 </xs:complexType>
205 <xs:complexType name="BankToCustomerAccountReportV07">
206 <xs:sequence>
207 <xs:element name="GrpHdr" type="GroupHeader73"/>
208 <xs:element maxOccurs="unbounded" minOccurs="1" name="Rpt" type="AccountReport22"/>
209 <xs:element maxOccurs="unbounded" minOccurs="0" name="SplmtryData" type="SupplementaryData1"/>
210 </xs:sequence>
211 </xs:complexType>
212 <xs:complexType name="BankTransactionCodeStructure4">
213 <xs:sequence>
214 <xs:element maxOccurs="1" minOccurs="0" name="Domn" type="BankTransactionCodeStructure5"/>
215 <xs:element maxOccurs="1" minOccurs="0" name="Prtry" type="ProprietaryBankTransactionCodeStructure1"/>
216 </xs:sequence>
217 </xs:complexType>
218 <xs:complexType name="BankTransactionCodeStructure5">
219 <xs:sequence>
220 <xs:element name="Cd" type="ExternalBankTransactionDomain1Code"/>
221 <xs:element name="Fmly" type="BankTransactionCodeStructure6"/>
222 </xs:sequence>
223 </xs:complexType>
224 <xs:complexType name="BankTransactionCodeStructure6">
225 <xs:sequence>
226 <xs:element name="Cd" type="ExternalBankTransactionFamily1Code"/>
227 <xs:element name="SubFmlyCd" type="ExternalBankTransactionSubFamily1Code"/>
228 </xs:sequence>
229 </xs:complexType>
230 <xs:simpleType name="BaseOneRate">
231 <xs:restriction base="xs:decimal">
232 <xs:fractionDigits value="10"/>
233 <xs:totalDigits value="11"/>
234 </xs:restriction>
235 </xs:simpleType>
236 <xs:complexType name="BatchInformation2">
237 <xs:sequence>
238 <xs:element maxOccurs="1" minOccurs="0" name="MsgId" type="Max35Text"/>
239 <xs:element maxOccurs="1" minOccurs="0" name="PmtInfId" type="Max35Text"/>
240 <xs:element maxOccurs="1" minOccurs="0" name="NbOfTxs" type="Max15NumericText"/>
241 <xs:element maxOccurs="1" minOccurs="0" name="TtlAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
242 <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
243 </xs:sequence>
244 </xs:complexType>
245 <xs:complexType name="BranchAndFinancialInstitutionIdentification5">
246 <xs:sequence>
247 <xs:element name="FinInstnId" type="FinancialInstitutionIdentification8"/>
248 <xs:element maxOccurs="1" minOccurs="0" name="BrnchId" type="BranchData2"/>
249 </xs:sequence>
250 </xs:complexType>
251 <xs:complexType name="BranchData2">
252 <xs:sequence>
253 <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Max35Text"/>
254 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
255 <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress6"/>
256 </xs:sequence>
257 </xs:complexType>
258 <xs:simpleType name="CSCManagement1Code">
259 <xs:restriction base="xs:string">
260 <xs:enumeration value="PRST"/>
261 <xs:enumeration value="BYPS"/>
262 <xs:enumeration value="UNRD"/>
263 <xs:enumeration value="NCSC"/>
264 </xs:restriction>
265 </xs:simpleType>
266 <xs:complexType name="CardAggregated2">
267 <xs:sequence>
268 <xs:element maxOccurs="1" minOccurs="0" name="AddtlSvc" type="CardPaymentServiceType2Code"/>
269 <xs:element maxOccurs="1" minOccurs="0" name="TxCtgy" type="ExternalCardTransactionCategory1Code"/>
270 <xs:element maxOccurs="1" minOccurs="0" name="SaleRcncltnId" type="Max35Text"/>
271 <xs:element maxOccurs="1" minOccurs="0" name="SeqNbRg" type="CardSequenceNumberRange1"/>
272 <xs:element maxOccurs="1" minOccurs="0" name="TxDtRg" type="DateOrDateTimePeriod1Choice"/>
273 </xs:sequence>
274 </xs:complexType>
275 <xs:simpleType name="CardDataReading1Code">
276 <xs:restriction base="xs:string">
277 <xs:enumeration value="TAGC"/>
278 <xs:enumeration value="PHYS"/>
279 <xs:enumeration value="BRCD"/>
280 <xs:enumeration value="MGST"/>
281 <xs:enumeration value="CICC"/>
282 <xs:enumeration value="DFLE"/>
283 <xs:enumeration value="CTLS"/>
284 <xs:enumeration value="ECTL"/>
285 </xs:restriction>
286 </xs:simpleType>
287 <xs:complexType name="CardEntry3">
288 <xs:sequence>
289 <xs:element maxOccurs="1" minOccurs="0" name="Card" type="PaymentCard4"/>
290 <xs:element maxOccurs="1" minOccurs="0" name="POI" type="PointOfInteraction1"/>
291 <xs:element maxOccurs="1" minOccurs="0" name="AggtdNtry" type="CardAggregated2"/>
292 <xs:element maxOccurs="1" minOccurs="0" name="PrePdAcct" type="CashAccount24"/>
293 </xs:sequence>
294 </xs:complexType>
295 <xs:complexType name="CardIndividualTransaction2">
296 <xs:sequence>
297 <xs:element maxOccurs="1" minOccurs="0" name="ICCRltdData" type="Max1025Text"/>
298 <xs:element maxOccurs="1" minOccurs="0" name="PmtCntxt" type="PaymentContext3"/>
299 <xs:element maxOccurs="1" minOccurs="0" name="AddtlSvc" type="CardPaymentServiceType2Code"/>
300 <xs:element maxOccurs="1" minOccurs="0" name="TxCtgy" type="ExternalCardTransactionCategory1Code"/>
301 <xs:element maxOccurs="1" minOccurs="0" name="SaleRcncltnId" type="Max35Text"/>
302 <xs:element maxOccurs="1" minOccurs="0" name="SaleRefNb" type="Max35Text"/>
303 <xs:element maxOccurs="1" minOccurs="0" name="RePresntmntRsn" type="ExternalRePresentmentReason1Code"/>
304 <xs:element maxOccurs="1" minOccurs="0" name="SeqNb" type="Max35Text"/>
305 <xs:element maxOccurs="1" minOccurs="0" name="TxId" type="TransactionIdentifier1"/>
306 <xs:element maxOccurs="1" minOccurs="0" name="Pdct" type="Product2"/>
307 <xs:element maxOccurs="1" minOccurs="0" name="VldtnDt" type="ISODate"/>
308 <xs:element maxOccurs="1" minOccurs="0" name="VldtnSeqNb" type="Max35Text"/>
309 </xs:sequence>
310 </xs:complexType>
311 <xs:simpleType name="CardPaymentServiceType2Code">
312 <xs:restriction base="xs:string">
313 <xs:enumeration value="AGGR"/>
314 <xs:enumeration value="DCCV"/>
315 <xs:enumeration value="GRTT"/>
316 <xs:enumeration value="INSP"/>
317 <xs:enumeration value="LOYT"/>
318 <xs:enumeration value="NRES"/>
319 <xs:enumeration value="PUCO"/>
320 <xs:enumeration value="RECP"/>
321 <xs:enumeration value="SOAF"/>
322 <xs:enumeration value="UNAF"/>
323 <xs:enumeration value="VCAU"/>
324 </xs:restriction>
325 </xs:simpleType>
326 <xs:complexType name="CardSecurityInformation1">
327 <xs:sequence>
328 <xs:element name="CSCMgmt" type="CSCManagement1Code"/>
329 <xs:element maxOccurs="1" minOccurs="0" name="CSCVal" type="Min3Max4NumericText"/>
330 </xs:sequence>
331 </xs:complexType>
332 <xs:complexType name="CardSequenceNumberRange1">
333 <xs:sequence>
334 <xs:element maxOccurs="1" minOccurs="0" name="FrstTx" type="Max35Text"/>
335 <xs:element maxOccurs="1" minOccurs="0" name="LastTx" type="Max35Text"/>
336 </xs:sequence>
337 </xs:complexType>
338 <xs:complexType name="CardTransaction16">
339 <xs:sequence>
340 <xs:element maxOccurs="1" minOccurs="0" name="Card" type="PaymentCard4"/>
341 <xs:element maxOccurs="1" minOccurs="0" name="POI" type="PointOfInteraction1"/>
342 <xs:element maxOccurs="1" minOccurs="0" name="Tx" type="CardTransaction3Choice"/>
343 <xs:element maxOccurs="1" minOccurs="0" name="PrePdAcct" type="CashAccount24"/>
344 </xs:sequence>
345 </xs:complexType>
346 <xs:complexType name="CardTransaction3Choice">
347 <xs:choice>
348 <xs:element name="Aggtd" type="CardAggregated2"/>
349 <xs:element name="Indv" type="CardIndividualTransaction2"/>
350 </xs:choice>
351 </xs:complexType>
352 <xs:complexType name="CardholderAuthentication2">
353 <xs:sequence>
354 <xs:element name="AuthntcnMtd" type="AuthenticationMethod1Code"/>
355 <xs:element name="AuthntcnNtty" type="AuthenticationEntity1Code"/>
356 </xs:sequence>
357 </xs:complexType>
358 <xs:simpleType name="CardholderVerificationCapability1Code">
359 <xs:restriction base="xs:string">
360 <xs:enumeration value="MNSG"/>
361 <xs:enumeration value="NPIN"/>
362 <xs:enumeration value="FCPN"/>
363 <xs:enumeration value="FEPN"/>
364 <xs:enumeration value="FDSG"/>
365 <xs:enumeration value="FBIO"/>
366 <xs:enumeration value="MNVR"/>
367 <xs:enumeration value="FBIG"/>
368 <xs:enumeration value="APKI"/>
369 <xs:enumeration value="PKIS"/>
370 <xs:enumeration value="CHDT"/>
371 <xs:enumeration value="SCEC"/>
372 </xs:restriction>
373 </xs:simpleType>
374 <xs:complexType name="CashAccount24">
375 <xs:sequence>
376 <xs:element name="Id" type="AccountIdentification4Choice"/>
377 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CashAccountType2Choice"/>
378 <xs:element maxOccurs="1" minOccurs="0" name="Ccy" type="ActiveOrHistoricCurrencyCode"/>
379 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max70Text"/>
380 </xs:sequence>
381 </xs:complexType>
382 <xs:complexType name="CashAccount36">
383 <xs:sequence>
384 <xs:element name="Id" type="AccountIdentification4Choice"/>
385 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CashAccountType2Choice"/>
386 <xs:element maxOccurs="1" minOccurs="0" name="Ccy" type="ActiveOrHistoricCurrencyCode"/>
387 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max70Text"/>
388 <xs:element maxOccurs="1" minOccurs="0" name="Ownr" type="PartyIdentification125"/>
389 <xs:element maxOccurs="1" minOccurs="0" name="Svcr" type="BranchAndFinancialInstitutionIdentification5"/>
390 </xs:sequence>
391 </xs:complexType>
392 <xs:complexType name="CashAccountType2Choice">
393 <xs:choice>
394 <xs:element name="Cd" type="ExternalCashAccountType1Code"/>
395 <xs:element name="Prtry" type="Max35Text"/>
396 </xs:choice>
397 </xs:complexType>
398 <xs:complexType name="CashAvailability1">
399 <xs:sequence>
400 <xs:element name="Dt" type="CashAvailabilityDate1Choice"/>
401 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
402 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
403 </xs:sequence>
404 </xs:complexType>
405 <xs:complexType name="CashAvailabilityDate1Choice">
406 <xs:choice>
407 <xs:element name="NbOfDays" type="Max15PlusSignedNumericText"/>
408 <xs:element name="ActlDt" type="ISODate"/>
409 </xs:choice>
410 </xs:complexType>
411 <xs:complexType name="CashBalance8">
412 <xs:sequence>
413 <xs:element name="Tp" type="BalanceType13"/>
414 <xs:element maxOccurs="unbounded" minOccurs="0" name="CdtLine" type="CreditLine3"/>
415 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
416 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
417 <xs:element name="Dt" type="DateAndDateTime2Choice"/>
418 <xs:element maxOccurs="unbounded" minOccurs="0" name="Avlbty" type="CashAvailability1"/>
419 </xs:sequence>
420 </xs:complexType>
421 <xs:complexType name="CashDeposit1">
422 <xs:sequence>
423 <xs:element name="NoteDnmtn" type="ActiveCurrencyAndAmount"/>
424 <xs:element name="NbOfNotes" type="Max15NumericText"/>
425 <xs:element name="Amt" type="ActiveCurrencyAndAmount"/>
426 </xs:sequence>
427 </xs:complexType>
428 <xs:simpleType name="ChargeBearerType1Code">
429 <xs:restriction base="xs:string">
430 <xs:enumeration value="DEBT"/>
431 <xs:enumeration value="CRED"/>
432 <xs:enumeration value="SHAR"/>
433 <xs:enumeration value="SLEV"/>
434 </xs:restriction>
435 </xs:simpleType>
436 <xs:simpleType name="ChargeIncludedIndicator">
437 <xs:restriction base="xs:boolean"/>
438 </xs:simpleType>
439 <xs:complexType name="ChargeType3Choice">
440 <xs:choice>
441 <xs:element name="Cd" type="ExternalChargeType1Code"/>
442 <xs:element name="Prtry" type="GenericIdentification3"/>
443 </xs:choice>
444 </xs:complexType>
445 <xs:complexType name="Charges4">
446 <xs:sequence>
447 <xs:element maxOccurs="1" minOccurs="0" name="TtlChrgsAndTaxAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
448 <xs:element maxOccurs="unbounded" minOccurs="0" name="Rcrd" type="ChargesRecord2"/>
449 </xs:sequence>
450 </xs:complexType>
451 <xs:complexType name="ChargesRecord2">
452 <xs:sequence>
453 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
454 <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
455 <xs:element maxOccurs="1" minOccurs="0" name="ChrgInclInd" type="ChargeIncludedIndicator"/>
456 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="ChargeType3Choice"/>
457 <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="PercentageRate"/>
458 <xs:element maxOccurs="1" minOccurs="0" name="Br" type="ChargeBearerType1Code"/>
459 <xs:element maxOccurs="1" minOccurs="0" name="Agt" type="BranchAndFinancialInstitutionIdentification5"/>
460 <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxCharges2"/>
461 </xs:sequence>
462 </xs:complexType>
463 <xs:complexType name="ClearingSystemIdentification2Choice">
464 <xs:choice>
465 <xs:element name="Cd" type="ExternalClearingSystemIdentification1Code"/>
466 <xs:element name="Prtry" type="Max35Text"/>
467 </xs:choice>
468 </xs:complexType>
469 <xs:complexType name="ClearingSystemMemberIdentification2">
470 <xs:sequence>
471 <xs:element maxOccurs="1" minOccurs="0" name="ClrSysId" type="ClearingSystemIdentification2Choice"/>
472 <xs:element name="MmbId" type="Max35Text"/>
473 </xs:sequence>
474 </xs:complexType>
475 <xs:complexType name="ContactDetails2">
476 <xs:sequence>
477 <xs:element maxOccurs="1" minOccurs="0" name="NmPrfx" type="NamePrefix1Code"/>
478 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
479 <xs:element maxOccurs="1" minOccurs="0" name="PhneNb" type="PhoneNumber"/>
480 <xs:element maxOccurs="1" minOccurs="0" name="MobNb" type="PhoneNumber"/>
481 <xs:element maxOccurs="1" minOccurs="0" name="FaxNb" type="PhoneNumber"/>
482 <xs:element maxOccurs="1" minOccurs="0" name="EmailAdr" type="Max2048Text"/>
483 <xs:element maxOccurs="1" minOccurs="0" name="Othr" type="Max35Text"/>
484 </xs:sequence>
485 </xs:complexType>
486 <xs:simpleType name="CopyDuplicate1Code">
487 <xs:restriction base="xs:string">
488 <xs:enumeration value="CODU"/>
489 <xs:enumeration value="COPY"/>
490 <xs:enumeration value="DUPL"/>
491 </xs:restriction>
492 </xs:simpleType>
493 <xs:complexType name="CorporateAction9">
494 <xs:sequence>
495 <xs:element name="EvtTp" type="Max35Text"/>
496 <xs:element name="EvtId" type="Max35Text"/>
497 </xs:sequence>
498 </xs:complexType>
499 <xs:simpleType name="CountryCode">
500 <xs:restriction base="xs:string">
501 <xs:pattern value="[A-Z]{2,2}"/>
502 </xs:restriction>
503 </xs:simpleType>
504 <xs:simpleType name="CreditDebitCode">
505 <xs:restriction base="xs:string">
506 <xs:enumeration value="CRDT"/>
507 <xs:enumeration value="DBIT"/>
508 </xs:restriction>
509 </xs:simpleType>
510 <xs:complexType name="CreditLine3">
511 <xs:sequence>
512 <xs:element name="Incl" type="TrueFalseIndicator"/>
513 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CreditLineType1Choice"/>
514 <xs:element maxOccurs="1" minOccurs="0" name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
515 <xs:element maxOccurs="1" minOccurs="0" name="Dt" type="DateAndDateTime2Choice"/>
516 </xs:sequence>
517 </xs:complexType>
518 <xs:complexType name="CreditLineType1Choice">
519 <xs:choice>
520 <xs:element name="Cd" type="ExternalCreditLineType1Code"/>
521 <xs:element name="Prtry" type="Max35Text"/>
522 </xs:choice>
523 </xs:complexType>
524 <xs:complexType name="CreditorReferenceInformation2">
525 <xs:sequence>
526 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="CreditorReferenceType2"/>
527 <xs:element maxOccurs="1" minOccurs="0" name="Ref" type="Max35Text"/>
528 </xs:sequence>
529 </xs:complexType>
530 <xs:complexType name="CreditorReferenceType1Choice">
531 <xs:choice>
532 <xs:element name="Cd" type="DocumentType3Code"/>
533 <xs:element name="Prtry" type="Max35Text"/>
534 </xs:choice>
535 </xs:complexType>
536 <xs:complexType name="CreditorReferenceType2">
537 <xs:sequence>
538 <xs:element name="CdOrPrtry" type="CreditorReferenceType1Choice"/>
539 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
540 </xs:sequence>
541 </xs:complexType>
542 <xs:complexType name="CurrencyExchange5">
543 <xs:sequence>
544 <xs:element name="SrcCcy" type="ActiveOrHistoricCurrencyCode"/>
545 <xs:element maxOccurs="1" minOccurs="0" name="TrgtCcy" type="ActiveOrHistoricCurrencyCode"/>
546 <xs:element maxOccurs="1" minOccurs="0" name="UnitCcy" type="ActiveOrHistoricCurrencyCode"/>
547 <xs:element name="XchgRate" type="BaseOneRate"/>
548 <xs:element maxOccurs="1" minOccurs="0" name="CtrctId" type="Max35Text"/>
549 <xs:element maxOccurs="1" minOccurs="0" name="QtnDt" type="ISODateTime"/>
550 </xs:sequence>
551 </xs:complexType>
552 <xs:complexType name="DateAndDateTime2Choice">
553 <xs:choice>
554 <xs:element name="Dt" type="ISODate"/>
555 <xs:element name="DtTm" type="ISODateTime"/>
556 </xs:choice>
557 </xs:complexType>
558 <xs:complexType name="DateAndPlaceOfBirth1">
559 <xs:sequence>
560 <xs:element name="BirthDt" type="ISODate"/>
561 <xs:element maxOccurs="1" minOccurs="0" name="PrvcOfBirth" type="Max35Text"/>
562 <xs:element name="CityOfBirth" type="Max35Text"/>
563 <xs:element name="CtryOfBirth" type="CountryCode"/>
564 </xs:sequence>
565 </xs:complexType>
566 <xs:complexType name="DateOrDateTimePeriod1Choice">
567 <xs:choice>
568 <xs:element name="Dt" type="DatePeriod2"/>
569 <xs:element name="DtTm" type="DateTimePeriod1"/>
570 </xs:choice>
571 </xs:complexType>
572 <xs:complexType name="DatePeriod2">
573 <xs:sequence>
574 <xs:element name="FrDt" type="ISODate"/>
575 <xs:element name="ToDt" type="ISODate"/>
576 </xs:sequence>
577 </xs:complexType>
578 <xs:complexType name="DateTimePeriod1">
579 <xs:sequence>
580 <xs:element name="FrDtTm" type="ISODateTime"/>
581 <xs:element name="ToDtTm" type="ISODateTime"/>
582 </xs:sequence>
583 </xs:complexType>
584 <xs:simpleType name="DecimalNumber">
585 <xs:restriction base="xs:decimal">
586 <xs:fractionDigits value="17"/>
587 <xs:totalDigits value="18"/>
588 </xs:restriction>
589 </xs:simpleType>
590 <xs:complexType name="DiscountAmountAndType1">
591 <xs:sequence>
592 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="DiscountAmountType1Choice"/>
593 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
594 </xs:sequence>
595 </xs:complexType>
596 <xs:complexType name="DiscountAmountType1Choice">
597 <xs:choice>
598 <xs:element name="Cd" type="ExternalDiscountAmountType1Code"/>
599 <xs:element name="Prtry" type="Max35Text"/>
600 </xs:choice>
601 </xs:complexType>
602 <xs:complexType name="DisplayCapabilities1">
603 <xs:sequence>
604 <xs:element name="DispTp" type="UserInterface2Code"/>
605 <xs:element name="NbOfLines" type="Max3NumericText"/>
606 <xs:element name="LineWidth" type="Max3NumericText"/>
607 </xs:sequence>
608 </xs:complexType>
609 <xs:complexType name="Document">
610 <xs:sequence>
611 <xs:element name="BkToCstmrAcctRpt" type="BankToCustomerAccountReportV07"/>
612 </xs:sequence>
613 </xs:complexType>
614 <xs:complexType name="DocumentAdjustment1">
615 <xs:sequence>
616 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
617 <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
618 <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="Max4Text"/>
619 <xs:element maxOccurs="1" minOccurs="0" name="AddtlInf" type="Max140Text"/>
620 </xs:sequence>
621 </xs:complexType>
622 <xs:complexType name="DocumentLineIdentification1">
623 <xs:sequence>
624 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="DocumentLineType1"/>
625 <xs:element maxOccurs="1" minOccurs="0" name="Nb" type="Max35Text"/>
626 <xs:element maxOccurs="1" minOccurs="0" name="RltdDt" type="ISODate"/>
627 </xs:sequence>
628 </xs:complexType>
629 <xs:complexType name="DocumentLineInformation1">
630 <xs:sequence>
631 <xs:element maxOccurs="unbounded" minOccurs="1" name="Id" type="DocumentLineIdentification1"/>
632 <xs:element maxOccurs="1" minOccurs="0" name="Desc" type="Max2048Text"/>
633 <xs:element maxOccurs="1" minOccurs="0" name="Amt" type="RemittanceAmount3"/>
634 </xs:sequence>
635 </xs:complexType>
636 <xs:complexType name="DocumentLineType1">
637 <xs:sequence>
638 <xs:element name="CdOrPrtry" type="DocumentLineType1Choice"/>
639 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
640 </xs:sequence>
641 </xs:complexType>
642 <xs:complexType name="DocumentLineType1Choice">
643 <xs:choice>
644 <xs:element name="Cd" type="ExternalDocumentLineType1Code"/>
645 <xs:element name="Prtry" type="Max35Text"/>
646 </xs:choice>
647 </xs:complexType>
648 <xs:simpleType name="DocumentType3Code">
649 <xs:restriction base="xs:string">
650 <xs:enumeration value="RADM"/>
651 <xs:enumeration value="RPIN"/>
652 <xs:enumeration value="FXDR"/>
653 <xs:enumeration value="DISP"/>
654 <xs:enumeration value="PUOR"/>
655 <xs:enumeration value="SCOR"/>
656 </xs:restriction>
657 </xs:simpleType>
658 <xs:simpleType name="DocumentType6Code">
659 <xs:restriction base="xs:string">
660 <xs:enumeration value="MSIN"/>
661 <xs:enumeration value="CNFA"/>
662 <xs:enumeration value="DNFA"/>
663 <xs:enumeration value="CINV"/>
664 <xs:enumeration value="CREN"/>
665 <xs:enumeration value="DEBN"/>
666 <xs:enumeration value="HIRI"/>
667 <xs:enumeration value="SBIN"/>
668 <xs:enumeration value="CMCN"/>
669 <xs:enumeration value="SOAC"/>
670 <xs:enumeration value="DISP"/>
671 <xs:enumeration value="BOLD"/>
672 <xs:enumeration value="VCHR"/>
673 <xs:enumeration value="AROI"/>
674 <xs:enumeration value="TSUT"/>
675 <xs:enumeration value="PUOR"/>
676 </xs:restriction>
677 </xs:simpleType>
678 <xs:complexType name="EntryDetails8">
679 <xs:sequence>
680 <xs:element maxOccurs="1" minOccurs="0" name="Btch" type="BatchInformation2"/>
681 <xs:element maxOccurs="unbounded" minOccurs="0" name="TxDtls" type="EntryTransaction9"/>
682 </xs:sequence>
683 </xs:complexType>
684 <xs:complexType name="EntryStatus1Choice">
685 <xs:choice>
686 <xs:element name="Cd" type="ExternalEntryStatus1Code"/>
687 <xs:element name="Prtry" type="Max35Text"/>
688 </xs:choice>
689 </xs:complexType>
690 <xs:complexType name="EntryTransaction9">
691 <xs:sequence>
692 <xs:element maxOccurs="1" minOccurs="0" name="Refs" type="TransactionReferences3"/>
693 <xs:element maxOccurs="1" minOccurs="0" name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
694 <xs:element maxOccurs="1" minOccurs="0" name="CdtDbtInd" type="CreditDebitCode"/>
695 <xs:element maxOccurs="1" minOccurs="0" name="AmtDtls" type="AmountAndCurrencyExchange3"/>
696 <xs:element maxOccurs="unbounded" minOccurs="0" name="Avlbty" type="CashAvailability1"/>
697 <xs:element maxOccurs="1" minOccurs="0" name="BkTxCd" type="BankTransactionCodeStructure4"/>
698 <xs:element maxOccurs="1" minOccurs="0" name="Chrgs" type="Charges4"/>
699 <xs:element maxOccurs="1" minOccurs="0" name="Intrst" type="TransactionInterest4"/>
700 <xs:element maxOccurs="1" minOccurs="0" name="RltdPties" type="TransactionParties4"/>
701 <xs:element maxOccurs="1" minOccurs="0" name="RltdAgts" type="TransactionAgents4"/>
702 <xs:element maxOccurs="1" minOccurs="0" name="LclInstrm" type="LocalInstrument2Choice"/>
703 <xs:element maxOccurs="1" minOccurs="0" name="Purp" type="Purpose2Choice"/>
704 <xs:element maxOccurs="10" minOccurs="0" name="RltdRmtInf" type="RemittanceLocation4"/>
705 <xs:element maxOccurs="1" minOccurs="0" name="RmtInf" type="RemittanceInformation15"/>
706 <xs:element maxOccurs="1" minOccurs="0" name="RltdDts" type="TransactionDates3"/>
707 <xs:element maxOccurs="1" minOccurs="0" name="RltdPric" type="TransactionPrice4Choice"/>
708 <xs:element maxOccurs="unbounded" minOccurs="0" name="RltdQties" type="TransactionQuantities2Choice"/>
709 <xs:element maxOccurs="1" minOccurs="0" name="FinInstrmId" type="SecurityIdentification19"/>
710 <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxInformation6"/>
711 <xs:element maxOccurs="1" minOccurs="0" name="RtrInf" type="PaymentReturnReason3"/>
712 <xs:element maxOccurs="1" minOccurs="0" name="CorpActn" type="CorporateAction9"/>
713 <xs:element maxOccurs="1" minOccurs="0" name="SfkpgAcct" type="SecuritiesAccount19"/>
714 <xs:element maxOccurs="unbounded" minOccurs="0" name="CshDpst" type="CashDeposit1"/>
715 <xs:element maxOccurs="1" minOccurs="0" name="CardTx" type="CardTransaction16"/>
716 <xs:element maxOccurs="1" minOccurs="0" name="AddtlTxInf" type="Max500Text"/>
717 <xs:element maxOccurs="unbounded" minOccurs="0" name="SplmtryData" type="SupplementaryData1"/>
718 </xs:sequence>
719 </xs:complexType>
720 <xs:simpleType name="Exact1NumericText">
721 <xs:restriction base="xs:string">
722 <xs:pattern value="[0-9]"/>
723 </xs:restriction>
724 </xs:simpleType>
725 <xs:simpleType name="Exact3NumericText">
726 <xs:restriction base="xs:string">
727 <xs:pattern value="[0-9]{3}"/>
728 </xs:restriction>
729 </xs:simpleType>
730 <xs:simpleType name="Exact4AlphaNumericText">
731 <xs:restriction base="xs:string">
732 <xs:pattern value="[a-zA-Z0-9]{4}"/>
733 </xs:restriction>
734 </xs:simpleType>
735 <xs:simpleType name="ExternalAccountIdentification1Code">
736 <xs:restriction base="xs:string">
737 <xs:minLength value="1"/>
738 <xs:maxLength value="4"/>
739 </xs:restriction>
740 </xs:simpleType>
741 <xs:simpleType name="ExternalBalanceSubType1Code">
742 <xs:restriction base="xs:string">
743 <xs:minLength value="1"/>
744 <xs:maxLength value="4"/>
745 </xs:restriction>
746 </xs:simpleType>
747 <xs:simpleType name="ExternalBalanceType1Code">
748 <xs:restriction base="xs:string">
749 <xs:minLength value="1"/>
750 <xs:maxLength value="4"/>
751 </xs:restriction>
752 </xs:simpleType>
753 <xs:simpleType name="ExternalBankTransactionDomain1Code">
754 <xs:restriction base="xs:string">
755 <xs:minLength value="1"/>
756 <xs:maxLength value="4"/>
757 </xs:restriction>
758 </xs:simpleType>
759 <xs:simpleType name="ExternalBankTransactionFamily1Code">
760 <xs:restriction base="xs:string">
761 <xs:minLength value="1"/>
762 <xs:maxLength value="4"/>
763 </xs:restriction>
764 </xs:simpleType>
765 <xs:simpleType name="ExternalBankTransactionSubFamily1Code">
766 <xs:restriction base="xs:string">
767 <xs:minLength value="1"/>
768 <xs:maxLength value="4"/>
769 </xs:restriction>
770 </xs:simpleType>
771 <xs:simpleType name="ExternalCardTransactionCategory1Code">
772 <xs:restriction base="xs:string">
773 <xs:minLength value="1"/>
774 <xs:maxLength value="4"/>
775 </xs:restriction>
776 </xs:simpleType>
777 <xs:simpleType name="ExternalCashAccountType1Code">
778 <xs:restriction base="xs:string">
779 <xs:minLength value="1"/>
780 <xs:maxLength value="4"/>
781 </xs:restriction>
782 </xs:simpleType>
783 <xs:simpleType name="ExternalChargeType1Code">
784 <xs:restriction base="xs:string">
785 <xs:minLength value="1"/>
786 <xs:maxLength value="4"/>
787 </xs:restriction>
788 </xs:simpleType>
789 <xs:simpleType name="ExternalClearingSystemIdentification1Code">
790 <xs:restriction base="xs:string">
791 <xs:minLength value="1"/>
792 <xs:maxLength value="5"/>
793 </xs:restriction>
794 </xs:simpleType>
795 <xs:simpleType name="ExternalCreditLineType1Code">
796 <xs:restriction base="xs:string">
797 <xs:minLength value="1"/>
798 <xs:maxLength value="4"/>
799 </xs:restriction>
800 </xs:simpleType>
801 <xs:simpleType name="ExternalDiscountAmountType1Code">
802 <xs:restriction base="xs:string">
803 <xs:minLength value="1"/>
804 <xs:maxLength value="4"/>
805 </xs:restriction>
806 </xs:simpleType>
807 <xs:simpleType name="ExternalDocumentLineType1Code">
808 <xs:restriction base="xs:string">
809 <xs:minLength value="1"/>
810 <xs:maxLength value="4"/>
811 </xs:restriction>
812 </xs:simpleType>
813 <xs:simpleType name="ExternalEntryStatus1Code">
814 <xs:restriction base="xs:string">
815 <xs:minLength value="1"/>
816 <xs:maxLength value="4"/>
817 </xs:restriction>
818 </xs:simpleType>
819 <xs:simpleType name="ExternalFinancialInstitutionIdentification1Code">
820 <xs:restriction base="xs:string">
821 <xs:minLength value="1"/>
822 <xs:maxLength value="4"/>
823 </xs:restriction>
824 </xs:simpleType>
825 <xs:simpleType name="ExternalFinancialInstrumentIdentificationType1Code">
826 <xs:restriction base="xs:string">
827 <xs:minLength value="1"/>
828 <xs:maxLength value="4"/>
829 </xs:restriction>
830 </xs:simpleType>
831 <xs:simpleType name="ExternalGarnishmentType1Code">
832 <xs:restriction base="xs:string">
833 <xs:minLength value="1"/>
834 <xs:maxLength value="4"/>
835 </xs:restriction>
836 </xs:simpleType>
837 <xs:simpleType name="ExternalLocalInstrument1Code">
838 <xs:restriction base="xs:string">
839 <xs:minLength value="1"/>
840 <xs:maxLength value="35"/>
841 </xs:restriction>
842 </xs:simpleType>
843 <xs:simpleType name="ExternalOrganisationIdentification1Code">
844 <xs:restriction base="xs:string">
845 <xs:minLength value="1"/>
846 <xs:maxLength value="4"/>
847 </xs:restriction>
848 </xs:simpleType>
849 <xs:simpleType name="ExternalPersonIdentification1Code">
850 <xs:restriction base="xs:string">
851 <xs:minLength value="1"/>
852 <xs:maxLength value="4"/>
853 </xs:restriction>
854 </xs:simpleType>
855 <xs:simpleType name="ExternalPurpose1Code">
856 <xs:restriction base="xs:string">
857 <xs:minLength value="1"/>
858 <xs:maxLength value="4"/>
859 </xs:restriction>
860 </xs:simpleType>
861 <xs:simpleType name="ExternalRePresentmentReason1Code">
862 <xs:restriction base="xs:string">
863 <xs:minLength value="1"/>
864 <xs:maxLength value="4"/>
865 </xs:restriction>
866 </xs:simpleType>
867 <xs:simpleType name="ExternalReportingSource1Code">
868 <xs:restriction base="xs:string">
869 <xs:minLength value="1"/>
870 <xs:maxLength value="4"/>
871 </xs:restriction>
872 </xs:simpleType>
873 <xs:simpleType name="ExternalReturnReason1Code">
874 <xs:restriction base="xs:string">
875 <xs:minLength value="1"/>
876 <xs:maxLength value="4"/>
877 </xs:restriction>
878 </xs:simpleType>
879 <xs:simpleType name="ExternalTaxAmountType1Code">
880 <xs:restriction base="xs:string">
881 <xs:minLength value="1"/>
882 <xs:maxLength value="4"/>
883 </xs:restriction>
884 </xs:simpleType>
885 <xs:simpleType name="ExternalTechnicalInputChannel1Code">
886 <xs:restriction base="xs:string">
887 <xs:minLength value="1"/>
888 <xs:maxLength value="4"/>
889 </xs:restriction>
890 </xs:simpleType>
891 <xs:complexType name="FinancialIdentificationSchemeName1Choice">
892 <xs:choice>
893 <xs:element name="Cd" type="ExternalFinancialInstitutionIdentification1Code"/>
894 <xs:element name="Prtry" type="Max35Text"/>
895 </xs:choice>
896 </xs:complexType>
897 <xs:complexType name="FinancialInstitutionIdentification8">
898 <xs:sequence>
899 <xs:element maxOccurs="1" minOccurs="0" name="BICFI" type="BICFIIdentifier"/>
900 <xs:element maxOccurs="1" minOccurs="0" name="ClrSysMmbId" type="ClearingSystemMemberIdentification2"/>
901 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
902 <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress6"/>
903 <xs:element maxOccurs="1" minOccurs="0" name="Othr" type="GenericFinancialIdentification1"/>
904 </xs:sequence>
905 </xs:complexType>
906 <xs:complexType name="FinancialInstrumentQuantityChoice">
907 <xs:choice>
908 <xs:element name="Unit" type="DecimalNumber"/>
909 <xs:element name="FaceAmt" type="ImpliedCurrencyAndAmount"/>
910 <xs:element name="AmtsdVal" type="ImpliedCurrencyAndAmount"/>
911 </xs:choice>
912 </xs:complexType>
913 <xs:complexType name="FromToAmountRange1">
914 <xs:sequence>
915 <xs:element name="FrAmt" type="AmountRangeBoundary1"/>
916 <xs:element name="ToAmt" type="AmountRangeBoundary1"/>
917 </xs:sequence>
918 </xs:complexType>
919 <xs:complexType name="Garnishment2">
920 <xs:sequence>
921 <xs:element name="Tp" type="GarnishmentType1"/>
922 <xs:element maxOccurs="1" minOccurs="0" name="Grnshee" type="PartyIdentification125"/>
923 <xs:element maxOccurs="1" minOccurs="0" name="GrnshmtAdmstr" type="PartyIdentification125"/>
924 <xs:element maxOccurs="1" minOccurs="0" name="RefNb" type="Max140Text"/>
925 <xs:element maxOccurs="1" minOccurs="0" name="Dt" type="ISODate"/>
926 <xs:element maxOccurs="1" minOccurs="0" name="RmtdAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
927 <xs:element maxOccurs="1" minOccurs="0" name="FmlyMdclInsrncInd" type="TrueFalseIndicator"/>
928 <xs:element maxOccurs="1" minOccurs="0" name="MplyeeTermntnInd" type="TrueFalseIndicator"/>
929 </xs:sequence>
930 </xs:complexType>
931 <xs:complexType name="GarnishmentType1">
932 <xs:sequence>
933 <xs:element name="CdOrPrtry" type="GarnishmentType1Choice"/>
934 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
935 </xs:sequence>
936 </xs:complexType>
937 <xs:complexType name="GarnishmentType1Choice">
938 <xs:choice>
939 <xs:element name="Cd" type="ExternalGarnishmentType1Code"/>
940 <xs:element name="Prtry" type="Max35Text"/>
941 </xs:choice>
942 </xs:complexType>
943 <xs:complexType name="GenericAccountIdentification1">
944 <xs:sequence>
945 <xs:element name="Id" type="Max34Text"/>
946 <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="AccountSchemeName1Choice"/>
947 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
948 </xs:sequence>
949 </xs:complexType>
950 <xs:complexType name="GenericFinancialIdentification1">
951 <xs:sequence>
952 <xs:element name="Id" type="Max35Text"/>
953 <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="FinancialIdentificationSchemeName1Choice"/>
954 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
955 </xs:sequence>
956 </xs:complexType>
957 <xs:complexType name="GenericIdentification1">
958 <xs:sequence>
959 <xs:element name="Id" type="Max35Text"/>
960 <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="Max35Text"/>
961 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
962 </xs:sequence>
963 </xs:complexType>
964 <xs:complexType name="GenericIdentification3">
965 <xs:sequence>
966 <xs:element name="Id" type="Max35Text"/>
967 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
968 </xs:sequence>
969 </xs:complexType>
970 <xs:complexType name="GenericIdentification30">
971 <xs:sequence>
972 <xs:element name="Id" type="Exact4AlphaNumericText"/>
973 <xs:element name="Issr" type="Max35Text"/>
974 <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="Max35Text"/>
975 </xs:sequence>
976 </xs:complexType>
977 <xs:complexType name="GenericIdentification32">
978 <xs:sequence>
979 <xs:element name="Id" type="Max35Text"/>
980 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="PartyType3Code"/>
981 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="PartyType4Code"/>
982 <xs:element maxOccurs="1" minOccurs="0" name="ShrtNm" type="Max35Text"/>
983 </xs:sequence>
984 </xs:complexType>
985 <xs:complexType name="GenericOrganisationIdentification1">
986 <xs:sequence>
987 <xs:element name="Id" type="Max35Text"/>
988 <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="OrganisationIdentificationSchemeName1Choice"/>
989 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
990 </xs:sequence>
991 </xs:complexType>
992 <xs:complexType name="GenericPersonIdentification1">
993 <xs:sequence>
994 <xs:element name="Id" type="Max35Text"/>
995 <xs:element maxOccurs="1" minOccurs="0" name="SchmeNm" type="PersonIdentificationSchemeName1Choice"/>
996 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
997 </xs:sequence>
998 </xs:complexType>
999 <xs:complexType name="GroupHeader73">
1000 <xs:sequence>
1001 <xs:element name="MsgId" type="Max35Text"/>
1002 <xs:element name="CreDtTm" type="ISODateTime"/>
1003 <xs:element maxOccurs="1" minOccurs="0" name="MsgRcpt" type="PartyIdentification125"/>
1004 <xs:element maxOccurs="1" minOccurs="0" name="MsgPgntn" type="Pagination1"/>
1005 <xs:element maxOccurs="1" minOccurs="0" name="OrgnlBizQry" type="OriginalBusinessQuery1"/>
1006 <xs:element maxOccurs="1" minOccurs="0" name="AddtlInf" type="Max500Text"/>
1007 </xs:sequence>
1008 </xs:complexType>
1009 <xs:simpleType name="IBAN2007Identifier">
1010 <xs:restriction base="xs:string">
1011 <xs:pattern value="[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}"/>
1012 </xs:restriction>
1013 </xs:simpleType>
1014 <xs:simpleType name="ISINOct2015Identifier">
1015 <xs:restriction base="xs:string">
1016 <xs:pattern value="[A-Z]{2,2}[A-Z0-9]{9,9}[0-9]{1,1}"/>
1017 </xs:restriction>
1018 </xs:simpleType>
1019 <xs:simpleType name="ISO2ALanguageCode">
1020 <xs:restriction base="xs:string">
1021 <xs:pattern value="[a-z]{2,2}"/>
1022 </xs:restriction>
1023 </xs:simpleType>
1024 <xs:simpleType name="ISODate">
1025 <xs:restriction base="xs:date"/>
1026 </xs:simpleType>
1027 <xs:simpleType name="ISODateTime">
1028 <xs:restriction base="xs:dateTime"/>
1029 </xs:simpleType>
1030 <xs:simpleType name="ISOYearMonth">
1031 <xs:restriction base="xs:gYearMonth"/>
1032 </xs:simpleType>
1033 <xs:complexType name="IdentificationSource3Choice">
1034 <xs:choice>
1035 <xs:element name="Cd" type="ExternalFinancialInstrumentIdentificationType1Code"/>
1036 <xs:element name="Prtry" type="Max35Text"/>
1037 </xs:choice>
1038 </xs:complexType>
1039 <xs:complexType name="ImpliedCurrencyAmountRange1Choice">
1040 <xs:choice>
1041 <xs:element name="FrAmt" type="AmountRangeBoundary1"/>
1042 <xs:element name="ToAmt" type="AmountRangeBoundary1"/>
1043 <xs:element name="FrToAmt" type="FromToAmountRange1"/>
1044 <xs:element name="EQAmt" type="ImpliedCurrencyAndAmount"/>
1045 <xs:element name="NEQAmt" type="ImpliedCurrencyAndAmount"/>
1046 </xs:choice>
1047 </xs:complexType>
1048 <xs:simpleType name="ImpliedCurrencyAndAmount">
1049 <xs:restriction base="xs:decimal">
1050 <xs:fractionDigits value="5"/>
1051 <xs:totalDigits value="18"/>
1052 <xs:minInclusive value="0"/>
1053 </xs:restriction>
1054 </xs:simpleType>
1055 <xs:complexType name="InterestRecord2">
1056 <xs:sequence>
1057 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
1058 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
1059 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="InterestType1Choice"/>
1060 <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="Rate4"/>
1061 <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DateTimePeriod1"/>
1062 <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="Max35Text"/>
1063 <xs:element maxOccurs="1" minOccurs="0" name="Tax" type="TaxCharges2"/>
1064 </xs:sequence>
1065 </xs:complexType>
1066 <xs:complexType name="InterestType1Choice">
1067 <xs:choice>
1068 <xs:element name="Cd" type="InterestType1Code"/>
1069 <xs:element name="Prtry" type="Max35Text"/>
1070 </xs:choice>
1071 </xs:complexType>
1072 <xs:simpleType name="InterestType1Code">
1073 <xs:restriction base="xs:string">
1074 <xs:enumeration value="INDY"/>
1075 <xs:enumeration value="OVRN"/>
1076 </xs:restriction>
1077 </xs:simpleType>
1078 <xs:complexType name="LocalInstrument2Choice">
1079 <xs:choice>
1080 <xs:element name="Cd" type="ExternalLocalInstrument1Code"/>
1081 <xs:element name="Prtry" type="Max35Text"/>
1082 </xs:choice>
1083 </xs:complexType>
1084 <xs:simpleType name="Max1025Text">
1085 <xs:restriction base="xs:string">
1086 <xs:minLength value="1"/>
1087 <xs:maxLength value="1025"/>
1088 </xs:restriction>
1089 </xs:simpleType>
1090 <xs:simpleType name="Max105Text">
1091 <xs:restriction base="xs:string">
1092 <xs:minLength value="1"/>
1093 <xs:maxLength value="105"/>
1094 </xs:restriction>
1095 </xs:simpleType>
1096 <xs:simpleType name="Max140Text">
1097 <xs:restriction base="xs:string">
1098 <xs:minLength value="1"/>
1099 <xs:maxLength value="140"/>
1100 </xs:restriction>
1101 </xs:simpleType>
1102 <xs:simpleType name="Max15NumericText">
1103 <xs:restriction base="xs:string">
1104 <xs:pattern value="[0-9]{1,15}"/>
1105 </xs:restriction>
1106 </xs:simpleType>
1107 <xs:simpleType name="Max15PlusSignedNumericText">
1108 <xs:restriction base="xs:string">
1109 <xs:pattern value="[\+]{0,1}[0-9]{1,15}"/>
1110 </xs:restriction>
1111 </xs:simpleType>
1112 <xs:simpleType name="Max16Text">
1113 <xs:restriction base="xs:string">
1114 <xs:minLength value="1"/>
1115 <xs:maxLength value="16"/>
1116 </xs:restriction>
1117 </xs:simpleType>
1118 <xs:simpleType name="Max2048Text">
1119 <xs:restriction base="xs:string">
1120 <xs:minLength value="1"/>
1121 <xs:maxLength value="2048"/>
1122 </xs:restriction>
1123 </xs:simpleType>
1124 <xs:simpleType name="Max34Text">
1125 <xs:restriction base="xs:string">
1126 <xs:minLength value="1"/>
1127 <xs:maxLength value="34"/>
1128 </xs:restriction>
1129 </xs:simpleType>
1130 <xs:simpleType name="Max350Text">
1131 <xs:restriction base="xs:string">
1132 <xs:minLength value="1"/>
1133 <xs:maxLength value="350"/>
1134 </xs:restriction>
1135 </xs:simpleType>
1136 <xs:simpleType name="Max35Text">
1137 <xs:restriction base="xs:string">
1138 <xs:minLength value="1"/>
1139 <xs:maxLength value="35"/>
1140 </xs:restriction>
1141 </xs:simpleType>
1142 <xs:simpleType name="Max3NumericText">
1143 <xs:restriction base="xs:string">
1144 <xs:pattern value="[0-9]{1,3}"/>
1145 </xs:restriction>
1146 </xs:simpleType>
1147 <xs:simpleType name="Max4Text">
1148 <xs:restriction base="xs:string">
1149 <xs:minLength value="1"/>
1150 <xs:maxLength value="4"/>
1151 </xs:restriction>
1152 </xs:simpleType>
1153 <xs:simpleType name="Max500Text">
1154 <xs:restriction base="xs:string">
1155 <xs:minLength value="1"/>
1156 <xs:maxLength value="500"/>
1157 </xs:restriction>
1158 </xs:simpleType>
1159 <xs:simpleType name="Max5NumericText">
1160 <xs:restriction base="xs:string">
1161 <xs:pattern value="[0-9]{1,5}"/>
1162 </xs:restriction>
1163 </xs:simpleType>
1164 <xs:simpleType name="Max70Text">
1165 <xs:restriction base="xs:string">
1166 <xs:minLength value="1"/>
1167 <xs:maxLength value="70"/>
1168 </xs:restriction>
1169 </xs:simpleType>
1170 <xs:complexType name="MessageIdentification2">
1171 <xs:sequence>
1172 <xs:element maxOccurs="1" minOccurs="0" name="MsgNmId" type="Max35Text"/>
1173 <xs:element maxOccurs="1" minOccurs="0" name="MsgId" type="Max35Text"/>
1174 </xs:sequence>
1175 </xs:complexType>
1176 <xs:simpleType name="Min2Max3NumericText">
1177 <xs:restriction base="xs:string">
1178 <xs:pattern value="[0-9]{2,3}"/>
1179 </xs:restriction>
1180 </xs:simpleType>
1181 <xs:simpleType name="Min3Max4NumericText">
1182 <xs:restriction base="xs:string">
1183 <xs:pattern value="[0-9]{3,4}"/>
1184 </xs:restriction>
1185 </xs:simpleType>
1186 <xs:simpleType name="Min8Max28NumericText">
1187 <xs:restriction base="xs:string">
1188 <xs:pattern value="[0-9]{8,28}"/>
1189 </xs:restriction>
1190 </xs:simpleType>
1191 <xs:complexType name="NameAndAddress10">
1192 <xs:sequence>
1193 <xs:element name="Nm" type="Max140Text"/>
1194 <xs:element name="Adr" type="PostalAddress6"/>
1195 </xs:sequence>
1196 </xs:complexType>
1197 <xs:simpleType name="NamePrefix1Code">
1198 <xs:restriction base="xs:string">
1199 <xs:enumeration value="DOCT"/>
1200 <xs:enumeration value="MIST"/>
1201 <xs:enumeration value="MISS"/>
1202 <xs:enumeration value="MADM"/>
1203 </xs:restriction>
1204 </xs:simpleType>
1205 <xs:simpleType name="NonNegativeDecimalNumber">
1206 <xs:restriction base="xs:decimal">
1207 <xs:fractionDigits value="17"/>
1208 <xs:totalDigits value="18"/>
1209 <xs:minInclusive value="0"/>
1210 </xs:restriction>
1211 </xs:simpleType>
1212 <xs:simpleType name="Number">
1213 <xs:restriction base="xs:decimal">
1214 <xs:fractionDigits value="0"/>
1215 <xs:totalDigits value="18"/>
1216 </xs:restriction>
1217 </xs:simpleType>
1218 <xs:complexType name="NumberAndSumOfTransactions1">
1219 <xs:sequence>
1220 <xs:element maxOccurs="1" minOccurs="0" name="NbOfNtries" type="Max15NumericText"/>
1221 <xs:element maxOccurs="1" minOccurs="0" name="Sum" type="DecimalNumber"/>
1222 </xs:sequence>
1223 </xs:complexType>
1224 <xs:complexType name="NumberAndSumOfTransactions4">
1225 <xs:sequence>
1226 <xs:element maxOccurs="1" minOccurs="0" name="NbOfNtries" type="Max15NumericText"/>
1227 <xs:element maxOccurs="1" minOccurs="0" name="Sum" type="DecimalNumber"/>
1228 <xs:element maxOccurs="1" minOccurs="0" name="TtlNetNtry" type="AmountAndDirection35"/>
1229 </xs:sequence>
1230 </xs:complexType>
1231 <xs:simpleType name="OnLineCapability1Code">
1232 <xs:restriction base="xs:string">
1233 <xs:enumeration value="OFLN"/>
1234 <xs:enumeration value="ONLN"/>
1235 <xs:enumeration value="SMON"/>
1236 </xs:restriction>
1237 </xs:simpleType>
1238 <xs:complexType name="OrganisationIdentification8">
1239 <xs:sequence>
1240 <xs:element maxOccurs="1" minOccurs="0" name="AnyBIC" type="AnyBICIdentifier"/>
1241 <xs:element maxOccurs="unbounded" minOccurs="0" name="Othr" type="GenericOrganisationIdentification1"/>
1242 </xs:sequence>
1243 </xs:complexType>
1244 <xs:complexType name="OrganisationIdentificationSchemeName1Choice">
1245 <xs:choice>
1246 <xs:element name="Cd" type="ExternalOrganisationIdentification1Code"/>
1247 <xs:element name="Prtry" type="Max35Text"/>
1248 </xs:choice>
1249 </xs:complexType>
1250 <xs:complexType name="OriginalAndCurrentQuantities1">
1251 <xs:sequence>
1252 <xs:element name="FaceAmt" type="ImpliedCurrencyAndAmount"/>
1253 <xs:element name="AmtsdVal" type="ImpliedCurrencyAndAmount"/>
1254 </xs:sequence>
1255 </xs:complexType>
1256 <xs:complexType name="OriginalBusinessQuery1">
1257 <xs:sequence>
1258 <xs:element name="MsgId" type="Max35Text"/>
1259 <xs:element maxOccurs="1" minOccurs="0" name="MsgNmId" type="Max35Text"/>
1260 <xs:element maxOccurs="1" minOccurs="0" name="CreDtTm" type="ISODateTime"/>
1261 </xs:sequence>
1262 </xs:complexType>
1263 <xs:complexType name="OtherIdentification1">
1264 <xs:sequence>
1265 <xs:element name="Id" type="Max35Text"/>
1266 <xs:element maxOccurs="1" minOccurs="0" name="Sfx" type="Max16Text"/>
1267 <xs:element name="Tp" type="IdentificationSource3Choice"/>
1268 </xs:sequence>
1269 </xs:complexType>
1270 <xs:simpleType name="POIComponentType1Code">
1271 <xs:restriction base="xs:string">
1272 <xs:enumeration value="SOFT"/>
1273 <xs:enumeration value="EMVK"/>
1274 <xs:enumeration value="EMVO"/>
1275 <xs:enumeration value="MRIT"/>
1276 <xs:enumeration value="CHIT"/>
1277 <xs:enumeration value="SECM"/>
1278 <xs:enumeration value="PEDV"/>
1279 </xs:restriction>
1280 </xs:simpleType>
1281 <xs:complexType name="Pagination1">
1282 <xs:sequence>
1283 <xs:element name="PgNb" type="Max5NumericText"/>
1284 <xs:element name="LastPgInd" type="YesNoIndicator"/>
1285 </xs:sequence>
1286 </xs:complexType>
1287 <xs:complexType name="Party34Choice">
1288 <xs:choice>
1289 <xs:element name="OrgId" type="OrganisationIdentification8"/>
1290 <xs:element name="PrvtId" type="PersonIdentification13"/>
1291 </xs:choice>
1292 </xs:complexType>
1293 <xs:complexType name="Party35Choice">
1294 <xs:choice>
1295 <xs:element name="Pty" type="PartyIdentification125"/>
1296 <xs:element name="Agt" type="BranchAndFinancialInstitutionIdentification5"/>
1297 </xs:choice>
1298 </xs:complexType>
1299 <xs:complexType name="PartyIdentification125">
1300 <xs:sequence>
1301 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
1302 <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="PostalAddress6"/>
1303 <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Party34Choice"/>
1304 <xs:element maxOccurs="1" minOccurs="0" name="CtryOfRes" type="CountryCode"/>
1305 <xs:element maxOccurs="1" minOccurs="0" name="CtctDtls" type="ContactDetails2"/>
1306 </xs:sequence>
1307 </xs:complexType>
1308 <xs:simpleType name="PartyType3Code">
1309 <xs:restriction base="xs:string">
1310 <xs:enumeration value="OPOI"/>
1311 <xs:enumeration value="MERC"/>
1312 <xs:enumeration value="ACCP"/>
1313 <xs:enumeration value="ITAG"/>
1314 <xs:enumeration value="ACQR"/>
1315 <xs:enumeration value="CISS"/>
1316 <xs:enumeration value="DLIS"/>
1317 </xs:restriction>
1318 </xs:simpleType>
1319 <xs:simpleType name="PartyType4Code">
1320 <xs:restriction base="xs:string">
1321 <xs:enumeration value="MERC"/>
1322 <xs:enumeration value="ACCP"/>
1323 <xs:enumeration value="ITAG"/>
1324 <xs:enumeration value="ACQR"/>
1325 <xs:enumeration value="CISS"/>
1326 <xs:enumeration value="TAXH"/>
1327 </xs:restriction>
1328 </xs:simpleType>
1329 <xs:complexType name="PaymentCard4">
1330 <xs:sequence>
1331 <xs:element maxOccurs="1" minOccurs="0" name="PlainCardData" type="PlainCardData1"/>
1332 <xs:element maxOccurs="1" minOccurs="0" name="CardCtryCd" type="Exact3NumericText"/>
1333 <xs:element maxOccurs="1" minOccurs="0" name="CardBrnd" type="GenericIdentification1"/>
1334 <xs:element maxOccurs="1" minOccurs="0" name="AddtlCardData" type="Max70Text"/>
1335 </xs:sequence>
1336 </xs:complexType>
1337 <xs:complexType name="PaymentContext3">
1338 <xs:sequence>
1339 <xs:element maxOccurs="1" minOccurs="0" name="CardPres" type="TrueFalseIndicator"/>
1340 <xs:element maxOccurs="1" minOccurs="0" name="CrdhldrPres" type="TrueFalseIndicator"/>
1341 <xs:element maxOccurs="1" minOccurs="0" name="OnLineCntxt" type="TrueFalseIndicator"/>
1342 <xs:element maxOccurs="1" minOccurs="0" name="AttndncCntxt" type="AttendanceContext1Code"/>
1343 <xs:element maxOccurs="1" minOccurs="0" name="TxEnvt" type="TransactionEnvironment1Code"/>
1344 <xs:element maxOccurs="1" minOccurs="0" name="TxChanl" type="TransactionChannel1Code"/>
1345 <xs:element maxOccurs="1" minOccurs="0" name="AttndntMsgCpbl" type="TrueFalseIndicator"/>
1346 <xs:element maxOccurs="1" minOccurs="0" name="AttndntLang" type="ISO2ALanguageCode"/>
1347 <xs:element name="CardDataNtryMd" type="CardDataReading1Code"/>
1348 <xs:element maxOccurs="1" minOccurs="0" name="FllbckInd" type="TrueFalseIndicator"/>
1349 <xs:element maxOccurs="1" minOccurs="0" name="AuthntcnMtd" type="CardholderAuthentication2"/>
1350 </xs:sequence>
1351 </xs:complexType>
1352 <xs:complexType name="PaymentReturnReason3">
1353 <xs:sequence>
1354 <xs:element maxOccurs="1" minOccurs="0" name="OrgnlBkTxCd" type="BankTransactionCodeStructure4"/>
1355 <xs:element maxOccurs="1" minOccurs="0" name="Orgtr" type="PartyIdentification125"/>
1356 <xs:element maxOccurs="1" minOccurs="0" name="Rsn" type="ReturnReason5Choice"/>
1357 <xs:element maxOccurs="unbounded" minOccurs="0" name="AddtlInf" type="Max105Text"/>
1358 </xs:sequence>
1359 </xs:complexType>
1360 <xs:simpleType name="PercentageRate">
1361 <xs:restriction base="xs:decimal">
1362 <xs:fractionDigits value="10"/>
1363 <xs:totalDigits value="11"/>
1364 </xs:restriction>
1365 </xs:simpleType>
1366 <xs:complexType name="PersonIdentification13">
1367 <xs:sequence>
1368 <xs:element maxOccurs="1" minOccurs="0" name="DtAndPlcOfBirth" type="DateAndPlaceOfBirth1"/>
1369 <xs:element maxOccurs="unbounded" minOccurs="0" name="Othr" type="GenericPersonIdentification1"/>
1370 </xs:sequence>
1371 </xs:complexType>
1372 <xs:complexType name="PersonIdentificationSchemeName1Choice">
1373 <xs:choice>
1374 <xs:element name="Cd" type="ExternalPersonIdentification1Code"/>
1375 <xs:element name="Prtry" type="Max35Text"/>
1376 </xs:choice>
1377 </xs:complexType>
1378 <xs:simpleType name="PhoneNumber">
1379 <xs:restriction base="xs:string">
1380 <xs:pattern value="\+[0-9]{1,3}-[0-9()+\-]{1,30}"/>
1381 </xs:restriction>
1382 </xs:simpleType>
1383 <xs:complexType name="PlainCardData1">
1384 <xs:sequence>
1385 <xs:element name="PAN" type="Min8Max28NumericText"/>
1386 <xs:element maxOccurs="1" minOccurs="0" name="CardSeqNb" type="Min2Max3NumericText"/>
1387 <xs:element maxOccurs="1" minOccurs="0" name="FctvDt" type="ISOYearMonth"/>
1388 <xs:element name="XpryDt" type="ISOYearMonth"/>
1389 <xs:element maxOccurs="1" minOccurs="0" name="SvcCd" type="Exact3NumericText"/>
1390 <xs:element maxOccurs="unbounded" minOccurs="0" name="TrckData" type="TrackData1"/>
1391 <xs:element maxOccurs="1" minOccurs="0" name="CardSctyCd" type="CardSecurityInformation1"/>
1392 </xs:sequence>
1393 </xs:complexType>
1394 <xs:complexType name="PointOfInteraction1">
1395 <xs:sequence>
1396 <xs:element name="Id" type="GenericIdentification32"/>
1397 <xs:element maxOccurs="1" minOccurs="0" name="SysNm" type="Max70Text"/>
1398 <xs:element maxOccurs="1" minOccurs="0" name="GrpId" type="Max35Text"/>
1399 <xs:element maxOccurs="1" minOccurs="0" name="Cpblties" type="PointOfInteractionCapabilities1"/>
1400 <xs:element maxOccurs="unbounded" minOccurs="0" name="Cmpnt" type="PointOfInteractionComponent1"/>
1401 </xs:sequence>
1402 </xs:complexType>
1403 <xs:complexType name="PointOfInteractionCapabilities1">
1404 <xs:sequence>
1405 <xs:element maxOccurs="unbounded" minOccurs="0" name="CardRdngCpblties" type="CardDataReading1Code"/>
1406 <xs:element maxOccurs="unbounded" minOccurs="0" name="CrdhldrVrfctnCpblties" type="CardholderVerificationCapability1Code"/>
1407 <xs:element maxOccurs="1" minOccurs="0" name="OnLineCpblties" type="OnLineCapability1Code"/>
1408 <xs:element maxOccurs="unbounded" minOccurs="0" name="DispCpblties" type="DisplayCapabilities1"/>
1409 <xs:element maxOccurs="1" minOccurs="0" name="PrtLineWidth" type="Max3NumericText"/>
1410 </xs:sequence>
1411 </xs:complexType>
1412 <xs:complexType name="PointOfInteractionComponent1">
1413 <xs:sequence>
1414 <xs:element name="POICmpntTp" type="POIComponentType1Code"/>
1415 <xs:element maxOccurs="1" minOccurs="0" name="ManfctrId" type="Max35Text"/>
1416 <xs:element maxOccurs="1" minOccurs="0" name="Mdl" type="Max35Text"/>
1417 <xs:element maxOccurs="1" minOccurs="0" name="VrsnNb" type="Max16Text"/>
1418 <xs:element maxOccurs="1" minOccurs="0" name="SrlNb" type="Max35Text"/>
1419 <xs:element maxOccurs="unbounded" minOccurs="0" name="ApprvlNb" type="Max70Text"/>
1420 </xs:sequence>
1421 </xs:complexType>
1422 <xs:complexType name="PostalAddress6">
1423 <xs:sequence>
1424 <xs:element maxOccurs="1" minOccurs="0" name="AdrTp" type="AddressType2Code"/>
1425 <xs:element maxOccurs="1" minOccurs="0" name="Dept" type="Max70Text"/>
1426 <xs:element maxOccurs="1" minOccurs="0" name="SubDept" type="Max70Text"/>
1427 <xs:element maxOccurs="1" minOccurs="0" name="StrtNm" type="Max70Text"/>
1428 <xs:element maxOccurs="1" minOccurs="0" name="BldgNb" type="Max16Text"/>
1429 <xs:element maxOccurs="1" minOccurs="0" name="PstCd" type="Max16Text"/>
1430 <xs:element maxOccurs="1" minOccurs="0" name="TwnNm" type="Max35Text"/>
1431 <xs:element maxOccurs="1" minOccurs="0" name="CtrySubDvsn" type="Max35Text"/>
1432 <xs:element maxOccurs="1" minOccurs="0" name="Ctry" type="CountryCode"/>
1433 <xs:element maxOccurs="7" minOccurs="0" name="AdrLine" type="Max70Text"/>
1434 </xs:sequence>
1435 </xs:complexType>
1436 <xs:complexType name="Price7">
1437 <xs:sequence>
1438 <xs:element name="Tp" type="YieldedOrValueType1Choice"/>
1439 <xs:element name="Val" type="PriceRateOrAmount3Choice"/>
1440 </xs:sequence>
1441 </xs:complexType>
1442 <xs:complexType name="PriceRateOrAmount3Choice">
1443 <xs:choice>
1444 <xs:element name="Rate" type="PercentageRate"/>
1445 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAnd13DecimalAmount"/>
1446 </xs:choice>
1447 </xs:complexType>
1448 <xs:simpleType name="PriceValueType1Code">
1449 <xs:restriction base="xs:string">
1450 <xs:enumeration value="DISC"/>
1451 <xs:enumeration value="PREM"/>
1452 <xs:enumeration value="PARV"/>
1453 </xs:restriction>
1454 </xs:simpleType>
1455 <xs:complexType name="Product2">
1456 <xs:sequence>
1457 <xs:element name="PdctCd" type="Max70Text"/>
1458 <xs:element maxOccurs="1" minOccurs="0" name="UnitOfMeasr" type="UnitOfMeasure1Code"/>
1459 <xs:element maxOccurs="1" minOccurs="0" name="PdctQty" type="DecimalNumber"/>
1460 <xs:element maxOccurs="1" minOccurs="0" name="UnitPric" type="ImpliedCurrencyAndAmount"/>
1461 <xs:element maxOccurs="1" minOccurs="0" name="PdctAmt" type="ImpliedCurrencyAndAmount"/>
1462 <xs:element maxOccurs="1" minOccurs="0" name="TaxTp" type="Max35Text"/>
1463 <xs:element maxOccurs="1" minOccurs="0" name="AddtlPdctInf" type="Max35Text"/>
1464 </xs:sequence>
1465 </xs:complexType>
1466 <xs:complexType name="ProprietaryAgent3">
1467 <xs:sequence>
1468 <xs:element name="Tp" type="Max35Text"/>
1469 <xs:element name="Agt" type="BranchAndFinancialInstitutionIdentification5"/>
1470 </xs:sequence>
1471 </xs:complexType>
1472 <xs:complexType name="ProprietaryBankTransactionCodeStructure1">
1473 <xs:sequence>
1474 <xs:element name="Cd" type="Max35Text"/>
1475 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
1476 </xs:sequence>
1477 </xs:complexType>
1478 <xs:complexType name="ProprietaryDate3">
1479 <xs:sequence>
1480 <xs:element name="Tp" type="Max35Text"/>
1481 <xs:element name="Dt" type="DateAndDateTime2Choice"/>
1482 </xs:sequence>
1483 </xs:complexType>
1484 <xs:complexType name="ProprietaryParty4">
1485 <xs:sequence>
1486 <xs:element name="Tp" type="Max35Text"/>
1487 <xs:element name="Pty" type="Party35Choice"/>
1488 </xs:sequence>
1489 </xs:complexType>
1490 <xs:complexType name="ProprietaryPrice2">
1491 <xs:sequence>
1492 <xs:element name="Tp" type="Max35Text"/>
1493 <xs:element name="Pric" type="ActiveOrHistoricCurrencyAndAmount"/>
1494 </xs:sequence>
1495 </xs:complexType>
1496 <xs:complexType name="ProprietaryQuantity1">
1497 <xs:sequence>
1498 <xs:element name="Tp" type="Max35Text"/>
1499 <xs:element name="Qty" type="Max35Text"/>
1500 </xs:sequence>
1501 </xs:complexType>
1502 <xs:complexType name="ProprietaryReference1">
1503 <xs:sequence>
1504 <xs:element name="Tp" type="Max35Text"/>
1505 <xs:element name="Ref" type="Max35Text"/>
1506 </xs:sequence>
1507 </xs:complexType>
1508 <xs:complexType name="Purpose2Choice">
1509 <xs:choice>
1510 <xs:element name="Cd" type="ExternalPurpose1Code"/>
1511 <xs:element name="Prtry" type="Max35Text"/>
1512 </xs:choice>
1513 </xs:complexType>
1514 <xs:complexType name="Rate4">
1515 <xs:sequence>
1516 <xs:element name="Tp" type="RateType4Choice"/>
1517 <xs:element maxOccurs="1" minOccurs="0" name="VldtyRg" type="ActiveOrHistoricCurrencyAndAmountRange2"/>
1518 </xs:sequence>
1519 </xs:complexType>
1520 <xs:complexType name="RateType4Choice">
1521 <xs:choice>
1522 <xs:element name="Pctg" type="PercentageRate"/>
1523 <xs:element name="Othr" type="Max35Text"/>
1524 </xs:choice>
1525 </xs:complexType>
1526 <xs:complexType name="ReferredDocumentInformation7">
1527 <xs:sequence>
1528 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="ReferredDocumentType4"/>
1529 <xs:element maxOccurs="1" minOccurs="0" name="Nb" type="Max35Text"/>
1530 <xs:element maxOccurs="1" minOccurs="0" name="RltdDt" type="ISODate"/>
1531 <xs:element maxOccurs="unbounded" minOccurs="0" name="LineDtls" type="DocumentLineInformation1"/>
1532 </xs:sequence>
1533 </xs:complexType>
1534 <xs:complexType name="ReferredDocumentType3Choice">
1535 <xs:choice>
1536 <xs:element name="Cd" type="DocumentType6Code"/>
1537 <xs:element name="Prtry" type="Max35Text"/>
1538 </xs:choice>
1539 </xs:complexType>
1540 <xs:complexType name="ReferredDocumentType4">
1541 <xs:sequence>
1542 <xs:element name="CdOrPrtry" type="ReferredDocumentType3Choice"/>
1543 <xs:element maxOccurs="1" minOccurs="0" name="Issr" type="Max35Text"/>
1544 </xs:sequence>
1545 </xs:complexType>
1546 <xs:complexType name="RemittanceAmount2">
1547 <xs:sequence>
1548 <xs:element maxOccurs="1" minOccurs="0" name="DuePyblAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1549 <xs:element maxOccurs="unbounded" minOccurs="0" name="DscntApldAmt" type="DiscountAmountAndType1"/>
1550 <xs:element maxOccurs="1" minOccurs="0" name="CdtNoteAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1551 <xs:element maxOccurs="unbounded" minOccurs="0" name="TaxAmt" type="TaxAmountAndType1"/>
1552 <xs:element maxOccurs="unbounded" minOccurs="0" name="AdjstmntAmtAndRsn" type="DocumentAdjustment1"/>
1553 <xs:element maxOccurs="1" minOccurs="0" name="RmtdAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1554 </xs:sequence>
1555 </xs:complexType>
1556 <xs:complexType name="RemittanceAmount3">
1557 <xs:sequence>
1558 <xs:element maxOccurs="1" minOccurs="0" name="DuePyblAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1559 <xs:element maxOccurs="unbounded" minOccurs="0" name="DscntApldAmt" type="DiscountAmountAndType1"/>
1560 <xs:element maxOccurs="1" minOccurs="0" name="CdtNoteAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1561 <xs:element maxOccurs="unbounded" minOccurs="0" name="TaxAmt" type="TaxAmountAndType1"/>
1562 <xs:element maxOccurs="unbounded" minOccurs="0" name="AdjstmntAmtAndRsn" type="DocumentAdjustment1"/>
1563 <xs:element maxOccurs="1" minOccurs="0" name="RmtdAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1564 </xs:sequence>
1565 </xs:complexType>
1566 <xs:complexType name="RemittanceInformation15">
1567 <xs:sequence>
1568 <xs:element maxOccurs="unbounded" minOccurs="0" name="Ustrd" type="Max140Text"/>
1569 <xs:element maxOccurs="unbounded" minOccurs="0" name="Strd" type="StructuredRemittanceInformation15"/>
1570 </xs:sequence>
1571 </xs:complexType>
1572 <xs:complexType name="RemittanceLocation4">
1573 <xs:sequence>
1574 <xs:element maxOccurs="1" minOccurs="0" name="RmtId" type="Max35Text"/>
1575 <xs:element maxOccurs="unbounded" minOccurs="0" name="RmtLctnDtls" type="RemittanceLocationDetails1"/>
1576 </xs:sequence>
1577 </xs:complexType>
1578 <xs:complexType name="RemittanceLocationDetails1">
1579 <xs:sequence>
1580 <xs:element name="Mtd" type="RemittanceLocationMethod2Code"/>
1581 <xs:element maxOccurs="1" minOccurs="0" name="ElctrncAdr" type="Max2048Text"/>
1582 <xs:element maxOccurs="1" minOccurs="0" name="PstlAdr" type="NameAndAddress10"/>
1583 </xs:sequence>
1584 </xs:complexType>
1585 <xs:simpleType name="RemittanceLocationMethod2Code">
1586 <xs:restriction base="xs:string">
1587 <xs:enumeration value="FAXI"/>
1588 <xs:enumeration value="EDIC"/>
1589 <xs:enumeration value="URID"/>
1590 <xs:enumeration value="EMAL"/>
1591 <xs:enumeration value="POST"/>
1592 <xs:enumeration value="SMSM"/>
1593 </xs:restriction>
1594 </xs:simpleType>
1595 <xs:complexType name="ReportEntry9">
1596 <xs:sequence>
1597 <xs:element maxOccurs="1" minOccurs="0" name="NtryRef" type="Max35Text"/>
1598 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
1599 <xs:element name="CdtDbtInd" type="CreditDebitCode"/>
1600 <xs:element maxOccurs="1" minOccurs="0" name="RvslInd" type="TrueFalseIndicator"/>
1601 <xs:element name="Sts" type="EntryStatus1Choice"/>
1602 <xs:element maxOccurs="1" minOccurs="0" name="BookgDt" type="DateAndDateTime2Choice"/>
1603 <xs:element maxOccurs="1" minOccurs="0" name="ValDt" type="DateAndDateTime2Choice"/>
1604 <xs:element maxOccurs="1" minOccurs="0" name="AcctSvcrRef" type="Max35Text"/>
1605 <xs:element maxOccurs="unbounded" minOccurs="0" name="Avlbty" type="CashAvailability1"/>
1606 <xs:element name="BkTxCd" type="BankTransactionCodeStructure4"/>
1607 <xs:element maxOccurs="1" minOccurs="0" name="ComssnWvrInd" type="YesNoIndicator"/>
1608 <xs:element maxOccurs="1" minOccurs="0" name="AddtlInfInd" type="MessageIdentification2"/>
1609 <xs:element maxOccurs="1" minOccurs="0" name="AmtDtls" type="AmountAndCurrencyExchange3"/>
1610 <xs:element maxOccurs="1" minOccurs="0" name="Chrgs" type="Charges4"/>
1611 <xs:element maxOccurs="1" minOccurs="0" name="TechInptChanl" type="TechnicalInputChannel1Choice"/>
1612 <xs:element maxOccurs="1" minOccurs="0" name="Intrst" type="TransactionInterest4"/>
1613 <xs:element maxOccurs="1" minOccurs="0" name="CardTx" type="CardEntry3"/>
1614 <xs:element maxOccurs="unbounded" minOccurs="0" name="NtryDtls" type="EntryDetails8"/>
1615 <xs:element maxOccurs="1" minOccurs="0" name="AddtlNtryInf" type="Max500Text"/>
1616 </xs:sequence>
1617 </xs:complexType>
1618 <xs:complexType name="ReportingSource1Choice">
1619 <xs:choice>
1620 <xs:element name="Cd" type="ExternalReportingSource1Code"/>
1621 <xs:element name="Prtry" type="Max35Text"/>
1622 </xs:choice>
1623 </xs:complexType>
1624 <xs:complexType name="ReturnReason5Choice">
1625 <xs:choice>
1626 <xs:element name="Cd" type="ExternalReturnReason1Code"/>
1627 <xs:element name="Prtry" type="Max35Text"/>
1628 </xs:choice>
1629 </xs:complexType>
1630 <xs:complexType name="SecuritiesAccount19">
1631 <xs:sequence>
1632 <xs:element name="Id" type="Max35Text"/>
1633 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="GenericIdentification30"/>
1634 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max70Text"/>
1635 </xs:sequence>
1636 </xs:complexType>
1637 <xs:complexType name="SecurityIdentification19">
1638 <xs:sequence>
1639 <xs:element maxOccurs="1" minOccurs="0" name="ISIN" type="ISINOct2015Identifier"/>
1640 <xs:element maxOccurs="unbounded" minOccurs="0" name="OthrId" type="OtherIdentification1"/>
1641 <xs:element maxOccurs="1" minOccurs="0" name="Desc" type="Max140Text"/>
1642 </xs:sequence>
1643 </xs:complexType>
1644 <xs:complexType name="SequenceRange1">
1645 <xs:sequence>
1646 <xs:element name="FrSeq" type="Max35Text"/>
1647 <xs:element name="ToSeq" type="Max35Text"/>
1648 </xs:sequence>
1649 </xs:complexType>
1650 <xs:complexType name="SequenceRange1Choice">
1651 <xs:choice>
1652 <xs:element name="FrSeq" type="Max35Text"/>
1653 <xs:element name="ToSeq" type="Max35Text"/>
1654 <xs:element maxOccurs="unbounded" minOccurs="1" name="FrToSeq" type="SequenceRange1"/>
1655 <xs:element maxOccurs="unbounded" minOccurs="1" name="EQSeq" type="Max35Text"/>
1656 <xs:element maxOccurs="unbounded" minOccurs="1" name="NEQSeq" type="Max35Text"/>
1657 </xs:choice>
1658 </xs:complexType>
1659 <xs:complexType name="StructuredRemittanceInformation15">
1660 <xs:sequence>
1661 <xs:element maxOccurs="unbounded" minOccurs="0" name="RfrdDocInf" type="ReferredDocumentInformation7"/>
1662 <xs:element maxOccurs="1" minOccurs="0" name="RfrdDocAmt" type="RemittanceAmount2"/>
1663 <xs:element maxOccurs="1" minOccurs="0" name="CdtrRefInf" type="CreditorReferenceInformation2"/>
1664 <xs:element maxOccurs="1" minOccurs="0" name="Invcr" type="PartyIdentification125"/>
1665 <xs:element maxOccurs="1" minOccurs="0" name="Invcee" type="PartyIdentification125"/>
1666 <xs:element maxOccurs="1" minOccurs="0" name="TaxRmt" type="TaxInformation7"/>
1667 <xs:element maxOccurs="1" minOccurs="0" name="GrnshmtRmt" type="Garnishment2"/>
1668 <xs:element maxOccurs="3" minOccurs="0" name="AddtlRmtInf" type="Max140Text"/>
1669 </xs:sequence>
1670 </xs:complexType>
1671 <xs:complexType name="SupplementaryData1">
1672 <xs:sequence>
1673 <xs:element maxOccurs="1" minOccurs="0" name="PlcAndNm" type="Max350Text"/>
1674 <xs:element name="Envlp" type="SupplementaryDataEnvelope1"/>
1675 </xs:sequence>
1676 </xs:complexType>
1677 <xs:complexType name="SupplementaryDataEnvelope1">
1678 <xs:sequence>
1679 <xs:any namespace="##any" processContents="lax"/>
1680 </xs:sequence>
1681 </xs:complexType>
1682 <xs:complexType name="TaxAmount2">
1683 <xs:sequence>
1684 <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="PercentageRate"/>
1685 <xs:element maxOccurs="1" minOccurs="0" name="TaxblBaseAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1686 <xs:element maxOccurs="1" minOccurs="0" name="TtlAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1687 <xs:element maxOccurs="unbounded" minOccurs="0" name="Dtls" type="TaxRecordDetails2"/>
1688 </xs:sequence>
1689 </xs:complexType>
1690 <xs:complexType name="TaxAmountAndType1">
1691 <xs:sequence>
1692 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="TaxAmountType1Choice"/>
1693 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
1694 </xs:sequence>
1695 </xs:complexType>
1696 <xs:complexType name="TaxAmountType1Choice">
1697 <xs:choice>
1698 <xs:element name="Cd" type="ExternalTaxAmountType1Code"/>
1699 <xs:element name="Prtry" type="Max35Text"/>
1700 </xs:choice>
1701 </xs:complexType>
1702 <xs:complexType name="TaxAuthorisation1">
1703 <xs:sequence>
1704 <xs:element maxOccurs="1" minOccurs="0" name="Titl" type="Max35Text"/>
1705 <xs:element maxOccurs="1" minOccurs="0" name="Nm" type="Max140Text"/>
1706 </xs:sequence>
1707 </xs:complexType>
1708 <xs:complexType name="TaxCharges2">
1709 <xs:sequence>
1710 <xs:element maxOccurs="1" minOccurs="0" name="Id" type="Max35Text"/>
1711 <xs:element maxOccurs="1" minOccurs="0" name="Rate" type="PercentageRate"/>
1712 <xs:element maxOccurs="1" minOccurs="0" name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
1713 </xs:sequence>
1714 </xs:complexType>
1715 <xs:complexType name="TaxInformation6">
1716 <xs:sequence>
1717 <xs:element maxOccurs="1" minOccurs="0" name="Cdtr" type="TaxParty1"/>
1718 <xs:element maxOccurs="1" minOccurs="0" name="Dbtr" type="TaxParty2"/>
1719 <xs:element maxOccurs="1" minOccurs="0" name="AdmstnZn" type="Max35Text"/>
1720 <xs:element maxOccurs="1" minOccurs="0" name="RefNb" type="Max140Text"/>
1721 <xs:element maxOccurs="1" minOccurs="0" name="Mtd" type="Max35Text"/>
1722 <xs:element maxOccurs="1" minOccurs="0" name="TtlTaxblBaseAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1723 <xs:element maxOccurs="1" minOccurs="0" name="TtlTaxAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1724 <xs:element maxOccurs="1" minOccurs="0" name="Dt" type="ISODate"/>
1725 <xs:element maxOccurs="1" minOccurs="0" name="SeqNb" type="Number"/>
1726 <xs:element maxOccurs="unbounded" minOccurs="0" name="Rcrd" type="TaxRecord2"/>
1727 </xs:sequence>
1728 </xs:complexType>
1729 <xs:complexType name="TaxInformation7">
1730 <xs:sequence>
1731 <xs:element maxOccurs="1" minOccurs="0" name="Cdtr" type="TaxParty1"/>
1732 <xs:element maxOccurs="1" minOccurs="0" name="Dbtr" type="TaxParty2"/>
1733 <xs:element maxOccurs="1" minOccurs="0" name="UltmtDbtr" type="TaxParty2"/>
1734 <xs:element maxOccurs="1" minOccurs="0" name="AdmstnZone" type="Max35Text"/>
1735 <xs:element maxOccurs="1" minOccurs="0" name="RefNb" type="Max140Text"/>
1736 <xs:element maxOccurs="1" minOccurs="0" name="Mtd" type="Max35Text"/>
1737 <xs:element maxOccurs="1" minOccurs="0" name="TtlTaxblBaseAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1738 <xs:element maxOccurs="1" minOccurs="0" name="TtlTaxAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1739 <xs:element maxOccurs="1" minOccurs="0" name="Dt" type="ISODate"/>
1740 <xs:element maxOccurs="1" minOccurs="0" name="SeqNb" type="Number"/>
1741 <xs:element maxOccurs="unbounded" minOccurs="0" name="Rcrd" type="TaxRecord2"/>
1742 </xs:sequence>
1743 </xs:complexType>
1744 <xs:complexType name="TaxParty1">
1745 <xs:sequence>
1746 <xs:element maxOccurs="1" minOccurs="0" name="TaxId" type="Max35Text"/>
1747 <xs:element maxOccurs="1" minOccurs="0" name="RegnId" type="Max35Text"/>
1748 <xs:element maxOccurs="1" minOccurs="0" name="TaxTp" type="Max35Text"/>
1749 </xs:sequence>
1750 </xs:complexType>
1751 <xs:complexType name="TaxParty2">
1752 <xs:sequence>
1753 <xs:element maxOccurs="1" minOccurs="0" name="TaxId" type="Max35Text"/>
1754 <xs:element maxOccurs="1" minOccurs="0" name="RegnId" type="Max35Text"/>
1755 <xs:element maxOccurs="1" minOccurs="0" name="TaxTp" type="Max35Text"/>
1756 <xs:element maxOccurs="1" minOccurs="0" name="Authstn" type="TaxAuthorisation1"/>
1757 </xs:sequence>
1758 </xs:complexType>
1759 <xs:complexType name="TaxPeriod2">
1760 <xs:sequence>
1761 <xs:element maxOccurs="1" minOccurs="0" name="Yr" type="ISODate"/>
1762 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="TaxRecordPeriod1Code"/>
1763 <xs:element maxOccurs="1" minOccurs="0" name="FrToDt" type="DatePeriod2"/>
1764 </xs:sequence>
1765 </xs:complexType>
1766 <xs:complexType name="TaxRecord2">
1767 <xs:sequence>
1768 <xs:element maxOccurs="1" minOccurs="0" name="Tp" type="Max35Text"/>
1769 <xs:element maxOccurs="1" minOccurs="0" name="Ctgy" type="Max35Text"/>
1770 <xs:element maxOccurs="1" minOccurs="0" name="CtgyDtls" type="Max35Text"/>
1771 <xs:element maxOccurs="1" minOccurs="0" name="DbtrSts" type="Max35Text"/>
1772 <xs:element maxOccurs="1" minOccurs="0" name="CertId" type="Max35Text"/>
1773 <xs:element maxOccurs="1" minOccurs="0" name="FrmsCd" type="Max35Text"/>
1774 <xs:element maxOccurs="1" minOccurs="0" name="Prd" type="TaxPeriod2"/>
1775 <xs:element maxOccurs="1" minOccurs="0" name="TaxAmt" type="TaxAmount2"/>
1776 <xs:element maxOccurs="1" minOccurs="0" name="AddtlInf" type="Max140Text"/>
1777 </xs:sequence>
1778 </xs:complexType>
1779 <xs:complexType name="TaxRecordDetails2">
1780 <xs:sequence>
1781 <xs:element maxOccurs="1" minOccurs="0" name="Prd" type="TaxPeriod2"/>
1782 <xs:element name="Amt" type="ActiveOrHistoricCurrencyAndAmount"/>
1783 </xs:sequence>
1784 </xs:complexType>
1785 <xs:simpleType name="TaxRecordPeriod1Code">
1786 <xs:restriction base="xs:string">
1787 <xs:enumeration value="MM01"/>
1788 <xs:enumeration value="MM02"/>
1789 <xs:enumeration value="MM03"/>
1790 <xs:enumeration value="MM04"/>
1791 <xs:enumeration value="MM05"/>
1792 <xs:enumeration value="MM06"/>
1793 <xs:enumeration value="MM07"/>
1794 <xs:enumeration value="MM08"/>
1795 <xs:enumeration value="MM09"/>
1796 <xs:enumeration value="MM10"/>
1797 <xs:enumeration value="MM11"/>
1798 <xs:enumeration value="MM12"/>
1799 <xs:enumeration value="QTR1"/>
1800 <xs:enumeration value="QTR2"/>
1801 <xs:enumeration value="QTR3"/>
1802 <xs:enumeration value="QTR4"/>
1803 <xs:enumeration value="HLF1"/>
1804 <xs:enumeration value="HLF2"/>
1805 </xs:restriction>
1806 </xs:simpleType>
1807 <xs:complexType name="TechnicalInputChannel1Choice">
1808 <xs:choice>
1809 <xs:element name="Cd" type="ExternalTechnicalInputChannel1Code"/>
1810 <xs:element name="Prtry" type="Max35Text"/>
1811 </xs:choice>
1812 </xs:complexType>
1813 <xs:complexType name="TotalTransactions6">
1814 <xs:sequence>
1815 <xs:element maxOccurs="1" minOccurs="0" name="TtlNtries" type="NumberAndSumOfTransactions4"/>
1816 <xs:element maxOccurs="1" minOccurs="0" name="TtlCdtNtries" type="NumberAndSumOfTransactions1"/>
1817 <xs:element maxOccurs="1" minOccurs="0" name="TtlDbtNtries" type="NumberAndSumOfTransactions1"/>
1818 <xs:element maxOccurs="unbounded" minOccurs="0" name="TtlNtriesPerBkTxCd" type="TotalsPerBankTransactionCode5"/>
1819 </xs:sequence>
1820 </xs:complexType>
1821 <xs:complexType name="TotalsPerBankTransactionCode5">
1822 <xs:sequence>
1823 <xs:element maxOccurs="1" minOccurs="0" name="NbOfNtries" type="Max15NumericText"/>
1824 <xs:element maxOccurs="1" minOccurs="0" name="Sum" type="DecimalNumber"/>
1825 <xs:element maxOccurs="1" minOccurs="0" name="TtlNetNtry" type="AmountAndDirection35"/>
1826 <xs:element maxOccurs="1" minOccurs="0" name="CdtNtries" type="NumberAndSumOfTransactions1"/>
1827 <xs:element maxOccurs="1" minOccurs="0" name="DbtNtries" type="NumberAndSumOfTransactions1"/>
1828 <xs:element maxOccurs="1" minOccurs="0" name="FcstInd" type="TrueFalseIndicator"/>
1829 <xs:element name="BkTxCd" type="BankTransactionCodeStructure4"/>
1830 <xs:element maxOccurs="unbounded" minOccurs="0" name="Avlbty" type="CashAvailability1"/>
1831 <xs:element maxOccurs="1" minOccurs="0" name="Dt" type="DateAndDateTime2Choice"/>
1832 </xs:sequence>
1833 </xs:complexType>
1834 <xs:complexType name="TrackData1">
1835 <xs:sequence>
1836 <xs:element maxOccurs="1" minOccurs="0" name="TrckNb" type="Exact1NumericText"/>
1837 <xs:element name="TrckVal" type="Max140Text"/>
1838 </xs:sequence>
1839 </xs:complexType>
1840 <xs:complexType name="TransactionAgents4">
1841 <xs:sequence>
1842 <xs:element maxOccurs="1" minOccurs="0" name="InstgAgt" type="BranchAndFinancialInstitutionIdentification5"/>
1843 <xs:element maxOccurs="1" minOccurs="0" name="InstdAgt" type="BranchAndFinancialInstitutionIdentification5"/>
1844 <xs:element maxOccurs="1" minOccurs="0" name="DbtrAgt" type="BranchAndFinancialInstitutionIdentification5"/>
1845 <xs:element maxOccurs="1" minOccurs="0" name="CdtrAgt" type="BranchAndFinancialInstitutionIdentification5"/>
1846 <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt1" type="BranchAndFinancialInstitutionIdentification5"/>
1847 <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt2" type="BranchAndFinancialInstitutionIdentification5"/>
1848 <xs:element maxOccurs="1" minOccurs="0" name="IntrmyAgt3" type="BranchAndFinancialInstitutionIdentification5"/>
1849 <xs:element maxOccurs="1" minOccurs="0" name="RcvgAgt" type="BranchAndFinancialInstitutionIdentification5"/>
1850 <xs:element maxOccurs="1" minOccurs="0" name="DlvrgAgt" type="BranchAndFinancialInstitutionIdentification5"/>
1851 <xs:element maxOccurs="1" minOccurs="0" name="IssgAgt" type="BranchAndFinancialInstitutionIdentification5"/>
1852 <xs:element maxOccurs="1" minOccurs="0" name="SttlmPlc" type="BranchAndFinancialInstitutionIdentification5"/>
1853 <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryAgent3"/>
1854 </xs:sequence>
1855 </xs:complexType>
1856 <xs:simpleType name="TransactionChannel1Code">
1857 <xs:restriction base="xs:string">
1858 <xs:enumeration value="MAIL"/>
1859 <xs:enumeration value="TLPH"/>
1860 <xs:enumeration value="ECOM"/>
1861 <xs:enumeration value="TVPY"/>
1862 </xs:restriction>
1863 </xs:simpleType>
1864 <xs:complexType name="TransactionDates3">
1865 <xs:sequence>
1866 <xs:element maxOccurs="1" minOccurs="0" name="AccptncDtTm" type="ISODateTime"/>
1867 <xs:element maxOccurs="1" minOccurs="0" name="TradActvtyCtrctlSttlmDt" type="ISODate"/>
1868 <xs:element maxOccurs="1" minOccurs="0" name="TradDt" type="ISODate"/>
1869 <xs:element maxOccurs="1" minOccurs="0" name="IntrBkSttlmDt" type="ISODate"/>
1870 <xs:element maxOccurs="1" minOccurs="0" name="StartDt" type="ISODate"/>
1871 <xs:element maxOccurs="1" minOccurs="0" name="EndDt" type="ISODate"/>
1872 <xs:element maxOccurs="1" minOccurs="0" name="TxDtTm" type="ISODateTime"/>
1873 <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryDate3"/>
1874 </xs:sequence>
1875 </xs:complexType>
1876 <xs:simpleType name="TransactionEnvironment1Code">
1877 <xs:restriction base="xs:string">
1878 <xs:enumeration value="MERC"/>
1879 <xs:enumeration value="PRIV"/>
1880 <xs:enumeration value="PUBL"/>
1881 </xs:restriction>
1882 </xs:simpleType>
1883 <xs:complexType name="TransactionIdentifier1">
1884 <xs:sequence>
1885 <xs:element name="TxDtTm" type="ISODateTime"/>
1886 <xs:element name="TxRef" type="Max35Text"/>
1887 </xs:sequence>
1888 </xs:complexType>
1889 <xs:complexType name="TransactionInterest4">
1890 <xs:sequence>
1891 <xs:element maxOccurs="1" minOccurs="0" name="TtlIntrstAndTaxAmt" type="ActiveOrHistoricCurrencyAndAmount"/>
1892 <xs:element maxOccurs="unbounded" minOccurs="0" name="Rcrd" type="InterestRecord2"/>
1893 </xs:sequence>
1894 </xs:complexType>
1895 <xs:complexType name="TransactionParties4">
1896 <xs:sequence>
1897 <xs:element maxOccurs="1" minOccurs="0" name="InitgPty" type="Party35Choice"/>
1898 <xs:element maxOccurs="1" minOccurs="0" name="Dbtr" type="Party35Choice"/>
1899 <xs:element maxOccurs="1" minOccurs="0" name="DbtrAcct" type="CashAccount24"/>
1900 <xs:element maxOccurs="1" minOccurs="0" name="UltmtDbtr" type="Party35Choice"/>
1901 <xs:element maxOccurs="1" minOccurs="0" name="Cdtr" type="Party35Choice"/>
1902 <xs:element maxOccurs="1" minOccurs="0" name="CdtrAcct" type="CashAccount24"/>
1903 <xs:element maxOccurs="1" minOccurs="0" name="UltmtCdtr" type="Party35Choice"/>
1904 <xs:element maxOccurs="1" minOccurs="0" name="TradgPty" type="Party35Choice"/>
1905 <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryParty4"/>
1906 </xs:sequence>
1907 </xs:complexType>
1908 <xs:complexType name="TransactionPrice4Choice">
1909 <xs:choice>
1910 <xs:element name="DealPric" type="Price7"/>
1911 <xs:element maxOccurs="unbounded" minOccurs="1" name="Prtry" type="ProprietaryPrice2"/>
1912 </xs:choice>
1913 </xs:complexType>
1914 <xs:complexType name="TransactionQuantities2Choice">
1915 <xs:choice>
1916 <xs:element name="Qty" type="FinancialInstrumentQuantityChoice"/>
1917 <xs:element name="OrgnlAndCurFaceAmt" type="OriginalAndCurrentQuantities1"/>
1918 <xs:element name="Prtry" type="ProprietaryQuantity1"/>
1919 </xs:choice>
1920 </xs:complexType>
1921 <xs:complexType name="TransactionReferences3">
1922 <xs:sequence>
1923 <xs:element maxOccurs="1" minOccurs="0" name="MsgId" type="Max35Text"/>
1924 <xs:element maxOccurs="1" minOccurs="0" name="AcctSvcrRef" type="Max35Text"/>
1925 <xs:element maxOccurs="1" minOccurs="0" name="PmtInfId" type="Max35Text"/>
1926 <xs:element maxOccurs="1" minOccurs="0" name="InstrId" type="Max35Text"/>
1927 <xs:element maxOccurs="1" minOccurs="0" name="EndToEndId" type="Max35Text"/>
1928 <xs:element maxOccurs="1" minOccurs="0" name="TxId" type="Max35Text"/>
1929 <xs:element maxOccurs="1" minOccurs="0" name="MndtId" type="Max35Text"/>
1930 <xs:element maxOccurs="1" minOccurs="0" name="ChqNb" type="Max35Text"/>
1931 <xs:element maxOccurs="1" minOccurs="0" name="ClrSysRef" type="Max35Text"/>
1932 <xs:element maxOccurs="1" minOccurs="0" name="AcctOwnrTxId" type="Max35Text"/>
1933 <xs:element maxOccurs="1" minOccurs="0" name="AcctSvcrTxId" type="Max35Text"/>
1934 <xs:element maxOccurs="1" minOccurs="0" name="MktInfrstrctrTxId" type="Max35Text"/>
1935 <xs:element maxOccurs="1" minOccurs="0" name="PrcgId" type="Max35Text"/>
1936 <xs:element maxOccurs="unbounded" minOccurs="0" name="Prtry" type="ProprietaryReference1"/>
1937 </xs:sequence>
1938 </xs:complexType>
1939 <xs:simpleType name="TrueFalseIndicator">
1940 <xs:restriction base="xs:boolean"/>
1941 </xs:simpleType>
1942 <xs:simpleType name="UnitOfMeasure1Code">
1943 <xs:restriction base="xs:string">
1944 <xs:enumeration value="PIEC"/>
1945 <xs:enumeration value="TONS"/>
1946 <xs:enumeration value="FOOT"/>
1947 <xs:enumeration value="GBGA"/>
1948 <xs:enumeration value="USGA"/>
1949 <xs:enumeration value="GRAM"/>
1950 <xs:enumeration value="INCH"/>
1951 <xs:enumeration value="KILO"/>
1952 <xs:enumeration value="PUND"/>
1953 <xs:enumeration value="METR"/>
1954 <xs:enumeration value="CMET"/>
1955 <xs:enumeration value="MMET"/>
1956 <xs:enumeration value="LITR"/>
1957 <xs:enumeration value="CELI"/>
1958 <xs:enumeration value="MILI"/>
1959 <xs:enumeration value="GBOU"/>
1960 <xs:enumeration value="USOU"/>
1961 <xs:enumeration value="GBQA"/>
1962 <xs:enumeration value="USQA"/>
1963 <xs:enumeration value="GBPI"/>
1964 <xs:enumeration value="USPI"/>
1965 <xs:enumeration value="MILE"/>
1966 <xs:enumeration value="KMET"/>
1967 <xs:enumeration value="YARD"/>
1968 <xs:enumeration value="SQKI"/>
1969 <xs:enumeration value="HECT"/>
1970 <xs:enumeration value="ARES"/>
1971 <xs:enumeration value="SMET"/>
1972 <xs:enumeration value="SCMT"/>
1973 <xs:enumeration value="SMIL"/>
1974 <xs:enumeration value="SQMI"/>
1975 <xs:enumeration value="SQYA"/>
1976 <xs:enumeration value="SQFO"/>
1977 <xs:enumeration value="SQIN"/>
1978 <xs:enumeration value="ACRE"/>
1979 </xs:restriction>
1980 </xs:simpleType>
1981 <xs:simpleType name="UserInterface2Code">
1982 <xs:restriction base="xs:string">
1983 <xs:enumeration value="MDSP"/>
1984 <xs:enumeration value="CDSP"/>
1985 </xs:restriction>
1986 </xs:simpleType>
1987 <xs:simpleType name="YesNoIndicator">
1988 <xs:restriction base="xs:boolean"/>
1989 </xs:simpleType>
1990 <xs:complexType name="YieldedOrValueType1Choice">
1991 <xs:choice>
1992 <xs:element name="Yldd" type="YesNoIndicator"/>
1993 <xs:element name="ValTp" type="PriceValueType1Code"/>
1994 </xs:choice>
1995 </xs:complexType>
1996 </xs:schema>
13041304 <DE name="canmaxentries" type="JN"/>
13051305 <DE name="canallaccounts" type="JN"/>
13061306 </DEGdef>
1307
1308 <DEGdef id="ParKUmsZeitCamt">
1309 <DE name="timerange" type="Num" maxsize="4"/>
1310 <DE name="canmaxentries" type="JN"/>
1311 <DE name="canallaccounts" type="JN"/>
1312 <DE name="suppformats" type="AN" maxsize="256" maxnum="99" />
1313 </DEGdef>
1314
1315 <DEGdef id="CamtBooked">
1316 <!-- Die erlaubte Maximalanzahl ist nicht spezifiziert. Da steht nur "n" als Anzahl -->
1317 <DE name="message" type="Bin" minnum="1" maxnum="999" />
1318 </DEGdef>
1319
1320 <DEGdef id="CamtFormats">
1321 <!--
1322 Wir koennten zwar alle unterstuetzten Formate mitsenden.
1323 Einige Banken (u.a. die Sparkassen) kommen damit aber nicht klar.
1324 Deswegen schicken wir immer genau eine Version mit.
1325 Und zwar genau die hoechste, die die Bank in den GV-spezifischen
1326 BPD mitgeteilt hat
1327
1328 -->
1329 <DE name="suppformat" type="AN" minsize="0" maxsize="256" minnum="1" maxnum="99"/>
1330 </DEGdef>
13071331
13081332 <DEGdef id="ParLast">
13091333 <DE name="maxusage" type="Num" maxsize="2"/>
41314155 <value path="SegHead.version">6</value>
41324156 </SEGdef>
41334157
4134 <SEGdef id="KUmsNewSEPA7"> <!-- 3.0 -->
4158 <SEGdef id="KUmsNew7"> <!-- 3.0 -->
41354159 <DEG type="SegHeadUser" name="SegHead"/>
41364160 <DEG type="KTVInt" name="KTV"/>
41374161 <DE name="allaccounts" type="JN"/>
41414165 <value path="SegHead.code">HKKAN</value>
41424166 <value path="SegHead.version">7</value>
41434167 </SEGdef>
4144 <SEGdef id="KUmsNewSEPARes7">
4168 <SEGdef id="KUmsNewRes7">
41454169 <DEG type="SegHeadInst" name="SegHead"/>
41464170 <DE name="booked" type="Bin" maxsize="0"/>
41474171 <DE name="notbooked" type="Bin" maxsize="0" minnum="0"/>
41494173 <value path="SegHead.code">HIKAN</value>
41504174 <value path="SegHead.version">7</value>
41514175 </SEGdef>
4152 <SEGdef id="KUmsNewSEPAPar7">
4153 &GVP2;
4154 <DEG type="ParKUmsNew2" name="ParKUmsNewSEPA"/>
4176 <SEGdef id="KUmsNewPar7">
4177 &GVP2;
4178 <DEG type="ParKUmsNew2" name="ParKUmsNew"/>
41554179
41564180 &SecClassValids;
41574181
42454269 <value path="SegHead.version">6</value>
42464270 </SEGdef>
42474271
4248 <SEGdef id="KUmsZeitSEPA7"> <!-- 3.0 -->
4272 <SEGdef id="KUmsZeit7"> <!-- 3.0 -->
42494273 <DEG type="SegHeadUser" name="SegHead"/>
42504274 <DEG type="KTVInt" name="KTV"/>
42514275 <DE name="allaccounts" type="JN"/>
42574281 <value path="SegHead.code">HKKAZ</value>
42584282 <value path="SegHead.version">7</value>
42594283 </SEGdef>
4260 <SEGdef id="KUmsZeitSEPARes7">
4284 <SEGdef id="KUmsZeitRes7">
42614285 <DEG type="SegHeadInst" name="SegHead"/>
42624286 <DE name="booked" type="Bin" maxsize="0"/>
42634287 <DE name="notbooked" type="Bin" maxsize="0" minnum="0"/>
42654289 <value path="SegHead.code">HIKAZ</value>
42664290 <value path="SegHead.version">7</value>
42674291 </SEGdef>
4268 <SEGdef id="KUmsZeitSEPAPar7">
4269 &GVP2;
4270 <DEG type="ParKUmsZeit2" name="ParKUmsZeitSEPA"/>
4292 <SEGdef id="KUmsZeitPar7">
4293 &GVP2;
4294 <DEG type="ParKUmsZeit2" name="ParKUmsZeit"/>
42714295
42724296 &SecClassValids;
42734297
42744298 <value path="SegHead.code">HIKAZS</value>
42754299 <value path="SegHead.version">7</value>
42764300 </SEGdef>
4301
4302
4303 <SEGdef id="KUmsZeitCamt1">
4304 <DEG name="SegHead" type="SegHeadUser"/>
4305 <DEG name="KTV" type="KTVInt" />
4306 <DEG name="formats" type="CamtFormats" />
4307 <DE name="allaccounts" type="JN"/>
4308 <DE name="startdate" type="Date" minnum="0"/>
4309 <DE name="enddate" type="Date" minnum="0"/>
4310 <DE name="maxentries" type="Num" maxsize="4" minnum="0"/>
4311 <DE name="offset" type="AN" maxsize="35" minnum="0"/>
4312
4313 <value path="SegHead.code">HKCAZ</value>
4314 <value path="SegHead.version">1</value>
4315 </SEGdef>
4316 <SEGdef id="KUmsZeitCamtRes1">
4317 <DEG type="SegHeadInst" name="SegHead"/>
4318 <DEG type="KTVInt" name="KTV"/>
4319 <DE name="format" type="AN" maxsize="256" />
4320 <DEG name="booked" type="CamtBooked" />
4321 <DE name="notbooked" type="Bin" maxsize="0" minnum="0"/>
4322
4323 <value path="SegHead.code">HICAZ</value>
4324 <value path="SegHead.version">1</value>
4325 </SEGdef>
4326 <SEGdef id="KUmsZeitCamtPar1">
4327 &GVP2;
4328 <DEG type="ParKUmsZeitCamt" name="ParKUmsZeitCamt"/>
4329
4330 &SecClassValids;
4331
4332 <value path="SegHead.code">HICAZS</value>
4333 <value path="SegHead.version">1</value>
4334 </SEGdef>
4335
42774336
42784337 <SEGdef id="Last2"> <!-- 2.01 -->
42794338 &SingleInlandUser1;
73247383 <SEG type="KUmsNew4" minnum="0"/>
73257384 <SEG type="KUmsNew5" minnum="0"/>
73267385 <SEG type="KUmsNew6" minnum="0"/>
7327 <SEG type="KUmsNewSEPA7" minnum="0"/>
7386 <SEG type="KUmsNew7" minnum="0"/>
73287387 <SEG type="KUmsZeit4" minnum="0"/>
73297388 <SEG type="KUmsZeit5" minnum="0"/>
73307389 <SEG type="KUmsZeit6" minnum="0"/>
7331 <SEG type="KUmsZeitSEPA7" minnum="0"/>
7390 <SEG type="KUmsZeit7" minnum="0"/>
7391 <SEG type="KUmsZeitCamt1" minnum="0"/>
73327392 <SEG type="Last2" minnum="0"/>
73337393 <SEG type="Last3" minnum="0"/>
73347394 <SEG type="Last4" minnum="0"/>
74817541 <SEG type="KUmsNewRes4" minnum="0"/>
74827542 <SEG type="KUmsNewRes5" minnum="0"/>
74837543 <SEG type="KUmsNewRes6" minnum="0"/>
7484 <SEG type="KUmsNewSEPARes7" minnum="0"/>
7544 <SEG type="KUmsNewRes7" minnum="0"/>
74857545 <SEG type="KUmsZeitRes4" minnum="0"/>
74867546 <SEG type="KUmsZeitRes5" minnum="0"/>
74877547 <SEG type="KUmsZeitRes6" minnum="0"/>
7488 <SEG type="KUmsZeitSEPARes7" minnum="0"/>
7548 <SEG type="KUmsZeitRes7" minnum="0"/>
7549 <SEG type="KUmsZeitCamtRes1" minnum="0"/>
74897550 <SEG type="LastSEPARes1" minnum="0"/>
74907551 <SEG type="LastCOR1SEPARes1" minnum="0"/>
74917552 <SEG type="LastB2BSEPARes1" minnum="0"/>
76167677 <SEG type="KUmsNewPar4" minnum="0"/>
76177678 <SEG type="KUmsNewPar5" minnum="0"/>
76187679 <SEG type="KUmsNewPar6" minnum="0"/>
7619 <SEG type="KUmsNewSEPAPar7" minnum="0"/>
7680 <SEG type="KUmsNewPar7" minnum="0"/>
76207681 <SEG type="KUmsZeitPar4" minnum="0"/>
76217682 <SEG type="KUmsZeitPar5" minnum="0"/>
76227683 <SEG type="KUmsZeitPar6" minnum="0"/>
7623 <SEG type="KUmsZeitSEPAPar7" minnum="0"/>
7684 <SEG type="KUmsZeitPar7" minnum="0"/>
7685 <SEG type="KUmsZeitCamtPar1" minnum="0"/>
76247686 <SEG type="LastPar2" minnum="0"/>
76257687 <SEG type="LastPar3" minnum="0"/>
76267688 <SEG type="LastPar4" minnum="0"/>
1616 import java.net.URL;
1717 import java.util.Locale;
1818 import java.util.Properties;
19 import java.util.concurrent.atomic.AtomicBoolean;
1920
2021 import org.junit.AfterClass;
2122 import org.junit.BeforeClass;
2728 */
2829 public abstract class AbstractTest
2930 {
31 private final static AtomicBoolean initialized = new AtomicBoolean(false);
32
33 /**
34 * System-Property, mit dem festgelegt werden kann, ob die Tests ausgefuehrt
35 * werden sollen, die eine Onlineverbindung (z.Bsp. zur Bank) erfordern.
36 */
37 public final static String SYSPROP_ONLINE = "test.online";
38
39 /**
40 * System-Property, mit dem festgelegt werden kann, ob die Tests ausgefuehrt
41 * werden sollen, die Kartenleser und Chipkarte erfordern.
42 */
43 public final static String SYSPROP_CHIPCARD = "test.chipcard";
44
3045 /**
3146 * Liefert den Inhalt der angegebenen Datei.
3247 * @param name Dateiname.
103118 * @throws Exception
104119 */
105120 @BeforeClass
106 public static void beforeClass() throws Exception
121 public static void beforeClassAbstractTest() throws Exception
107122 {
108123 Locale.setDefault(Locale.GERMANY);
109124 Properties props = new Properties();
110125 props.put("log.loglevel.default", "" + HBCIUtils.LOG_DEBUG2);
126 props.putAll(System.getProperties());
111127 HBCIUtils.init(props, new HBCICallbackConsole());
128 initialized.set(true);
112129 }
113
130
114131 /**
115132 * Beendet HBCI4Java
116133 * @throws Exception
117134 */
118135 @AfterClass
119 public static void afterClass() throws Exception
136 public static void afterClassAbstractTest() throws Exception
120137 {
121 HBCIUtils.done();
138 if (initialized.get())
139 HBCIUtils.done();
122140 }
123141 }
00 package org.kapott.hbci4java;
11
2 import java.io.BufferedInputStream;
3 import java.io.BufferedOutputStream;
4 import java.io.BufferedReader;
25 import java.io.File;
36 import java.io.FileInputStream;
7 import java.io.FileOutputStream;
48 import java.io.InputStream;
9 import java.io.InputStreamReader;
10 import java.io.PrintStream;
511 import java.util.HashMap;
6 import java.util.Iterator;
712 import java.util.Map;
813 import java.util.Properties;
914
1015 import org.junit.After;
11 import org.junit.AfterClass;
16 import org.junit.Assert;
17 import org.junit.Assume;
1218 import org.junit.Before;
1319 import org.junit.BeforeClass;
14 import org.junit.Test;
1520 import org.kapott.hbci.GV.HBCIJob;
1621 import org.kapott.hbci.GV_Result.HBCIJobResult;
1722 import org.kapott.hbci.callback.HBCICallback;
18 import org.kapott.hbci.callback.HBCICallbackConsole;
23 import org.kapott.hbci.callback.HBCICallbackIOStreams;
24 import org.kapott.hbci.manager.BankInfo;
1925 import org.kapott.hbci.manager.HBCIHandler;
2026 import org.kapott.hbci.manager.HBCIUtils;
27 import org.kapott.hbci.manager.HBCIVersion;
2128 import org.kapott.hbci.passport.AbstractHBCIPassport;
2229 import org.kapott.hbci.passport.HBCIPassport;
23 import org.kapott.hbci.passport.HBCIPassportPinTan;
30 import org.kapott.hbci.passport.HBCIPassportPinTanMemory;
2431 import org.kapott.hbci.status.HBCIExecStatus;
2532
26 import junit.framework.Assert;
27
28
29
30 public class AbstractTestGV extends AbstractTest {
31 private final static int LOGLEVEL = 5;
32 protected final static Map<Integer,String> settings = new HashMap<Integer,String>()
33 {{
34 put(HBCICallback.NEED_COUNTRY, "DE");
35 put(HBCICallback.NEED_FILTER, "Base64");
36 put(HBCICallback.NEED_PASSPHRASE_LOAD, "test");
37 put(HBCICallback.NEED_PASSPHRASE_SAVE, "test");
38 put(HBCICallback.NEED_PORT, "443");
39 put(HBCICallback.NEED_CONNECTION, ""); // ignorieren
40 put(HBCICallback.CLOSE_CONNECTION, ""); // ignorieren
41 }};
42
43 protected static File dir = null;
44
45 protected HBCIPassportPinTan passport = null;
46 protected HBCIHandler handler = null;
47 protected Properties params = new Properties();
48
49
50 @Test
51 public void test() {
52 System.out.println("---------Erstelle Job");
53 HBCIJob job = handler.newJob(getJobname());
54
55 int source_acc_idx = Integer.parseInt(params.getProperty("source_account_idx"));
56 job.setParam("src",passport.getAccounts()[source_acc_idx]);
57
58 System.out.println("---------Für Job zur Queue");
59 job.addToQueue();
60
61
62 HBCIExecStatus ret = handler.execute();
63 HBCIJobResult res = job.getJobResult();
64 System.out.println("----------Result: "+res.toString());
65
66 Assert.assertEquals("Job Result ist nicht OK!", true, res.isOK());
67 }
68
33 /**
34 * Abstrakte Basis-Klasse fuer Unit-Tests, bei denen tatsaechlich Geschaeftsvorfaelle ausgefuehrt werden.
35 */
36 public abstract class AbstractTestGV
37 {
38 private final Map<Integer,String> callbackValues = new HashMap<Integer,String>();
39 private Properties params = null;
40 private HBCIPassportPinTanMemory passport = null;
41 private HBCIHandler handler = null;
42 private PrintStream out = null;
43
44 /**
45 * Deaktiviert den Test, wenn das System-Property nicht auf "true" steht.
46 * @throws Exception
47 */
48 @BeforeClass
49 public static void beforeClass() throws Exception
50 {
51 Assume.assumeTrue(Boolean.getBoolean(AbstractTest.SYSPROP_ONLINE));
52 }
53
6954 /**
7055 * Erzeugt das Passport-Objekt.
7156 * @throws Exception
7358 @Before
7459 public void beforeTest() throws Exception
7560 {
76 // Testdatei im Arbeitsverzeichnis - sollte in der Run-Konfiguration auf ein eigenes Verzeichnis zeigen
77 String workDir = System.getProperty("user.dir");
78 InputStream in = new FileInputStream(workDir+"/"+getTestfilename());
79 params.load(in);
80
81 settings.put(HBCICallback.NEED_BLZ, params.getProperty("blz"));
82 settings.put(HBCICallback.NEED_CUSTOMERID, params.getProperty("customerid"));
83 settings.put(HBCICallback.NEED_HOST, params.getProperty("host"));
84 settings.put(HBCICallback.NEED_PT_PIN, params.getProperty("pin"));
85 settings.put(HBCICallback.NEED_USERID, params.getProperty("userid"));
86 settings.put(HBCICallback.NEED_PT_SECMECH, params.getProperty("secmech"));
61 this.params = new Properties();
62
63 ////////////////////////////////////////////////////////////////////////
64 // Checken, ob die Messages in einer Logdatei oder auf STDERR landen sollen
65 final String logfile = System.getProperty("log");
66 out = logfile != null ? new PrintStream(new BufferedOutputStream(new FileOutputStream(logfile))) : System.out;
67 ////////////////////////////////////////////////////////////////////////
68
69
70
71 String configfile = System.getProperty("config",System.getProperty("user.dir") + File.separator + this.getClass().getSimpleName() + ".properties");
72 File file = new File(configfile);
73
74 if (file.exists() && file.canRead())
75 {
76 InputStream is = null;
77 try
78 {
79 System.out.println("loading " + file);
80 is = new BufferedInputStream(new FileInputStream(file));
81 this.params.load(is);
82 }
83 finally
84 {
85 if (is != null)
86 is.close();
87 }
88 }
89
90 // Presets fuer den Callback
91 this.callbackValues.put(HBCICallback.NEED_COUNTRY, params.getProperty("country",System.getProperty("country","DE")));
92 this.callbackValues.put(HBCICallback.NEED_CUSTOMERID, params.getProperty("customerid",System.getProperty("customerid")));
93 this.callbackValues.put(HBCICallback.NEED_USERID, params.getProperty("userid",System.getProperty("useris")));
94 this.callbackValues.put(HBCICallback.NEED_PT_PIN, params.getProperty("pin",System.getProperty("pin")));
95 this.callbackValues.put(HBCICallback.NEED_PT_SECMECH, params.getProperty("secmech",System.getProperty("secmech")));
96
97 final String blz = params.getProperty("blz",System.getProperty("blz"));
98 this.callbackValues.put(HBCICallback.NEED_BLZ, blz);
99 this.callbackValues.put(HBCICallback.NEED_PORT, params.getProperty("port",System.getProperty("port","443")));
100 this.callbackValues.put(HBCICallback.NEED_FILTER, params.getProperty("filter",System.getProperty("filter","Base64")));
101 this.callbackValues.put(HBCICallback.NEED_CONNECTION, "");
102 this.callbackValues.put(HBCICallback.CLOSE_CONNECTION, "");
103
87104
88 Properties props = new Properties();
89 props.put("log.loglevel.default",Integer.toString(LOGLEVEL));
90
91 props.put("client.passport.PinTan.filename",dir.getAbsolutePath() + File.separator + System.currentTimeMillis() + ".pt");
92 props.put("client.passport.PinTan.init","1");
93 props.put("client.passport.PinTan.checkcert","0"); // Check der SSL-Zertifikate abschalten - brauchen wir nicht fuer den Test
94
95 // falls noetig
96 props.put("client.passport.PinTan.proxy",""); // host:port
97 props.put("client.passport.PinTan.proxyuser","");
98 props.put("client.passport.PinTan.proxypass","");
99
100 HBCICallback callback = new HBCICallbackConsole()
101 {
102 public void callback(HBCIPassport passport, int reason, String msg, int datatype, StringBuffer retData)
103 {
104 // haben wir einen vordefinierten Wert?
105 String value = settings.get(reason);
106 if (value != null)
107 {
108 retData.replace(0,retData.length(),value);
109 return;
110 }
111
112 // Ne, dann an Super-Klasse delegieren
113 super.callback(passport, reason, msg, datatype, retData);
114 }
115 };
116
117 HBCIUtils.init(props,callback);
118 this.passport = (HBCIPassportPinTan) AbstractHBCIPassport.getInstance("PinTan");
119
120 // init handler
121 this.handler = new HBCIHandler(params.getProperty("hbciversion"),passport);
122 }
123
124 /**
125 * Schliesst das Passport-Objekt und loescht die Passport-Datei.
105 // Initialisierungsparameter fuer HBCI4Java selbst
106 Properties props = new Properties();
107 props.put("log.loglevel.default",this.params.getProperty("log.loglevel.default",System.getProperty("log.loglevel.default",Integer.toString(HBCIUtils.LOG_DEBUG))));
108 props.put("client.passport.PinTan.init","1");
109 props.put("client.passport.PinTan.checkcert",this.params.getProperty("client.passport.PinTan.checkcert","1"));
110 props.put("client.passport.PinTan.proxy", this.params.getProperty("client.passport.PinTan.proxy",""));
111 props.put("client.passport.PinTan.proxyuser",this.params.getProperty("client.passport.PinTan.proxyuser",""));
112 props.put("client.passport.PinTan.proxypass",this.params.getProperty("client.passport.PinTan.proxypass",""));
113
114 // Callback initialisieren.
115 // Wenn wir passende Antworten in den Presets haben, koennen wir sie direkt
116 // beantworten
117 final HBCICallback callback = new HBCICallbackIOStreams(out,new BufferedReader(new InputStreamReader(System.in)))
118 {
119 /**
120 * @see org.kapott.hbci.callback.HBCICallbackIOStreams#callback(org.kapott.hbci.passport.HBCIPassport, int, java.lang.String, int, java.lang.StringBuffer)
121 */
122 @Override
123 public void callback(HBCIPassport passport, int reason, String msg, int datatype, StringBuffer retData) {
124
125 // haben wir einen vordefinierten Wert?
126 String value = callbackValues.get(reason);
127 if (value != null)
128 {
129 retData.replace(0,retData.length(),value);
130 return;
131 }
132
133 // Ne, dann an Super-Klasse delegieren.
134 // Wenn ein Logfile angegeben ist, muessen wir auf der Console trotzdem noch die Moeglichkeit
135 // zur Interaktion geben. Daher setzen wir in dem Fall den Ausgabestrom kurz auf System.out
136 try
137 {
138 if (logfile != null)
139 setOutStream(System.out);
140
141 super.callback(passport, reason, msg, datatype, retData);
142 }
143 finally
144 {
145 // Wieder zuruecksetzen
146 if (logfile != null)
147 setOutStream(out);
148 }
149 }
150 };
151
152 // HBCI4Java initialisieren
153 HBCIUtils.init(props,callback);
154
155 ////////////////////////////////////////////////////////////////////////
156 // Nach dem Initialisieren von HBCI4Java noch checken, ob wir den
157 // Host selbst ermitteln koennen
158 String host = params.getProperty("host");
159 if (blz != null && host == null)
160 {
161 BankInfo bank = HBCIUtils.getBankInfo(blz);
162 if (bank != null)
163 host = bank.getPinTanAddress();
164 }
165 this.callbackValues.put(HBCICallback.NEED_HOST,host);
166 //
167 ////////////////////////////////////////////////////////////////////////
168
169 this.passport = (HBCIPassportPinTanMemory) AbstractHBCIPassport.getInstance("PinTanMemory");
170
171 // init handler
172 this.handler = new HBCIHandler(this.params.getProperty("hbciversion",HBCIVersion.HBCI_300.getId()),this.passport);
173 }
174
175 /**
176 * Fuehrt den Geschaeftsvorfall aus.
177 * @param e der Geschaeftsvorfall.
178 */
179 protected final void execute(Execution e)
180 {
181 HBCIJob job = this.handler.newJob(e.getJobname());
182 e.configure(job,this.passport,this.params);
183
184 job.addToQueue();
185
186 e.testStatus(this.handler.execute());
187 e.testResult(job.getJobResult());
188 }
189
190 /**
191 * Schliesst das Passport-Objekt.
126192 * @throws Exception
127193 */
128194 @After
132198 {
133199 if (this.passport != null)
134200 this.passport.close();
135
136 File file = new File(this.passport.getFileName());
137 if (!file.delete())
138 throw new Exception("unable to delete " + file);
139201 }
140202 finally
141203 {
147209 finally
148210 {
149211 HBCIUtils.done();
212 this.handler = null;
213 this.passport = null;
214 this.params = null;
215 out.flush();
216 out.close();
150217 }
151218 }
152219 }
153220
154221 /**
155 * Erzeugt das Passport-Verzeichnis.
156 * @throws Exception
157 */
158 @BeforeClass
159 public static void beforeClass() throws Exception
160 {
161 String tmpDir = System.getProperty("java.io.tmpdir","/tmp");
162 dir = new File(tmpDir,"hbci4java-junit-" + System.currentTimeMillis());
163 dir.mkdirs();
164 }
165
166 /**
167 * Loescht das Passport-Verzeichnis.
168 * @throws Exception
169 */
170 @AfterClass
171 public static void afterClass() throws Exception
172 {
173 if (!dir.delete())
174 throw new Exception("unable to delete " + dir);
175 }
176
177 protected String getJobname()
178 {
179 Assert.assertEquals("Jobname not defined", true, false);
180 return "";
181 }
182
183 protected String getTestfilename()
184 {
185 return getJobname()+".properties";
186 }
187
188 private void dump(String name, Properties props)
189 {
190 System.out.println("--- BEGIN: " + name + " -----");
191 Iterator keys = props.keySet().iterator();
192 while (keys.hasNext())
193 {
194 Object key = keys.next();
195 System.out.println(key + ": " + props.get(key));
196 }
197 System.out.println("--- END: " + name + " -----");
198 }
199
222 * Kapselt die eigentliche Job-Ausfuehrung.
223 */
224 public abstract class Execution
225 {
226 /**
227 * Liefert den Namen des auszufuehrenden Geschaeftsvorfalls.
228 * Die Basis-Implementierung liefert den Parameter "job" des Test.
229 * @return der Name des auszufuehrenden Geschaeftsvorfalls.
230 */
231 public String getJobname()
232 {
233 return params.getProperty("job");
234 }
235
236 /**
237 * Konfiguriert den Job.
238 * Kann von abgeleiteten Klassen ueberschrieben werden, wenn der Job parametrisiert werden muss.
239 * Die Basis-Implementierung ist leer.
240 * @param job der auszufuehrende Job.
241 * @param passport der Passport.
242 * @param params die Parameter des Tests.
243 */
244 public void configure(HBCIJob job, HBCIPassport passport, Properties params)
245 {
246 }
247
248 /**
249 * Kann von abgeleiteten Klassen implementiert werden, um Tests am Ausfuehrungsstatus durchzufuehren.
250 * Die Basis-Implementierung testet per {@link HBCIExecStatus#isOK()}.
251 * @param status der Ausfuehrungsstatus.
252 */
253 public void testStatus(HBCIExecStatus status)
254 {
255 if (!status.isOK())
256 System.err.println(status.getErrorString());
257 Assert.assertTrue("Ausfuehrungsstatus nicht OK",status.isOK());
258 }
259
260 /**
261 * Kann von abgeleiteten Klassen implementiert werden, um Tests Job-Ergebnis durchzufuehren.
262 * Die Basis-Implementierung testet per {@link HBCIJobResult#isOK()}.
263 * @param result das Job-Ergebnis.
264 */
265 public void testResult(HBCIJobResult result)
266 {
267 Assert.assertTrue("Job-Status nicht OK",result.isOK());
268 }
269 }
270
200271 }
+0
-1
src/test/java/org/kapott/hbci4java/bpd/bpd-allowedgv.txt less more
0 HNHBK:1:3+000000001881+220+1653639025+1+1653639025:1'HNSHK:2:3+900+2+1+1+2::1241978588+0+1:20120316:210842+1:999:1+6:10:16+280::1:S:0:0'HIRMG:3:2+0010::Nachricht entgegengenommen'HIRMS:4:2:4+3920::Auftraege werden nur gemaess Zwei-Schritt-Verfahren (ITAN) angenommen.:900'HIBPA:5:2:4+1+280:33020000+akf Bank Wuppertal+23+1+220'HISHV:6:2:4+N+RDH:1'HIKAZS:7:5:4+1+1+60:N:N'HIUEBS:8:4:4+1+1+14:51:53:54:67:69'HISUBS:9:5:4+1+1+9999:14:51:53:54'HISLAS:10:5:4+1+1+9999:14:04:05'HISALS:11:5:4+1+1'HIAOMS:12:1:4+1+1+J:756;24;23;24;64;15000,;EUR:208;24;23;24;64;15000,;EUR:246;24;23;24;64;15000,;EUR:440;24;23;24;64;15000,;EUR:616;24;23;24;64;15000,;EUR:752;24;23;24;64;15000,;EUR:705;24;23;24;64;15000,;EUR:203;24;23;24;64;15000,;EUR:348;24;23;24;64;15000,;EUR:056;24;23;24;64;15000,;EUR:372;24;23;24;64;15000,;EUR:380;24;23;24;64;15000,;EUR:442;24;23;24;64;15000,;EUR:528;24;23;24;64;15000,;EUR:040;24;23;24;64;15000,;EUR:620;24;23;24;64;15000,;EUR:724;24;23;24;64;15000,;EUR:826;24;23;24;64;15000,;EUR:474;24;23;24;64;15000,;EUR:352;24;23;24;64;15000,;EUR:300;24;23;24;64;15000,;EUR:250;24;23;24;64;15000,;EUR:638;24;23;24;64;15000,;EUR:254;24;23;24;64;15000,;EUR:292;24;23;24;64;15000,;EUR:312;24;23;24;64;15000,;EUR:470;24;23;24;64;15000,;EUR:196;24;23;24;64;15000,;EUR:233;24;23;24;64;15000,;EUR:428;24;23;24;64;15000,;EUR:276;24;23;24;64;15000,;EUR:578;24;23;24;64;15000,;EUR'HILASS:13:4:4+1+1+14:04:05'HIPINS:14:1:4+1+1+1+5:6:6:BENUTZER:KUNDEN:HKUEB:J:HKSUB:J:HKKAZ:N:HKSLA:J:HKTUE:J:HKTUA:J:HKTUB:N:HKTUL:J:HKAOM:J:HKTAN:N'HITANS:15:2:4+1+1+1+N:J:1:900:1:ITAN:ITAN:6:1:TAN:6:1:N:1:0:N:N:N'HIUPA:16:2:4+XXXX+0+0'HIUPD:17:4:4+10023340::280:33020000+XXXX+EUR+Jan Kahl++Jan Kahl++HKKAZ:1+HKUEB:1+HKSUB:1+HKSAL:1+HKTAN:1'HISYN:18:3:5+1241978588'HNSHA:19:1+2++XXXXX'HNHBS:20:1+1'
+0
-1
src/test/java/org/kapott/hbci4java/bpd/bpd-allowedgv2.txt less more
0 HNHBK:1:3+000000006876+300+266706756+1+266706756:1'HIRMG:2:2+3060::Teilweise liegen Warnungen/Hinweise vor:'HIRMS:3:2:4+3050::BPD nicht aktuell. Aktuelle Version folgt.:+3920::Zugelassene 2-Schrittverfahren für den Benutzer:902:901'HIBPA:4:3:4+45+280:20050550+Hamburger Sparkasse+0+1+2:201:210:220:300+150'HIKOM:5:4:4+280:20050550+1+2:online-banking.haspa.de:::+3:https?://ssl2.haspa.de/OnlineBankingFinTS/pintan:::'HISHV:6:3:4+N+RDH:1'HIUEBS:7:4:4+800+1+14:51:53:54:56'HIUEBS:8:3:4+800+1+14:51:53:54:56'HIUEBS:9:2:4+800+1+14:51:53:54:56'HITUBS:10:2:4+800+1+N'HITUBS:11:1:4+800+1+N'HICDES:12:1:4+800+1+1+4:0:360:0102030612:01020304050607080910111213141516171819202122232425262728293031::'HICDNS:13:1:4+800+1+1+0:0:360:J:J:J:J:N:N:N:N:N:0102030612:01020304050607080910111213141516171819202122232425262728293031::'HICDBS:14:1:4+800+1+1+N'HICDLS:15:1:4+800+1+1+0:360:N:J'HIDABS:16:3:4+800+1'HIDABS:17:2:4+800+1'HIDABS:18:1:4+800+1'HILASS:19:4:4+800+1+14:04:05'HILASS:20:3:4+800+1+14:04:05'HILASS:21:2:4+800+1+14:04:05'HISUBS:22:5:4+800+1+0:14:51:53:54:56'HISUBS:23:4:4+800+1+0:14:51:53:54:56'HISUBS:24:3:4+800+1+0:14:51:53:54:56'HISLAS:25:5:4+800+1+0:14:04:05'HISLAS:26:4:4+800+1+0:14:04:05'HISLAS:27:3:4+800+1+0:14:04:05'HIKAZS:28:7:4+800+1+1+90:N:N'HIKAZS:29:6:4+800+1+1+90:N:N'HIKAZS:30:5:4+800+1+90:N:N'HIKAZS:31:4:4+800+1+90:N'HISALS:32:7:4+800+1+1'HISALS:33:6:4+800+1+1'HISALS:34:5:4+800+1'HISALS:35:4:4+800+1'HISALS:36:3:4+800+1'HIFGBS:37:3:4+800+1'HIFGBS:38:2:4+800+1'HIWPDS:39:5:4+800+1+N:N:N'HIWPDS:40:4:4+800+1+N:N:N'HIWPDS:41:3:4+800+1+N'HIWPDS:42:2:4+800+1+N'HIKDMS:43:4:4+800+1+2048'HIKDMS:44:3:4+800+1+2048'HIKDMS:45:2:4+800+1+2048'HIGAMS:46:3:4+800+1+2048'HIGAMS:47:2:4+800+1+2048'HIGAMS:48:1:4+800+1+2048'HIKIAS:49:3:4+800+1'HIKIAS:50:2:4+800+1'HIKIAS:51:1:4+800+1'HIINFS:52:3:4+800+1'HIINFS:53:2:4+800+1'HIINFS:54:1:4+800+1'HIWPOS:55:3:4+800+1+1+0:N:0:N:J:OTCO;XBER;XBRE;XDUS;XFRA;XHAM;XHAN;XMUN;XSTU;XETR;XLON;XPAR;XISM;XNYS;XAMS;ZCH;XXXX:::0,:EUR:MAKT;LMTO;STOP:NOHE:GDAY;GTMO'HIWPOS:56:2:4+800+1+0:N:0:N:J:OTCO;XBER;XBRE;XDUS;XFRA;XHAM;XHAN;XMUN;XSTU;XETR;XLON;XPAR;XISM;XNYS;XAMS;ZCH;XXXX:2;3;4;5:Kassa;variabler Handel;nur Auktion;variabel (XETRA):::0,:EUR:MAKT;LMTO;STOP;SLOS:NOHE:GDAY;GTMO'HIWPOS:57:1:4+800+1+0:J:OTCO;XBER;XBRE;XDUS;XFRA;XHAM;XHAN;XMUN;XSTU;XETR;XLON;XPAR;XISM;XNYS;XAMS;ZCH;XXXX:2;3;4;5:Kassa;variabler Handel;nur Auktion;variabel (XETRA):30:0,:EUR:MAKT:LMTO:STOP:SLOS:NOHE:GDAY:GTMO'HIWOAS:58:2:4+800+1+N:MAKT;LMTO;STOP;SLOS:J:N:GDAY;GTMO:N:0:J:N:N:0,:EUR'HIWOAS:59:1:4+800+1+N:J:N:N:N:N:J:0,:EUR'HIWPSS:60:2:4+800+1+J:N'HIWPSS:61:1:4+800+1+J'HIWSOS:62:3:4+800+1+1+J:61:'HIWSOS:63:2:4+800+1+J:61:'HIWSOS:64:1:4+800+1+J:61:'HIOANS:65:3:4+800+1+1+J:61:'HIOANS:66:2:4+800+1+1+J:61:'HIOANS:67:1:4+800+1+J:61'HIWPRS:68:2:4+800+1+J:N:N:N::festverzinsliche WP:Fonds:deutsche Fonds:ausländische Fonds:Aktien:deutsche Aktien:ausländische Aktien:Optionsscheine'HIWPRS:69:1:4+800+1+J:N:N:N::festverzinsliche WP:Fonds:deutsche Fonds:ausländische Fonds:Aktien:deutsche Aktien:ausländische Aktien:Optionsscheine'HIWSDS:70:2:4+800+1+J:A;Dax Inland:B;Inland sonstige'HIWSDS:71:1:4+800+1'HISPAS:72:3:4+800+1+1+J:N:N:N:0:urn?:iso?:std?:iso?:20022?:tech?:xsd?:pain.001.002.03:urn?:iso?:std?:iso?:20022?:tech?:xsd?:pain.008.002.02'HISPAS:73:2:4+800+1+1+J:N:N:N:urn?:iso?:std?:iso?:20022?:tech?:xsd?:pain.001.002.03:urn?:iso?:std?:iso?:20022?:tech?:xsd?:pain.008.002.02'HISPAS:74:1:4+800+1+1+J:N:N:urn?:iso?:std?:iso?:20022?:tech?:xsd?:pain.001.002.03:urn?:iso?:std?:iso?:20022?:tech?:xsd?:pain.008.002.02'HICCSS:75:1:4+800+1+1'HIDSES:76:1:4+800+1+1+3:14:6:14'HIBSES:77:1:4+800+1+1+2:14:2:14'HIDMES:78:1:4+800+1+1+3:14:6:14:0:J:N'HIBMES:79:1:4+800+1+1+2:14:2:14:0:J:N'HICCMS:80:1:4+800+1+1+0:J:N'HICSES:81:1:4+800+1+1+0:360'HICSAS:82:1:4+800+1+1+0:360'HICSBS:83:1:4+800+1+1+N:N'HICSLS:84:1:4+800+1+1+J'HIDSBS:85:1:4+800+1+1+N:N:56'HIDSWS:86:1:4+800+1+1+J::'HIUMBS:87:1:4+800+1+14:51'HILSWS:88:2:4+800+1+1+::05'DINTRS:89:2:4+800+1+1+N'DIKNDS:90:2:4+800+1+1+N:'HIEKAS:91:3:4+800+1+1+J:J:N:3'HIEKAS:92:2:4+800+1+1+J:J:N:3'HIEKAS:93:1:4+800+1+1+J:J:N:3'HIQTGS:94:1:4+800+1+1'HIFRDS:95:1:4+800+1'HILWBS:96:2:4+800+1+1+N:56:N'HILWBS:97:1:4+800+1+1+N:56'HITABS:98:3:4+800+1+1'HITABS:99:2:4+800+1+1'HITABS:100:1:4+800+1+1'HITAUS:101:2:4+800+1+1+N:N:N:J:1:2'HITAUS:102:1:4+800+1+1+N:N:N'HITSYS:103:1:4+800+1+1+J:N'HIMTRS:104:1:4+800+1+1+N'HIMTFS:105:1:4+800+1+1'HIMTAS:106:1:4+800+1+1+N'HITMLS:107:1:4+800+1+1'HIPAES:108:1:4+1+1+1'HITAZS:109:1:4+800+1+1'HIPINS:110:1:4+1+1+1+5:12:6:Einwahlkontonummer::HKFGB:N:HKDAB:N:HKTUB:N:HKUEB:J:HKLAS:J:HKSUB:J:HKSLA:J:HKKAZ:N:HKSAL:N:HKWSD:N:HKWPR:N:HKWPD:N:HKWPO:J:HKWOA:J:HKWPS:J:HKWSO:N:HKOAN:N:HKWSD:N:HKWPR:N:HKKDM:J:HKGAM:N:HKPAE:J:HKTLA:J:HKTLF:J:HKTSP:N:HKTAZ:N:HKUMB:J:HKLSW:J:DKNTR:N:DKKND:J:HKTAN:N:HKSPA:N:HKCCS:J:HKCCM:J:HKDSE:J:HKBSE:J:HKDME:J:HKBME:J:HKCSE:J:HKCSB:N:HKCSA:J:HKCSL:J:HKCDE:J:HKCDB:N:HKCDN:J:HKCDL:J:HKDSB:N:HKDSW:J:HKEKA:N:HKQTG:N:HKFRD:N:HKLWB:N:HKTAB:N:HKTAU:N:HKTSY:N:HKMTR:J:HKMTF:N:HKMTA:J:HKTML:N'HITANS:111:4:4+1+1+1+N:N:1:900:1:iTAN:::iTAN:6:1:TAN-Nummer:2:1:N:4:0:N:N:N:N:N:00:0:1:903:1:mTAN:mobileTAN:1.3.2:smsTAN:6:1:Ihre TAN:999:0:N:4:0:N:N:J:J:J:00:0:1:901:1:HHD1.3.2UC:HHDUC:1.3.2:chipTAN:6:1:Ihre TAN:999:0:N:4:0:N:N:J:J:J:00:0:1:902:1:HHD1.3.2OPT:HHDOPT1:1.3.2:chipTAN comfort:6:1:Ihre TAN:999:0:N:4:0:N:N:J:J:J:00:0:1'HITANS:112:3:4+1+1+1+N:N:1:900:1:iTAN:iTAN:6:1:TAN-Nummer:2:1:N:4:0:N:N:N:00:0:1:903:1:mTAN:smsTAN:6:1:Ihre TAN:999:0:N:4:0:N:J:J:00:0:1:901:1:HHD1.3.2UC:chipTAN:6:1:Ihre TAN:999:0:N:4:0:N:J:J:00:0:1:902:1:HHD1.3.2OPT:chipTAN comfort:6:1:Ihre TAN:999:0:N:4:0:N:J:J:00:0:1'HITANS:113:2:4+1+1+1+N:N:1:900:1:iTAN:iTAN:6:1:TAN-Nummer:2:1:N:4:0:N:N:N'HITANS:114:1:4+1+1+1+N:N:1:0:900:1:iTAN:iTAN:6:1:TAN-Nummer:2:1:N:N'HIUPA:115:4:4+XXXXXXXXXX+42+0'HIUPD:116:6:4+XXXXXXXXXX::280:20050550++XXXXXXXXXX+0+EUR+Muster, Alexander++Giro++HKSAK:1::::+HKISA:1::::+HKSSP:1::::+HKDAB:1::::+HKTUB:1::::+HKUEB:1::::+HKSUB:1::::+HKKAZ:1::::+HKSAL:1::::+HKKDM:1::::+HKPAE:1::::+HKTLA:1::::+HKTLF:1::::+HKTSP:1::::+HKTAZ:1::::+HKLSW:1::::+HKTAN:1::::+HKSPA:1::::+HKCCS:1::::+HKCCM:1::::+HKCSE:1::::+HKCSB:1::::+HKCSA:1::::+HKCSL:1::::+HKCDE:1::::+HKCDB:1::::+HKCDN:1::::+HKCDL:1::::+HKDSB:1::::+HKDSW:1::::+HKEKA:1::::+HKQTG:1::::+HKFRD:1::::+HKLWB:1::::+HKTAB:1::::+HKTAU:1::::+HKTSY:1::::+HKMTR:1::::+HKMTF:1::::+HKMTA:1::::+HKTML:1::::'HIUPD:117:6:4+1000000000::280:20050550++XXXXXXXXXX+6+EUR+Muster, Alexander++Cashkonto++HKSAK:1::::+HKISA:1::::+HKSSP:1::::+HKKAZ:1::::+HKSAL:1::::+HKKDM:1::::+HKPAE:1::::+HKTLA:1::::+HKTLF:1::::+HKTSP:1::::+HKTAZ:1::::+HKTAN:1::::+HKSPA:1::::+HKCCS:1::::+HKEKA:1::::+HKQTG:1::::+HKFRD:1::::+HKTAB:1::::+HKTAU:1::::+HKTSY:1::::+HKMTR:1::::+HKMTF:1::::+HKMTA:1::::+HKTML:1::::'HNHBS:118:1+1'
+0
-90
src/test/java/org/kapott/hbci4java/bpd/bpd-formatted.txt less more
0 HNHBK:1:3+000000006469+220+00471H2J1921a72WpL5YDu61el13D+1+00471H2J1921a72WpL5YDu61el13D:1'
1 HIRMG:2:2+9050::Nachricht teilweise fehlerhaft.'
2 HIRMS:3:2:3+3050::BPD nicht mehr aktuell. Aktuelle Version folgt.+9010::Verarbeitung nicht möglich'
3 HIBPA:4:2:3+19+280:86050200+SPARKASSE MULDENTAL+1+1+220+0'
4 HIKOM:5:3:3+280:86050200+1+2:62.181.134.126+3:hbci.finanzit.com/cgi/hbcipt.cgi'
5 HISHV:6:2:3+N+DDV:1'
6 DIKADS:7:1:3+1+1+N:J:N:1'
7 DIKNDS:8:1:3+1+1+N'
8 DILSWS:9:1:3+1+1+::04:05'
9 DINTRS:10:1:3+1+1'
10 DIPAES:11:1:3+1+1'
11 DIPINS:12:1:3+1+1+DKKAD:N:DKKND:J:DKLSW:J:DKNTR:N:DKPAE:J:DKPSA:J:DKQTG:N:DKSVI:N:DKSVK:N:DKTAZ:N:DKTLA:N:DKTLF:J:DKTSP:N:HKAOM:J:HKAZK:N:HKDAA:N:HKDAB:N:HKDAE:J:HKDAL:J:HKDAN:J:HKDAS:J:HKEKA:N:HKFRD:N:HKKAS:N:HKKAZ:N:HKKDM:J:HKKIF:N:HKMTA:J:HKMTF:N:HKMTR:J:HKPAE:J:HKPPD:J:HKPSA:J:HKPSP:N:HKQTG:N:HKSAL:N:HKSLA:J:HKSLB:N:HKSLE:J:HKSLL:J:HKSTP:J:HKSUB:J:HKTAB:N:HKTAN:N:HKTAU:J:HKTAZ:N:HKTLA:N:HKTLF:J:HKTML:N:HKTSB:N:HKTSE:J:HKTSL:J:HKTSP:N:HKTSY:N:HKTUA:J:HKTUB:N:HKTUE:J:HKTUL:J:HKUEB:J:HKUMB:J:HKWFO:J:HKWOA:J:HKWPD:N:HKWPO:J:HKWPS:J:HKWSD:N:HKWSO:N:IKSEP:J'
12 DIPSAS:13:1:3+1+1'
13 DIQTGS:14:1:3+1+1'
14 DISVIS:15:1:3+1+1'
15 DISVKS:16:1:3+1+1'
16 DITAZS:17:1:3+1+1'
17 DITLAS:18:1:3+1+1'
18 DITLFS:19:1:3+1+1+J'
19 DITSPS:20:1:3+1+1+N'
20 HIAOMS:21:1:3+1+1+J:040;140;140;140;140;50000,;EUR:056;140;140;140;140;50000,;EUR:100;140;140;140;140;50000,;EUR:756;140;140;140;140;50000,;EUR:196;140;140;140;140;50000,;EUR:203;140;140;140;140;50000,;EUR:280;140;140;140;140;50000,;EUR:208;140;140;140;140;50000,;EUR:233;140;140;140;140;50000,;EUR:724;140;140;140;140;50000,;EUR:246;140;140;140;140;50000,;EUR:250;140;140;140;140;50000,;EUR:826;140;140;140;140;50000,;EUR:254;140;140;140;140;50000,;EUR:292;140;140;140;140;50000,;EUR:312;140;140;140;140;50000,;EUR:300;140;140;140;140;50000,;EUR:348;140;140;140;140;50000,;EUR:372;140;140;140;140;50000,;EUR:352;140;140;140;140;50000,;EUR:380;140;140;140;140;50000,;EUR:438;140;140;140;140;50000,;EUR:440;140;140;140;140;50000,;EUR:442;140;140;140;140;50000,;EUR:428;140;140;140;140;50000,;EUR:474;140;140;140;140;50000,;EUR:470;140;140;140;140;50000,;EUR:528;140;140;140;140;50000,;EUR:578;140;140;140;140;50000,;EUR:616;140;140;140;140;50000,;EUR:620;140;140;140;140;50000,;EUR:638;140;140;140;140;50000,;EUR:642;140;140;140;140;50000,;EUR:752;140;140;140;140;50000,;EUR:705;140;140;140;140;50000,;EUR:703;140;140;140;140;50000,;EUR'
21 HIAZKS:22:1:3+1+1'
22 HIDAAS:23:1:3+1+1'
23 HIDAAS:24:2:3+1+1'
24 HIDABS:25:1:3+1+1'
25 HIDABS:26:2:3+1+1'
26 HIDAES:27:2:3+1+1+13:1:360:0102030612:010203040506070809101112131415161718192021222324252627282930:::52'
27 HIDAES:28:3:3+1+1+13:1:360:0102030612:010203040506070809101112131415161718192021222324252627282930:::52'
28 HIDALS:29:1:3+1+1+1:360:J'
29 HIDALS:30:2:3+1+1+1:360:J'
30 HIDANS:31:2:3+1+1+9:1:360:J:J:J:N:J:N:N:N:N:N:13:0102030612:010203040506070809101112131415161718192021222324252627282930:::52'
31 HIDANS:32:3:3+1+1+9:1:360:J:J:J:N:J:N:N:N:N:N:13:0102030612:010203040506070809101112131415161718192021222324252627282930:::52'
32 HIDASS:33:1:3+1+1+9:1:360:1:N'
33 HIDASS:34:2:3+1+1+9:1:360:1:N:N'
34 HIEKAS:35:2:3+1+1+1+N:J:N:1'
35 HIFRDS:36:1:3+1+1'
36 HIKASS:37:1:3+1+1+11;SpkCard m. Ersatzauto m. Chip:12;SpkCard m. Ersatzauto o. Chip:13;SpkCard o. Ersatzauto m. Chip:14;SpkCard o. Ersatzauto o. Chip:15;SpkCard f. Minderj. m. Chip:16;SpkCard f. Minderj. o. Chip:17;S-Kundenkarte m. Chip:18;S-Kundenkarte o. Chip:8;Hauskarte ohne Chip:7;Hauskarte mit Chip:1;ec-Karte ohne Chip:5;S-Card 1 ohne Chip:6;S-Card 2 ohne Chip:2;ec-Card mit Chip:3;S-Card 1 mit Chip:4;S-Card 2 mit Chip'
37 HIKAZS:38:4:3+1+1+30:N'
38 HIKDMS:39:2:3+1+1+320'
39 HIKDMS:40:3:3+1+1+320'
40 HIKDMS:41:4:3+1+1+320'
41 HIKIFS:42:1:3+1+1'
42 HIMTAS:43:1:3+1+1+1+N'
43 HIMTFS:44:1:3+1+1+1'
44 HIMTRS:45:1:3+1+1+1+N'
45 HIPAES:46:1:3+1+1+1'
46 HIPINS:47:1:3+1+1+1+:::::DKKAD:N:DKKND:J:DKLSW:J:DKNTR:N:DKPAE:J:DKPSA:J:DKQTG:N:DKSVI:N:DKSVK:N:DKTAZ:N:DKTLA:N:DKTLF:J:DKTSP:N:HKAOM:J:HKAZK:N:HKDAA:N:HKDAB:N:HKDAE:J:HKDAL:J:HKDAN:J:HKDAS:J:HKEKA:N:HKFRD:N:HKKAS:N:HKKAZ:N:HKKDM:J:HKKIF:N:HKMTA:J:HKMTF:N:HKMTR:J:HKPAE:J:HKPPD:J:HKPSA:J:HKPSP:N:HKQTG:N:HKSAL:N:HKSLA:J:HKSLB:N:HKSLE:J:HKSLL:J:HKSTP:J:HKSUB:J:HKTAB:N:HKTAN:N:HKTAU:J:HKTAZ:N:HKTLA:N:HKTLF:J:HKTML:N:HKTSB:N:HKTSE:J:HKTSL:J:HKTSP:N:HKTSY:N:HKTUA:J:HKTUB:N:HKTUE:J:HKTUL:J:HKUEB:J:HKUMB:J:HKWFO:J:HKWOA:J:HKWPD:N:HKWPO:J:HKWPS:J:HKWSD:N:HKWSO:N:IKSEP:J'
47 HIPPDS:48:1:3+1+1+1+1:Telekom:Xtra Cash & Go:N:::15;30;50:2:Vodafone:CallYa:N:::15;25;50:3:E-Plus:Free & Easy:N:::15;20;30:4:O2:LOOP:N:::15;20;30:5:congstar:Prepaid:N:::15;30;50:6:blau:Prepaid:N:::15;20;30:8:o.tel.o:o.tel.o prepaid:N:::9;19;29'
48 HIPSAS:49:1:3+1+1+1'
49 HIPSPS:50:1:3+1+1+1'
50 HIQTGS:51:1:3+1+1+1'
51 HISALS:52:4:3+1+1'
52 HISLAS:53:3:3+1+1+999:14:04:05'
53 HISLAS:54:4:3+1+1+999:14:04:05'
54 HISLBS:55:3:3+1+1+1+N'
55 HISLES:56:3:3+1+1+1+1:15:99:14:04:05'
56 HISLLS:57:3:3+1+1+1'
57 HISTPS:58:1:3+1+1+1+1:AT:BE:BG:CH:CY:CZ:DE:DK:EE:ES:FI:FR:GB:GF:GI:GP:GR:HU:IE:IS:IT:LI:LT:LU:LV:MQ:MT:NL:NO:PL:PT:RE:RO:SE:SI:SK'
58 HISTPS:59:3:3+1+1+1+2006:1:50000,:12500,:AT:BE:BG:CH:CY:CZ:DE:DK:EE:ES:FI:FR:GB:GF:GI:GP:GR:HU:IE:IS:IT:LI:LT:LU:LV:MQ:MT:NL:NO:PL:PT:RE:RO:SE:SI:SK'
59 HISUBS:60:3:3+1+1+999:14:51:53:54:56'
60 HISUBS:61:4:3+1+1+999:14:51:53:54:56'
61 HITABS:62:2:3+1+1+1'
62 HITANS:63:1:3+1+1+1+J:N:0:0:996:2:iTAN:Indiziertes TAN-Verfahren:6:1:TAN-Nummer:10:1:J:N:997:2:smsTAN:smsTAN-Verfahren:6:1:TAN-Nummer:46:1:J:N:995:2:chipTAN:chipTAN-Verfahren:6:1:TAN-Nummer:180:1:J:N'
63 HITAUS:64:2:3+1+1+1+N:J:N:J:11:13:15:17'
64 HITAZS:65:1:3+1+1+1'
65 HITLAS:66:1:3+1+1+1'
66 HITLFS:67:1:3+1+1+1+2'
67 HITMLS:68:1:3+1+1+1'
68 HITSBS:69:3:3+1+1+1+N'
69 HITSES:70:3:3+1+1+1+1:15:99:14:51:56:53:54'
70 HITSLS:71:3:3+1+1+1'
71 HITSPS:72:1:3+1+1+1+1'
72 HITSYS:73:1:3+1+1+1+N:N'
73 HITUAS:74:2:3+1+1+1:90:14:51'
74 HITUBS:75:1:3+1+1+N'
75 HITUES:76:2:3+1+1+1:90:14:51'
76 HITULS:77:1:3+1+1'
77 HIUEBS:78:2:3+1+1+14:51'
78 HIUEBS:79:3:3+1+1+14:51'
79 HIUMBS:80:1:3+1+1+14:51'
80 HIWFOS:81:1:3+1+1+N:0:N:N:J'
81 HIWOAS:82:2:3+1+1+N:MAKT;LMTO;STOP;SLOS:J:J:GDAY;GTMO;GTHD:J:0:N:N:N:0,'
82 HIWPDS:83:3:3+1+1+J'
83 HIWPDS:84:5:3+1+1+J:N:N'
84 HIWPOS:85:2:3+1+1+0:N:0:N:N:XBER;XDUS;XFRA;XHAM;XHAN;XMUN;XSTU;XETR;XAMS;XBRU;XDUB;XHEL;XLIS;XLUX;XMAD;XMIL;XOSL;XPAR;XSTO;XWBO;XXXX;OTCO;XBKK;XHKG;XJKT;XJSE;XCSE;XLON;XASX;XNYS;XSES;XTKS;XTSE;XNZE;XSWX;XNGO;XVTX;XPRA;XATH;XBKK;XBAR;XBRN;XTSX;XBUD;XCHI;XISM;XFKA;XKSY;XIST;XKLS;XLJU;XMEX;XASE;XFJO;XPHL;XLAT;XNAS;XOTC;XSAP;XOME;XSUR;XWAR;DIFX;XSWB;XGAT:::90:4:0,::MAKT;LMTO;STOP;SLOS:FIKI;NOHE:GDAY;GTMO;GTHD;IOCA'
85 HIWPSS:86:2:3+1+1+J:N'
86 HIWSDS:87:2:3+1+1+J:0;keine Aussage:1;geringes Risiko:4;mittleres Risiko:7;hohes Risiko:9;besonderer Beratungbedarf'
87 HIWSOS:88:1:3+1+1+N:60:2:3:5:6:7:8:9:10'
88 IISEPS:89:1:3+1+1+1'
89 HNHBS:90:1+1'
+0
-1
src/test/java/org/kapott/hbci4java/bpd/bpd-raw.txt less more
0 HNHBK:1:3+000000006469+220+00471H2J1921a72WpL5YDu61el13D+1+00471H2J1921a72WpL5YDu61el13D:1'HIRMG:2:2+9050::Nachricht teilweise fehlerhaft.'HIRMS:3:2:3+3050::BPD nicht mehr aktuell. Aktuelle Version folgt.+9010::Verarbeitung nicht möglich'HIBPA:4:2:3+19+280:86050200+SPARKASSE MULDENTAL+1+1+220+0'HIKOM:5:3:3+280:86050200+1+2:62.181.134.126+3:hbci.finanzit.com/cgi/hbcipt.cgi'HISHV:6:2:3+N+DDV:1'DIKADS:7:1:3+1+1+N:J:N:1'DIKNDS:8:1:3+1+1+N'DILSWS:9:1:3+1+1+::04:05'DINTRS:10:1:3+1+1'DIPAES:11:1:3+1+1'DIPINS:12:1:3+1+1+DKKAD:N:DKKND:J:DKLSW:J:DKNTR:N:DKPAE:J:DKPSA:J:DKQTG:N:DKSVI:N:DKSVK:N:DKTAZ:N:DKTLA:N:DKTLF:J:DKTSP:N:HKAOM:J:HKAZK:N:HKDAA:N:HKDAB:N:HKDAE:J:HKDAL:J:HKDAN:J:HKDAS:J:HKEKA:N:HKFRD:N:HKKAS:N:HKKAZ:N:HKKDM:J:HKKIF:N:HKMTA:J:HKMTF:N:HKMTR:J:HKPAE:J:HKPPD:J:HKPSA:J:HKPSP:N:HKQTG:N:HKSAL:N:HKSLA:J:HKSLB:N:HKSLE:J:HKSLL:J:HKSTP:J:HKSUB:J:HKTAB:N:HKTAN:N:HKTAU:J:HKTAZ:N:HKTLA:N:HKTLF:J:HKTML:N:HKTSB:N:HKTSE:J:HKTSL:J:HKTSP:N:HKTSY:N:HKTUA:J:HKTUB:N:HKTUE:J:HKTUL:J:HKUEB:J:HKUMB:J:HKWFO:J:HKWOA:J:HKWPD:N:HKWPO:J:HKWPS:J:HKWSD:N:HKWSO:N:IKSEP:J'DIPSAS:13:1:3+1+1'DIQTGS:14:1:3+1+1'DISVIS:15:1:3+1+1'DISVKS:16:1:3+1+1'DITAZS:17:1:3+1+1'DITLAS:18:1:3+1+1'DITLFS:19:1:3+1+1+J'DITSPS:20:1:3+1+1+N'HIAOMS:21:1:3+1+1+J:040;140;140;140;140;50000,;EUR:056;140;140;140;140;50000,;EUR:100;140;140;140;140;50000,;EUR:756;140;140;140;140;50000,;EUR:196;140;140;140;140;50000,;EUR:203;140;140;140;140;50000,;EUR:280;140;140;140;140;50000,;EUR:208;140;140;140;140;50000,;EUR:233;140;140;140;140;50000,;EUR:724;140;140;140;140;50000,;EUR:246;140;140;140;140;50000,;EUR:250;140;140;140;140;50000,;EUR:826;140;140;140;140;50000,;EUR:254;140;140;140;140;50000,;EUR:292;140;140;140;140;50000,;EUR:312;140;140;140;140;50000,;EUR:300;140;140;140;140;50000,;EUR:348;140;140;140;140;50000,;EUR:372;140;140;140;140;50000,;EUR:352;140;140;140;140;50000,;EUR:380;140;140;140;140;50000,;EUR:438;140;140;140;140;50000,;EUR:440;140;140;140;140;50000,;EUR:442;140;140;140;140;50000,;EUR:428;140;140;140;140;50000,;EUR:474;140;140;140;140;50000,;EUR:470;140;140;140;140;50000,;EUR:528;140;140;140;140;50000,;EUR:578;140;140;140;140;50000,;EUR:616;140;140;140;140;50000,;EUR:620;140;140;140;140;50000,;EUR:638;140;140;140;140;50000,;EUR:642;140;140;140;140;50000,;EUR:752;140;140;140;140;50000,;EUR:705;140;140;140;140;50000,;EUR:703;140;140;140;140;50000,;EUR'HIAZKS:22:1:3+1+1'HIDAAS:23:1:3+1+1'HIDAAS:24:2:3+1+1'HIDABS:25:1:3+1+1'HIDABS:26:2:3+1+1'HIDAES:27:2:3+1+1+13:1:360:0102030612:010203040506070809101112131415161718192021222324252627282930:::52'HIDAES:28:3:3+1+1+13:1:360:0102030612:010203040506070809101112131415161718192021222324252627282930:::52'HIDALS:29:1:3+1+1+1:360:J'HIDALS:30:2:3+1+1+1:360:J'HIDANS:31:2:3+1+1+9:1:360:J:J:J:N:J:N:N:N:N:N:13:0102030612:010203040506070809101112131415161718192021222324252627282930:::52'HIDANS:32:3:3+1+1+9:1:360:J:J:J:N:J:N:N:N:N:N:13:0102030612:010203040506070809101112131415161718192021222324252627282930:::52'HIDASS:33:1:3+1+1+9:1:360:1:N'HIDASS:34:2:3+1+1+9:1:360:1:N:N'HIEKAS:35:2:3+1+1+1+N:J:N:1'HIFRDS:36:1:3+1+1'HIKASS:37:1:3+1+1+11;SpkCard m. Ersatzauto m. Chip:12;SpkCard m. Ersatzauto o. Chip:13;SpkCard o. Ersatzauto m. Chip:14;SpkCard o. Ersatzauto o. Chip:15;SpkCard f. Minderj. m. Chip:16;SpkCard f. Minderj. o. Chip:17;S-Kundenkarte m. Chip:18;S-Kundenkarte o. Chip:8;Hauskarte ohne Chip:7;Hauskarte mit Chip:1;ec-Karte ohne Chip:5;S-Card 1 ohne Chip:6;S-Card 2 ohne Chip:2;ec-Card mit Chip:3;S-Card 1 mit Chip:4;S-Card 2 mit Chip'HIKAZS:38:4:3+1+1+30:N'HIKDMS:39:2:3+1+1+320'HIKDMS:40:3:3+1+1+320'HIKDMS:41:4:3+1+1+320'HIKIFS:42:1:3+1+1'HIMTAS:43:1:3+1+1+1+N'HIMTFS:44:1:3+1+1+1'HIMTRS:45:1:3+1+1+1+N'HIPAES:46:1:3+1+1+1'HIPINS:47:1:3+1+1+1+:::::DKKAD:N:DKKND:J:DKLSW:J:DKNTR:N:DKPAE:J:DKPSA:J:DKQTG:N:DKSVI:N:DKSVK:N:DKTAZ:N:DKTLA:N:DKTLF:J:DKTSP:N:HKAOM:J:HKAZK:N:HKDAA:N:HKDAB:N:HKDAE:J:HKDAL:J:HKDAN:J:HKDAS:J:HKEKA:N:HKFRD:N:HKKAS:N:HKKAZ:N:HKKDM:J:HKKIF:N:HKMTA:J:HKMTF:N:HKMTR:J:HKPAE:J:HKPPD:J:HKPSA:J:HKPSP:N:HKQTG:N:HKSAL:N:HKSLA:J:HKSLB:N:HKSLE:J:HKSLL:J:HKSTP:J:HKSUB:J:HKTAB:N:HKTAN:N:HKTAU:J:HKTAZ:N:HKTLA:N:HKTLF:J:HKTML:N:HKTSB:N:HKTSE:J:HKTSL:J:HKTSP:N:HKTSY:N:HKTUA:J:HKTUB:N:HKTUE:J:HKTUL:J:HKUEB:J:HKUMB:J:HKWFO:J:HKWOA:J:HKWPD:N:HKWPO:J:HKWPS:J:HKWSD:N:HKWSO:N:IKSEP:J'HIPPDS:48:1:3+1+1+1+1:Telekom:Xtra Cash & Go:N:::15;30;50:2:Vodafone:CallYa:N:::15;25;50:3:E-Plus:Free & Easy:N:::15;20;30:4:O2:LOOP:N:::15;20;30:5:congstar:Prepaid:N:::15;30;50:6:blau:Prepaid:N:::15;20;30:8:o.tel.o:o.tel.o prepaid:N:::9;19;29'HIPSAS:49:1:3+1+1+1'HIPSPS:50:1:3+1+1+1'HIQTGS:51:1:3+1+1+1'HISALS:52:4:3+1+1'HISLAS:53:3:3+1+1+999:14:04:05'HISLAS:54:4:3+1+1+999:14:04:05'HISLBS:55:3:3+1+1+1+N'HISLES:56:3:3+1+1+1+1:15:99:14:04:05'HISLLS:57:3:3+1+1+1'HISTPS:58:1:3+1+1+1+1:AT:BE:BG:CH:CY:CZ:DE:DK:EE:ES:FI:FR:GB:GF:GI:GP:GR:HU:IE:IS:IT:LI:LT:LU:LV:MQ:MT:NL:NO:PL:PT:RE:RO:SE:SI:SK'HISTPS:59:3:3+1+1+1+2006:1:50000,:12500,:AT:BE:BG:CH:CY:CZ:DE:DK:EE:ES:FI:FR:GB:GF:GI:GP:GR:HU:IE:IS:IT:LI:LT:LU:LV:MQ:MT:NL:NO:PL:PT:RE:RO:SE:SI:SK'HISUBS:60:3:3+1+1+999:14:51:53:54:56'HISUBS:61:4:3+1+1+999:14:51:53:54:56'HITABS:62:2:3+1+1+1'HITANS:63:1:3+1+1+1+J:N:0:0:996:2:iTAN:Indiziertes TAN-Verfahren:6:1:TAN-Nummer:10:1:J:N:997:2:smsTAN:smsTAN-Verfahren:6:1:TAN-Nummer:46:1:J:N:995:2:chipTAN:chipTAN-Verfahren:6:1:TAN-Nummer:180:1:J:N'HITAUS:64:2:3+1+1+1+N:J:N:J:11:13:15:17'HITAZS:65:1:3+1+1+1'HITLAS:66:1:3+1+1+1'HITLFS:67:1:3+1+1+1+2'HITMLS:68:1:3+1+1+1'HITSBS:69:3:3+1+1+1+N'HITSES:70:3:3+1+1+1+1:15:99:14:51:56:53:54'HITSLS:71:3:3+1+1+1'HITSPS:72:1:3+1+1+1+1'HITSYS:73:1:3+1+1+1+N:N'HITUAS:74:2:3+1+1+1:90:14:51'HITUBS:75:1:3+1+1+N'HITUES:76:2:3+1+1+1:90:14:51'HITULS:77:1:3+1+1'HIUEBS:78:2:3+1+1+14:51'HIUEBS:79:3:3+1+1+14:51'HIUMBS:80:1:3+1+1+14:51'HIWFOS:81:1:3+1+1+N:0:N:N:J'HIWOAS:82:2:3+1+1+N:MAKT;LMTO;STOP;SLOS:J:J:GDAY;GTMO;GTHD:J:0:N:N:N:0,'HIWPDS:83:3:3+1+1+J'HIWPDS:84:5:3+1+1+J:N:N'HIWPOS:85:2:3+1+1+0:N:0:N:N:XBER;XDUS;XFRA;XHAM;XHAN;XMUN;XSTU;XETR;XAMS;XBRU;XDUB;XHEL;XLIS;XLUX;XMAD;XMIL;XOSL;XPAR;XSTO;XWBO;XXXX;OTCO;XBKK;XHKG;XJKT;XJSE;XCSE;XLON;XASX;XNYS;XSES;XTKS;XTSE;XNZE;XSWX;XNGO;XVTX;XPRA;XATH;XBKK;XBAR;XBRN;XTSX;XBUD;XCHI;XISM;XFKA;XKSY;XIST;XKLS;XLJU;XMEX;XASE;XFJO;XPHL;XLAT;XNAS;XOTC;XSAP;XOME;XSUR;XWAR;DIFX;XSWB;XGAT:::90:4:0,::MAKT;LMTO;STOP;SLOS:FIKI;NOHE:GDAY;GTMO;GTHD;IOCA'HIWPSS:86:2:3+1+1+J:N'HIWSDS:87:2:3+1+1+J:0;keine Aussage:1;geringes Risiko:4;mittleres Risiko:7;hohes Risiko:9;besonderer Beratungbedarf'HIWSOS:88:1:3+1+1+N:60:2:3:5:6:7:8:9:10'IISEPS:89:1:3+1+1+1'HNHBS:90:1+1'
+0
-1
src/test/java/org/kapott/hbci4java/bpd/bpd-tanmedialist.txt less more
0 HNHBK:1:3+000000000556+300+VA3053023462839+2+VA3053023462839:2'HNSHK:2:4+PIN:2+942+441703067+1+1+2::MmzGQqhvlzwBAAASF34Y40RBCgQA+1+1:20130530:234628+1:999:1+6:10:16+280:49999924:XXXXX:S:0:0'HIRMG:3:2+0010::Nachricht entgegengenommen. (TRE)'HIRMS:4:2:3+0020::Auftrag ausgeführt'HITAB:5:3:3+1+G:1:6729403199000300393::::::::::VR-NetworldCard+M:1:::::::::::mobileTAN::::::::::20130206'HNSHA:6:2+441703067'HNHBS:7:1+2'
+0
-38
src/test/java/org/kapott/hbci4java/bpd/bpd2-formatted.txt less more
0 HNHBK:1:3+000000002603+300+H11051313022520+1+H11051313022520:1'
1 HIRMG:2:2+3060::Teilweise liegen Warnungen oder Hinweise vor'
2 HIRMS:3:2:3+3050:2:Die BPD wird aktualisiert'
3 HIBPA:4:3:3+30+280:67461424+Volksbank Franken eG+1+1+300+250'
4 HIKOM:5:4:3+280:67461424+1+2:hbci01.fiducia.de+3:https?://hbci11.fiducia.de/cgi-bin/hbciservlet'
5 HISHV:6:3:3+N+RDH:3+PIN:1+RDH:7+RDH:9+RDH:10'
6 HICCSS:7:1:3+1+1+1'
7 HIDABS:8:2:3+1+1'
8 HIDAES:9:3:3+1+1+2:3:400:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:53:54'
9 HIDALS:10:2:3+1+1+0:0:N'
10 HIDANS:11:3:3+1+1+9:3:400:J:J:J:J:J:N:N:J:J:J:2:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:53:54'
11 HIKAZS:12:7:3+1+1+1+365:J:N'
12 HIKAZS:13:6:3+1+1+1+365:J:N'
13 HIKAZS:14:5:3+1+1+365:J:N'
14 HIKAZS:15:4:3+1+1+365:J'
15 HIPAES:16:1:3+1+1+1'
16 HIPINS:17:1:3+1+1+0+5:20:6:VR-NetKey::HKCCS:J:HKDAB:N:HKDAE:J:HKDAL:J:HKDAN:J:HKKAZ:N:HKPAE:J:HKPPD:J:HKPRO:N:HKPSP:N:HKSAL:N:HKSLA:J:HKSPA:N:HKSTP:J:HKSUB:J:HKTAN:N:HKTUA:J:HKTUB:N:HKTUE:J:HKTUL:J:HKUEB:J:HKUMB:J'
17 HIPPDS:18:1:3+1+1+1+1:Telekom:prepaid:N:0:0:15;30;50:2:Vodafone:prepaid:N:0:0:15;25;50:3:E-Plus:prepaid:N:0:0:15;20;30:4:O2:prepaid:N:0:0:15;20;30:5:Congstar:prepaid:N:0:0:15;30;50:6:Blau:prepaid:N:0:0:15;20;30'
18 HIPROS:19:3:3+1+1'
19 HIPSPS:20:1:3+1+1+1'
20 HISALS:21:4:3+1+1'
21 HISLAS:22:4:3+1+1+500:14:04:05'
22 HISPAS:23:1:3+1+1+1+J:J:N:sepade?:xsd?:pain.001.001.02.xsd:sepade?:xsd?:pain.001.002.02.xsd'
23 HISTPS:24:1:3+1+1+1+1:AT:BE:BG:CY:CZ:DK:EE:ES:FI:FR:GB:GF:GI:GP:GR:HU:IE:IS:IT:LI:LT:LU:LV:MQ:MT:NL:NO:PL:PT:RE:RO:SE:SI:SK'
24 HISUBS:25:4:3+1+1+500:14:51:53:54:56:67:68:69'
25
26 HITANS:26:5:3+1+1+1+J:N:1:942:1:MTAN2:mobileTAN::mobile TAN:6:1:SMS:2048:0:J:1:0:N:0:2:J:J:00:1:1:962:1:HHD1.4:HHD:1.4:Smart-TAN plus manuell:6:1:Challenge:2048:0:J:1:0:N:0:2:J:J:00:1:1:972:1:HHD1.4OPT:HHDOPT1:1.4:Smart-TAN plus optisch:6:1:Challenge:2048:0:J:1:0:N:0:2:J:J:00:1:1'
27 HITANS:27:4:3+1+1+1+J:N:1:912:1:IndexTAN2:::iTAN:6:1:Index:999:1:J:1:0:N:N:J:J:N:00:0:1:932:1:HHD1.3.1:HHD:1.3.1:SmartTAN plus:6:1:Challenge:999:0:J:1:0:N:N:J:J:J:00:0:1:942:1:MTAN2:mobileTAN::mobile TAN:6:1:SMS:999:0:J:1:0:N:N:J:J:N:00:0:1:952:1:HHD1.3.2OPT:HHDOPT1:1.3.2:SmartTAN optic:6:1:Challenge:999:0:J:1:0:N:N:J:J:J:00:0:1'
28 HITANS:28:2:3+1+1+0+J:N:1:904:1:SMARTTAN2:SmartTAN:6:1:SmartTAN:256:0:J:1:0:N:J:J:912:1:IndexTAN2:iTAN:6:1:Index:256:1:J:1:0:N:J:J:942:1:MTAN:mobileTAN:6:1:SMS:256:0:J:1:0:N:J:J'
29
30 HITUAS:29:2:3+1+1+1:400:14:51:53:54:56:67:68:69'
31 HITUBS:30:1:3+1+1+J'
32 HITUES:31:2:3+1+1+1:400:14:51:53:54:56:67:68:69'
33 HITULS:32:1:3+1+1'
34 HIUEBS:33:3:3+1+1+14:51:53:54:56:67:68:69'
35 HIUMBS:34:2:3+1+1+1+14:51'
36 HIUMBS:35:1:3+1+1+14:51'
37 HNHBS:36:1+1'
+0
-45
src/test/java/org/kapott/hbci4java/bpd/bpd2-lesbar.txt less more
0 HNHBK:1:3+000000002603+300+H11051313022520+1+H11051313022520:1'
1 HIRMG:2:2+3060::Teilweise liegen Warnungen oder Hinweise vor'
2 HIRMS:3:2:3+3050:2:Die BPD wird aktualisiert'
3 HIBPA:4:3:3+30+280:67461424+Volksbank Franken eG+1+1+300+250'
4 HIKOM:5:4:3+280:67461424+1+2:hbci01.fiducia.de+3:https?://hbci11.fiducia.de/cgi-bin/hbciservlet'
5 HISHV:6:3:3+N+RDH:3+PIN:1+RDH:7+RDH:9+RDH:10'
6 HICCSS:7:1:3+1+1+1'
7 HIDABS:8:2:3+1+1'
8 HIDAES:9:3:3+1+1+2:3:400:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:53:54'
9 HIDALS:10:2:3+1+1+0:0:N'
10 HIDANS:11:3:3+1+1+9:3:400:J:J:J:J:J:N:N:J:J:J:2:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:53:54'
11 HIKAZS:12:7:3+1+1+1+365:J:N'
12 HIKAZS:13:6:3+1+1+1+365:J:N'
13 HIKAZS:14:5:3+1+1+365:J:N'
14 HIKAZS:15:4:3+1+1+365:J'
15 HIPAES:16:1:3+1+1+1'
16 HIPINS:17:1:3+1+1+0+5:20:6:VR-NetKey::HKCCS:J:HKDAB:N:HKDAE:J:HKDAL:J:HKDAN:J:HKKAZ:N:HKPAE:J:HKPPD:J:HKPRO:N:HKPSP:N:HKSAL:N:HKSLA:J:HKSPA:N:HKSTP:J:HKSUB:J:HKTAN:N:HKTUA:J:HKTUB:N:HKTUE:J:HKTUL:J:HKUEB:J:HKUMB:J'
17 HIPPDS:18:1:3+1+1+1+1:Telekom:prepaid:N:0:0:15;30;50:2:Vodafone:prepaid:N:0:0:15;25;50:3:E-Plus:prepaid:N:0:0:15;20;30:4:O2:prepaid:N:0:0:15;20;30:5:Congstar:prepaid:N:0:0:15;30;50:6:Blau:prepaid:N:0:0:15;20;30'
18 HIPROS:19:3:3+1+1'
19 HIPSPS:20:1:3+1+1+1'
20 HISALS:21:4:3+1+1'
21 HISLAS:22:4:3+1+1+500:14:04:05'
22 HISPAS:23:1:3+1+1+1+J:J:N:sepade?:xsd?:pain.001.001.02.xsd:sepade?:xsd?:pain.001.002.02.xsd'
23 HISTPS:24:1:3+1+1+1+1:AT:BE:BG:CY:CZ:DK:EE:ES:FI:FR:GB:GF:GI:GP:GR:HU:IE:IS:IT:LI:LT:LU:LV:MQ:MT:NL:NO:PL:PT:RE:RO:SE:SI:SK'
24 HISUBS:25:4:3+1+1+500:14:51:53:54:56:67:68:69'
25
26 HITANS:26:5:3+1+1+1+J:N:1:942:1:MTAN2 :mobileTAN: :mobile TAN :6:1:SMS :2048:0:J:1:0:N:0:2:J:J:00:1:1
27 :962:1:HHD1.4 :HHD :1.4 :Smart-TAN plus manuell:6:1:Challenge:2048:0:J:1:0:N:0:2:J:J:00:1:1
28 :972:1:HHD1.4OPT :HHDOPT1 :1.4 :Smart-TAN plus optisch:6:1:Challenge:2048:0:J:1:0:N:0:2:J:J:00:1:1'
29 HITANS:27:4:3+1+1+1+J:N:1:912:1:IndexTAN2 : : :iTAN :6:1:Index :999 :1:J:1:0:N:N:J:J:N:00:0:1
30 :932:1:HHD1.3.1 :HHD :1.3.1:SmartTAN plus :6:1:Challenge:999 :0:J:1:0:N:N:J:J:J:00:0:1
31 :942:1:MTAN2 :mobileTAN: :mobile TAN :6:1:SMS :999 :0:J:1:0:N:N:J:J:N:00:0:1
32 :952:1:HHD1.3.2OPT:HHDOPT1 :1.3.2:SmartTAN optic :6:1:Challenge:999 :0:J:1:0:N:N:J:J:J:00:0:1'
33 HITANS:28:2:3+1+1+0+J:N:1:904:1:SMARTTAN2 :SmartTAN :6:1:SmartTAN :256 :0:J:1:0:N:J:J
34 :912:1:IndexTAN2 :iTAN :6:1:Index :256 :1:J:1:0:N:J:J
35 :942:1:MTAN :mobileTAN :6:1:SMS :256 :0:J:1:0:N:J:J'
36
37 HITUAS:29:2:3+1+1+1:400:14:51:53:54:56:67:68:69'
38 HITUBS:30:1:3+1+1+J'
39 HITUES:31:2:3+1+1+1:400:14:51:53:54:56:67:68:69'
40 HITULS:32:1:3+1+1'
41 HIUEBS:33:3:3+1+1+14:51:53:54:56:67:68:69'
42 HIUMBS:34:2:3+1+1+1+14:51'
43 HIUMBS:35:1:3+1+1+14:51'
44 HNHBS:36:1+1'
+0
-1
src/test/java/org/kapott/hbci4java/bpd/bpd2-raw.txt less more
0 HNHBK:1:3+000000002603+300+H11051313022520+1+H11051313022520:1'HIRMG:2:2+3060::Teilweise liegen Warnungen oder Hinweise vor'HIRMS:3:2:3+3050:2:Die BPD wird aktualisiert'HIBPA:4:3:3+30+280:67461424+Volksbank Franken eG+1+1+300+250'HIKOM:5:4:3+280:67461424+1+2:hbci01.fiducia.de+3:https?://hbci11.fiducia.de/cgi-bin/hbciservlet'HISHV:6:3:3+N+RDH:3+PIN:1+RDH:7+RDH:9+RDH:10'HICCSS:7:1:3+1+1+1'HIDABS:8:2:3+1+1'HIDAES:9:3:3+1+1+2:3:400:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:53:54'HIDALS:10:2:3+1+1+0:0:N'HIDANS:11:3:3+1+1+9:3:400:J:J:J:J:J:N:N:J:J:J:2:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:53:54'HIKAZS:12:7:3+1+1+1+365:J:N'HIKAZS:13:6:3+1+1+1+365:J:N'HIKAZS:14:5:3+1+1+365:J:N'HIKAZS:15:4:3+1+1+365:J'HIPAES:16:1:3+1+1+1'HIPINS:17:1:3+1+1+0+5:20:6:VR-NetKey::HKCCS:J:HKDAB:N:HKDAE:J:HKDAL:J:HKDAN:J:HKKAZ:N:HKPAE:J:HKPPD:J:HKPRO:N:HKPSP:N:HKSAL:N:HKSLA:J:HKSPA:N:HKSTP:J:HKSUB:J:HKTAN:N:HKTUA:J:HKTUB:N:HKTUE:J:HKTUL:J:HKUEB:J:HKUMB:J'HIPPDS:18:1:3+1+1+1+1:Telekom:prepaid:N:0:0:15;30;50:2:Vodafone:prepaid:N:0:0:15;25;50:3:E-Plus:prepaid:N:0:0:15;20;30:4:O2:prepaid:N:0:0:15;20;30:5:Congstar:prepaid:N:0:0:15;30;50:6:Blau:prepaid:N:0:0:15;20;30'HIPROS:19:3:3+1+1'HIPSPS:20:1:3+1+1+1'HISALS:21:4:3+1+1'HISLAS:22:4:3+1+1+500:14:04:05'HISPAS:23:1:3+1+1+1+J:J:N:sepade?:xsd?:pain.001.001.02.xsd:sepade?:xsd?:pain.001.002.02.xsd'HISTPS:24:1:3+1+1+1+1:AT:BE:BG:CY:CZ:DK:EE:ES:FI:FR:GB:GF:GI:GP:GR:HU:IE:IS:IT:LI:LT:LU:LV:MQ:MT:NL:NO:PL:PT:RE:RO:SE:SI:SK'HISUBS:25:4:3+1+1+500:14:51:53:54:56:67:68:69'HITANS:26:5:3+1+1+1+J:N:1:942:1:MTAN2:mobileTAN::mobile TAN:6:1:SMS:2048:0:J:1:0:N:0:2:J:J:00:1:1:962:1:HHD1.4:HHD:1.4:Smart-TAN plus manuell:6:1:Challenge:2048:0:J:1:0:N:0:2:J:J:00:1:1:972:1:HHD1.4OPT:HHDOPT1:1.4:Smart-TAN plus optisch:6:1:Challenge:2048:0:J:1:0:N:0:2:J:J:00:1:1'HITANS:27:4:3+1+1+1+J:N:1:912:1:IndexTAN2:::iTAN:6:1:Index:999:1:J:1:0:N:N:J:J:N:00:0:1:932:1:HHD1.3.1:HHD:1.3.1:SmartTAN plus:6:1:Challenge:999:0:J:1:0:N:N:J:J:J:00:0:1:942:1:MTAN2:mobileTAN::mobile TAN:6:1:SMS:999:0:J:1:0:N:N:J:J:N:00:0:1:952:1:HHD1.3.2OPT:HHDOPT1:1.3.2:SmartTAN optic:6:1:Challenge:999:0:J:1:0:N:N:J:J:J:00:0:1'HITANS:28:2:3+1+1+0+J:N:1:904:1:SMARTTAN2:SmartTAN:6:1:SmartTAN:256:0:J:1:0:N:J:J:912:1:IndexTAN2:iTAN:6:1:Index:256:1:J:1:0:N:J:J:942:1:MTAN:mobileTAN:6:1:SMS:256:0:J:1:0:N:J:J'HITUAS:29:2:3+1+1+1:400:14:51:53:54:56:67:68:69'HITUBS:30:1:3+1+1+J'HITUES:31:2:3+1+1+1:400:14:51:53:54:56:67:68:69'HITULS:32:1:3+1+1'HIUEBS:33:3:3+1+1+14:51:53:54:56:67:68:69'HIUMBS:34:2:3+1+1+1+14:51'HIUMBS:35:1:3+1+1+14:51'HNHBS:36:1+1'
+0
-137
src/test/java/org/kapott/hbci4java/bpd/bpd3-formatted.txt less more
0 HNHBK:1:3+000000010586+220+5730744363313150+1+5730744363313150:1'
1 HIRMG:2:2+3060::Teilweise liegen Warnungen oder Hinweise vor (HBMSG=10336)'
2 HIRMS:3:2:3+3050::BPD nicht mehr aktuell. Aktuelle Version folgt (HBMSG=10468)+0010::Der Auftrag wurde ausgeführt. (MBT61100000006)'
3 HIBPA:4:2:3+40+280:76052080+Sparkasse Neumarkt-Parsberg+3+1+201:210:220+650'
4 HIKOM:5:3:3+280:76052080+1+2:I085.BY.S-HBCI.DE::MIM:1'
5 HISHV:6:2:3+N+DDV:1'DIANAS:7:1:3+1+1+1+1:15'
6 DIANLS:8:1:3+1+1+1'
7 DIBAZS:9:1:3+1+1+1+J:J'
8 DIBKDS:10:3:3+1+1+1'
9 DIBKDS:11:4:3+1+1+1'
10 DIBKUS:12:3:3+1+1+1+J:N'
11 DIBRKS:13:1:3+1+1+1'
12 DIBUMS:14:3:3+1+1+1+N'
13 DIDFAS:15:1:3+1+1+1+N'
14 DIDFDS:16:1:3+1+1+1'
15 DIDFLS:17:1:3+1+1+1'
16 DIDFOS:18:1:3+1+1+1'
17 DIDFSS:19:1:3+1+1+1+N:1;DekaBank-Konzern;5;Swisscanto;7;JPMorgan Fleming,8;Lombard Odier;10;Franklin Templeton;11;Gartmore;12;Goldman Sachs;13;Black Rock Merrill;14;Threadneedle;15;UBS;16;Schroders:10_10:Aktienfonds Asien - Pazifik ohne Japan:10_20:Aktienfonds Branche:10_30:Aktienfonds Deutschland:10_40:Aktienfonds Emerging Markets:10_50:Aktienfonds Euroland:10_60:Aktienfonds Europa Länder:10_70:Aktienfonds Europa:10_80:Aktienfonds Japan:10_90:Aktienfonds Lateinamerika:10_100:Aktienfonds Nordamerika:10_110:Aktienfonds Osteuropa:10_120:Aktienfonds Welt:10_400:Aktienfonds Afrika:10_410:Aktienfonds Mittlerer Osten:10_420:Aktienfonds Nordeuropa:20_130:Dachfonds Chance Plus:20_140:Dachfonds Chance:20_150:Dachfonds Ertrag Plus:20_160:Dachfonds Ertrag:20_170:Dachfonds Wachstum:20_180:Dachfonds laufzeitbegrenzt:30_430:Garantiefonds:40_200:Geldmarktfonds:40_210:Geldmarktnahe Fonds:50_220:Alternative Investmentfonds Hedgefonds:50_230:Alternative Investmentfonds Private Equity:50_240:Alternative Investmentfonds Rohstofffonds:60_250:Sonderkonzepte Absolute-/Total-Returnstrategiefonds:60_260:Sonderkonzepte Altersvorsorgefonds:60_270:Sonderkonzepte Institutionelle Fondskonzepte:60_280:Sonderkonzepte Steuerorientierte Fonds:70_30:Immobilienfonds Deutschland:70_70:Immobilienfonds Europa:70_120:Immobilienfonds Welt:80_50:Mischfonds Euroland:80_290:Mischfonds ausgewogen:80_300:Mischfonds dynamisch:80_310:Mischfonds flexibel:80_320:Mischfonds konservativ:90_330:Rentenfonds Inflationsindexierte Anleihen:90_340:Rentenfonds Laufzeitfonds:90_350:Rentenfonds MBS:90_360:Rentenfonds Nachranganleihen:90_370:Rentenfonds Staatsanleihen:90_380:Rentenfonds Unternehmensanleihen:90_390:Rentenfonds Wandelanleihen'
18 DIDFUS:20:1:3+1+1+1+N'
19 DIDOFS:21:1:3+1+1+1'
20 DIFAFS:22:2:3+1+1+1+N:N'
21 DIFOPS:23:1:3+1+1+N:0:N:N:N::::0,::MAKT'
22 DIFPOS:24:1:3+3+1+N:0:N:N'
23 DIKAUS:25:3:3+1+1+1+N'
24 DIKKAS:26:2:3+1+1+1+N:N:2'
25 DIKKSS:27:3:3+1+1+1'
26 DIKKUS:28:2:3+1+1+1+90:N:J'
27 DINZPS:29:1:3+1+1+N:N:0:N:N:0,'
28 DIPAES:30:1:3+1+1'
29 DIPINS:31:1:3+1+1+DKPAE:J:DKTLF:J:DKTLA:N:DKTSP:N:HKVVB:N:HKUEB:J:HKSUB:J:HKLAS:J:HKSLA:J:HKDAE:J:HKDAN:J:HKDAL:J:HKDAB:N:HKWPO:J:HKWOA:J:HKWPS:J:HKWSO:N:HKWPD:N:HKNEZ:J:HKNEA:N:HKKDM:J:HKSAL:N:HKKAZ:N:HKWPR:N:HKTUE:J:HKTUA:J:HKTUL:J:HKTUB:N:HKAOM:J:HKWSD:N:HKWFO:J:DKPSA:J:HKKIF:N:HKFRD:N:HKUMB:J:HKFGB:N:HKEKA:N:HKQTG:N:HKAUB:J:DKANA:J:DKANL:J:DKPSP:N:HKTAN:N:DKFDA:N:HKPPD:J:DKURK:J:DKZDF:J:DKZDL:J:DKBAZ:N:DKBRK:N:HKTSE:J:HKTSL:J:HKSLE:J:HKSLL:J:HKTSB:N:HKSLB:N:DKBKD:N:DKBKU:N:DKBUM:N:HKLSW:J:HKLWB:N:DKWAP:N:DKWOP:N:DKFOP:N:DKNZP:N:HKWPK:N:HKSPA:N:HKCCM:J:HKCCS:J:HKTAU:N:HKTAB:N:HKTSY:N:HKCME:J:HKCMB:N:HKCML:J:HKEUE:J:HKFPO:J:DKFPO:N:HKWDU:N:HKWFP:N:HKCSA:J:HKCSB:N:HKCSE:J:HKCSL:J:HKMTA:J:HKMTF:N:HKMTR:J:HKTML:N:HKTAZ:N:DKVVD:N:DKVVU:N:DKKAU:N:DKKKA:N:DKKKS:N:DKKKU:N:HKDAS:J:DKDFA:N:DKDFD:N:DKDFL:J:DKDFO:J:DKDFS:N:DKDFU:N:DKFAF:N:DKDOF:N'
30 DIPSAS:32:1:3+1+1'
31 DIPSPS:33:1:3+1+1'
32 DITLAS:34:1:3+1+1'
33 DITLFS:35:1:3+1+1+N'
34 DITLFS:36:2:3+1+1+N'
35 DITSPS:37:1:3+1+1+N'
36 DIURKS:38:1:3+1+1+1+14:51'
37 DIVVDS:39:1:3+3+1+1'
38 DIVVUS:40:1:3+3+1+1+N:J'
39 DIWAPS:41:1:3+1+1+J:STOP;SLOS;LMTO;MAKT:J:J:GDAY;GTMO;GTHD;OPEN;CLOS:J:0:N:N:N:9999999,99:EUR'
40 DIWOPS:42:1:3+1+1+0:N:0:N:N:XBER;XDUS;XFRA;XHAM;XHAN;XMUN;XSTU;XETR;OTCO;XXXX;XGAT;XBRU;XDUB;XHEL;XHKG;XJKT;XJSE;XCSE;XLIS;XLON;XLUX;XMAD;XMIL;XASX;XNYS;XOSL;XPAR;XSES;XSTO;XTKS;XTSE;XNZE;XWBO;XSWX;DIFX;XASE;XATH;XBAR;XBKK;XBRN;XBUD;XCHI;XFKA;XWAR;XIST;XKLS;XLAT;XLJU;XMEX;XNGO;XNAS;XOME;XOTC;XPHL;XPRA;XSAP;XSUR;XSWB;XTSX;XVTX;XAMS;ARCX:07;08:Variabel;Continuous Trade (XETRA):::9999999,99:EUR:STOP;SLOS;LMTO;MAKT:BUYI;SELL;FIKI;NOHE;ALNO:GDAY;GTMO;GTHD;IOCA;OPEN;CLOS'
41 DIZDFS:43:1:3+1+1+1'
42 DIZDLS:44:1:3+1+1+1'
43 HIAOMS:45:1:3+1+1+J:040;140;140;140;140;50000,;EUR;50000,;EUR:056;140;140;140;140;50000,;EUR;50000,;EUR:246;140;140;140;140;50000,;EUR;50000,;EUR:250;140;140;140;140;50000,;EUR;50000,;EUR:300;140;140;140;140;50000,;EUR;50000,;EUR:372;140;140;140;140;50000,;EUR;50000,;EUR:380;140;140;140;140;50000,;EUR;50000,;EUR:442;140;140;140;140;50000,;EUR;50000,;EUR:528;140;140;140;140;50000,;EUR;50000,;EUR:620;140;140;140;140;50000,;EUR;50000,;EUR:724;140;140;140;140;50000,;EUR;50000,;EUR:826;140;140;140;140;50000,;EUR;50000,;EUR:208;140;140;140;140;50000,;EUR;50000,;EUR:292;140;140;140;140;50000,;EUR;50000,;EUR:752;140;140;140;140;50000,;EUR;50000,;EUR:196;140;140;140;140;50000,;EUR;50000,;EUR:203;140;140;140;140;50000,;EUR;50000,;EUR:233;140;140;140;140;50000,;EUR;50000,;EUR:348;140;140;140;140;50000,;EUR;50000,;EUR:440;140;140;140;140;50000,;EUR;50000,;EUR:428;140;140;140;140;50000,;EUR;50000,;EUR:470;140;140;140;140;50000,;EUR;50000,;EUR:616;140;140;140;140;50000,;EUR;50000,;EUR:705;140;140;140;140;50000,;EUR;50000,;EUR:703;140;140;140;140;50000,;EUR;50000,;EUR:352;140;140;140;140;50000,;EUR;50000,;EUR:578;140;140;140;140;50000,;EUR;50000,;EUR:438;140;140;140;140;50000,;EUR;50000,;EUR:100;140;140;140;140;50000,;EUR;50000,;EUR:642;140;140;140;140;50000,;EUR;50000,;EUR:756;140;140;140;140;50000,;EUR;50000,;EUR'
44 HIAUBS:46:5:3+1+1+1'
45 HICCMS:47:1:3+1+1+1+1000:N:N'
46 HICCSS:48:1:3+1+1+1'
47 HICMBS:49:1:3+1+1+1+N:J'
48 HICMES:50:1:3+1+1+1+1:360:1000:N:N'
49 HICMLS:51:1:3+1+1+1'
50 HICSAS:52:1:3+1+1+1+1:360'
51 HICSBS:53:1:3+1+1+1+N:J'
52 HICSES:54:1:3+1+1+1+1:360'
53 HICSLS:55:1:3+1+1+1+J'
54 HIDABS:56:1:3+3+1'
55 HIDABS:57:2:3+3+1'
56 HIDABS:58:3:3+3+1'
57 HIDAES:59:2:3+3+1+4:0:9999:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:54'
58 HIDAES:60:3:3+3+1+4:0:9999:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:54'
59 HIDALS:61:1:3+3+1+0:9999:J'
60 HIDALS:62:2:3+3+1+0:9999:J'
61 HIDANS:63:2:3+3+1+0:2:9999:J:J:J:N:J:J:N:J:J:J:4:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:54'
62 HIDANS:64:3:3+3+1+0:0:9999:J:J:J:N:J:J:N:J:J:J:4:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:54'
63 HIDASS:65:4:3+3+1+1+1:0:9999:1:N:N'
64 HIEKAS:66:2:3+1+1+1+J:J:N:1'
65 HIEKAS:67:3:3+1+1+1+J:J:N:1'
66 HIEUES:68:2:3+1+1+1+2007:1:12500,:V;W;:10:1'
67 HIFGBS:69:2:3+3+1'
68 HIFGBS:70:3:3+3+1'
69 HIFPOS:71:1:3+3+1+N:0:N:N'
70 HIFRDS:72:1:3+1+1'
71 HIFRDS:73:4:3+1+1+1+N:N:N:1:DekaBank'
72 HIKAZS:74:4:3+3+1+360:J'
73 HIKAZS:75:5:3+3+1+360:J:N'
74 HIKDMS:76:2:3+3+0+2048'
75 HIKDMS:77:3:3+3+0+2048'
76 HIKDMS:78:4:3+3+0+2048'
77 HIKIFS:79:1:3+1+1'
78 HIKIFS:80:4:3+1+1+1+J:J'
79 HIKIFS:81:5:3+1+1+1+J:J'
80 HILASS:82:2:3+3+1+14:05:04'
81 HILASS:83:3:3+3+1+14:05:04'
82 HILASS:84:4:3+3+1+14:05:04'
83 HILSWS:85:2:3+1+1+1+::05'
84 HILWBS:86:2:3+3+1+1+J:42:J'
85 HIMTAS:87:1:3+1+1+1+N'
86 HIMTFS:88:1:3+1+1+1'
87 HIMTRS:89:1:3+1+1+1+N'
88 HINEAS:90:1:3+1+1+1:2:3:4'
89 HINEZS:91:1:3+1+1+N:N:0:N:N:0,'
90 HIPPDS:92:1:3+1+1+1+1:Telekom:Xtra-Card:N:::15;30;50:2:Vodafone:CallYa:N:::15;25;50:3:E-Plus:Free and easy:N:::15;20;30:4:O2:Loop:N:::15;20;30:5:congstar:congstar:N:::15;30;50:6:blau:blau:N:::15;20;30:8:o.tel.o:o.tel.o:N:::9;19;29'
91 HIQTGS:93:1:3+1+1+1'
92 HISALS:94:3:3+3+1'
93 HISALS:95:4:3+3+1'
94 HISALS:96:5:3+3+1'
95 HISLAS:97:3:3+1+1+1000:14:05:04'
96 HISLAS:98:4:3+1+1+1000:14:05:04'
97 HISLBS:99:2:3+3+1+J'
98 HISLES:100:2:3+3+1+1:360:1000:14:04:05'
99 HISLLS:101:2:3+3+1'
100 HISPAS:102:1:3+1+1+1+J:N:N:http?://www.sepa-zka.de/1.0/pain.001.001.02.xsd'
101 HISPAS:103:2:3+1+1+1+J:N:N:N:http?://www.sepa-zka.de/1.0/pain.001.001.02.xsd'
102 HISUBS:104:3:3+1+1+1000:14:51:53:54:56:67:69'
103 HISUBS:105:4:3+1+1+1000:14:51:53:54:56:67:69'
104 HITABS:106:2:3+1+1+1'
105 HITABS:107:3:3+1+1+1'
106 HITABS:108:4:3+1+1+1'
107 HITANS:109:1:3+2+1+1+J:N:0:0:900:2:iTAN:iTAN:6:1:TAN-Nummer:3:1:J:J:920:2:smsTAN:smsTAN:6:1:TAN-Nummer:3:1:J:J'
108 HITANS:110:3:3+2+1+1+J:N:0:900:2:iTAN:iTAN:6:1:TAN-Nummer:3:1:J:2:0:N:N:N:00:0:0:920:2:smsTAN:smsTAN:6:1:TAN-Nummer:3:1:J:2:0:N:N:N:00:2:5:910:2:HHD1.3.0:chipTAN manuell:6:1:TAN-Nummer:3:1:J:2:0:N:N:N:00:0:1:911:2:HHD1.3.0OPT:chipTAN optisch:6:1:TAN-Nummer:3:1:J:2:0:N:N:N:00:0:1'
109 HITAUS:111:1:3+1+1+1+N:N:J'
110 HITAZS:112:1:3+1+1+1'
111 HITMLS:113:1:3+1+1+1'
112 HITSBS:114:2:3+3+1+J'
113 HITSES:115:2:3+3+1+1:360:1000:14:51:53:54:56:67:69'
114 HITSLS:116:2:3+3+1'
115 HITSYS:117:1:3+1+1+1+J:N'
116 HITUAS:118:2:3+3+1+1:360:14:51:53:54:56:67:69'
117 HITUBS:119:1:3+3+1+J'
118 HITUES:120:2:3+3+1+1:360:14:51:53:54:56:67:69'
119 HITULS:121:1:3+3+1'
120 HIUEBS:122:2:3+3+1+14:51:53:54:56:67:69'
121 HIUEBS:123:3:3+3+1+14:51:53:54:56:67:69'
122 HIUEBS:124:4:3+3+1+14:51:53:54:56:67:69'
123 HIUMBS:125:1:3+3+1+14:51'
124 HIWDUS:126:4:3+3+1+999'
125 HIWFOS:127:1:3+1+1+N:0:N:N:N::::0,::MAKT'
126 HIWFPS:128:2:3+3+1+RENTEN:INVESTMENTFONDS:GENUSSSCHEINE:SPARBRIEFE:UNTERNEHMENSANLEIHEN:EMERGING MARKET ANLEIHEN:STRUKTURIERTE ANLEIHEN:ZERTIFIKATE:AKTIEN:OPTIONSSCHEINE:ALLE ANGEBOTE EIGENES INSTITUT:ALLE ANGEBOTE UEBERGEORD. INSTITUTE'
127 HIWOAS:129:2:3+1+1+J:STOP;SLOS;LMTO;MAKT:J:J:GDAY;GTMO;GTHD;OPEN;CLOS:J:0:N:N:N:9999999,99:EUR'
128 HIWPDS:130:3:3+3+1+J'
129 HIWPDS:131:5:3+1+1+J:N:N'
130 HIWPKS:132:1:3+3+0+XBER;XDUS;XFRA;XHAM;XHAN;XMUN;XSTU;XETR;OTCO;XAMS;XASE;XASX;XATH;XBAR;XBIL;XBOS;XBRN;XBRU;XCAG;XCHI;XCSE;XDUB;XEUN;XHEL;XHKG;XISM;XJSE;XKLS;XLIS;XLON;XLUX;XMAD;XMIL;XNAS;XNQL;XNYS;XNZE;XOSL;XOTC;XPAR;XPHL;XSAP;XSES;XSHE;XSSE;XSSI;XSTO;XSWX;XTKS;XTSE;XVAL;XWBO'
131 HIWPOS:133:2:3+1+1+0:N:0:N:N:XBER;XDUS;XFRA;XHAM;XHAN;XMUN;XSTU;XETR;OTCO;XXXX;XGAT;XBRU;XDUB;XHEL;XHKG;XJKT;XJSE;XCSE;XLIS;XLON;XLUX;XMAD;XMIL;XASX;XNYS;XOSL;XPAR;XSES;XSTO;XTKS;XTSE;XNZE;XWBO;XSWX;DIFX;XASE;XATH;XBAR;XBKK;XBRN;XBUD;XCHI;XFKA;XWAR;XIST;XKLS;XLAT;XLJU;XMEX;XNGO;XNAS;XOME;XOTC;XPHL;XPRA;XSAP;XSUR;XSWB;XTSX;XVTX;XAMS;ARCX:07;08:Variabel;Continuous Trade (XETRA):::9999999,99:EUR:STOP;SLOS;LMTO;MAKT:BUYI;SELL;FIKI;NOHE;ALNO:GDAY;GTMO;GTHD;IOCA;OPEN;CLOS'
132 HIWPRS:134:1:3+3+1+J:J:N:N:XBER;XDUS;XFRA;XHAM;XHAN;XMUN;XSTU;XETR;OTCO;XXXX;XGAT;XBRU;XDUB;XHEL;XHKG;XJKT;XJSE;XCSE;XLIS;XLON;XLUX;XMAD;XMIL;XASX;XNYS;XOSL;XPAR;XSES;XSTO;XTKS;XTSE;XNZE;XWBO;XSWX;DIFX;XASE;XATH;XBAR;XBKK;XBRN;XBUD;XCHI;XFKA;XWAR;XIST;XKLS;XLAT;XLJU;XMEX;XNGO;XNAS;XOME;XOTC;XPHL;XPRA;XSAP;XSUR;XSWB;XTSX;XVTX;XAMS;ARCX:Aktien:Festverzinsliche Wertpapiere:Fonds:Fremdwährungsanleihen:Genussscheine:Indexzertifikate:Optionsscheine:Wandel- und Optionsanleihen cum'
133 HIWPSS:135:1:3+3+1+J'
134 HIWSDS:136:2:3+3+1+J:A;Inland DAX:B;Inland Sonstige:C;Ausland Europa:D;Ausland Sonstige'
135 HIWSOS:137:1:3+3+1+N:60:2:3:5:6:7:8:9:10'
136 HNHBS:138:1+1'
+0
-143
src/test/java/org/kapott/hbci4java/bpd/bpd3-lesbar.txt less more
0 HNHBK:1:3+000000010586+220+5730744363313150+1+5730744363313150:1'
1 HIRMG:2:2+3060::Teilweise liegen Warnungen oder Hinweise vor (HBMSG=10336)'
2 HIRMS:3:2:3+3050::BPD nicht mehr aktuell. Aktuelle Version folgt (HBMSG=10468)+0010::Der Auftrag wurde ausgeführt. (MBT61100000006)'
3 HIBPA:4:2:3+40+280:76052080+Sparkasse Neumarkt-Parsberg+3+1+201:210:220+650'
4 HIKOM:5:3:3+280:76052080+1+2:I085.BY.S-HBCI.DE::MIM:1'
5 HISHV:6:2:3+N+DDV:1'DIANAS:7:1:3+1+1+1+1:15'
6 DIANLS:8:1:3+1+1+1'
7 DIBAZS:9:1:3+1+1+1+J:J'
8 DIBKDS:10:3:3+1+1+1'
9 DIBKDS:11:4:3+1+1+1'
10 DIBKUS:12:3:3+1+1+1+J:N'
11 DIBRKS:13:1:3+1+1+1'
12 DIBUMS:14:3:3+1+1+1+N'
13 DIDFAS:15:1:3+1+1+1+N'
14 DIDFDS:16:1:3+1+1+1'
15 DIDFLS:17:1:3+1+1+1'
16 DIDFOS:18:1:3+1+1+1'
17 DIDFSS:19:1:3+1+1+1+N:1;DekaBank-Konzern;5;Swisscanto;7;JPMorgan Fleming,8;Lombard Odier;10;Franklin Templeton;11;Gartmore;12;Goldman Sachs;13;Black Rock Merrill;14;Threadneedle;15;UBS;16;Schroders:10_10:Aktienfonds Asien - Pazifik ohne Japan:10_20:Aktienfonds Branche:10_30:Aktienfonds Deutschland:10_40:Aktienfonds Emerging Markets:10_50:Aktienfonds Euroland:10_60:Aktienfonds Europa Länder:10_70:Aktienfonds Europa:10_80:Aktienfonds Japan:10_90:Aktienfonds Lateinamerika:10_100:Aktienfonds Nordamerika:10_110:Aktienfonds Osteuropa:10_120:Aktienfonds Welt:10_400:Aktienfonds Afrika:10_410:Aktienfonds Mittlerer Osten:10_420:Aktienfonds Nordeuropa:20_130:Dachfonds Chance Plus:20_140:Dachfonds Chance:20_150:Dachfonds Ertrag Plus:20_160:Dachfonds Ertrag:20_170:Dachfonds Wachstum:20_180:Dachfonds laufzeitbegrenzt:30_430:Garantiefonds:40_200:Geldmarktfonds:40_210:Geldmarktnahe Fonds:50_220:Alternative Investmentfonds Hedgefonds:50_230:Alternative Investmentfonds Private Equity:50_240:Alternative Investmentfonds Rohstofffonds:60_250:Sonderkonzepte Absolute-/Total-Returnstrategiefonds:60_260:Sonderkonzepte Altersvorsorgefonds:60_270:Sonderkonzepte Institutionelle Fondskonzepte:60_280:Sonderkonzepte Steuerorientierte Fonds:70_30:Immobilienfonds Deutschland:70_70:Immobilienfonds Europa:70_120:Immobilienfonds Welt:80_50:Mischfonds Euroland:80_290:Mischfonds ausgewogen:80_300:Mischfonds dynamisch:80_310:Mischfonds flexibel:80_320:Mischfonds konservativ:90_330:Rentenfonds Inflationsindexierte Anleihen:90_340:Rentenfonds Laufzeitfonds:90_350:Rentenfonds MBS:90_360:Rentenfonds Nachranganleihen:90_370:Rentenfonds Staatsanleihen:90_380:Rentenfonds Unternehmensanleihen:90_390:Rentenfonds Wandelanleihen'
18 DIDFUS:20:1:3+1+1+1+N'
19 DIDOFS:21:1:3+1+1+1'
20 DIFAFS:22:2:3+1+1+1+N:N'
21 DIFOPS:23:1:3+1+1+N:0:N:N:N::::0,::MAKT'
22 DIFPOS:24:1:3+3+1+N:0:N:N'
23 DIKAUS:25:3:3+1+1+1+N'
24 DIKKAS:26:2:3+1+1+1+N:N:2'
25 DIKKSS:27:3:3+1+1+1'
26 DIKKUS:28:2:3+1+1+1+90:N:J'
27 DINZPS:29:1:3+1+1+N:N:0:N:N:0,'
28 DIPAES:30:1:3+1+1'
29 DIPINS:31:1:3+1+1+DKPAE:J:DKTLF:J:DKTLA:N:DKTSP:N:HKVVB:N:HKUEB:J:HKSUB:J:HKLAS:J:HKSLA:J:HKDAE:J:HKDAN:J:HKDAL:J:HKDAB:N:HKWPO:J:HKWOA:J:HKWPS:J:HKWSO:N:HKWPD:N:HKNEZ:J:HKNEA:N:HKKDM:J:HKSAL:N:HKKAZ:N:HKWPR:N:HKTUE:J:HKTUA:J:HKTUL:J:HKTUB:N:HKAOM:J:HKWSD:N:HKWFO:J:DKPSA:J:HKKIF:N:HKFRD:N:HKUMB:J:HKFGB:N:HKEKA:N:HKQTG:N:HKAUB:J:DKANA:J:DKANL:J:DKPSP:N:HKTAN:N:DKFDA:N:HKPPD:J:DKURK:J:DKZDF:J:DKZDL:J:DKBAZ:N:DKBRK:N:HKTSE:J:HKTSL:J:HKSLE:J:HKSLL:J:HKTSB:N:HKSLB:N:DKBKD:N:DKBKU:N:DKBUM:N:HKLSW:J:HKLWB:N:DKWAP:N:DKWOP:N:DKFOP:N:DKNZP:N:HKWPK:N:HKSPA:N:HKCCM:J:HKCCS:J:HKTAU:N:HKTAB:N:HKTSY:N:HKCME:J:HKCMB:N:HKCML:J:HKEUE:J:HKFPO:J:DKFPO:N:HKWDU:N:HKWFP:N:HKCSA:J:HKCSB:N:HKCSE:J:HKCSL:J:HKMTA:J:HKMTF:N:HKMTR:J:HKTML:N:HKTAZ:N:DKVVD:N:DKVVU:N:DKKAU:N:DKKKA:N:DKKKS:N:DKKKU:N:HKDAS:J:DKDFA:N:DKDFD:N:DKDFL:J:DKDFO:J:DKDFS:N:DKDFU:N:DKFAF:N:DKDOF:N'
30 DIPSAS:32:1:3+1+1'
31 DIPSPS:33:1:3+1+1'
32 DITLAS:34:1:3+1+1'
33 DITLFS:35:1:3+1+1+N'
34 DITLFS:36:2:3+1+1+N'
35 DITSPS:37:1:3+1+1+N'
36 DIURKS:38:1:3+1+1+1+14:51'
37 DIVVDS:39:1:3+3+1+1'
38 DIVVUS:40:1:3+3+1+1+N:J'
39 DIWAPS:41:1:3+1+1+J:STOP;SLOS;LMTO;MAKT:J:J:GDAY;GTMO;GTHD;OPEN;CLOS:J:0:N:N:N:9999999,99:EUR'
40 DIWOPS:42:1:3+1+1+0:N:0:N:N:XBER;XDUS;XFRA;XHAM;XHAN;XMUN;XSTU;XETR;OTCO;XXXX;XGAT;XBRU;XDUB;XHEL;XHKG;XJKT;XJSE;XCSE;XLIS;XLON;XLUX;XMAD;XMIL;XASX;XNYS;XOSL;XPAR;XSES;XSTO;XTKS;XTSE;XNZE;XWBO;XSWX;DIFX;XASE;XATH;XBAR;XBKK;XBRN;XBUD;XCHI;XFKA;XWAR;XIST;XKLS;XLAT;XLJU;XMEX;XNGO;XNAS;XOME;XOTC;XPHL;XPRA;XSAP;XSUR;XSWB;XTSX;XVTX;XAMS;ARCX:07;08:Variabel;Continuous Trade (XETRA):::9999999,99:EUR:STOP;SLOS;LMTO;MAKT:BUYI;SELL;FIKI;NOHE;ALNO:GDAY;GTMO;GTHD;IOCA;OPEN;CLOS'
41 DIZDFS:43:1:3+1+1+1'
42 DIZDLS:44:1:3+1+1+1'
43 HIAOMS:45:1:3+1+1+J:040;140;140;140;140;50000,;EUR;50000,;EUR:056;140;140;140;140;50000,;EUR;50000,;EUR:246;140;140;140;140;50000,;EUR;50000,;EUR:250;140;140;140;140;50000,;EUR;50000,;EUR:300;140;140;140;140;50000,;EUR;50000,;EUR:372;140;140;140;140;50000,;EUR;50000,;EUR:380;140;140;140;140;50000,;EUR;50000,;EUR:442;140;140;140;140;50000,;EUR;50000,;EUR:528;140;140;140;140;50000,;EUR;50000,;EUR:620;140;140;140;140;50000,;EUR;50000,;EUR:724;140;140;140;140;50000,;EUR;50000,;EUR:826;140;140;140;140;50000,;EUR;50000,;EUR:208;140;140;140;140;50000,;EUR;50000,;EUR:292;140;140;140;140;50000,;EUR;50000,;EUR:752;140;140;140;140;50000,;EUR;50000,;EUR:196;140;140;140;140;50000,;EUR;50000,;EUR:203;140;140;140;140;50000,;EUR;50000,;EUR:233;140;140;140;140;50000,;EUR;50000,;EUR:348;140;140;140;140;50000,;EUR;50000,;EUR:440;140;140;140;140;50000,;EUR;50000,;EUR:428;140;140;140;140;50000,;EUR;50000,;EUR:470;140;140;140;140;50000,;EUR;50000,;EUR:616;140;140;140;140;50000,;EUR;50000,;EUR:705;140;140;140;140;50000,;EUR;50000,;EUR:703;140;140;140;140;50000,;EUR;50000,;EUR:352;140;140;140;140;50000,;EUR;50000,;EUR:578;140;140;140;140;50000,;EUR;50000,;EUR:438;140;140;140;140;50000,;EUR;50000,;EUR:100;140;140;140;140;50000,;EUR;50000,;EUR:642;140;140;140;140;50000,;EUR;50000,;EUR:756;140;140;140;140;50000,;EUR;50000,;EUR'
44 HIAUBS:46:5:3+1+1+1'
45 HICCMS:47:1:3+1+1+1+1000:N:N'
46 HICCSS:48:1:3+1+1+1'
47 HICMBS:49:1:3+1+1+1+N:J'
48 HICMES:50:1:3+1+1+1+1:360:1000:N:N'
49 HICMLS:51:1:3+1+1+1'
50 HICSAS:52:1:3+1+1+1+1:360'
51 HICSBS:53:1:3+1+1+1+N:J'
52 HICSES:54:1:3+1+1+1+1:360'
53 HICSLS:55:1:3+1+1+1+J'
54 HIDABS:56:1:3+3+1'
55 HIDABS:57:2:3+3+1'
56 HIDABS:58:3:3+3+1'
57 HIDAES:59:2:3+3+1+4:0:9999:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:54'
58 HIDAES:60:3:3+3+1+4:0:9999:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:54'
59 HIDALS:61:1:3+3+1+0:9999:J'
60 HIDALS:62:2:3+3+1+0:9999:J'
61 HIDANS:63:2:3+3+1+0:2:9999:J:J:J:N:J:J:N:J:J:J:4:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:54'
62 HIDANS:64:3:3+3+1+0:0:9999:J:J:J:N:J:J:N:J:J:J:4:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:54'
63 HIDASS:65:4:3+3+1+1+1:0:9999:1:N:N'
64 HIEKAS:66:2:3+1+1+1+J:J:N:1'
65 HIEKAS:67:3:3+1+1+1+J:J:N:1'
66 HIEUES:68:2:3+1+1+1+2007:1:12500,:V;W;:10:1'
67 HIFGBS:69:2:3+3+1'
68 HIFGBS:70:3:3+3+1'
69 HIFPOS:71:1:3+3+1+N:0:N:N'
70 HIFRDS:72:1:3+1+1'
71 HIFRDS:73:4:3+1+1+1+N:N:N:1:DekaBank'
72 HIKAZS:74:4:3+3+1+360:J'
73 HIKAZS:75:5:3+3+1+360:J:N'
74 HIKDMS:76:2:3+3+0+2048'
75 HIKDMS:77:3:3+3+0+2048'
76 HIKDMS:78:4:3+3+0+2048'
77 HIKIFS:79:1:3+1+1'
78 HIKIFS:80:4:3+1+1+1+J:J'
79 HIKIFS:81:5:3+1+1+1+J:J'
80 HILASS:82:2:3+3+1+14:05:04'
81 HILASS:83:3:3+3+1+14:05:04'
82 HILASS:84:4:3+3+1+14:05:04'
83 HILSWS:85:2:3+1+1+1+::05'
84 HILWBS:86:2:3+3+1+1+J:42:J'
85 HIMTAS:87:1:3+1+1+1+N'
86 HIMTFS:88:1:3+1+1+1'
87 HIMTRS:89:1:3+1+1+1+N'
88 HINEAS:90:1:3+1+1+1:2:3:4'
89 HINEZS:91:1:3+1+1+N:N:0:N:N:0,'
90 HIPPDS:92:1:3+1+1+1+1:Telekom:Xtra-Card:N:::15;30;50:2:Vodafone:CallYa:N:::15;25;50:3:E-Plus:Free and easy:N:::15;20;30:4:O2:Loop:N:::15;20;30:5:congstar:congstar:N:::15;30;50:6:blau:blau:N:::15;20;30:8:o.tel.o:o.tel.o:N:::9;19;29'
91 HIQTGS:93:1:3+1+1+1'
92 HISALS:94:3:3+3+1'
93 HISALS:95:4:3+3+1'
94 HISALS:96:5:3+3+1'
95 HISLAS:97:3:3+1+1+1000:14:05:04'
96 HISLAS:98:4:3+1+1+1000:14:05:04'
97 HISLBS:99:2:3+3+1+J'
98 HISLES:100:2:3+3+1+1:360:1000:14:04:05'
99 HISLLS:101:2:3+3+1'
100 HISPAS:102:1:3+1+1+1+J:N:N:http?://www.sepa-zka.de/1.0/pain.001.001.02.xsd'
101 HISPAS:103:2:3+1+1+1+J:N:N:N:http?://www.sepa-zka.de/1.0/pain.001.001.02.xsd'
102 HISUBS:104:3:3+1+1+1000:14:51:53:54:56:67:69'
103 HISUBS:105:4:3+1+1+1000:14:51:53:54:56:67:69'
104 HITABS:106:2:3+1+1+1'
105 HITABS:107:3:3+1+1+1'
106 HITABS:108:4:3+1+1+1'
107
108 HITANS:109:1:3+2+1+1+J:N:0:0:900:2:iTAN :iTAN :6:1:TAN-Nummer:3:1:J:J
109 :920:2:smsTAN :smsTAN :6:1:TAN-Nummer:3:1:J:J'
110 HITANS:110:3:3+2+1+1+J:N:0 :900:2:iTAN :iTAN :6:1:TAN-Nummer:3:1:J:2:0:N:N:N:00:0:0
111 :920:2:smsTAN :smsTAN :6:1:TAN-Nummer:3:1:J:2:0:N:N:N:00:2:5
112 :910:2:HHD1.3.0 :chipTAN manuell:6:1:TAN-Nummer:3:1:J:2:0:N:N:N:00:0:1
113 :911:2:HHD1.3.0OPT:chipTAN optisch:6:1:TAN-Nummer:3:1:J:2:0:N:N:N:00:0:1'
114
115 HITAUS:111:1:3+1+1+1+N:N:J'
116 HITAZS:112:1:3+1+1+1'
117 HITMLS:113:1:3+1+1+1'
118 HITSBS:114:2:3+3+1+J'
119 HITSES:115:2:3+3+1+1:360:1000:14:51:53:54:56:67:69'
120 HITSLS:116:2:3+3+1'
121 HITSYS:117:1:3+1+1+1+J:N'
122 HITUAS:118:2:3+3+1+1:360:14:51:53:54:56:67:69'
123 HITUBS:119:1:3+3+1+J'
124 HITUES:120:2:3+3+1+1:360:14:51:53:54:56:67:69'
125 HITULS:121:1:3+3+1'
126 HIUEBS:122:2:3+3+1+14:51:53:54:56:67:69'
127 HIUEBS:123:3:3+3+1+14:51:53:54:56:67:69'
128 HIUEBS:124:4:3+3+1+14:51:53:54:56:67:69'
129 HIUMBS:125:1:3+3+1+14:51'
130 HIWDUS:126:4:3+3+1+999'
131 HIWFOS:127:1:3+1+1+N:0:N:N:N::::0,::MAKT'
132 HIWFPS:128:2:3+3+1+RENTEN:INVESTMENTFONDS:GENUSSSCHEINE:SPARBRIEFE:UNTERNEHMENSANLEIHEN:EMERGING MARKET ANLEIHEN:STRUKTURIERTE ANLEIHEN:ZERTIFIKATE:AKTIEN:OPTIONSSCHEINE:ALLE ANGEBOTE EIGENES INSTITUT:ALLE ANGEBOTE UEBERGEORD. INSTITUTE'
133 HIWOAS:129:2:3+1+1+J:STOP;SLOS;LMTO;MAKT:J:J:GDAY;GTMO;GTHD;OPEN;CLOS:J:0:N:N:N:9999999,99:EUR'
134 HIWPDS:130:3:3+3+1+J'
135 HIWPDS:131:5:3+1+1+J:N:N'
136 HIWPKS:132:1:3+3+0+XBER;XDUS;XFRA;XHAM;XHAN;XMUN;XSTU;XETR;OTCO;XAMS;XASE;XASX;XATH;XBAR;XBIL;XBOS;XBRN;XBRU;XCAG;XCHI;XCSE;XDUB;XEUN;XHEL;XHKG;XISM;XJSE;XKLS;XLIS;XLON;XLUX;XMAD;XMIL;XNAS;XNQL;XNYS;XNZE;XOSL;XOTC;XPAR;XPHL;XSAP;XSES;XSHE;XSSE;XSSI;XSTO;XSWX;XTKS;XTSE;XVAL;XWBO'
137 HIWPOS:133:2:3+1+1+0:N:0:N:N:XBER;XDUS;XFRA;XHAM;XHAN;XMUN;XSTU;XETR;OTCO;XXXX;XGAT;XBRU;XDUB;XHEL;XHKG;XJKT;XJSE;XCSE;XLIS;XLON;XLUX;XMAD;XMIL;XASX;XNYS;XOSL;XPAR;XSES;XSTO;XTKS;XTSE;XNZE;XWBO;XSWX;DIFX;XASE;XATH;XBAR;XBKK;XBRN;XBUD;XCHI;XFKA;XWAR;XIST;XKLS;XLAT;XLJU;XMEX;XNGO;XNAS;XOME;XOTC;XPHL;XPRA;XSAP;XSUR;XSWB;XTSX;XVTX;XAMS;ARCX:07;08:Variabel;Continuous Trade (XETRA):::9999999,99:EUR:STOP;SLOS;LMTO;MAKT:BUYI;SELL;FIKI;NOHE;ALNO:GDAY;GTMO;GTHD;IOCA;OPEN;CLOS'
138 HIWPRS:134:1:3+3+1+J:J:N:N:XBER;XDUS;XFRA;XHAM;XHAN;XMUN;XSTU;XETR;OTCO;XXXX;XGAT;XBRU;XDUB;XHEL;XHKG;XJKT;XJSE;XCSE;XLIS;XLON;XLUX;XMAD;XMIL;XASX;XNYS;XOSL;XPAR;XSES;XSTO;XTKS;XTSE;XNZE;XWBO;XSWX;DIFX;XASE;XATH;XBAR;XBKK;XBRN;XBUD;XCHI;XFKA;XWAR;XIST;XKLS;XLAT;XLJU;XMEX;XNGO;XNAS;XOME;XOTC;XPHL;XPRA;XSAP;XSUR;XSWB;XTSX;XVTX;XAMS;ARCX:Aktien:Festverzinsliche Wertpapiere:Fonds:Fremdwährungsanleihen:Genussscheine:Indexzertifikate:Optionsscheine:Wandel- und Optionsanleihen cum'
139 HIWPSS:135:1:3+3+1+J'
140 HIWSDS:136:2:3+3+1+J:A;Inland DAX:B;Inland Sonstige:C;Ausland Europa:D;Ausland Sonstige'
141 HIWSOS:137:1:3+3+1+N:60:2:3:5:6:7:8:9:10'
142 HNHBS:138:1+1'
+0
-1
src/test/java/org/kapott/hbci4java/bpd/bpd3-raw.txt less more
0 HNHBK:1:3+000000010586+220+5730744363313150+1+5730744363313150:1'HIRMG:2:2+3060::Teilweise liegen Warnungen oder Hinweise vor (HBMSG=10336)'HIRMS:3:2:3+3050::BPD nicht mehr aktuell. Aktuelle Version folgt (HBMSG=10468)+0010::Der Auftrag wurde ausgeführt. (MBT61100000006)'HIBPA:4:2:3+40+280:76052080+Sparkasse Neumarkt-Parsberg+3+1+201:210:220+650'HIKOM:5:3:3+280:76052080+1+2:I085.BY.S-HBCI.DE::MIM:1'HISHV:6:2:3+N+DDV:1'DIANAS:7:1:3+1+1+1+1:15'DIANLS:8:1:3+1+1+1'DIBAZS:9:1:3+1+1+1+J:J'DIBKDS:10:3:3+1+1+1'DIBKDS:11:4:3+1+1+1'DIBKUS:12:3:3+1+1+1+J:N'DIBRKS:13:1:3+1+1+1'DIBUMS:14:3:3+1+1+1+N'DIDFAS:15:1:3+1+1+1+N'DIDFDS:16:1:3+1+1+1'DIDFLS:17:1:3+1+1+1'DIDFOS:18:1:3+1+1+1'DIDFSS:19:1:3+1+1+1+N:1;DekaBank-Konzern;5;Swisscanto;7;JPMorgan Fleming,8;Lombard Odier;10;Franklin Templeton;11;Gartmore;12;Goldman Sachs;13;Black Rock Merrill;14;Threadneedle;15;UBS;16;Schroders:10_10:Aktienfonds Asien - Pazifik ohne Japan:10_20:Aktienfonds Branche:10_30:Aktienfonds Deutschland:10_40:Aktienfonds Emerging Markets:10_50:Aktienfonds Euroland:10_60:Aktienfonds Europa Länder:10_70:Aktienfonds Europa:10_80:Aktienfonds Japan:10_90:Aktienfonds Lateinamerika:10_100:Aktienfonds Nordamerika:10_110:Aktienfonds Osteuropa:10_120:Aktienfonds Welt:10_400:Aktienfonds Afrika:10_410:Aktienfonds Mittlerer Osten:10_420:Aktienfonds Nordeuropa:20_130:Dachfonds Chance Plus:20_140:Dachfonds Chance:20_150:Dachfonds Ertrag Plus:20_160:Dachfonds Ertrag:20_170:Dachfonds Wachstum:20_180:Dachfonds laufzeitbegrenzt:30_430:Garantiefonds:40_200:Geldmarktfonds:40_210:Geldmarktnahe Fonds:50_220:Alternative Investmentfonds Hedgefonds:50_230:Alternative Investmentfonds Private Equity:50_240:Alternative Investmentfonds Rohstofffonds:60_250:Sonderkonzepte Absolute-/Total-Returnstrategiefonds:60_260:Sonderkonzepte Altersvorsorgefonds:60_270:Sonderkonzepte Institutionelle Fondskonzepte:60_280:Sonderkonzepte Steuerorientierte Fonds:70_30:Immobilienfonds Deutschland:70_70:Immobilienfonds Europa:70_120:Immobilienfonds Welt:80_50:Mischfonds Euroland:80_290:Mischfonds ausgewogen:80_300:Mischfonds dynamisch:80_310:Mischfonds flexibel:80_320:Mischfonds konservativ:90_330:Rentenfonds Inflationsindexierte Anleihen:90_340:Rentenfonds Laufzeitfonds:90_350:Rentenfonds MBS:90_360:Rentenfonds Nachranganleihen:90_370:Rentenfonds Staatsanleihen:90_380:Rentenfonds Unternehmensanleihen:90_390:Rentenfonds Wandelanleihen'DIDFUS:20:1:3+1+1+1+N'DIDOFS:21:1:3+1+1+1'DIFAFS:22:2:3+1+1+1+N:N'DIFOPS:23:1:3+1+1+N:0:N:N:N::::0,::MAKT'DIFPOS:24:1:3+3+1+N:0:N:N'DIKAUS:25:3:3+1+1+1+N'DIKKAS:26:2:3+1+1+1+N:N:2'DIKKSS:27:3:3+1+1+1'DIKKUS:28:2:3+1+1+1+90:N:J'DINZPS:29:1:3+1+1+N:N:0:N:N:0,'DIPAES:30:1:3+1+1'DIPINS:31:1:3+1+1+DKPAE:J:DKTLF:J:DKTLA:N:DKTSP:N:HKVVB:N:HKUEB:J:HKSUB:J:HKLAS:J:HKSLA:J:HKDAE:J:HKDAN:J:HKDAL:J:HKDAB:N:HKWPO:J:HKWOA:J:HKWPS:J:HKWSO:N:HKWPD:N:HKNEZ:J:HKNEA:N:HKKDM:J:HKSAL:N:HKKAZ:N:HKWPR:N:HKTUE:J:HKTUA:J:HKTUL:J:HKTUB:N:HKAOM:J:HKWSD:N:HKWFO:J:DKPSA:J:HKKIF:N:HKFRD:N:HKUMB:J:HKFGB:N:HKEKA:N:HKQTG:N:HKAUB:J:DKANA:J:DKANL:J:DKPSP:N:HKTAN:N:DKFDA:N:HKPPD:J:DKURK:J:DKZDF:J:DKZDL:J:DKBAZ:N:DKBRK:N:HKTSE:J:HKTSL:J:HKSLE:J:HKSLL:J:HKTSB:N:HKSLB:N:DKBKD:N:DKBKU:N:DKBUM:N:HKLSW:J:HKLWB:N:DKWAP:N:DKWOP:N:DKFOP:N:DKNZP:N:HKWPK:N:HKSPA:N:HKCCM:J:HKCCS:J:HKTAU:N:HKTAB:N:HKTSY:N:HKCME:J:HKCMB:N:HKCML:J:HKEUE:J:HKFPO:J:DKFPO:N:HKWDU:N:HKWFP:N:HKCSA:J:HKCSB:N:HKCSE:J:HKCSL:J:HKMTA:J:HKMTF:N:HKMTR:J:HKTML:N:HKTAZ:N:DKVVD:N:DKVVU:N:DKKAU:N:DKKKA:N:DKKKS:N:DKKKU:N:HKDAS:J:DKDFA:N:DKDFD:N:DKDFL:J:DKDFO:J:DKDFS:N:DKDFU:N:DKFAF:N:DKDOF:N'DIPSAS:32:1:3+1+1'DIPSPS:33:1:3+1+1'DITLAS:34:1:3+1+1'DITLFS:35:1:3+1+1+N'DITLFS:36:2:3+1+1+N'DITSPS:37:1:3+1+1+N'DIURKS:38:1:3+1+1+1+14:51'DIVVDS:39:1:3+3+1+1'DIVVUS:40:1:3+3+1+1+N:J'DIWAPS:41:1:3+1+1+J:STOP;SLOS;LMTO;MAKT:J:J:GDAY;GTMO;GTHD;OPEN;CLOS:J:0:N:N:N:9999999,99:EUR'DIWOPS:42:1:3+1+1+0:N:0:N:N:XBER;XDUS;XFRA;XHAM;XHAN;XMUN;XSTU;XETR;OTCO;XXXX;XGAT;XBRU;XDUB;XHEL;XHKG;XJKT;XJSE;XCSE;XLIS;XLON;XLUX;XMAD;XMIL;XASX;XNYS;XOSL;XPAR;XSES;XSTO;XTKS;XTSE;XNZE;XWBO;XSWX;DIFX;XASE;XATH;XBAR;XBKK;XBRN;XBUD;XCHI;XFKA;XWAR;XIST;XKLS;XLAT;XLJU;XMEX;XNGO;XNAS;XOME;XOTC;XPHL;XPRA;XSAP;XSUR;XSWB;XTSX;XVTX;XAMS;ARCX:07;08:Variabel;Continuous Trade (XETRA):::9999999,99:EUR:STOP;SLOS;LMTO;MAKT:BUYI;SELL;FIKI;NOHE;ALNO:GDAY;GTMO;GTHD;IOCA;OPEN;CLOS'DIZDFS:43:1:3+1+1+1'DIZDLS:44:1:3+1+1+1'HIAOMS:45:1:3+1+1+J:040;140;140;140;140;50000,;EUR;50000,;EUR:056;140;140;140;140;50000,;EUR;50000,;EUR:246;140;140;140;140;50000,;EUR;50000,;EUR:250;140;140;140;140;50000,;EUR;50000,;EUR:300;140;140;140;140;50000,;EUR;50000,;EUR:372;140;140;140;140;50000,;EUR;50000,;EUR:380;140;140;140;140;50000,;EUR;50000,;EUR:442;140;140;140;140;50000,;EUR;50000,;EUR:528;140;140;140;140;50000,;EUR;50000,;EUR:620;140;140;140;140;50000,;EUR;50000,;EUR:724;140;140;140;140;50000,;EUR;50000,;EUR:826;140;140;140;140;50000,;EUR;50000,;EUR:208;140;140;140;140;50000,;EUR;50000,;EUR:292;140;140;140;140;50000,;EUR;50000,;EUR:752;140;140;140;140;50000,;EUR;50000,;EUR:196;140;140;140;140;50000,;EUR;50000,;EUR:203;140;140;140;140;50000,;EUR;50000,;EUR:233;140;140;140;140;50000,;EUR;50000,;EUR:348;140;140;140;140;50000,;EUR;50000,;EUR:440;140;140;140;140;50000,;EUR;50000,;EUR:428;140;140;140;140;50000,;EUR;50000,;EUR:470;140;140;140;140;50000,;EUR;50000,;EUR:616;140;140;140;140;50000,;EUR;50000,;EUR:705;140;140;140;140;50000,;EUR;50000,;EUR:703;140;140;140;140;50000,;EUR;50000,;EUR:352;140;140;140;140;50000,;EUR;50000,;EUR:578;140;140;140;140;50000,;EUR;50000,;EUR:438;140;140;140;140;50000,;EUR;50000,;EUR:100;140;140;140;140;50000,;EUR;50000,;EUR:642;140;140;140;140;50000,;EUR;50000,;EUR:756;140;140;140;140;50000,;EUR;50000,;EUR'HIAUBS:46:5:3+1+1+1'HICCMS:47:1:3+1+1+1+1000:N:N'HICCSS:48:1:3+1+1+1'HICMBS:49:1:3+1+1+1+N:J'HICMES:50:1:3+1+1+1+1:360:1000:N:N'HICMLS:51:1:3+1+1+1'HICSAS:52:1:3+1+1+1+1:360'HICSBS:53:1:3+1+1+1+N:J'HICSES:54:1:3+1+1+1+1:360'HICSLS:55:1:3+1+1+1+J'HIDABS:56:1:3+3+1'HIDABS:57:2:3+3+1'HIDABS:58:3:3+3+1'HIDAES:59:2:3+3+1+4:0:9999:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:54'HIDAES:60:3:3+3+1+4:0:9999:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:54'HIDALS:61:1:3+3+1+0:9999:J'HIDALS:62:2:3+3+1+0:9999:J'HIDANS:63:2:3+3+1+0:2:9999:J:J:J:N:J:J:N:J:J:J:4:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:54'HIDANS:64:3:3+3+1+0:0:9999:J:J:J:N:J:J:N:J:J:J:4:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:54'HIDASS:65:4:3+3+1+1+1:0:9999:1:N:N'HIEKAS:66:2:3+1+1+1+J:J:N:1'HIEKAS:67:3:3+1+1+1+J:J:N:1'HIEUES:68:2:3+1+1+1+2007:1:12500,:V;W;:10:1'HIFGBS:69:2:3+3+1'HIFGBS:70:3:3+3+1'HIFPOS:71:1:3+3+1+N:0:N:N'HIFRDS:72:1:3+1+1'HIFRDS:73:4:3+1+1+1+N:N:N:1:DekaBank'HIKAZS:74:4:3+3+1+360:J'HIKAZS:75:5:3+3+1+360:J:N'HIKDMS:76:2:3+3+0+2048'HIKDMS:77:3:3+3+0+2048'HIKDMS:78:4:3+3+0+2048'HIKIFS:79:1:3+1+1'HIKIFS:80:4:3+1+1+1+J:J'HIKIFS:81:5:3+1+1+1+J:J'HILASS:82:2:3+3+1+14:05:04'HILASS:83:3:3+3+1+14:05:04'HILASS:84:4:3+3+1+14:05:04'HILSWS:85:2:3+1+1+1+::05'HILWBS:86:2:3+3+1+1+J:42:J'HIMTAS:87:1:3+1+1+1+N'HIMTFS:88:1:3+1+1+1'HIMTRS:89:1:3+1+1+1+N'HINEAS:90:1:3+1+1+1:2:3:4'HINEZS:91:1:3+1+1+N:N:0:N:N:0,'HIPPDS:92:1:3+1+1+1+1:Telekom:Xtra-Card:N:::15;30;50:2:Vodafone:CallYa:N:::15;25;50:3:E-Plus:Free and easy:N:::15;20;30:4:O2:Loop:N:::15;20;30:5:congstar:congstar:N:::15;30;50:6:blau:blau:N:::15;20;30:8:o.tel.o:o.tel.o:N:::9;19;29'HIQTGS:93:1:3+1+1+1'HISALS:94:3:3+3+1'HISALS:95:4:3+3+1'HISALS:96:5:3+3+1'HISLAS:97:3:3+1+1+1000:14:05:04'HISLAS:98:4:3+1+1+1000:14:05:04'HISLBS:99:2:3+3+1+J'HISLES:100:2:3+3+1+1:360:1000:14:04:05'HISLLS:101:2:3+3+1'HISPAS:102:1:3+1+1+1+J:N:N:http?://www.sepa-zka.de/1.0/pain.001.001.02.xsd'HISPAS:103:2:3+1+1+1+J:N:N:N:http?://www.sepa-zka.de/1.0/pain.001.001.02.xsd'HISUBS:104:3:3+1+1+1000:14:51:53:54:56:67:69'HISUBS:105:4:3+1+1+1000:14:51:53:54:56:67:69'HITABS:106:2:3+1+1+1'HITABS:107:3:3+1+1+1'HITABS:108:4:3+1+1+1'HITANS:109:1:3+2+1+1+J:N:0:0:900:2:iTAN:iTAN:6:1:TAN-Nummer:3:1:J:J:920:2:smsTAN:smsTAN:6:1:TAN-Nummer:3:1:J:J'HITANS:110:3:3+2+1+1+J:N:0:900:2:iTAN:iTAN:6:1:TAN-Nummer:3:1:J:2:0:N:N:N:00:0:0:920:2:smsTAN:smsTAN:6:1:TAN-Nummer:3:1:J:2:0:N:N:N:00:2:5:910:2:HHD1.3.0:chipTAN manuell:6:1:TAN-Nummer:3:1:J:2:0:N:N:N:00:0:1:911:2:HHD1.3.0OPT:chipTAN optisch:6:1:TAN-Nummer:3:1:J:2:0:N:N:N:00:0:1'HITAUS:111:1:3+1+1+1+N:N:J'HITAZS:112:1:3+1+1+1'HITMLS:113:1:3+1+1+1'HITSBS:114:2:3+3+1+J'HITSES:115:2:3+3+1+1:360:1000:14:51:53:54:56:67:69'HITSLS:116:2:3+3+1'HITSYS:117:1:3+1+1+1+J:N'HITUAS:118:2:3+3+1+1:360:14:51:53:54:56:67:69'HITUBS:119:1:3+3+1+J'HITUES:120:2:3+3+1+1:360:14:51:53:54:56:67:69'HITULS:121:1:3+3+1'HIUEBS:122:2:3+3+1+14:51:53:54:56:67:69'HIUEBS:123:3:3+3+1+14:51:53:54:56:67:69'HIUEBS:124:4:3+3+1+14:51:53:54:56:67:69'HIUMBS:125:1:3+3+1+14:51'HIWDUS:126:4:3+3+1+999'HIWFOS:127:1:3+1+1+N:0:N:N:N::::0,::MAKT'HIWFPS:128:2:3+3+1+RENTEN:INVESTMENTFONDS:GENUSSSCHEINE:SPARBRIEFE:UNTERNEHMENSANLEIHEN:EMERGING MARKET ANLEIHEN:STRUKTURIERTE ANLEIHEN:ZERTIFIKATE:AKTIEN:OPTIONSSCHEINE:ALLE ANGEBOTE EIGENES INSTITUT:ALLE ANGEBOTE UEBERGEORD. INSTITUTE'HIWOAS:129:2:3+1+1+J:STOP;SLOS;LMTO;MAKT:J:J:GDAY;GTMO;GTHD;OPEN;CLOS:J:0:N:N:N:9999999,99:EUR'HIWPDS:130:3:3+3+1+J'HIWPDS:131:5:3+1+1+J:N:N'HIWPKS:132:1:3+3+0+XBER;XDUS;XFRA;XHAM;XHAN;XMUN;XSTU;XETR;OTCO;XAMS;XASE;XASX;XATH;XBAR;XBIL;XBOS;XBRN;XBRU;XCAG;XCHI;XCSE;XDUB;XEUN;XHEL;XHKG;XISM;XJSE;XKLS;XLIS;XLON;XLUX;XMAD;XMIL;XNAS;XNQL;XNYS;XNZE;XOSL;XOTC;XPAR;XPHL;XSAP;XSES;XSHE;XSSE;XSSI;XSTO;XSWX;XTKS;XTSE;XVAL;XWBO'HIWPOS:133:2:3+1+1+0:N:0:N:N:XBER;XDUS;XFRA;XHAM;XHAN;XMUN;XSTU;XETR;OTCO;XXXX;XGAT;XBRU;XDUB;XHEL;XHKG;XJKT;XJSE;XCSE;XLIS;XLON;XLUX;XMAD;XMIL;XASX;XNYS;XOSL;XPAR;XSES;XSTO;XTKS;XTSE;XNZE;XWBO;XSWX;DIFX;XASE;XATH;XBAR;XBKK;XBRN;XBUD;XCHI;XFKA;XWAR;XIST;XKLS;XLAT;XLJU;XMEX;XNGO;XNAS;XOME;XOTC;XPHL;XPRA;XSAP;XSUR;XSWB;XTSX;XVTX;XAMS;ARCX:07;08:Variabel;Continuous Trade (XETRA):::9999999,99:EUR:STOP;SLOS;LMTO;MAKT:BUYI;SELL;FIKI;NOHE;ALNO:GDAY;GTMO;GTHD;IOCA;OPEN;CLOS'HIWPRS:134:1:3+3+1+J:J:N:N:XBER;XDUS;XFRA;XHAM;XHAN;XMUN;XSTU;XETR;OTCO;XXXX;XGAT;XBRU;XDUB;XHEL;XHKG;XJKT;XJSE;XCSE;XLIS;XLON;XLUX;XMAD;XMIL;XASX;XNYS;XOSL;XPAR;XSES;XSTO;XTKS;XTSE;XNZE;XWBO;XSWX;DIFX;XASE;XATH;XBAR;XBKK;XBRN;XBUD;XCHI;XFKA;XWAR;XIST;XKLS;XLAT;XLJU;XMEX;XNGO;XNAS;XOME;XOTC;XPHL;XPRA;XSAP;XSUR;XSWB;XTSX;XVTX;XAMS;ARCX:Aktien:Festverzinsliche Wertpapiere:Fonds:Fremdwährungsanleihen:Genussscheine:Indexzertifikate:Optionsscheine:Wandel- und Optionsanleihen cum'HIWPSS:135:1:3+3+1+J'HIWSDS:136:2:3+3+1+J:A;Inland DAX:B;Inland Sonstige:C;Ausland Europa:D;Ausland Sonstige'HIWSOS:137:1:3+3+1+N:60:2:3:5:6:7:8:9:10'HNHBS:138:1+1'
+0
-6
src/test/java/org/kapott/hbci4java/bpd/bugzilla-1322.txt less more
0 HNHBK:1:3+000000013158+300+RA3012915250382+1+RA3012915250382:1'
1 HIRMG:2:2+3060::Bitte beachten Sie die enthaltenen Warnungen/Hinweise. (TRE)'
2 HIRMS:3:2:3+3050::BPD nicht mehr aktuell, aktuelle Version enthalten. (TRE)+0020::Informationen fehlerfrei entgegengenommen. (TRE)'
3 HIBPA:4:3:3+112+280:49999924+Test Schulung 4924 IMS8+1+1+300+500'
4 HIVISS:5:1:3+1+1+1+1;L;;Bankauftrag;;;;1;L;;allgemein;;;;2;L;;Legitimation;;;;2;L;;Benutzerkennung;;;;3;L;;Version;;;;4;L;;Überweisung;;;;4;L;;Inland;;;;5;L;;Umbuchung;;;;6;L;;Umbuchung;;;;6;L;;terminiert;;;;7;L;;Überweisung;;;;7;L;;Referenzkonto;;;;8;L;;Überweisung;;;;8;L;;SEPA/EU;;;;9;L;;Überweisung;;;;9;L;;Inland;;;;10;L;;Überweisung;;;;10;L;;Ausland;;;;11;L;;Sammelüberw.;;;;11;L;;Inland;;;;12;L;;Sammelüberw.;;;;12;L;;SEPA;;;;13;L;;Sammelüberw.;;;;13;L;;Ausland;;;;14;L;;Lastschrift;;;;14;L;;Inland;;;;15;L;;Rückgabe;;;;15;L;;Lastschrift;;;;16;L;;Lastschrift;;;;16;L;;SEPA;;;;17;L;;Lastschrift;;;;17;L;;Ausland;;;;18;L;;Sammellasts.;;;;18;L;;Inland;;;;19;L;;Sammellasts.;;;;19;L;;SEPA;;;;20;L;;Sammellasts.;;;;20;L;;Ausland;;;;21;L;;Terminüberw.;;;;21;L;;Inland;;;;22;L;;Terminüberw.;;;;22;L;;SEPA;;;;23;L;;Terminüberw.;;;;23;L;;Ausland;;;;24;L;;Terminüberw.;;;;24;L;;Sammel Inl.;;;;25;L;;Terminüberw.;;;;25;L;;Sammel SEPA;;;;26;L;;Terminüberw.;;;;26;L;;Sammel Ausl.;;;;27;L;;Terminlasts.;;;;27;L;;Inland;;;;28;L;;Terminlasts.;;;;28;L;;SEPA;;;;29;L;;Terminlasts.;;;;29;L;;Ausland;;;;30;L;;Terminlasts.;;;;30;L;;Sammel Inl.;;;;31;L;;Terminlasts.;;;;31;L;;Sammel SEPA;;;;32;L;;Terminlasts.;;;;32;L;;Sammel Ausl.;;;;33;L;;Dauerüberw.;;;;33;L;;Inland;;;;34;L;;Dauerüberw.;;;;34;L;;SEPA;;;;35;L;;Dauerüberw.;;;;35;L;;Ausland;;;;36;L;;Dauerlasts.;;;;36;L;;Inland;;;;37;L;;Dauerlasts.;;;;37;L;;SEPA;;;;38;L;;Bestand;;;;38;L;;abfragen;;;;39;L;;Löschen;;;;39;L;;Auftrag;;;;40;L;;Aussetzen;;;;40;L;;Auftrag;;;;41;L;;Aussetzen;;;;41;L;;Auftrag;;;;42;L;;Ändern;;;;42;L;;Auftrag;;;;43;L;;Ändern;;;;43;L;;Auftrag;;;;44;L;;Freigabe;;;;44;L;;Überw. DTAUS;;;;45;L;;Freigabe;;;;45;L;;Lasts. DTAUS;;;;46;L;;Freigabe;;;;46;L;;Überw. DTAZV;;;;47;L;;Freigabe;;;;47;L;;Überw. SEPA;;;;48;L;;Freigabe;;;;48;L;;Lasts. SEPA;;;;49;L;;Freigabe;;;;49;L;;DSRZ-Dateien;;;;50;L;;Kontoauszug;;;;50;L;;u. Quittung;;;;51;L;;Kontoauszug;;;;51;L;;an/abmelden;;;;52;L;;Postfach;;;;52;L;;an/abmelden;;;;53;L;;Postkorb;;;;54;L;;Datentresor;;;;55;L;;Wertpapier;;;;55;L;;Kauf;;;;56;L;;Wertpapier;;;;56;L;;Verkauf;;;;57;L;;Wertpapier;;;;57;L;;Geschäft;;;;58;L;;Anlage;;;;58;L;;Abschluss;;;;59;L;;Kredit;;;;59;L;;Abschluss;;;;60;L;;Produkt;;;;60;L;;Kauf;;;;61;L;;Versicherung;;;;61;L;;Abschluss;;;;62;L;;Service;;;;62;L;;Funktionen;;;;63;L;;TAN-Medien;;;;63;L;;Management;;;;64;L;;Mobiltelefon;;;;64;L;;laden;;;;65;L;;GeldKarte;;;;65;L;;laden;;;;66;L;;Zahlung;;;;66;L;;Internet;;;;67;L;;Geldtransfer;;;;67;L;;Internet;;;;68;L;;Freistellung;;;;69;L;;Adresse;;;;69;L;;ändern;;;;70;L;;Wertpapier;;;;70;L;;Kauf;;;;71;L;;Wertpapier;;;;71;L;;Verkauf;;;;72;L;;Wertpapier;;;;72;L;;Geschäft;;;;73;L;;Eigene;;;;73;L;;IBAN;;;;74;L;;IBAN;;;;74;L;;Empfänger;;;;75;L;;IBAN;;;;75;L;;Zahler;;;;76;L;;IBAN;;;;76;L;;Absender;;;;77;L;;Kunden;;;;77;L;;Nummer;;;;78;L;;Vertrags-;;;;78;L;;Kennung;;;;79;L;;Eigene;;;;79;L;;IBAN;;;;80;L;;Name;;;;81;L;;Auftrags-;;;;81;L;;Identifikation;;;;82;L;;Händler ;;;;82;L;;Name;;;;83;L;;Karten-;;;;83;L;;nummer;;;;84;L;;TAN;;;;84;L;;Medium;;;;85;L;;Summe nur;;;;85;L;;Vorkommastellen;;;;86;L;;Freistellung;;;;86;L;;ändern;;;;87;L;;Umbuchung;;;;87;L;;Inland;;;;88;L;;Umbuchung;;;;88;L;;SEPA/EU;;;;89;L;;Adresse?:;;;;89;L;16;#;;;;90;L;;Angebots-Nr?:;;;;90;R;16;#;;;;91;L;;Anzahl?:;;;;91;R;16;#;;;;92;L;;Auftrags-ID?:;;;;92;L;16;#;;;;93;L;;Aut.Merkmal?:;;;;93;L;16;#;;;;94;L;;Bankdaten?:;;;;94;L;16;#;;;;95;L;;Betrag?:;;;;95;R;16;#;;;;96;L;;BIC Empf.?:;;;;96;L;16;#;;;;97;L;;BLZ Abs.?:;;;;97;R;16;#;;;;98;L;;BLZ Empf.?:;;;;98;R;16;#;;;;99;L;;BLZ Karte?:;;;;99;R;16;#;;;;100;L;;BLZ Zahler?:;;;;100;R;16;#;;;;101;L;;Eigene BLZ?:;;;;101;R;16;#;;;;102;L;;Eigenes Kto?:;;;;102;R;16;#;;;;103;L;;Geburtsdatum;;;;103;L;16;#;;;;104;L;;Händlername?:;;;;104;L;16;#;;;;105;L;;ISIN?:;;;;105;L;16;#;;;;106;L;;Kartennummer;;;;106;R;16;#;;;;107;L;;Konto Abs.?:;;;;107;R;16;#;;;;108;L;;Konto Empf.?:;;;;108;R;16;#;;;;109;L;;Konto Zahler;;;;109;R;16;#;;;;110;L;;Kreditkarte?:;;;;110;R;16;#;;;;111;L;;Limit?:;;;;111;R;16;#;;;;112;L;;Menge?:;;;;112;R;16;#;;;;113;L;;Mobilfunknr?:;;;;113;R;16;#;;;;114;L;;Name Empf.?:;;;;114;L;16;#;;;;115;L;;Postleitzahl;;;;115;R;16;#;;;;116;L;;Rate?:;;;;116;R;16;#;;;;117;L;;Referenzkto?:;;;;117;R;16;#;;;;118;L;;Referenzzahl;;;;118;R;16;#;;;;119;L;;Stücke/Nom.?:;;;;119;R;16;#;;;;120;L;;TAN-Medium;;;;120;L;16;#;;;;121;L;;Termin?:;;;;121;L;16;#;;;;122;L;;Vertrag.Kenn;;;;122;L;16;#;;;;123;L;;WP-Kenn-Nr?:;;;;123;R;16;#;;;;124;L;;Kunden-Nr.;;;;124;R;16;#;;;;125;L;;Summe;;;;125;R;16;#;;;;126;L;32;#;;;;127;R;32;#;;;;128;L;16;#;;;;129;R;16;#;;;:HKAUB;4;811;10;;;85;;;129;3;Z.3:HKBME;1;811;31;;;91;4;NbOfTxs.1;95;4;CtrlSum.1;73;;;126;4;IBAN.1:HKBML;1;811;39;;;79;;;126;1;3,1;95;1;7,1:HKBSA;1;811;42;;;75;;;126;4;IBAN.2;95;4;CtrlSum.1:HKBSE;1;811;28;;;75;;;126;4;IBAN.2;95;4;CtrlSum.1:HKBSL;1;811;39;;;75;;;126;4;IBAN.2;95;4;CtrlSum.1:HKCCM;1;811;12;;;91;4;NbOfTxs.1;95;4;CtrlSum.1;79;;;126;4;IBAN.1:HKCCS;1;811;8;;;74;;;126;4;IBAN.2;95;4;CtrlSum.1:HKCME;1;811;25;;;91;4;NbOfTxs.1;95;4;CtrlSum.1;79;;;126;1;2,1:HKCML;1;811;39;;;79;;;126;1;3,1;95;1;7,1:HKCSA;1;811;42;;;74;;;126;4;IBAN.2;95;4;CtrlSum.1:HKCSE;1;811;22;;;74;;;126;4;IBAN.2;95;4;CtrlSum.1:HKCSL;1;811;39;;;74;;;126;4;IBAN.2;95;4;CtrlSum.1:HKDAE;3;811;33;;;108;1;3,1;98;1;3,3;95;1;6,1:HKDAL;2;811;39;;;108;1;3,1;98;1;3,3;95;1;6,1:HKDAN;3;811;42;;;108;1;3,1;98;1;3,3;95;1;6,1:HKDAS;2;811;40;;;108;1;3,1;98;1;3,3;95;1;6,1:HKDME;1;811;31;;;91;4;NbOfTxs.1;95;4;CtrlSum.1;73;;;126;4;IBAN.1:HKDML;1;811;39;;;79;;;126;1;3,1;95;1;7,1:HKDSA;1;811;42;;;75;;;126;4;IBAN.2;95;4;CtrlSum.1:HKDSE;1;811;28;;;75;;;126;4;IBAN.2;95;4;CtrlSum.1:HKDSL;1;811;39;;;75;;;126;4;IBAN.2;95;4;CtrlSum.1:HKFGA;2;811;42;;;108;1;2,1:HKFGN;2;811;58;;;108;1;2,1:HKLAS;3;811;14;;;109;1;3,1;100;1;3,3;95;1;6,1:HKPPD;1;811;64;;;113;1;4;95;1;5,1:HKSLA;4;811;18;;;91;2;E.4;95;2;E.8;102;2;A.9:HKSUB;4;811;11;;;91;2;E.4;95;2;E.8;102;2;A.9:HKSTP;1;811;8;;;85;;;129;3;Z.3:HKUEB;3;811;4;;;108;1;3,1;98;1;3,3;95;1;6,1:HKUMB;1;811;87;;;108;1;3,1;95;1;6,1:HKTUA;2;811;42;;;108;1;3,1;98;1;3,3;95;1;6,1:HKTUE;2;811;21;;;108;1;3,1;98;1;3,3;95;1;6,1:HKTUL;1;811;39;;;102;1;2,1;95;1;6,1:HKIDN;2;811;2;;;126;1;3'
5 HNHBS:6:1+1'
0 /**********************************************************************
1 * $Source: /cvsroot/hibiscus/hbci4java/test/hbci4java/ddv/PCSCTest.java,v $
2 * $Revision: 1.1 $
3 * $Date: 2011/11/24 21:59:37 $
4 * $Author: willuhn $
5 *
6 * Copyright (c) by willuhn - software & services
7 * All rights reserved
8 *
9 **********************************************************************/
10
110 package org.kapott.hbci4java.ddv;
121
132 import java.io.File;
154
165 import org.junit.After;
176 import org.junit.AfterClass;
7 import org.junit.Assume;
188 import org.junit.Before;
199 import org.junit.BeforeClass;
2010 import org.junit.Test;
3424 private static File dir = null;
3525 HBCIPassportDDVPCSC passport = null;
3626
27 /**
28 * Deaktiviert den Test, wenn das System-Property nicht auf "true" steht.
29 * @throws Exception
30 */
31 @BeforeClass
32 public static void beforeClass() throws Exception
33 {
34 Assume.assumeTrue(Boolean.getBoolean(AbstractTest.SYSPROP_CHIPCARD));
35 }
36
3737 /**
3838 * List die Daten aus der Karte.
3939 * @throws Exception
119119 // TODO: Verzeichnis und Inhalt muesste mal noch geloescht werden.
120120 }
121121 }
122
123
124
125 /**********************************************************************
126 * $Log: PCSCTest.java,v $
127 * Revision 1.1 2011/11/24 21:59:37 willuhn
128 * @N Patch 33 - erster Code fuer PC/SC-Support via javax.smartcardio - noch nicht funktionsfaehig
129 *
130 **********************************************************************/
2727 import org.kapott.hbci.manager.MsgGen;
2828 import org.kapott.hbci.protocol.MSG;
2929 import org.kapott.hbci.protocol.factory.MSGFactory;
30 import org.kapott.hbci.sepa.PainVersion;
30 import org.kapott.hbci.sepa.SepaVersion;
3131 import org.kapott.hbci4java.AbstractTest;
3232
3333 /**
5959 continue;
6060
6161 ByteArrayInputStream bis = new ByteArrayInputStream(ht.get(key).getBytes(Comm.ENCODING));
62 PainVersion version = PainVersion.autodetect(bis);
62 SepaVersion version = SepaVersion.autodetect(bis);
6363 Assert.assertNotNull(version);
64 ISEPAParser parser = SEPAParserFactory.get(version);
64 ISEPAParser<List<Properties>> parser = SEPAParserFactory.get(version);
6565
6666 bis.reset();
6767
68 ArrayList<Properties> sepaResults = new ArrayList<Properties>();
68 List<Properties> sepaResults = new ArrayList<Properties>();
6969 parser.parse(bis,sepaResults);
7070 Assert.assertTrue(sepaResults.size() > 0);
7171 for (int i=0;i<sepaResults.size();++i)
+0
-13
src/test/java/org/kapott/hbci4java/msg/TestMultipleDEGs-01.txt less more
0 HNHBK:1:3+000000000000+300+000000000000=0000000000000000=+1+000000000000=0000000000000000=:1'
1 HNSHK:2:4+PIN:2+911+0000000000+1+1+2::AAAAAAAAAAAAAAAAAAAA+1+1:00000000:000000+1:999:1+6:10:16+280:00000000:XXXXXXXX:S:0:0'
2 HIRMG:3:2+3060::Bitte beachten Sie die enthaltenen Warnungen/Hinweise.'
3 HIRMS:4:2:4+3050::UPD nicht mehr aktuell, aktuelle Version enthalten.+3920::Zugelassene Zwei-Schritt-Verfahren für den Benutzer.:910:911+0020::Der Auftrag wurde ausgeführt.'
4 HIUPA:5:4:4+0000000000+0+0++000000000000000000000'
5 HIUPD:6:6:4+000000000::280:00000000+DE00000000000000000000+0000000000+10+EUR+NAME1++NAME2++HKSAK:1+HKISA:1+HKSSP:1+DKPAE:1+DKPSA:1+DKPSP:1+HKPAE:1+HKTSY:1+HKTAB:1+HKTAU:1+HKTAZ:1+HKSPA:1+HKCAZ:1+HKTAN:1+DKANA:1+DKANL:1+HKFRD:1+HKKDM:1+HKKAZ:1+HKSAL:1++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++{"umsltzt"?:"2016-08-23-16.48.20.988676"}'
6 HIUPD:7:6:4+000000000::280:00000000+DE00000000000000000000+0000000000+1+EUR+NAME1++NAME2++HKSAK:1+HKISA:1+HKSSP:1+DKPAE:1+DKPSA:1+DKPSP:1+HKPAE:1+HKTSY:1+HKTAB:1+HKTAU:1+HKTAZ:1+HKSPA:1+HKCAZ:1+HKCCM:1+HKCCS:1+HKCDB:1+HKCDE:1+HKCDL:1+HKCDN:1+HKCDU:1+HKCMB:1+HKCME:1+HKCML:1+HKCSA:1+HKCSB:1+HKCSE:1+HKCSL:1+HKCUB:1+HKCUM:1+HKDSB:1+HKDSW:1+HKEKA:1+HKQTG:1+HKEKP:1+HKTAN:1+DKANA:1+DKANL:1+DKALE:1+DKALL:1+DKALN:1+DKBAZ:1+DKBVK:1+DKTCK:1+DKZDF:1+DKZDL:1+HKFRD:1+HKKDM:1+HKKAZ:1+HKSAL:1+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++{"umsltzt"?:"2016-08-26-06.01.34.775823"}'
7 HIUPD:8:6:4+000000000::280:00000000+DE00000000000000000000+0000000000+1+EUR+NAME1++NAME2++HKSAK:1+HKISA:1+HKSSP:1+DKPAE:1+DKPSA:1+DKPSP:1+HKPAE:1+HKTSY:1+HKTAB:1+HKTAU:1+HKTAZ:1+HKSPA:1+HKCAZ:1+HKCCM:1+HKCCS:1+HKCDB:1+HKCDE:1+HKCDL:1+HKCDN:1+HKCDU:1+HKCMB:1+HKCME:1+HKCML:1+HKCSA:1+HKCSB:1+HKCSE:1+HKCSL:1+HKCUB:1+HKCUM:1+HKDSB:1+HKDSW:1+HKEKA:1+HKQTG:1+HKEKP:1+HKPPD:1+HKTAN:1+DKANA:1+DKANL:1+DKALE:1+DKALL:1+DKALN:1+DKBAZ:1+DKBVK:1+DKTCK:1+DKZDF:1+DKZDL:1+HKFRD:1+HKKDM:1+HKKAZ:1+HKKIF:1+HKSAL:1+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++{"umsltzt"?:"2016-08-18-20.42.10.853855"}'
8 HIUPD:9:6:4+000000000::280:00000000+DE00000000000000000000+0000000000+10+EUR+NAME1++NAME2++HKSAK:1+HKISA:1+HKSSP:1+DKPAE:1+DKPSA:1+DKPSP:1+HKPAE:1+HKTSY:1+HKTAB:1+HKTAU:1+HKTAZ:1+HKSPA:1+HKCAZ:1+HKTAN:1+DKANA:1+DKANL:1+HKFRD:1+HKKDM:1+HKKAZ:1+HKSAL:1++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++{"umsltzt"?:"2016-03-31-10.35.19.564359"}'
9 HIUPD:10:6:4+000000000::280:00000000+DE00000000000000000000+0000000000+10+EUR+NAME1++NAME2++HKSAK:1+HKISA:1+HKSSP:1+DKPAE:1+DKPSA:1+DKPSP:1+HKPAE:1+HKTSY:1+HKTAB:1+HKTAU:1+HKTAZ:1+HKSPA:1+HKCAZ:1+HKTAN:1+DKANA:1+DKANL:1+HKFRD:1+HKKDM:1+HKKAZ:1+HKSAL:1++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++{"umsltzt"?:"2016-03-31-10.35.19.564359"}'
10 HIUPD:11:6:4+000000000::280:00000000+DE00000000000000000000+0000000000+1+EUR+NAME1++NAME2++HKSAK:1+HKISA:1+HKSSP:1+DKPAE:1+DKPSA:1+DKPSP:1+HKPAE:1+HKTSY:1+HKTAB:1+HKTAU:1+HKTAZ:1+HKSPA:1+HKCAZ:1+HKCCM:1+HKCCS:1+HKCDB:1+HKCDE:1+HKCDL:1+HKCDN:1+HKCDU:1+HKCMB:1+HKCME:1+HKCML:1+HKCSA:1+HKCSB:1+HKCSE:1+HKCSL:1+HKCUB:1+HKCUM:1+HKDSB:1+HKDSW:1+HKEKA:1+HKQTG:1+HKEKP:1+HKPPD:1+HKTAN:1+DKANA:1+DKANL:1+DKALE:1+DKALL:1+DKALN:1+DKBAZ:1+DKBVK:1+DKTCK:1+DKZDF:1+DKZDL:1+HKFRD:1+HKKDM:1+HKKAZ:1+HKKIF:1+HKSAL:1+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++{"umsltzt"?:"2016-08-18-20.42.10.853855"}'
11 HNSHA:12:2+0000000000'
12 HNHBS:13:1+1'
+0
-14
src/test/java/org/kapott/hbci4java/msg/bugzilla-1129.txt less more
0 HNHBK:1:3+000000001823+220+1234567890+2+1234567890:2'
1 HIRMG:2:2+0010::Nachricht entgegengenommen.'
2 HIRMS:3:2:3+0020::Sie haben 10 Dauerauftrag/Daueraufträge im Bestand.'
3 HIDAB:4:4:3+123456789:EUR:280:12345678+1234567890::280:12345678+Möller, Ralf++1,:EUR+52+000+WIRTSCHAFTSGELDUND SONSTIGE:S::+20120402+1+20080901:M:1:1'
4 HIDAB:5:4:3+123456789:EUR:280:12345678+1234567890::280:12345678+Möller, Ralf++2,:EUR+52+000+AUTO:::+20120402+3+20030601:M:1:1'
5 HIDAB:6:4:3+123456789:EUR:280:12345678+1234567890::280:12345678+Möller, Ralf++3,:EUR+52+000+HAUSKONTO:::+20120402+4+20091101:M:1:1'
6 HIDAB:7:4:3+123456789:EUR:280:12345678+1234567890::280:12345678+Möller, Ralf++4,:EUR+52+000+URLAUB:::+20120402+5+20020201:M:1:1'
7 HIDAB:8:4:3+123456789:EUR:280:12345678+1234567890::280:12345678+Möller, Ralf++5,:EUR+52+000+KLEIDER:::+20120402+6+20030601:M:1:1'
8 HIDAB:9:4:3+123456789:EUR:280:12345678+1234567890::280:12345678+Foobar AG++6,:EUR+52+000+artiges (17), easy-ms(17),:k62 (20) MX-backup Jahresg:eb}hren z.T. im Voraus:+20121101+10+20091101:M:12:1'
9 HIDAB:10:4:3+123456789:EUR:280:12345678+1234567890::280:12345678+Möller, Verena++7,:EUR+52+000+Taschengeld f}r Verena:::+20120402+11+20120101:M:1:1'
10 HIDAB:11:4:3+123456789:EUR:280:12345678+1234567890::280:12345678+Möller, Ralf++8,:EUR+52+000+Ausgleich Wohnungskonto:::+20120402+12+20120201:M:1:1'
11 HIDAB:12:4:3+123456789:EUR:280:12345678+1234567890::280:12345678+Ralf Möller++9,:EUR+52+000+Essensgeld:::+20120402+14+20090201:M:1:1'
12 HIDAB:13:4:3+123456789:EUR:280:12345678+1234567890::280:12345678+Sarah Möller++10,:EUR+52+000+Taschengeld Sarah:::+20120402+15+20120101:M:1:1'
13 HNHBS:14:1+2'
+0
-10
src/test/java/org/kapott/hbci4java/msg/bugzilla-1806.txt less more
0 HNHBK:1:3+000000008501+300+123456789012345678901234567890+2+123456789012345678901234567890:2'
1 HIRMG:2:2+0010::Nachricht entgegengenommen.'
2 HIRMS:3:2:3+0020::Auftrag ausgeführt'
3 HICDB:4:1:3+DE1928020050XXXXXXXXXX:OLBODEH2XXX:XXXXXXXXXX:EUR:280:28020050+urn?:iso?:std?:iso?:20022?:tech?:xsd?:pain.001.001.03+@1141@<?xml version="1.0" encoding="UTF-8"?><Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.002.03" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.001.002.03 pain.001.002.03.xsd" ><CstmrCdtTrfInitn><GrpHdr><MsgId>0000002</MsgId><CreDtTm>2017-03-30T21:04:53.000Z</CreDtTm><NbOfTxs>1</NbOfTxs><CtrlSum>25.00</CtrlSum><InitgPty><Nm>Max Mustermannn</Nm></InitgPty></GrpHdr><PmtInf><PmtInfId>0000002</PmtInfId><PmtMtd>TRF</PmtMtd><PmtTpInf><SvcLvl><Cd>SEPA</Cd></SvcLvl></PmtTpInf><ReqdExctnDt>2017-04-15</ReqdExctnDt><Dbtr><Nm>Max Mustermannn</Nm></Dbtr><DbtrAcct><Id><IBAN>DE1234567890XXXXXXXXXX</IBAN></Id></DbtrAcct><DbtrAgt><FinInstnId><BIC>OLBODEH2XXX</BIC></FinInstnId></DbtrAgt><ChrgBr>SLEV</ChrgBr><CdtTrfTxInf><PmtId><EndToEndId>NOTPROVIDED</EndToEndId></PmtId><Amt><InstdAmt Ccy="EUR" >10.00</InstdAmt></Amt><CdtrAgt><FinInstnId><BIC>OLBODEH2XXX</BIC></FinInstnId></CdtrAgt><Cdtr><Nm>abcdefgijk</Nm></Cdtr><CdtrAcct><Id><IBAN>DE12345678901234567890</IBAN></Id></CdtrAcct><RmtInf><Ustrd>ABCDEFGHIJK</Ustrd></RmtInf></CdtTrfTxInf></PmtInf></CstmrCdtTrfInitn></Document>+0000002+20170415:M:1:15++J+N+J'
4 HICDB:5:1:3+DE1928020050XXXXXXXXXX:OLBODEH2XXX:XXXXXXXXXX:EUR:280:28020050+urn?:iso?:std?:iso?:20022?:tech?:xsd?:pain.001.001.03+@1181@<?xml version="1.0" encoding="UTF-8"?><Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.002.03" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.001.002.03 pain.001.002.03.xsd" ><CstmrCdtTrfInitn><GrpHdr><MsgId>0000004</MsgId><CreDtTm>2017-03-30T21:04:53.000Z</CreDtTm><NbOfTxs>1</NbOfTxs><CtrlSum>50.00</CtrlSum><InitgPty><Nm>Max Mustermannn</Nm></InitgPty></GrpHdr><PmtInf><PmtInfId>0000004</PmtInfId><PmtMtd>TRF</PmtMtd><PmtTpInf><SvcLvl><Cd>SEPA</Cd></SvcLvl></PmtTpInf><ReqdExctnDt>2017-04-15</ReqdExctnDt><Dbtr><Nm>Max Mustermannn</Nm></Dbtr><DbtrAcct><Id><IBAN>DE1234567890XXXXXXXXXX</IBAN></Id></DbtrAcct><DbtrAgt><FinInstnId><BIC>OLBODEH2XXX</BIC></FinInstnId></DbtrAgt><ChrgBr>SLEV</ChrgBr><CdtTrfTxInf><PmtId><EndToEndId>NOTPROVIDED</EndToEndId></PmtId><Amt><InstdAmt Ccy="EUR" >15.00</InstdAmt></Amt><CdtrAgt><FinInstnId><BIC>OLBODEH2XXX</BIC></FinInstnId></CdtrAgt><Cdtr><Nm>ABCDEFGHIJKL</Nm></Cdtr><CdtrAcct><Id><IBAN>DE12345678901234567890</IBAN></Id></CdtrAcct><RmtInf><Ustrd>Abcdhdgsjsshdjdksksjdjdkdjdjdkdkdjsjsjsksksjsksje</Ustrd></RmtInf></CdtTrfTxInf></PmtInf></CstmrCdtTrfInitn></Document>+0000004+20170415:M:1:15:20220615++J+N+J'
5 HICDB:6:1:3+DE1928020050XXXXXXXXXX:OLBODEH2XXX:XXXXXXXXXX:EUR:280:28020050+urn?:iso?:std?:iso?:20022?:tech?:xsd?:pain.001.001.03+@1160@<?xml version="1.0" encoding="UTF-8"?><Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.002.03" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.001.002.03 pain.001.002.03.xsd" ><CstmrCdtTrfInitn><GrpHdr><MsgId>0000005</MsgId><CreDtTm>2017-03-30T21:04:53.000Z</CreDtTm><NbOfTxs>1</NbOfTxs><CtrlSum>20.00</CtrlSum><InitgPty><Nm>Max Mustermannn</Nm></InitgPty></GrpHdr><PmtInf><PmtInfId>0000005</PmtInfId><PmtMtd>TRF</PmtMtd><PmtTpInf><SvcLvl><Cd>SEPA</Cd></SvcLvl></PmtTpInf><ReqdExctnDt>2017-04-15</ReqdExctnDt><Dbtr><Nm>Max Mustermannn</Nm></Dbtr><DbtrAcct><Id><IBAN>DE1234567890XXXXXXXXXX</IBAN></Id></DbtrAcct><DbtrAgt><FinInstnId><BIC>OLBODEH2XXX</BIC></FinInstnId></DbtrAgt><ChrgBr>SLEV</ChrgBr><CdtTrfTxInf><PmtId><EndToEndId>NOTPROVIDED</EndToEndId></PmtId><Amt><InstdAmt Ccy="EUR" >20.00</InstdAmt></Amt><CdtrAgt><FinInstnId><BIC>WBAGDE61XXX</BIC></FinInstnId></CdtrAgt><Cdtr><Nm>abcdefgijk</Nm></Cdtr><CdtrAcct><Id><IBAN>DE12345678901234567890</IBAN></Id></CdtrAcct><RmtInf><Ustrd>dgdhdjdsjshdhdjsieudjdjsjsksks</Ustrd></RmtInf></CdtTrfTxInf></PmtInf></CstmrCdtTrfInitn></Document>+0000005+20170415:M:1:15++J+N+J'
6 HICDB:7:1:3+DE1928020050XXXXXXXXXX:OLBODEH2XXX:XXXXXXXXXX:EUR:280:28020050+urn?:iso?:std?:iso?:20022?:tech?:xsd?:pain.001.001.03+@1156@<?xml version="1.0" encoding="UTF-8"?><Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.002.03" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.001.002.03 pain.001.002.03.xsd" ><CstmrCdtTrfInitn><GrpHdr><MsgId>0000008</MsgId><CreDtTm>2017-03-30T21:04:53.000Z</CreDtTm><NbOfTxs>1</NbOfTxs><CtrlSum>333.33</CtrlSum><InitgPty><Nm>Max Mustermannn</Nm></InitgPty></GrpHdr><PmtInf><PmtInfId>0000008</PmtInfId><PmtMtd>TRF</PmtMtd><PmtTpInf><SvcLvl><Cd>SEPA</Cd></SvcLvl></PmtTpInf><ReqdExctnDt>2017-04-01</ReqdExctnDt><Dbtr><Nm>Max Mustermannn</Nm></Dbtr><DbtrAcct><Id><IBAN>DE1234567890XXXXXXXXXX</IBAN></Id></DbtrAcct><DbtrAgt><FinInstnId><BIC>OLBODEH2XXX</BIC></FinInstnId></DbtrAgt><ChrgBr>SLEV</ChrgBr><CdtTrfTxInf><PmtId><EndToEndId>NOTPROVIDED</EndToEndId></PmtId><Amt><InstdAmt Ccy="EUR" >100.00</InstdAmt></Amt><CdtrAgt><FinInstnId><BIC>PBNKDEFFXXX</BIC></FinInstnId></CdtrAgt><Cdtr><Nm>ABCDEFGHIJ</Nm></Cdtr><CdtrAcct><Id><IBAN>DE12345678901234567890</IBAN></Id></CdtrAcct><RmtInf><Ustrd>dhdhdjdjsshdhdjksksksjds</Ustrd></RmtInf></CdtTrfTxInf></PmtInf></CstmrCdtTrfInitn></Document>+0000008+20170401:M:1:1:20190201++J+N+J'
7 HICDB:8:1:3+DE1928020050XXXXXXXXXX:OLBODEH2XXX:XXXXXXXXXX:EUR:280:28020050+urn?:iso?:std?:iso?:20022?:tech?:xsd?:pain.001.001.03+@1147@<?xml version="1.0" encoding="UTF-8"?><Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.002.03" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.001.002.03 pain.001.002.03.xsd" ><CstmrCdtTrfInitn><GrpHdr><MsgId>0000009</MsgId><CreDtTm>2017-03-30T21:04:53.000Z</CreDtTm><NbOfTxs>1</NbOfTxs><CtrlSum>100.00</CtrlSum><InitgPty><Nm>Max Mustermannn</Nm></InitgPty></GrpHdr><PmtInf><PmtInfId>0000009</PmtInfId><PmtMtd>TRF</PmtMtd><PmtTpInf><SvcLvl><Cd>SEPA</Cd></SvcLvl></PmtTpInf><ReqdExctnDt>2017-04-15</ReqdExctnDt><Dbtr><Nm>Max Mustermannn</Nm></Dbtr><DbtrAcct><Id><IBAN>DE1234567890XXXXXXXXXX</IBAN></Id></DbtrAcct><DbtrAgt><FinInstnId><BIC>OLBODEH2XXX</BIC></FinInstnId></DbtrAgt><ChrgBr>SLEV</ChrgBr><CdtTrfTxInf><PmtId><EndToEndId>NOTPROVIDED</EndToEndId></PmtId><Amt><InstdAmt Ccy="EUR" >110.00</InstdAmt></Amt><CdtrAgt><FinInstnId><BIC>OLBODEH2XXX</BIC></FinInstnId></CdtrAgt><Cdtr><Nm>ABCDEFGHIJKL</Nm></Cdtr><CdtrAcct><Id><IBAN>DE12345678901234567890</IBAN></Id></CdtrAcct><RmtInf><Ustrd>dhdjdhdjdhsks</Ustrd></RmtInf></CdtTrfTxInf></PmtInf></CstmrCdtTrfInitn></Document>+0000009+20170415:M:1:15++J+N+J'
8 HICDB:9:1:3+DE1928020050XXXXXXXXXX:OLBODEH2XXX:XXXXXXXXXX:EUR:280:28020050+urn?:iso?:std?:iso?:20022?:tech?:xsd?:pain.001.001.03+@1158@<?xml version="1.0" encoding="UTF-8"?><Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.002.03" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.001.002.03 pain.001.002.03.xsd" ><CstmrCdtTrfInitn><GrpHdr><MsgId>0000011</MsgId><CreDtTm>2017-03-30T21:04:53.000Z</CreDtTm><NbOfTxs>1</NbOfTxs><CtrlSum>58.33</CtrlSum><InitgPty><Nm>Max Mustermannn</Nm></InitgPty></GrpHdr><PmtInf><PmtInfId>0000011</PmtInfId><PmtMtd>TRF</PmtMtd><PmtTpInf><SvcLvl><Cd>SEPA</Cd></SvcLvl></PmtTpInf><ReqdExctnDt>2017-04-01</ReqdExctnDt><Dbtr><Nm>Max Mustermannn</Nm></Dbtr><DbtrAcct><Id><IBAN>DE1234567890XXXXXXXXXX</IBAN></Id></DbtrAcct><DbtrAgt><FinInstnId><BIC>OLBODEH2XXX</BIC></FinInstnId></DbtrAgt><ChrgBr>SLEV</ChrgBr><CdtTrfTxInf><PmtId><EndToEndId>NOTPROVIDED</EndToEndId></PmtId><Amt><InstdAmt Ccy="EUR" >50.00</InstdAmt></Amt><CdtrAgt><FinInstnId><BIC>PBNKDEFFXXX</BIC></FinInstnId></CdtrAgt><Cdtr><Nm>Abcdefghij</Nm></Cdtr><CdtrAcct><Id><IBAN>DE12345678901234567890</IBAN></Id></CdtrAcct><RmtInf><Ustrd>dfjdudddkjsdksksjdjdkdksmxsd</Ustrd></RmtInf></CdtTrfTxInf></PmtInf></CstmrCdtTrfInitn></Document>+0000011+20170401:M:1:1:20201001++J+N+J'
9 HNHBS:10:1+2'
0 /**
1 *
2 */
30 package org.kapott.hbci4java.rsa;
41
52 import java.io.File;
63
74 import org.junit.After;
85 import org.junit.AfterClass;
6 import org.junit.Assume;
97 import org.junit.Before;
108 import org.junit.BeforeClass;
119 import org.junit.Test;
2321
2422 private static File dir = null;
2523
24 /**
25 * Deaktiviert den Test, wenn das System-Property nicht auf "true" steht.
26 * @throws Exception
27 */
28 @BeforeClass
29 public static void beforeClass() throws Exception
30 {
31 Assume.assumeTrue(Boolean.getBoolean(AbstractTest.SYSPROP_CHIPCARD));
32 }
33
2634 @BeforeClass
2735 public static void beforeCardClass() throws Exception {
36
37 Assume.assumeTrue(Boolean.getBoolean(AbstractTest.SYSPROP_CHIPCARD));
38
2839 String tmpDir = System.getProperty("java.io.tmpdir", "/tmp");
2940 dir = new File(tmpDir, "rsajava");
3041 dir.mkdirs();
src/test/java/org/kapott/hbci4java/secmech/TestMatrixCode-001.txt less more
Binary diff not shown
src/test/java/org/kapott/hbci4java/secmech/TestMatrixCode-002.txt less more
Binary diff not shown
0 /**********************************************************************
1 *
2 * Copyright (c) by Olaf Willuhn
3 * All rights reserved
4 * LGPLv2
5 *
6 **********************************************************************/
7
8 package org.kapott.hbci4java.sepa;
9
10 import java.io.InputStream;
11 import java.math.BigDecimal;
12 import java.text.DateFormat;
13 import java.text.SimpleDateFormat;
14 import java.util.HashMap;
15 import java.util.List;
16 import java.util.Map;
17 import java.util.Map.Entry;
18
19 import org.junit.Assert;
20 import org.junit.Test;
21 import org.kapott.hbci.GV.parsers.ISEPAParser;
22 import org.kapott.hbci.GV.parsers.SEPAParserFactory;
23 import org.kapott.hbci.GV_Result.GVRKUms;
24 import org.kapott.hbci.GV_Result.GVRKUms.BTag;
25 import org.kapott.hbci.GV_Result.GVRKUms.UmsLine;
26 import org.kapott.hbci.sepa.SepaVersion;
27 import org.kapott.hbci4java.AbstractTest;
28
29 /**
30 * Testet das Parsen von CAMT XML-Dateien - ohne HBCI-Context.
31 */
32 public class TestCamtParse extends AbstractTest
33 {
34 private final static DateFormat DF = new SimpleDateFormat("yyyy-MM-dd");
35
36 /**
37 * Testet das korrekte Ermitteln der PAIN-Version aus dem XML-Dokument.
38 * @throws Exception
39 */
40 @Test
41 public void test001() throws Exception
42 {
43 Map<String, SepaVersion> files = new HashMap<String, SepaVersion>() {{
44 put("test-camt-parse-05200102.xml", SepaVersion.CAMT_052_001_02);
45 }};
46
47 for (Entry<String, SepaVersion> entry : files.entrySet())
48 {
49 InputStream is = null;
50 try
51 {
52 is = this.getStream(entry.getKey());
53 SepaVersion version = SepaVersion.autodetect(is);
54 Assert.assertEquals(version, entry.getValue());
55 }
56 finally
57 {
58 if (is != null)
59 is.close();
60 }
61 }
62 }
63
64 /**
65 * Testet die Autodetection fuer eine XML-Datei ohne Namespace.
66 * @throws Exception
67 */
68 @Test
69 public void test002() throws Exception
70 {
71 InputStream is = null;
72 try
73 {
74 is = this.getStream("test-camt-parse-none.xml");
75 SepaVersion version = SepaVersion.autodetect(is);
76 Assert.assertNull(version);
77 }
78 finally
79 {
80 if (is != null)
81 is.close();
82 }
83 }
84
85 /**
86 * Testet das Fehlschlagen der Autodetection fuer eine XML-Datei mit falschem Namespace.
87 * @throws Exception
88 */
89 @Test
90 public void test003() throws Exception
91 {
92 InputStream is = null;
93 try
94 {
95 is = this.getStream("test-camt-parse-invalid.xml");
96 SepaVersion.autodetect(is);
97 Assert.fail();
98 }
99 catch (IllegalArgumentException iae)
100 {
101 Assert.assertEquals(iae.getClass(), IllegalArgumentException.class);
102 }
103 finally
104 {
105 if (is != null)
106 is.close();
107 }
108 }
109
110 /**
111 * Testet das Lesen einer CAMT-Datei.
112 * @throws Exception
113 */
114 @Test
115 public void test004() throws Exception
116 {
117 final String file = "test-camt-parse-05200102.xml";
118 InputStream is1 = null;
119 InputStream is2 = null;
120 try
121 {
122 is1 = this.getStream(file);
123 SepaVersion version = SepaVersion.autodetect(is1);
124 ISEPAParser<GVRKUms> parser = SEPAParserFactory.get(version);
125
126 is2 = this.getStream(file);
127 GVRKUms ums = new GVRKUms();
128 parser.parse(is2, ums);
129
130 List<BTag> days = ums.getDataPerDay();
131 Assert.assertEquals("Anzahl Tage falsch", 1, days.size());
132
133 BTag day = days.get(0);
134 List<UmsLine> lines = day.lines;
135 Assert.assertEquals("Anzahl Buchungen falsch", 2, lines.size());
136
137 Assert.assertTrue("Startsaldo falsch", new BigDecimal("100").compareTo(day.start.value.getBigDecimalValue()) == 0);
138 Assert.assertTrue("Endsaldo falsch", new BigDecimal("110.50").compareTo(day.end.value.getBigDecimalValue()) == 0);
139 Assert.assertEquals("Startdatum falsch", DF.parse("2018-07-20"), day.start.timestamp);
140 Assert.assertEquals("Enddatum falsch", DF.parse("2018-07-20"), day.end.timestamp);
141 Assert.assertEquals("Startsaldo Waehrung falsch", "EUR",day.start.value.getCurr());
142 Assert.assertEquals("Endsaldo Waehrung falsch", "EUR",day.end.value.getCurr());
143
144 Assert.assertNotNull("Konto fehlt",day.my);
145 Assert.assertEquals("IBAN falsch","DE12345678901234567890",day.my.iban);
146 Assert.assertEquals("BIC falsch","ABCDEFG1ABC",day.my.bic);
147 Assert.assertEquals("Waehrung falsch","EUR",day.my.curr);
148
149 Assert.assertEquals("Starttyp falsch",'F',day.starttype);
150 Assert.assertEquals("Endtyp falsch",'F',day.endtype);
151
152 {
153 UmsLine l = lines.get(0);
154 Assert.assertNull("additional falsch",l.additional);
155 Assert.assertEquals("addkey falsch","000",l.addkey);
156 Assert.assertEquals("Buchungsdatum falsch",DF.parseObject("2018-07-20"),l.bdate);
157 Assert.assertNull("charge_value falsch",l.charge_value);
158 Assert.assertEquals("customerref falsch","NONREF",l.customerref);
159 Assert.assertEquals("gvcode falsch","152",l.gvcode);
160 Assert.assertEquals("id falsch","2018-07-20-07.51.25.370057",l.id);
161 Assert.assertNull("instref falsch",l.instref);
162 Assert.assertTrue("Buchung nicht als CAMT-Buchung markiert",l.isCamt);
163 Assert.assertTrue("Buchung nicht als SEPA-Buchung markiert",l.isSepa);
164 Assert.assertFalse("Buchung ist kein Storno",l.isStorno);
165 Assert.assertNull("orig_value falsch",l.orig_value);
166 Assert.assertNotNull("Gegenkonto fehlt",l.other);
167 Assert.assertEquals("Gegenkonto IBAN falsch","DE12345678901234567891",l.other.iban);
168 Assert.assertEquals("Gegenkonto BIC falsch","ABCDEFG2ABC",l.other.bic);
169 Assert.assertEquals("Gegenkonto Name falsch","Max Mustermann",l.other.name);
170 Assert.assertEquals("primanota falsch","9201",l.primanota);
171 Assert.assertEquals("purposecode falsch","RINP",l.purposecode);
172 Assert.assertNotNull("Saldo fehlt",l.saldo);
173 Assert.assertTrue("Saldo falsch", new BigDecimal("110").compareTo(l.saldo.value.getBigDecimalValue()) == 0);
174 Assert.assertEquals("Saldodatum falsch", DF.parse("2018-07-20"), l.saldo.timestamp);
175 Assert.assertEquals("Saldo-Waehrung falsch", "EUR",l.saldo.value.getCurr());
176 Assert.assertEquals("Text falsch","DAUERAUFTRAG",l.text);
177 Assert.assertNotNull("Verwendungszweck fehlt",l.usage);
178 Assert.assertEquals("Anzahl Verwendungszwecke falsch",1,l.usage.size());
179 Assert.assertEquals("Verwendungszweck falsch","Verwendungszweck 1",l.usage.get(0));
180 Assert.assertNotNull("Betrag fehlt",l.value);
181 Assert.assertTrue("Betrag falsch", new BigDecimal("10").compareTo(l.value.getBigDecimalValue()) == 0);
182 Assert.assertEquals("Betrag-Waehrung falsch", "EUR",l.value.getCurr());
183 Assert.assertEquals("Valuta falsch",DF.parse("2018-07-21"),l.valuta);
184 }
185
186 {
187 UmsLine l = lines.get(1);
188 Assert.assertNull("additional falsch",l.additional);
189 Assert.assertEquals("addkey falsch","000",l.addkey);
190 Assert.assertEquals("Buchungsdatum falsch",DF.parseObject("2018-07-20"),l.bdate);
191 Assert.assertNull("charge_value falsch",l.charge_value);
192 Assert.assertEquals("customerref falsch","NONREF",l.customerref);
193 Assert.assertEquals("gvcode falsch","152",l.gvcode);
194 Assert.assertEquals("id falsch","2018-07-20-07.51.28.370057",l.id);
195 Assert.assertNull("instref falsch",l.instref);
196 Assert.assertTrue("Buchung nicht als CAMT-Buchung markiert",l.isCamt);
197 Assert.assertTrue("Buchung nicht als SEPA-Buchung markiert",l.isSepa);
198 Assert.assertFalse("Buchung ist kein Storno",l.isStorno);
199 Assert.assertNull("orig_value falsch",l.orig_value);
200 Assert.assertNotNull("Gegenkonto fehlt",l.other);
201 Assert.assertEquals("Gegenkonto IBAN falsch","DE12345678901234567892",l.other.iban);
202 Assert.assertEquals("Gegenkonto BIC falsch","ABCDEFG3ABC",l.other.bic);
203 Assert.assertEquals("Gegenkonto Name falsch","Bert Bezahler",l.other.name);
204 Assert.assertEquals("primanota falsch","9201",l.primanota);
205 Assert.assertEquals("purposecode falsch","DEPT",l.purposecode);
206 Assert.assertNotNull("Saldo fehlt",l.saldo);
207 Assert.assertTrue("Saldo falsch", new BigDecimal("110.50").compareTo(l.saldo.value.getBigDecimalValue()) == 0);
208 Assert.assertEquals("Saldodatum falsch", DF.parse("2018-07-20"), l.saldo.timestamp);
209 Assert.assertEquals("Saldo-Waehrung falsch", "EUR",l.saldo.value.getCurr());
210 Assert.assertEquals("Text falsch","EINZAHLUNG",l.text);
211 Assert.assertNotNull("Verwendungszweck fehlt",l.usage);
212 Assert.assertEquals("Anzahl Verwendungszwecke falsch",1,l.usage.size());
213 Assert.assertEquals("Verwendungszweck falsch","Verwendungszweck 2",l.usage.get(0));
214 Assert.assertNotNull("Betrag fehlt",l.value);
215 Assert.assertTrue("Betrag falsch", new BigDecimal("0.50").compareTo(l.value.getBigDecimalValue()) == 0);
216 Assert.assertEquals("Betrag-Waehrung falsch", "EUR",l.value.getCurr());
217 Assert.assertEquals("Valuta falsch",DF.parse("2018-07-22"),l.valuta);
218 }
219 }
220 finally
221 {
222 if (is1 != null)
223 is1.close();
224 if (is2 != null)
225 is2.close();
226 }
227 }
228 }
00 package org.kapott.hbci4java.sepa;
11
2 import java.io.File;
3 import java.io.FileInputStream;
4 import java.io.InputStream;
5 import java.util.HashMap;
6 import java.util.Iterator;
7 import java.util.Map;
82 import java.util.Properties;
93
10 import org.junit.After;
11 import org.junit.AfterClass;
12 import org.junit.Assert;
13 import org.junit.Before;
14 import org.junit.BeforeClass;
154 import org.junit.Test;
165 import org.kapott.hbci.GV.HBCIJob;
17 import org.kapott.hbci.GV_Result.HBCIJobResult;
18 import org.kapott.hbci.callback.HBCICallback;
19 import org.kapott.hbci.callback.HBCICallbackConsole;
20 import org.kapott.hbci.manager.HBCIHandler;
21 import org.kapott.hbci.manager.HBCIUtils;
22 import org.kapott.hbci.passport.AbstractHBCIPassport;
236 import org.kapott.hbci.passport.HBCIPassport;
24 import org.kapott.hbci.passport.HBCIPassportPinTan;
25 import org.kapott.hbci.status.HBCIExecStatus;
267 import org.kapott.hbci.structures.Konto;
278 import org.kapott.hbci.structures.Value;
28 import org.kapott.hbci4java.AbstractTest;
9 import org.kapott.hbci4java.AbstractTestGV;
2910
3011
31 public class TestGVDauerSEPADel extends AbstractTest {
32 private final static int LOGLEVEL = 5;
33 private final static Map<Integer,String> settings = new HashMap<Integer,String>()
34 {{
35 // Demo-Konto bei der GAD
36 put(HBCICallback.NEED_COUNTRY, "DE");
37 put(HBCICallback.NEED_FILTER, "Base64");
38 put(HBCICallback.NEED_PASSPHRASE_LOAD, "test");
39 put(HBCICallback.NEED_PASSPHRASE_SAVE, "test");
40 put(HBCICallback.NEED_PORT, "443");
41 put(HBCICallback.NEED_CONNECTION, ""); // ignorieren
42 put(HBCICallback.CLOSE_CONNECTION, ""); // ignorieren
43 }};
44
45 private static File dir = null;
46
47 private HBCIPassportPinTan passport = null;
48 private HBCIHandler handler = null;
49 private Properties params = new Properties();
50
51
12 /**
13 * Testet das Loeschen eines SEPA-Dauerauftrages.
14 */
15 public class TestGVDauerSEPADel extends AbstractTestGV
16 {
17 /**
18 * Testet das Loeschen eines SEPA-Dauerauftrages.
19 */
5220 @Test
53 public void test() {
54 System.out.println("---------Erstelle Job");
55 HBCIJob job = handler.newJob("DauerSEPADel");
21 public void test()
22 {
23 this.execute(new Execution() {
24
25 @Override
26 public String getJobname() {
27 return "DauerSEPADel";
28 }
29
30 /**
31 * @see org.kapott.hbci4java.AbstractTestGV.Execution#configure(org.kapott.hbci.GV.HBCIJob, org.kapott.hbci.passport.HBCIPassport, java.util.Properties)
32 */
33 @Override
34 public void configure(HBCIJob job, HBCIPassport passport, Properties params) {
35 Konto acc = new Konto();
36 acc.blz = params.getProperty("blz");
37 acc.number = params.getProperty("konto");
38 acc.name = params.getProperty("name");
39 acc.bic = params.getProperty("bic");
40 acc.iban = params.getProperty("iban");
41 job.setParam("dst",acc);
42
43 int idx = Integer.parseInt(params.getProperty("passport_index","0"));
44 job.setParam("src",passport.getAccounts()[idx]);
45
46 String value = params.getProperty("value","1");
47 job.setParam("btg",new Value(Integer.parseInt(value),"EUR"));
48 job.setParam("usage",params.getProperty("usage"));
49
50 job.setParam("firstdate", params.getProperty("firstdate"));
51 job.setParam("timeunit", params.getProperty("timeunit","M"));
52 job.setParam("turnus", params.getProperty("turnus","1"));
53 job.setParam("execday", params.getProperty("execday","1"));
54 job.setParam("orderid", params.getProperty("orderid"));
55 }
56
57 });
58 }
5659
57 Konto acc = new Konto();
58 acc.blz = params.getProperty("target_blz");
59 acc.number = params.getProperty("target_number");
60 acc.name = "Kurt Mustermann";
61 acc.bic = params.getProperty("target_bic");
62 acc.iban = params.getProperty("target_iban");
63
64 int source_acc_idx = Integer.parseInt(params.getProperty("source_account_idx"));
65 job.setParam("src",passport.getAccounts()[source_acc_idx]);
66 job.setParam("dst",acc);
67 String value = params.getProperty("value");
68 if(value == null) value = "100";
69 job.setParam("btg",new Value(Integer.parseInt(value),"EUR"));
70 job.setParam("usage","SEPA Dauerauftrag");
71 job.setParam("firstdate", params.getProperty("firstdate"));
72 job.setParam("timeunit", "M");
73 job.setParam("turnus", "1");
74 job.setParam("execday", "1");
75 job.setParam("orderid", params.getProperty("orderid"));
76
77 System.out.println("---------Für Job zur Queue");
78 job.addToQueue();
79
80
81 HBCIExecStatus ret = handler.execute();
82 HBCIJobResult res = job.getJobResult();
83 System.out.println("----------Result: "+res.toString());
84
85 Assert.assertEquals("Job Result ist nicht OK!", true, res.isOK());
86 }
87
88 /**
89 * Erzeugt das Passport-Objekt.
90 * @throws Exception
91 */
92 @Before
93 public void beforeTest() throws Exception
94 {
95 // Testdatei im Arbeitsverzeichnis - sollte in der Run-Konfiguration auf ein eigenes Verzeichnis zeigen
96 String workDir = System.getProperty("user.dir");
97 InputStream in = new FileInputStream(workDir+"/DauerSEPADel.properties");
98 params.load(in);
99
100 settings.put(HBCICallback.NEED_BLZ, params.getProperty("blz"));
101 settings.put(HBCICallback.NEED_CUSTOMERID, params.getProperty("customerid"));
102 settings.put(HBCICallback.NEED_HOST, params.getProperty("host"));
103 settings.put(HBCICallback.NEED_PT_PIN, params.getProperty("pin"));
104 settings.put(HBCICallback.NEED_USERID, params.getProperty("userid"));
105 settings.put(HBCICallback.NEED_PT_SECMECH, params.getProperty("secmech"));
106
107 Properties props = new Properties();
108 props.put("log.loglevel.default",Integer.toString(LOGLEVEL));
109
110 props.put("client.passport.PinTan.filename",dir.getAbsolutePath() + File.separator + System.currentTimeMillis() + ".pt");
111 props.put("client.passport.PinTan.init","1");
112 props.put("client.passport.PinTan.checkcert","0"); // Check der SSL-Zertifikate abschalten - brauchen wir nicht fuer den Test
113
114 // falls noetig
115 props.put("client.passport.PinTan.proxy",""); // host:port
116 props.put("client.passport.PinTan.proxyuser","");
117 props.put("client.passport.PinTan.proxypass","");
118
119 HBCICallback callback = new HBCICallbackConsole()
120 {
121 public void callback(HBCIPassport passport, int reason, String msg, int datatype, StringBuffer retData)
122 {
123 // haben wir einen vordefinierten Wert?
124 String value = settings.get(reason);
125 if (value != null)
126 {
127 retData.replace(0,retData.length(),value);
128 return;
129 }
130
131 // Ne, dann an Super-Klasse delegieren
132 super.callback(passport, reason, msg, datatype, retData);
133 }
134 };
135
136 HBCIUtils.init(props,callback);
137 this.passport = (HBCIPassportPinTan) AbstractHBCIPassport.getInstance("PinTan");
138
139 // init handler
140 this.handler = new HBCIHandler(params.getProperty("hbciversion"),passport);
141
142 // dump bpd
143 //this.dump("BPD",this.passport.getBPD());
144
145 // Liste der unterstuetzten Geschaeftsvorfaelle ausgeben
146 // this.dump("Supported GV",this.handler.getSupportedLowlevelJobs());
147 }
148
149 /**
150 * Schliesst das Passport-Objekt und loescht die Passport-Datei.
151 * @throws Exception
152 */
153 @After
154 public void afterTest() throws Exception
155 {
156 try
157 {
158 if (this.passport != null)
159 this.passport.close();
160
161 File file = new File(this.passport.getFileName());
162 if (!file.delete())
163 throw new Exception("unable to delete " + file);
164 }
165 finally
166 {
167 try
168 {
169 if (this.handler != null)
170 this.handler.close();
171 }
172 finally
173 {
174 HBCIUtils.done();
175 }
176 }
177 }
178
179 /**
180 * Erzeugt das Passport-Verzeichnis.
181 * @throws Exception
182 */
183 @BeforeClass
184 public static void beforeClass() throws Exception
185 {
186 String tmpDir = System.getProperty("java.io.tmpdir","/tmp");
187 dir = new File(tmpDir,"hbci4java-junit-" + System.currentTimeMillis());
188 dir.mkdirs();
189 }
190
191 /**
192 * Loescht das Passport-Verzeichnis.
193 * @throws Exception
194 */
195 @AfterClass
196 public static void afterClass() throws Exception
197 {
198 if (!dir.delete())
199 throw new Exception("unable to delete " + dir);
200 }
201
202 private void dump(String name, Properties props)
203 {
204 System.out.println("--- BEGIN: " + name + " -----");
205 Iterator keys = props.keySet().iterator();
206 while (keys.hasNext())
207 {
208 Object key = keys.next();
209 System.out.println(key + ": " + props.get(key));
210 }
211 System.out.println("--- END: " + name + " -----");
212 }
213
21460 }
00 package org.kapott.hbci4java.sepa;
11
2 import java.io.File;
3 import java.io.FileInputStream;
4 import java.io.InputStream;
5 import java.util.HashMap;
6 import java.util.Iterator;
7 import java.util.Map;
82 import java.util.Properties;
93
10 import org.junit.After;
11 import org.junit.AfterClass;
12 import org.junit.Assert;
13 import org.junit.Before;
14 import org.junit.BeforeClass;
154 import org.junit.Test;
165 import org.kapott.hbci.GV.HBCIJob;
17 import org.kapott.hbci.GV_Result.HBCIJobResult;
18 import org.kapott.hbci.callback.HBCICallback;
19 import org.kapott.hbci.callback.HBCICallbackConsole;
20 import org.kapott.hbci.manager.HBCIHandler;
21 import org.kapott.hbci.manager.HBCIUtils;
22 import org.kapott.hbci.passport.AbstractHBCIPassport;
236 import org.kapott.hbci.passport.HBCIPassport;
24 import org.kapott.hbci.passport.HBCIPassportPinTan;
25 import org.kapott.hbci.status.HBCIExecStatus;
267 import org.kapott.hbci.structures.Konto;
278 import org.kapott.hbci.structures.Value;
28 import org.kapott.hbci4java.AbstractTest;
9 import org.kapott.hbci4java.AbstractTestGV;
2910
3011
31 public class TestGVDauerSEPAEdit extends AbstractTest {
32 private final static int LOGLEVEL = 5;
33 private final static Map<Integer,String> settings = new HashMap<Integer,String>()
34 {{
35 // Demo-Konto bei der GAD
36 put(HBCICallback.NEED_COUNTRY, "DE");
37 put(HBCICallback.NEED_FILTER, "Base64");
38 put(HBCICallback.NEED_PASSPHRASE_LOAD, "test");
39 put(HBCICallback.NEED_PASSPHRASE_SAVE, "test");
40 put(HBCICallback.NEED_PORT, "443");
41 put(HBCICallback.NEED_CONNECTION, ""); // ignorieren
42 put(HBCICallback.CLOSE_CONNECTION, ""); // ignorieren
43 }};
44
45 private static File dir = null;
46
47 private HBCIPassportPinTan passport = null;
48 private HBCIHandler handler = null;
49 private Properties params = new Properties();
50
51
12 /**
13 * Testet das Aendern eines existierenden SEPA-Dauerauftrages.
14 */
15 public class TestGVDauerSEPAEdit extends AbstractTestGV
16 {
17 /**
18 * Testet das Aendern eines existierenden SEPA-Dauerauftrages.
19 */
5220 @Test
53 public void test() {
54 System.out.println("---------Erstelle Job");
55 HBCIJob job = handler.newJob("DauerSEPAEdit");
56
57 Konto acc = new Konto();
58 acc.blz = params.getProperty("target_blz");
59 acc.number = params.getProperty("target_number");
60 acc.name = "Kurt Mustermann";
61 acc.bic = params.getProperty("target_bic");
62 acc.iban = params.getProperty("target_iban");
63
64
65 int source_acc_idx = Integer.parseInt(params.getProperty("source_account_idx"));
66 job.setParam("src",passport.getAccounts()[source_acc_idx]);
67 job.setParam("dst",acc);
68 String value = params.getProperty("value");
69 if(value == null) value = "100";
70 job.setParam("btg",new Value(Integer.parseInt(value),"EUR"));
71 job.setParam("usage","SEPA Dauerauftrag");
72 job.setParam("firstdate", params.getProperty("firstdate"));
73 job.setParam("timeunit", "M");
74 job.setParam("turnus", "1");
75 job.setParam("execday", "1");
76 job.setParam("orderid", params.getProperty("orderid"));
77
78 System.out.println("---------Für Job zur Queue");
79 job.addToQueue();
80
81
82 HBCIExecStatus ret = handler.execute();
83 HBCIJobResult res = job.getJobResult();
84 System.out.println("----------Result: "+res.toString());
85
86 Assert.assertEquals("Job Result ist nicht OK!", true, res.isOK());
21 public void test()
22 {
23 this.execute(new Execution() {
24
25 @Override
26 public String getJobname() {
27 return "DauerSEPAEdit";
28 }
29
30 /**
31 * @see org.kapott.hbci4java.AbstractTestGV.Execution#configure(org.kapott.hbci.GV.HBCIJob, org.kapott.hbci.passport.HBCIPassport, java.util.Properties)
32 */
33 @Override
34 public void configure(HBCIJob job, HBCIPassport passport, Properties params) {
35 Konto acc = new Konto();
36 acc.blz = params.getProperty("blz");
37 acc.number = params.getProperty("konto");
38 acc.name = params.getProperty("name");
39 acc.bic = params.getProperty("bic");
40 acc.iban = params.getProperty("iban");
41 job.setParam("dst",acc);
42
43 int idx = Integer.parseInt(params.getProperty("passport_index","0"));
44 job.setParam("src",passport.getAccounts()[idx]);
45
46 String value = params.getProperty("value","1");
47 job.setParam("btg",new Value(Integer.parseInt(value),"EUR"));
48 job.setParam("usage",params.getProperty("usage"));
49
50 job.setParam("firstdate", params.getProperty("firstdate"));
51 job.setParam("timeunit", params.getProperty("timeunit","M"));
52 job.setParam("turnus", params.getProperty("turnus","1"));
53 job.setParam("execday", params.getProperty("execday","1"));
54 job.setParam("orderid", params.getProperty("orderid"));
55 }
56
57 });
8758 }
88
89 /**
90 * Erzeugt das Passport-Objekt.
91 * @throws Exception
92 */
93 @Before
94 public void beforeTest() throws Exception
95 {
96 // Testdatei im Arbeitsverzeichnis - sollte in der Run-Konfiguration auf ein eigenes Verzeichnis zeigen
97 String workDir = System.getProperty("user.dir");
98 InputStream in = new FileInputStream(workDir+"/DauerSEPAEdit.properties");
99 params.load(in);
100
101 settings.put(HBCICallback.NEED_BLZ, params.getProperty("blz"));
102 settings.put(HBCICallback.NEED_CUSTOMERID, params.getProperty("customerid"));
103 settings.put(HBCICallback.NEED_HOST, params.getProperty("host"));
104 settings.put(HBCICallback.NEED_PT_PIN, params.getProperty("pin"));
105 settings.put(HBCICallback.NEED_USERID, params.getProperty("userid"));
106 settings.put(HBCICallback.NEED_PT_SECMECH, params.getProperty("secmech"));
107
108 Properties props = new Properties();
109 props.put("log.loglevel.default",Integer.toString(LOGLEVEL));
110
111 props.put("client.passport.PinTan.filename",dir.getAbsolutePath() + File.separator + System.currentTimeMillis() + ".pt");
112 props.put("client.passport.PinTan.init","1");
113 props.put("client.passport.PinTan.checkcert","0"); // Check der SSL-Zertifikate abschalten - brauchen wir nicht fuer den Test
114
115 // falls noetig
116 props.put("client.passport.PinTan.proxy",""); // host:port
117 props.put("client.passport.PinTan.proxyuser","");
118 props.put("client.passport.PinTan.proxypass","");
119
120 HBCICallback callback = new HBCICallbackConsole()
121 {
122 public void callback(HBCIPassport passport, int reason, String msg, int datatype, StringBuffer retData)
123 {
124 // haben wir einen vordefinierten Wert?
125 String value = settings.get(reason);
126 if (value != null)
127 {
128 retData.replace(0,retData.length(),value);
129 return;
130 }
131
132 // Ne, dann an Super-Klasse delegieren
133 super.callback(passport, reason, msg, datatype, retData);
134 }
135 };
136
137 HBCIUtils.init(props,callback);
138 this.passport = (HBCIPassportPinTan) AbstractHBCIPassport.getInstance("PinTan");
139
140 // init handler
141 this.handler = new HBCIHandler(params.getProperty("hbciversion"),passport);
142
143 // dump bpd
144 //this.dump("BPD",this.passport.getBPD());
145
146 // Liste der unterstuetzten Geschaeftsvorfaelle ausgeben
147 // this.dump("Supported GV",this.handler.getSupportedLowlevelJobs());
148 }
149
150 /**
151 * Schliesst das Passport-Objekt und loescht die Passport-Datei.
152 * @throws Exception
153 */
154 @After
155 public void afterTest() throws Exception
156 {
157 try
158 {
159 if (this.passport != null)
160 this.passport.close();
161
162 File file = new File(this.passport.getFileName());
163 if (!file.delete())
164 throw new Exception("unable to delete " + file);
165 }
166 finally
167 {
168 try
169 {
170 if (this.handler != null)
171 this.handler.close();
172 }
173 finally
174 {
175 HBCIUtils.done();
176 }
177 }
178 }
179
180 /**
181 * Erzeugt das Passport-Verzeichnis.
182 * @throws Exception
183 */
184 @BeforeClass
185 public static void beforeClass() throws Exception
186 {
187 String tmpDir = System.getProperty("java.io.tmpdir","/tmp");
188 dir = new File(tmpDir,"hbci4java-junit-" + System.currentTimeMillis());
189 dir.mkdirs();
190 }
191
192 /**
193 * Loescht das Passport-Verzeichnis.
194 * @throws Exception
195 */
196 @AfterClass
197 public static void afterClass() throws Exception
198 {
199 if (!dir.delete())
200 throw new Exception("unable to delete " + dir);
201 }
202
203 private void dump(String name, Properties props)
204 {
205 System.out.println("--- BEGIN: " + name + " -----");
206 Iterator keys = props.keySet().iterator();
207 while (keys.hasNext())
208 {
209 Object key = keys.next();
210 System.out.println(key + ": " + props.get(key));
211 }
212 System.out.println("--- END: " + name + " -----");
213 }
214
21559 }
00 package org.kapott.hbci4java.sepa;
11
2 import java.io.File;
3 import java.io.FileInputStream;
4 import java.io.InputStream;
5 import java.util.HashMap;
6 import java.util.Iterator;
7 import java.util.Map;
82 import java.util.Properties;
93
10 import org.junit.After;
11 import org.junit.AfterClass;
12 import org.junit.Before;
13 import org.junit.BeforeClass;
144 import org.junit.Test;
155 import org.kapott.hbci.GV.HBCIJob;
16 import org.kapott.hbci.GV_Result.HBCIJobResult;
17 import org.kapott.hbci.callback.HBCICallback;
18 import org.kapott.hbci.callback.HBCICallbackConsole;
19 import org.kapott.hbci.manager.HBCIHandler;
20 import org.kapott.hbci.manager.HBCIUtils;
21 import org.kapott.hbci.passport.AbstractHBCIPassport;
226 import org.kapott.hbci.passport.HBCIPassport;
23 import org.kapott.hbci.passport.HBCIPassportPinTan;
24 import org.kapott.hbci.status.HBCIExecStatus;
25 import org.kapott.hbci4java.AbstractTest;
7 import org.kapott.hbci4java.AbstractTestGV;
268
27 import junit.framework.Assert;
28
29
30
31 public class TestGVDauerSEPAList extends AbstractTest {
32 private final static int LOGLEVEL = 5;
33 private final static Map<Integer,String> settings = new HashMap<Integer,String>()
34 {{
35 // Demo-Konto bei der GAD
36 put(HBCICallback.NEED_COUNTRY, "DE");
37 put(HBCICallback.NEED_FILTER, "Base64");
38 put(HBCICallback.NEED_PASSPHRASE_LOAD, "test");
39 put(HBCICallback.NEED_PASSPHRASE_SAVE, "test");
40 put(HBCICallback.NEED_PORT, "443");
41 put(HBCICallback.NEED_CONNECTION, ""); // ignorieren
42 put(HBCICallback.CLOSE_CONNECTION, ""); // ignorieren
43 }};
44
45 private static File dir = null;
46
47 private HBCIPassportPinTan passport = null;
48 private HBCIHandler handler = null;
49 private Properties params = new Properties();
50
51
9 /**
10 * Testet das Abrufen der SEPA-Dauerauftraege.
11 */
12 public class TestGVDauerSEPAList extends AbstractTestGV
13 {
14 /**
15 * Testet das Ausfuehren einer SEPA-Lastschrift.
16 */
5217 @Test
53 public void test() {
54 System.out.println("---------Erstelle Job");
55 HBCIJob job = handler.newJob("DauerSEPAList");
56
57 int source_acc_idx = Integer.parseInt(params.getProperty("source_account_idx"));
58 job.setParam("src",passport.getAccounts()[source_acc_idx]);
59
60 System.out.println("---------Für Job zur Queue");
61 job.addToQueue();
62
63
64 HBCIExecStatus ret = handler.execute();
65 HBCIJobResult res = job.getJobResult();
66 System.out.println("----------Result: "+res.toString());
67
68 Assert.assertEquals("Job Result ist nicht OK!", true, res.isOK());
18 public void test()
19 {
20 this.execute(new Execution() {
21
22 @Override
23 public String getJobname() {
24 return "DauerSEPAList";
25 }
26
27 /**
28 * @see org.kapott.hbci4java.AbstractTestGV.Execution#configure(org.kapott.hbci.GV.HBCIJob, org.kapott.hbci.passport.HBCIPassport, java.util.Properties)
29 */
30 @Override
31 public void configure(HBCIJob job, HBCIPassport passport, Properties params) {
32 super.configure(job, passport, params);
33 job.setParam("my.bic",params.getProperty("bic",System.getProperty("bic")));
34 job.setParam("my.iban",params.getProperty("iban",System.getProperty("iban")));
35 }
36 });
6937 }
70
71 /**
72 * Erzeugt das Passport-Objekt.
73 * @throws Exception
74 */
75 @Before
76 public void beforeTest() throws Exception
77 {
78 // Testdatei im Arbeitsverzeichnis - sollte in der Run-Konfiguration auf ein eigenes Verzeichnis zeigen
79 String workDir = System.getProperty("user.dir");
80 InputStream in = new FileInputStream(workDir+"/DauerSEPAList.properties");
81 params.load(in);
82
83 settings.put(HBCICallback.NEED_BLZ, params.getProperty("blz"));
84 settings.put(HBCICallback.NEED_CUSTOMERID, params.getProperty("customerid"));
85 settings.put(HBCICallback.NEED_HOST, params.getProperty("host"));
86 settings.put(HBCICallback.NEED_PT_PIN, params.getProperty("pin"));
87 settings.put(HBCICallback.NEED_USERID, params.getProperty("userid"));
88 settings.put(HBCICallback.NEED_PT_SECMECH, params.getProperty("secmech"));
89
90 Properties props = new Properties();
91 props.put("log.loglevel.default",Integer.toString(LOGLEVEL));
92
93 props.put("client.passport.PinTan.filename",dir.getAbsolutePath() + File.separator + System.currentTimeMillis() + ".pt");
94 props.put("client.passport.PinTan.init","1");
95 props.put("client.passport.PinTan.checkcert","0"); // Check der SSL-Zertifikate abschalten - brauchen wir nicht fuer den Test
96
97 // falls noetig
98 props.put("client.passport.PinTan.proxy",""); // host:port
99 props.put("client.passport.PinTan.proxyuser","");
100 props.put("client.passport.PinTan.proxypass","");
101
102 HBCICallback callback = new HBCICallbackConsole()
103 {
104 public void callback(HBCIPassport passport, int reason, String msg, int datatype, StringBuffer retData)
105 {
106 // haben wir einen vordefinierten Wert?
107 String value = settings.get(reason);
108 if (value != null)
109 {
110 retData.replace(0,retData.length(),value);
111 return;
112 }
113
114 // Ne, dann an Super-Klasse delegieren
115 super.callback(passport, reason, msg, datatype, retData);
116 }
117 };
118
119 HBCIUtils.init(props,callback);
120 this.passport = (HBCIPassportPinTan) AbstractHBCIPassport.getInstance("PinTan");
121
122 // init handler
123 this.handler = new HBCIHandler(params.getProperty("hbciversion"),passport);
124
125 // dump bpd
126 //this.dump("BPD",this.passport.getBPD());
127
128 // Liste der unterstuetzten Geschaeftsvorfaelle ausgeben
129 // this.dump("Supported GV",this.handler.getSupportedLowlevelJobs());
130 }
131
132 /**
133 * Schliesst das Passport-Objekt und loescht die Passport-Datei.
134 * @throws Exception
135 */
136 @After
137 public void afterTest() throws Exception
138 {
139 try
140 {
141 if (this.passport != null)
142 this.passport.close();
143
144 File file = new File(this.passport.getFileName());
145 if (!file.delete())
146 throw new Exception("unable to delete " + file);
147 }
148 finally
149 {
150 try
151 {
152 if (this.handler != null)
153 this.handler.close();
154 }
155 finally
156 {
157 HBCIUtils.done();
158 }
159 }
160 }
161
162 /**
163 * Erzeugt das Passport-Verzeichnis.
164 * @throws Exception
165 */
166 @BeforeClass
167 public static void beforeClass() throws Exception
168 {
169 String tmpDir = System.getProperty("java.io.tmpdir","/tmp");
170 dir = new File(tmpDir,"hbci4java-junit-" + System.currentTimeMillis());
171 dir.mkdirs();
172 }
173
174 /**
175 * Loescht das Passport-Verzeichnis.
176 * @throws Exception
177 */
178 @AfterClass
179 public static void afterClass() throws Exception
180 {
181 if (!dir.delete())
182 throw new Exception("unable to delete " + dir);
183 }
184
185 private void dump(String name, Properties props)
186 {
187 System.out.println("--- BEGIN: " + name + " -----");
188 Iterator keys = props.keySet().iterator();
189 while (keys.hasNext())
190 {
191 Object key = keys.next();
192 System.out.println(key + ": " + props.get(key));
193 }
194 System.out.println("--- END: " + name + " -----");
195 }
196
19738 }
00 package org.kapott.hbci4java.sepa;
11
2 import java.io.File;
3 import java.io.FileInputStream;
4 import java.io.InputStream;
5 import java.util.HashMap;
6 import java.util.Iterator;
7 import java.util.Map;
82 import java.util.Properties;
93
10 import org.junit.After;
11 import org.junit.AfterClass;
12 import org.junit.Assert;
13 import org.junit.Before;
14 import org.junit.BeforeClass;
154 import org.junit.Test;
165 import org.kapott.hbci.GV.HBCIJob;
17 import org.kapott.hbci.GV_Result.HBCIJobResult;
18 import org.kapott.hbci.callback.HBCICallback;
19 import org.kapott.hbci.callback.HBCICallbackConsole;
20 import org.kapott.hbci.manager.HBCIHandler;
21 import org.kapott.hbci.manager.HBCIUtils;
22 import org.kapott.hbci.passport.AbstractHBCIPassport;
236 import org.kapott.hbci.passport.HBCIPassport;
24 import org.kapott.hbci.passport.HBCIPassportPinTan;
25 import org.kapott.hbci.status.HBCIExecStatus;
267 import org.kapott.hbci.structures.Konto;
278 import org.kapott.hbci.structures.Value;
28 import org.kapott.hbci4java.AbstractTest;
9 import org.kapott.hbci4java.AbstractTestGV;
2910
3011
31 public class TestGVDauerSEPANew extends AbstractTest {
32 private final static int LOGLEVEL = 5;
33 private final static Map<Integer,String> settings = new HashMap<Integer,String>()
34 {{
35 // Demo-Konto bei der GAD
36 put(HBCICallback.NEED_COUNTRY, "DE");
37 put(HBCICallback.NEED_FILTER, "Base64");
38 put(HBCICallback.NEED_PASSPHRASE_LOAD, "test");
39 put(HBCICallback.NEED_PASSPHRASE_SAVE, "test");
40 put(HBCICallback.NEED_PORT, "443");
41 put(HBCICallback.NEED_CONNECTION, ""); // ignorieren
42 put(HBCICallback.CLOSE_CONNECTION, ""); // ignorieren
43 }};
44
45 private static File dir = null;
46
47 private HBCIPassportPinTan passport = null;
48 private HBCIHandler handler = null;
49 private Properties params = new Properties();
50
51
12 /**
13 * Testet das Einreichen eines neuen SEPA-Dauerauftrages.
14 */
15 public class TestGVDauerSEPANew extends AbstractTestGV
16 {
17 /**
18 * Testet das Einreichen eines neuen SEPA-Dauerauftrages.
19 */
5220 @Test
53 public void test() {
54 System.out.println("---------Erstelle Job");
55 HBCIJob job = handler.newJob("DauerSEPANew");
56
57 Konto acc = new Konto();
58 acc.blz = params.getProperty("target_blz");
59 acc.number = params.getProperty("target_number");
60 acc.name = "Kurt Mustermann";
61 acc.bic = params.getProperty("target_bic");
62 acc.iban = params.getProperty("target_iban");
63
64 int source_acc_idx = Integer.parseInt(params.getProperty("source_account_idx"));
65 job.setParam("src",passport.getAccounts()[source_acc_idx]);
66 job.setParam("dst",acc);
67
68 String value = params.getProperty("value");
69 if(value == null) value = "100";
70 job.setParam("btg",new Value(Integer.parseInt(value),"EUR"));
71
72 job.setParam("usage","SEPA Dauerauftrag");
73
74 job.setParam("firstdate", params.getProperty("firstdate"));
75 job.setParam("timeunit", "M");
76 job.setParam("turnus", "1");
77 job.setParam("execday", "1");
78
79 System.out.println("---------Für Job zur Queue");
80 job.addToQueue();
81
82
83 HBCIExecStatus ret = handler.execute();
84 HBCIJobResult res = job.getJobResult();
85 System.out.println("----------Result: "+res.toString());
86
87 Assert.assertEquals("Job Result ist nicht OK!", true, res.isOK());
21 public void test()
22 {
23 this.execute(new Execution() {
24
25 @Override
26 public String getJobname() {
27 return "DauerSEPANew";
28 }
29
30 /**
31 * @see org.kapott.hbci4java.AbstractTestGV.Execution#configure(org.kapott.hbci.GV.HBCIJob, org.kapott.hbci.passport.HBCIPassport, java.util.Properties)
32 */
33 @Override
34 public void configure(HBCIJob job, HBCIPassport passport, Properties params) {
35 Konto acc = new Konto();
36 acc.blz = params.getProperty("blz");
37 acc.number = params.getProperty("konto");
38 acc.name = params.getProperty("name");
39 acc.bic = params.getProperty("bic");
40 acc.iban = params.getProperty("iban");
41 job.setParam("dst",acc);
42
43 int idx = Integer.parseInt(params.getProperty("passport_index","0"));
44 job.setParam("src",passport.getAccounts()[idx]);
45
46 String value = params.getProperty("value","1");
47 job.setParam("btg",new Value(Integer.parseInt(value),"EUR"));
48 job.setParam("usage",params.getProperty("usage"));
49
50 job.setParam("firstdate", params.getProperty("firstdate"));
51 job.setParam("timeunit", params.getProperty("timeunit","M"));
52 job.setParam("turnus", params.getProperty("turnus","1"));
53 job.setParam("execday", params.getProperty("execday","1"));
54 }
55
56 });
8857 }
89
90 /**
91 * Erzeugt das Passport-Objekt.
92 * @throws Exception
93 */
94 @Before
95 public void beforeTest() throws Exception
96 {
97 // Testdatei im Arbeitsverzeichnis - sollte in der Run-Konfiguration auf ein eigenes Verzeichnis zeigen
98 String workDir = System.getProperty("user.dir");
99 InputStream in = new FileInputStream(workDir+"/DauerSEPANew.properties");
100 params.load(in);
101
102 settings.put(HBCICallback.NEED_BLZ, params.getProperty("blz"));
103 settings.put(HBCICallback.NEED_CUSTOMERID, params.getProperty("customerid"));
104 settings.put(HBCICallback.NEED_HOST, params.getProperty("host"));
105 settings.put(HBCICallback.NEED_PT_PIN, params.getProperty("pin"));
106 settings.put(HBCICallback.NEED_USERID, params.getProperty("userid"));
107 settings.put(HBCICallback.NEED_PT_SECMECH, params.getProperty("secmech"));
108
109 Properties props = new Properties();
110 props.put("log.loglevel.default",Integer.toString(LOGLEVEL));
111
112 props.put("client.passport.PinTan.filename",dir.getAbsolutePath() + File.separator + System.currentTimeMillis() + ".pt");
113 props.put("client.passport.PinTan.init","1");
114 props.put("client.passport.PinTan.checkcert","0"); // Check der SSL-Zertifikate abschalten - brauchen wir nicht fuer den Test
115
116 // falls noetig
117 props.put("client.passport.PinTan.proxy",""); // host:port
118 props.put("client.passport.PinTan.proxyuser","");
119 props.put("client.passport.PinTan.proxypass","");
120
121 HBCICallback callback = new HBCICallbackConsole()
122 {
123 public void callback(HBCIPassport passport, int reason, String msg, int datatype, StringBuffer retData)
124 {
125 // haben wir einen vordefinierten Wert?
126 String value = settings.get(reason);
127 if (value != null)
128 {
129 retData.replace(0,retData.length(),value);
130 return;
131 }
132
133 // Ne, dann an Super-Klasse delegieren
134 super.callback(passport, reason, msg, datatype, retData);
135 }
136 };
137
138 HBCIUtils.init(props,callback);
139 this.passport = (HBCIPassportPinTan) AbstractHBCIPassport.getInstance("PinTan");
140
141 // init handler
142 this.handler = new HBCIHandler(params.getProperty("hbciversion"),passport);
143
144 // dump bpd
145 //this.dump("BPD",this.passport.getBPD());
146
147 // Liste der unterstuetzten Geschaeftsvorfaelle ausgeben
148 // this.dump("Supported GV",this.handler.getSupportedLowlevelJobs());
149 }
150
151 /**
152 * Schliesst das Passport-Objekt und loescht die Passport-Datei.
153 * @throws Exception
154 */
155 @After
156 public void afterTest() throws Exception
157 {
158 try
159 {
160 if (this.passport != null)
161 this.passport.close();
162
163 File file = new File(this.passport.getFileName());
164 if (!file.delete())
165 throw new Exception("unable to delete " + file);
166 }
167 finally
168 {
169 try
170 {
171 if (this.handler != null)
172 this.handler.close();
173 }
174 finally
175 {
176 HBCIUtils.done();
177 }
178 }
179 }
180
181 /**
182 * Erzeugt das Passport-Verzeichnis.
183 * @throws Exception
184 */
185 @BeforeClass
186 public static void beforeClass() throws Exception
187 {
188 String tmpDir = System.getProperty("java.io.tmpdir","/tmp");
189 dir = new File(tmpDir,"hbci4java-junit-" + System.currentTimeMillis());
190 dir.mkdirs();
191 }
192
193 /**
194 * Loescht das Passport-Verzeichnis.
195 * @throws Exception
196 */
197 @AfterClass
198 public static void afterClass() throws Exception
199 {
200 if (!dir.delete())
201 throw new Exception("unable to delete " + dir);
202 }
203
204 private void dump(String name, Properties props)
205 {
206 System.out.println("--- BEGIN: " + name + " -----");
207 Iterator keys = props.keySet().iterator();
208 while (keys.hasNext())
209 {
210 Object key = keys.next();
211 System.out.println(key + ": " + props.get(key));
212 }
213 System.out.println("--- END: " + name + " -----");
214 }
215
21658 }
0 package org.kapott.hbci4java.sepa;
1
2 import java.util.Properties;
3
4 import org.junit.Test;
5 import org.kapott.hbci.GV.HBCIJob;
6 import org.kapott.hbci.passport.HBCIPassport;
7 import org.kapott.hbci4java.AbstractTestGV;
8
9 /**
10 * Testet die Abrufen der Umsaetze per CAMT.
11 */
12 public class TestGVKUmsAllCamt extends AbstractTestGV
13 {
14 /**
15 * Testet das Ausfuehren einer SEPA-Lastschrift.
16 */
17 @Test
18 public void test()
19 {
20 this.execute(new Execution() {
21
22 @Override
23 public String getJobname() {
24 return "KUmsAllCamt";
25 }
26
27 /**
28 * @see org.kapott.hbci4java.AbstractTestGV.Execution#configure(org.kapott.hbci.GV.HBCIJob, org.kapott.hbci.passport.HBCIPassport, java.util.Properties)
29 */
30 @Override
31 public void configure(HBCIJob job, HBCIPassport passport, Properties params) {
32 super.configure(job, passport, params);
33 job.setParam("my.bic",params.getProperty("bic",System.getProperty("bic")));
34 job.setParam("my.iban",params.getProperty("iban",System.getProperty("iban")));
35
36 String start = params.getProperty("startdate",System.getProperty("startdate"));
37 if (start != null)
38 job.setParam("startdate",start);
39
40 String end = params.getProperty("enddate",System.getProperty("enddate"));
41 if (end != null)
42 job.setParam("enddate",end);
43 }
44 });
45 }
46 }
0 /**********************************************************************
1 * $Source: /cvsroot/hibiscus/hbci4java/test/hbci4java/ddv/PCSCTest.java,v $
2 * $Revision: 1.1 $
3 * $Date: 2011/11/24 21:59:37 $
4 * $Author: willuhn $
5 *
6 * Copyright (c) by willuhn - software & services
7 * All rights reserved
8 *
9 **********************************************************************/
10
110 package org.kapott.hbci4java.sepa;
121
13 import java.io.File;
14 import java.util.HashMap;
15 import java.util.Iterator;
16 import java.util.Map;
172 import java.util.Properties;
183
19 import org.junit.After;
20 import org.junit.AfterClass;
21 import org.junit.Assert;
22 import org.junit.Before;
23 import org.junit.BeforeClass;
244 import org.junit.Test;
25 import org.kapott.hbci.GV.HBCIJobImpl;
26 import org.kapott.hbci.callback.HBCICallback;
27 import org.kapott.hbci.callback.HBCICallbackConsole;
28 import org.kapott.hbci.manager.HBCIHandler;
29 import org.kapott.hbci.manager.HBCIUtils;
30 import org.kapott.hbci.passport.AbstractHBCIPassport;
5 import org.kapott.hbci.GV.HBCIJob;
316 import org.kapott.hbci.passport.HBCIPassport;
32 import org.kapott.hbci.passport.HBCIPassportPinTan;
33 import org.kapott.hbci.protocol.SEG;
7 import org.kapott.hbci.structures.Konto;
348 import org.kapott.hbci.structures.Value;
35 import org.kapott.hbci4java.AbstractTest;
9 import org.kapott.hbci4java.AbstractTestGV;
3610
3711 /**
38 * Testet das Erstellen von SEPA-Basis-Lastschriften
39
40 Folgende Angaben sind für das Nachrichtenformat für SEPA-Lastschriften (pain.008) erforderlich:
41 - Art des Verfahrens (Basis- oder Firmen-Lastschrift, <LclInstrm>)
42 - Art der Lastschrift (einmalige, erste, wieder-kehrende, letzte Lastschrift,
43 <SeqTp>)
44 - Name des Zahlungsempfängers (<Cdtr><Nm>)
45 - Gläubiger-Identifikationsnummer des Zahlungsempfängers (<CdtrSchmeId>)
46 - IBAN des Zahlungskontos des Zahlungsempfängers, auf dem die Gutschrift
47 vorgenommen werden soll (<CdtrAcct>)
48 - BIC des Kreditinstituts des Zahlungsempfängers (<CdtrAgt>)
49 - Name des Zahlungspflichtigen (<Dbtr><Nm>)
50 - IBAN des Zahlungskontos des Zahlungspflichtigen (<DbtrAcct>)
51 - BIC des Kreditinstituts des Zahlungspflichtigen (<DbtrAgt>)
52 - Eindeutige Mandatsreferenz (<MndtId>)
53 - Datum der Unterschrift des SEPA-Lastschriftmandats, sofern dieses vom Zahlungspflichtigen erteilt wird, bzw. Datum der Mitteilung über die Weiternutzung einer Einzugsermächtigung (<DtOfSgntr>)
54 - Höhe des Einzugsbetrags (<InstdAmt>)
55 - Angaben zum Verwendungszweck (<RmtInf>)
56 - Name der Referenzpartei des Zahlungspflichtigen (falls im SEPALastschriftmandat vorhanden, <UltmtDbtr>)
57 - Identifikationscode der Referenzpartei des Zahlungspflichtigen
58 (falls im SEPA-Lastschriftmandat vorhanden, <Dbtr><Id>)
59 - Fälligkeitsdatum des Einzugs (<ReqdColltnDt>)
60
61
12 * Testet die Ausfuehrung einer SEPA-Lastschrift.
6213 */
63 public class TestGVLastSEPA extends AbstractTest
14 public class TestGVLastSEPA extends AbstractTestGV
6415 {
65 private final static int LOGLEVEL = HBCIUtils.LOG_INFO;
66 private final static Map<Integer,String> settings = new HashMap<Integer,String>()
67 {{
68 // Demo-Konto bei der ApoBank
69 put(HBCICallback.NEED_COUNTRY, "DE");
70 put(HBCICallback.NEED_BLZ, "30060601");
71 put(HBCICallback.NEED_CUSTOMERID, "0001956434");
72 put(HBCICallback.NEED_FILTER, "Base64");
73 put(HBCICallback.NEED_HOST, "hbcibanking.apobank.de/fints_pintan/receiver");
74 put(HBCICallback.NEED_PASSPHRASE_LOAD, "test");
75 put(HBCICallback.NEED_PASSPHRASE_SAVE, "test");
76 put(HBCICallback.NEED_PORT, "443");
77 put(HBCICallback.NEED_PT_PIN, "11111");
78 put(HBCICallback.NEED_PT_TAN, "123456"); // hier geht jede 6-stellige Zahl
79 put(HBCICallback.NEED_USERID, "0001956434");
80 put(HBCICallback.NEED_PT_SECMECH, "900"); // wird IMHO nicht benoetigt, weil es beim Demo-Account eh nur dieses eine Verfahren gibt
81 put(HBCICallback.NEED_CONNECTION, ""); // ignorieren
82 put(HBCICallback.CLOSE_CONNECTION, ""); // ignorieren
83 }};
84
85 private static File dir = null;
86
87 private HBCIPassportPinTan passport = null;
88 private HBCIHandler handler = null;
89
90 /**
91 * Testet das Erstellen einer SEPA-Basis-Lastschrift.
92 * @throws Exception
93 */
94 @Test
95 public void test001() throws Exception
96 {
97 HBCIJobImpl job = (HBCIJobImpl) handler.newJob("Ueb");
98
99 // wir nehmen einfach das erste verfuegbare Konto
100 job.setParam("src",passport.getAccounts()[0]);
101 job.setParam("dst",passport.getAccounts()[0]);
102 job.setParam("btg",new Value(1L,"EUR"));
103 job.setParam("usage","test");
104 job.setParam("name","test");
105 job.setParam("key","51");
106
107 job.addToQueue();
108
109 SEG seg = job.createJobSegment(0);
110 seg.validate();
111 String msg = seg.toString(0);
112 Assert.assertEquals("HKUEB:0:5+0001956434:EUR:280:30060601+0001956434:EUR:280:30060601+TEST++0,01:EUR+51++TEST'",msg);
113 }
114
115 /**
116 * Erzeugt das Passport-Objekt.
117 * @throws Exception
118 */
119 @Before
120 public void beforeTest() throws Exception
121 {
122 Properties props = new Properties();
123 props.put("log.loglevel.default",Integer.toString(LOGLEVEL));
124
125 props.put("client.passport.PinTan.filename",dir.getAbsolutePath() + File.separator + System.currentTimeMillis() + ".pt");
126 props.put("client.passport.PinTan.init","1");
127 props.put("client.passport.PinTan.checkcert","0"); // Check der SSL-Zertifikate abschalten - brauchen wir nicht fuer den Test
128
129 // falls noetig
130 props.put("client.passport.PinTan.proxy",""); // host:port
131 props.put("client.passport.PinTan.proxyuser","");
132 props.put("client.passport.PinTan.proxypass","");
133
134 HBCICallback callback = new HBCICallbackConsole()
16 /**
17 * Testet das Ausfuehren einer SEPA-Lastschrift.
18 */
19 @Test
20 public void test()
13521 {
136 public void callback(HBCIPassport passport, int reason, String msg, int datatype, StringBuffer retData)
137 {
138 // haben wir einen vordefinierten Wert?
139 String value = settings.get(reason);
140 if (value != null)
141 {
142 retData.replace(0,retData.length(),value);
143 return;
144 }
145
146 // Ne, dann an Super-Klasse delegieren
147 super.callback(passport, reason, msg, datatype, retData);
148 }
149 };
150
151 HBCIUtils.init(props,callback);
152 this.passport = (HBCIPassportPinTan) AbstractHBCIPassport.getInstance("PinTan");
153
154 // init handler
155 this.handler = new HBCIHandler("300",passport);
156
157 // dump bpd
158 // this.dump("BPD",this.passport.getBPD());
159
160 // Liste der unterstuetzten Geschaeftsvorfaelle ausgeben
161 // this.dump("Supported GV",this.handler.getSupportedLowlevelJobs());
162 }
163
164 /**
165 * Schliesst das Passport-Objekt und loescht die Passport-Datei.
166 * @throws Exception
167 */
168 @After
169 public void afterTest() throws Exception
170 {
171 try
172 {
173 if (this.passport != null)
174 this.passport.close();
175
176 File file = new File(this.passport.getFileName());
177 if (!file.delete())
178 throw new Exception("unable to delete " + file);
22 this.execute(new Execution() {
23
24 @Override
25 public String getJobname() {
26 return "LastSEPA";
27 }
28
29 /**
30 * @see org.kapott.hbci4java.AbstractTestGV.Execution#configure(org.kapott.hbci.GV.HBCIJob, org.kapott.hbci.passport.HBCIPassport, java.util.Properties)
31 */
32 @Override
33 public void configure(HBCIJob job, HBCIPassport passport, Properties params) {
34 Konto acc = new Konto();
35 acc.blz = params.getProperty("blz");
36 acc.number = params.getProperty("konto");
37 acc.name = params.getProperty("name");
38 acc.bic = params.getProperty("bic");
39 acc.iban = params.getProperty("iban");
40 job.setParam("dst",acc);
41
42 int idx = Integer.parseInt(params.getProperty("passport_index","0"));
43 job.setParam("src",passport.getAccounts()[idx]);
44
45 String value = params.getProperty("value","1");
46 job.setParam("btg",new Value(Integer.parseInt(value),"EUR"));
47 job.setParam("usage",params.getProperty("usage"));
48 job.setParam("targetdate", params.getProperty("date"));
49 job.setParam("creditorid", params.getProperty("creditorid"));
50 job.setParam("mandateid", params.getProperty("mandateid"));
51 job.setParam("manddateofsig", params.getProperty("date_of_sig"));
52 }
53
54 });
17955 }
180 finally
181 {
182 try
183 {
184 if (this.handler != null)
185 this.handler.close();
186 }
187 finally
188 {
189 HBCIUtils.done();
190 }
191 }
192 }
193
194 /**
195 * Erzeugt das Passport-Verzeichnis.
196 * @throws Exception
197 */
198 @BeforeClass
199 public static void beforeClass() throws Exception
200 {
201 String tmpDir = System.getProperty("java.io.tmpdir","/tmp");
202 dir = new File(tmpDir,"hbci4java-junit-" + System.currentTimeMillis());
203 dir.mkdirs();
204 }
205
206 /**
207 * Loescht das Passport-Verzeichnis.
208 * @throws Exception
209 */
210 @AfterClass
211 public static void afterClass() throws Exception
212 {
213 if (!dir.delete())
214 throw new Exception("unable to delete " + dir);
215 }
216
217 private void dump(String name, Properties props)
218 {
219 System.out.println("--- BEGIN: " + name + " -----");
220 Iterator keys = props.keySet().iterator();
221 while (keys.hasNext())
222 {
223 Object key = keys.next();
224 System.out.println(key + ": " + props.get(key));
225 }
226 System.out.println("--- END: " + name + " -----");
227 }
228
22956 }
+0
-81
src/test/java/org/kapott/hbci4java/sepa/TestGVLastSEPA2.java less more
0 package org.kapott.hbci4java.sepa;
1
2 import static org.junit.Assert.*;
3 import org.junit.Test;
4
5 import java.io.File;
6 import java.io.FileInputStream;
7 import java.io.InputStream;
8 import java.util.HashMap;
9 import java.util.Iterator;
10 import java.util.Map;
11 import java.util.Properties;
12
13 import junit.framework.Assert;
14
15 import org.junit.After;
16 import org.junit.AfterClass;
17 import org.junit.Before;
18 import org.junit.BeforeClass;
19 import org.junit.Test;
20 import org.kapott.hbci.GV.HBCIJob;
21 import org.kapott.hbci.GV_Result.HBCIJobResult;
22 import org.kapott.hbci.callback.HBCICallback;
23 import org.kapott.hbci.callback.HBCICallbackConsole;
24 import org.kapott.hbci.manager.HBCIHandler;
25 import org.kapott.hbci.manager.HBCIUtils;
26 import org.kapott.hbci.passport.AbstractHBCIPassport;
27 import org.kapott.hbci.passport.HBCIPassport;
28 import org.kapott.hbci.passport.HBCIPassportPinTan;
29 import org.kapott.hbci.status.HBCIExecStatus;
30 import org.kapott.hbci.structures.Konto;
31 import org.kapott.hbci.structures.Value;
32 import org.kapott.hbci4java.AbstractTest;
33 import org.kapott.hbci4java.AbstractTestGV;
34
35
36
37 public class TestGVLastSEPA2 extends AbstractTestGV {
38
39 @Test
40 public void test() {
41 System.out.println("---------Erstelle Job");
42 HBCIJob job = handler.newJob("LastSEPA");
43
44 Konto acc = new Konto();
45 acc.blz = params.getProperty("target_blz");
46 acc.number = params.getProperty("target_number");
47 acc.name = "Kurt Mustermann";
48 acc.bic = params.getProperty("target_bic");
49 acc.iban = params.getProperty("target_iban");
50
51 int source_acc_idx = Integer.parseInt(params.getProperty("source_account_idx"));
52 job.setParam("src",passport.getAccounts()[source_acc_idx]);
53 job.setParam("dst",acc);
54
55 String value = params.getProperty("value");
56 if(value == null) value = "100";
57 job.setParam("btg",new Value(Integer.parseInt(value),"EUR"));
58 job.setParam("usage",params.getProperty("usage"));
59 job.setParam("targetdate", params.getProperty("date"));
60 job.setParam("creditorid", params.getProperty("creditorid"));
61 job.setParam("mandateid", params.getProperty("mandateid"));
62 job.setParam("manddateofsig", params.getProperty("date_of_sig"));
63
64 System.out.println("---------Für Job zur Queue");
65 job.addToQueue();
66
67
68 HBCIExecStatus ret = handler.execute();
69 HBCIJobResult res = job.getJobResult();
70 System.out.println("----------Result: "+res.toString());
71
72 Assert.assertEquals("Job Result ist nicht OK!", true, res.isOK() && ret.isOK());
73 }
74
75 protected String getJobname()
76 {
77 return "LastSEPA";
78 }
79
80 }
00 package org.kapott.hbci4java.sepa;
11
2 import org.junit.Test;
3
4 import java.io.File;
5 import java.io.FileInputStream;
6 import java.io.InputStream;
7 import java.util.HashMap;
8 import java.util.Iterator;
9 import java.util.Map;
102 import java.util.Properties;
113
12 import org.junit.Assert;
13
14 import org.junit.After;
15 import org.junit.AfterClass;
16 import org.junit.Before;
17 import org.junit.BeforeClass;
4 import org.junit.Test;
185 import org.kapott.hbci.GV.HBCIJob;
19 import org.kapott.hbci.GV_Result.HBCIJobResult;
20 import org.kapott.hbci.callback.HBCICallback;
21 import org.kapott.hbci.callback.HBCICallbackConsole;
22 import org.kapott.hbci.manager.HBCIHandler;
23 import org.kapott.hbci.manager.HBCIUtils;
24 import org.kapott.hbci.passport.AbstractHBCIPassport;
256 import org.kapott.hbci.passport.HBCIPassport;
26 import org.kapott.hbci.passport.HBCIPassportPinTan;
27 import org.kapott.hbci.status.HBCIExecStatus;
287 import org.kapott.hbci.structures.Konto;
298 import org.kapott.hbci.structures.Value;
30 import org.kapott.hbci4java.AbstractTest;
319 import org.kapott.hbci4java.AbstractTestGV;
3210
3311
34 public class TestGVTermUebSEPA extends AbstractTestGV {
12 /**
13 * Testet das Ausfuehren einer SEPA-Termin-Ueberweisung.
14 */
15 public class TestGVTermUebSEPA extends AbstractTestGV
16 {
3517
18 /**
19 * Testet das Ausfuehren einer SEPA-Termin-Ueberweisung.
20 */
3621 @Test
37 public void test() {
38 System.out.println("---------Erstelle Job");
39 HBCIJob job = handler.newJob("TermUebSEPA");
40
41 Konto acc = new Konto();
42 acc.blz = params.getProperty("target_blz");
43 acc.number = params.getProperty("target_number");
44 acc.name = "Kurt Mustermann";
45 acc.bic = params.getProperty("target_bic");
46 acc.iban = params.getProperty("target_iban");
47
48 int source_acc_idx = Integer.parseInt(params.getProperty("source_account_idx"));
49 job.setParam("src",passport.getAccounts()[source_acc_idx]);
50 job.setParam("dst",acc);
51
52 String value = params.getProperty("value");
53 if(value == null) value = "100";
54 job.setParam("btg",new Value(Integer.parseInt(value),"EUR"));
55 job.setParam("usage",params.getProperty("usage"));
56 job.setParam("date", params.getProperty("date"));
57
58 System.out.println("---------Für Job zur Queue");
59 job.addToQueue();
60
61
62 HBCIExecStatus ret = handler.execute();
63 HBCIJobResult res = job.getJobResult();
64 System.out.println("----------Result: "+res.toString());
65
66 Assert.assertEquals("Job Result ist nicht OK!", true, res.isOK());
22 public void test()
23 {
24 this.execute(new Execution() {
25 @Override
26 public String getJobname() {
27 return "TermUebSEPA";
28 }
29
30 /**
31 * @see org.kapott.hbci4java.AbstractTestGV.Execution#configure(org.kapott.hbci.GV.HBCIJob, org.kapott.hbci.passport.HBCIPassport, java.util.Properties)
32 */
33 @Override
34 public void configure(HBCIJob job, HBCIPassport passport, Properties params) {
35
36 Konto acc = new Konto();
37 acc.blz = params.getProperty("blz");
38 acc.number = params.getProperty("konto");
39 acc.name = params.getProperty("name");
40 acc.bic = params.getProperty("bic");
41 acc.iban = params.getProperty("iban");
42 job.setParam("dst",acc);
43
44 int idx = Integer.parseInt(params.getProperty("passport_index","0"));
45 job.setParam("src",passport.getAccounts()[idx]);
46
47 String value = params.getProperty("value","1");
48 job.setParam("btg",new Value(Integer.parseInt(value),"EUR"));
49 job.setParam("usage",params.getProperty("usage"));
50 job.setParam("date", params.getProperty("date"));
51 }
52 });
6753 }
68
69 protected String getJobname()
70 {
71 return "TermUebSEPA";
72 }
73
7454 }
00 package org.kapott.hbci4java.sepa;
11
2 import static org.junit.Assert.*;
3 import org.junit.Test;
4
5 import java.io.File;
6 import java.io.FileInputStream;
7 import java.io.InputStream;
8 import java.util.HashMap;
9 import java.util.Iterator;
10 import java.util.Map;
112 import java.util.Properties;
123
13 import junit.framework.Assert;
14
15 import org.junit.After;
16 import org.junit.AfterClass;
17 import org.junit.Before;
18 import org.junit.BeforeClass;
194 import org.junit.Test;
205 import org.kapott.hbci.GV.HBCIJob;
21 import org.kapott.hbci.GV_Result.HBCIJobResult;
22 import org.kapott.hbci.callback.HBCICallback;
23 import org.kapott.hbci.callback.HBCICallbackConsole;
24 import org.kapott.hbci.manager.HBCIHandler;
25 import org.kapott.hbci.manager.HBCIUtils;
26 import org.kapott.hbci.passport.AbstractHBCIPassport;
276 import org.kapott.hbci.passport.HBCIPassport;
28 import org.kapott.hbci.passport.HBCIPassportPinTan;
29 import org.kapott.hbci.status.HBCIExecStatus;
30 import org.kapott.hbci4java.AbstractTest;
317 import org.kapott.hbci4java.AbstractTestGV;
328
339
3410
35 public class TestGVTermUebSEPAList extends AbstractTestGV {
36
37 protected String getJobname()
11 /**
12 * Testet das Abrufen der Liste der SEPA-Termin-Ueberweisungen.
13 */
14 public class TestGVTermUebSEPAList extends AbstractTestGV
15 {
16 /**
17 * Testet das Abrufen der Liste der SEPA-Termin-Ueberweisungen.
18 */
19 @Test
20 public void test()
3821 {
39 return "TermUebSEPAList";
22 this.execute(new Execution() {
23 @Override
24 public String getJobname() {
25 return "TermUebSEPAList";
26 }
27
28 /**
29 * @see org.kapott.hbci4java.AbstractTestGV.Execution#configure(org.kapott.hbci.GV.HBCIJob, org.kapott.hbci.passport.HBCIPassport, java.util.Properties)
30 */
31 @Override
32 public void configure(HBCIJob job, HBCIPassport passport, Properties params) {
33 super.configure(job, passport, params);
34 job.setParam("my.bic",params.getProperty("bic",System.getProperty("bic")));
35 job.setParam("my.iban",params.getProperty("iban",System.getProperty("iban")));
36 }
37 });
4038 }
41
4239 }
0 /**********************************************************************
1 * $Source: /cvsroot/hibiscus/hbci4java/test/hbci4java/ddv/PCSCTest.java,v $
2 * $Revision: 1.1 $
3 * $Date: 2011/11/24 21:59:37 $
4 * $Author: willuhn $
5 *
6 * Copyright (c) by willuhn - software & services
7 * All rights reserved
8 *
9 **********************************************************************/
10
110 package org.kapott.hbci4java.sepa;
121
13 import java.io.File;
14 import java.util.HashMap;
15 import java.util.Iterator;
16 import java.util.Map;
172 import java.util.Properties;
183
19 import org.junit.After;
20 import org.junit.AfterClass;
21 import org.junit.Assert;
22 import org.junit.Before;
23 import org.junit.BeforeClass;
244 import org.junit.Test;
255 import org.kapott.hbci.GV.HBCIJob;
26 import org.kapott.hbci.GV_Result.HBCIJobResult;
27 import org.kapott.hbci.callback.HBCICallback;
28 import org.kapott.hbci.callback.HBCICallbackConsole;
29 import org.kapott.hbci.manager.HBCIHandler;
30 import org.kapott.hbci.manager.HBCIUtils;
31 import org.kapott.hbci.passport.AbstractHBCIPassport;
326 import org.kapott.hbci.passport.HBCIPassport;
33 import org.kapott.hbci.passport.HBCIPassportPinTan;
34 import org.kapott.hbci.status.HBCIExecStatus;
7 import org.kapott.hbci.structures.Konto;
358 import org.kapott.hbci.structures.Value;
36 import org.kapott.hbci4java.AbstractTest;
9 import org.kapott.hbci4java.AbstractTestGV;
3710
3811 /**
39 * Testet das Erstellen von SEPA-Basis-Überweisung
40 *
41 * Erforderliche Angaben für das Nachrichtenformat pain.001 (SEPA-Überweisung)
42 Folgende Angaben sind für das Nachrichtenformat für SEPA-Überweisungen (pain.001) erforderlich:
43 - Name des Zahlungspflichtigen (<Dbtr><Nm>)
44 - IBAN des Zahlungskontos des Zahlungspflichtigen (<DbtrAcct>)
45 - BIC des Kreditinstituts des Zahlungspflichtigen (<DbtrAgt>)
46 - Überweisungsbetrag in Euro (<InstdAmt>)
47 - Angaben zum Verwendungszweck (<RmtInf>)
48 - Name des Zahlungsempfängers (<Cdtr><Nm>)
49 - IBAN des Zahlungskontos des Zahlungsempfängers (<CdtrAcct>)
50 - BIC des Kreditinstituts des Zahlungsempfängers (<CdtrAgt>)
51 - Gegebenenfalls Identifikationscode des Zahlungsempfängers (<Cdtr><Id>)
52 - Gegebenenfalls Name der Referenzpartei des Zahlungsempfängers(<UltmtCdtr>)
53 - Gegebenenfalls Zweck der Überweisung (<Purp>)
12 * Testet das Erstellen von SEPA-Überweisung
5413 */
55 public class TestGVUebSEPA extends AbstractTest
14 public class TestGVUebSEPA extends AbstractTestGV
5615 {
57 private final static int LOGLEVEL = HBCIUtils.LOG_INFO;
58 private final static Map<Integer,String> settings = new HashMap<Integer,String>()
59 {{
60 //TODO: Ein bisschen Geld auf folgendes Konto überweisen ;)
61 put(HBCICallback.NEED_COUNTRY, "DE");
62 put(HBCICallback.NEED_BLZ, "12030000");
63 put(HBCICallback.NEED_CUSTOMERID, "1007318833");
64 put(HBCICallback.NEED_FILTER, "Base64");
65 put(HBCICallback.NEED_HOST, "hbci-pintan-by.s-hbci.de/PinTanServlet");
66 put(HBCICallback.NEED_PASSPHRASE_LOAD, "test");
67 put(HBCICallback.NEED_PASSPHRASE_SAVE, "test");
68 put(HBCICallback.NEED_PORT, "443");
69 put(HBCICallback.NEED_USERID, "1007318833");
70 put(HBCICallback.NEED_CONNECTION, ""); // ignorieren
71 put(HBCICallback.CLOSE_CONNECTION, ""); // ignorieren
72 }};
73
74 private static File dir = null;
75
76 private HBCIPassportPinTan passport = null;
77 private HBCIHandler handler = null;
78
79 /**
80 * Testet das Erstellen einer SEPA-Basis-Lastschrift.
81 * @throws Exception
82 */
83 @Test
84 public void test001() throws Exception
85 {
86 System.out.println("---------Erstelle Job");
87 HBCIJob job = handler.newJob("UebSEPA");
88
89
90 // //Mal schauen welche Konten ich habe
91 // int i = 0;
92 // for(Konto konto : passport.getAccounts()){
93 // System.out.println("Konto " + i +": " + konto);
94 // i++;
95 // }
96
97 job.setParam("src",passport.getAccounts()[2]);
98 job.setParam("dst",passport.getAccounts()[0]);
99 job.setParam("btg",new Value(100L,"EUR"));
100 job.setParam("usage","Hello SEPA Ueberweisung");
101
102
103 System.out.println("---------Für Job zur Queue");
104 job.addToQueue();
105
106
107 HBCIExecStatus ret = handler.execute();
108 HBCIJobResult res = job.getJobResult();
109 System.out.println("----------Result: "+res.toString());
110
111
112 Assert.assertEquals("Job Result ist nicht OK!", true, res.isOK());
113
114
115 // SEG seg = job.createJobSegment(0);
116 // seg.validate();
117 // String msg = seg.toString(0);
118 // Assert.assertEquals("HKUEB:0:5+0001956434:EUR:280:30060601+0001956434:EUR:280:30060601+TEST++0,01:EUR+51++TEST'",msg);
119 }
120
121 /**
122 * Erzeugt das Passport-Objekt.
123 * @throws Exception
124 */
125 @Before
126 public void beforeTest() throws Exception
127 {
128 Properties props = new Properties();
129 props.put("log.loglevel.default",Integer.toString(LOGLEVEL));
130
131 props.put("client.passport.PinTan.filename",dir.getAbsolutePath() + File.separator + System.currentTimeMillis() + ".pt");
132 props.put("client.passport.PinTan.init","1");
133 props.put("client.passport.PinTan.checkcert","0"); // Check der SSL-Zertifikate abschalten - brauchen wir nicht fuer den Test
134
135 // falls noetig
136 props.put("client.passport.PinTan.proxy",""); // host:port
137 props.put("client.passport.PinTan.proxyuser","");
138 props.put("client.passport.PinTan.proxypass","");
139
140 HBCICallback callback = new HBCICallbackConsole()
16 /**
17 * Testet das Ausfuehren einer SEPA-Ueberweisung.
18 */
19 @Test
20 public void test()
14121 {
142 public void callback(HBCIPassport passport, int reason, String msg, int datatype, StringBuffer retData)
143 {
144 // haben wir einen vordefinierten Wert?
145 String value = settings.get(reason);
146 if (value != null)
147 {
148 retData.replace(0,retData.length(),value);
149 return;
150 }
151
152 // Ne, dann an Super-Klasse delegieren
153 super.callback(passport, reason, msg, datatype, retData);
154 }
155 };
156
157 HBCIUtils.init(props,callback);
158 this.passport = (HBCIPassportPinTan) AbstractHBCIPassport.getInstance("PinTan");
159
160 // init handler
161 this.handler = new HBCIHandler("plus",passport);
162
163 // dump bpd
164 // this.dump("BPD",this.passport.getBPD());
165
166 //Liste der unterstuetzten Geschaeftsvorfaelle ausgeben
167 // this.dump("Supported GV",this.handler.getSupportedLowlevelJobs());
168 }
169
170 /**
171 * Schliesst das Passport-Objekt und loescht die Passport-Datei.
172 * @throws Exception
173 */
174 @After
175 public void afterTest() throws Exception
176 {
177 try
178 {
179 if (this.passport != null)
180 this.passport.close();
181
182 File file = new File(this.passport.getFileName());
183 if (!file.delete())
184 throw new Exception("unable to delete " + file);
22 this.execute(new Execution() {
23
24 @Override
25 public String getJobname() {
26 return "UebSEPA";
27 }
28
29 /**
30 * @see org.kapott.hbci4java.AbstractTestGV.Execution#configure(org.kapott.hbci.GV.HBCIJob, org.kapott.hbci.passport.HBCIPassport, java.util.Properties)
31 */
32 @Override
33 public void configure(HBCIJob job, HBCIPassport passport, Properties params) {
34 Konto acc = new Konto();
35 acc.blz = params.getProperty("blz");
36 acc.number = params.getProperty("konto");
37 acc.name = params.getProperty("name");
38 acc.bic = params.getProperty("bic");
39 acc.iban = params.getProperty("iban");
40 job.setParam("dst",acc);
41
42 int idx = Integer.parseInt(params.getProperty("passport_index","0"));
43 job.setParam("src",passport.getAccounts()[idx]);
44
45 String value = params.getProperty("value","1");
46 job.setParam("btg",new Value(Integer.parseInt(value),"EUR"));
47 job.setParam("usage",params.getProperty("usage"));
48 }
49
50 });
18551 }
186 finally
187 {
188 try
189 {
190 if (this.handler != null)
191 this.handler.close();
192 }
193 finally
194 {
195 HBCIUtils.done();
196 }
197 }
198 }
199
200 /**
201 * Erzeugt das Passport-Verzeichnis.
202 * @throws Exception
203 */
204 @BeforeClass
205 public static void beforeClass() throws Exception
206 {
207 String tmpDir = System.getProperty("java.io.tmpdir","/tmp");
208 dir = new File(tmpDir,"hbci4java-junit-" + System.currentTimeMillis());
209 dir.mkdirs();
210 }
211
212 /**
213 * Loescht das Passport-Verzeichnis.
214 * @throws Exception
215 */
216 @AfterClass
217 public static void afterClass() throws Exception
218 {
219 if (!dir.delete())
220 throw new Exception("unable to delete " + dir);
221 }
222
223 private void dump(String name, Properties props)
224 {
225 System.out.println("--- BEGIN: " + name + " -----");
226 Iterator keys = props.keySet().iterator();
227 while (keys.hasNext())
228 {
229 Object key = keys.next();
230 System.out.println(key + ": " + props.get(key));
231 }
232 System.out.println("--- END: " + name + " -----");
233 }
234
23552 }
+0
-249
src/test/java/org/kapott/hbci4java/sepa/TestPainGen.java less more
0 /**********************************************************************
1 * $Source: /cvsroot/hibiscus/hbci4java/test/hbci4java/ddv/PCSCTest.java,v $
2 * $Revision: 1.1 $
3 * $Date: 2011/11/24 21:59:37 $
4 * $Author: willuhn $
5 *
6 * Copyright (c) by willuhn - software & services
7 * All rights reserved
8 *
9 **********************************************************************/
10
11 package org.kapott.hbci4java.sepa;
12
13 import java.io.ByteArrayOutputStream;
14 import java.util.Properties;
15
16 import org.junit.Assert;
17 import org.junit.Test;
18 import org.kapott.hbci.GV.generators.ISEPAGenerator;
19 import org.kapott.hbci.GV.generators.SEPAGeneratorFactory;
20 import org.kapott.hbci.sepa.PainVersion;
21 import org.kapott.hbci.sepa.PainVersion.Type;
22
23 /**
24 * Testet das pure Generieren von Pain XML-Dateien - ohne HBCI-Context.
25 */
26 public class TestPainGen
27 {
28 /**
29 * Testet das Erstellen von SEPA-Ueberweisungen.
30 * @throws Exception
31 */
32 @Test
33 public void test001() throws Exception
34 {
35 Properties props = new Properties();
36 props.setProperty("src.bic", "ABCDEFAA123");
37 props.setProperty("src.iban", "DE1234567890");
38 props.setProperty("src.name", "Max Mustermann");
39 props.setProperty("dst.bic", "ABCDEFAA123");
40 props.setProperty("dst.iban", "DE0987654321");
41 props.setProperty("dst.name", "SEPAstian");
42 props.setProperty("btg.value", "100.00");
43 props.setProperty("btg.curr", "EUR");
44 props.setProperty("usage", "Verwendungszweck");
45 props.setProperty("sepaid", "abcde");
46 props.setProperty("endtoendid", "fghij");
47
48 for (PainVersion version:PainVersion.getKnownVersions(Type.PAIN_001))
49 {
50 // Der Test schlaegt automatisch fehl, wenn die Schema-Validierung nicht klappt
51 ISEPAGenerator gen = SEPAGeneratorFactory.get("UebSEPA", version);
52 ByteArrayOutputStream bos = new ByteArrayOutputStream();
53 gen.generate(props, bos, true);
54 }
55 }
56
57 /**
58 * Testet das Erstellen von SEPA-Lastschriften.
59 * @throws Exception
60 */
61 @Test
62 public void test002() throws Exception
63 {
64 Properties props = new Properties();
65 props.setProperty("src.bic", "ABCDEFAA123");
66 props.setProperty("src.iban", "DE1234567890");
67 props.setProperty("src.name", "Max Mustermann");
68 props.setProperty("dst.bic", "ABCDEFAA123");
69 props.setProperty("dst.iban", "DE0987654321");
70 props.setProperty("dst.name", "SEPAstian");
71 props.setProperty("btg.value", "100.00");
72 props.setProperty("btg.curr", "EUR");
73 props.setProperty("usage", "Verwendungszweck");
74 props.setProperty("sepaid", "abcde");
75 props.setProperty("endtoendid", "fghij");
76 props.setProperty("creditorid", "DE1234567890");
77 props.setProperty("mandateid", "0987654321");
78 props.setProperty("manddateofsig", "2013-11-23");
79 props.setProperty("amendmandindic", "false");
80 props.setProperty("sequencetype", "FRST");
81 props.setProperty("targetdate", "2013-11-30");
82 props.setProperty("type", "CORE");
83
84 for (PainVersion version:PainVersion.getKnownVersions(Type.PAIN_008))
85 {
86 // Der Test schlaegt automatisch fehl, wenn die Schema-Validierung nicht klappt
87 ISEPAGenerator gen = SEPAGeneratorFactory.get("LastSEPA", version);
88 ByteArrayOutputStream bos = new ByteArrayOutputStream();
89 gen.generate(props, bos, true);
90 }
91 }
92
93 /**
94 * Testet das Erstellen von SEPA-Multi-Ueberweisungen.
95 * @throws Exception
96 */
97 @Test
98 public void test003() throws Exception
99 {
100 Properties props = new Properties();
101 props.setProperty("src.bic", "ABCDEFAA123");
102 props.setProperty("src.iban", "DE1234567890");
103 props.setProperty("src.name", "Max Mustermann");
104 props.setProperty("sepaid", "abcde");
105
106 props.setProperty("dst[0].bic", "ABCDEFAA123");
107 props.setProperty("dst[0].iban", "DE0987654321");
108 props.setProperty("dst[0].name", "SEPAstian");
109 props.setProperty("btg[0].value", "100.00");
110 props.setProperty("btg[0].curr", "EUR");
111 props.setProperty("usage[0]", "Verwendungszweck");
112 props.setProperty("endtoendid[0]", "fghij");
113
114 props.setProperty("dst[1].bic", "ABCDEFBB456");
115 props.setProperty("dst[1].iban", "DE5432109876");
116 props.setProperty("dst[1].name", "BICole");
117 props.setProperty("btg[1].value", "150.00");
118 props.setProperty("btg[1].curr", "EUR");
119 props.setProperty("usage[1]", "Verwendungszweck 2");
120 props.setProperty("endtoendid[1]", "fghij");
121
122 for (PainVersion version:PainVersion.getKnownVersions(Type.PAIN_001))
123 {
124 // Der Test schlaegt automatisch fehl, wenn die Schema-Validierung nicht klappt
125 ISEPAGenerator gen = SEPAGeneratorFactory.get("UebSEPA", version);
126 ByteArrayOutputStream bos = new ByteArrayOutputStream();
127 gen.generate(props, bos, true);
128 }
129 }
130
131 /**
132 * Testet das Erstellen von SEPA-Multi-Lastschriften.
133 * @throws Exception
134 */
135 @Test
136 public void test004() throws Exception
137 {
138 Properties props = new Properties();
139 props.setProperty("src.bic", "ABCDEFAA123");
140 props.setProperty("src.iban", "DE1234567890");
141 props.setProperty("src.name", "Max Mustermann");
142 props.setProperty("sepaid", "abcde");
143 props.setProperty("sequencetype", "FRST");
144 props.setProperty("targetdate", "2013-11-30");
145 props.setProperty("type", "CORE");
146
147 props.setProperty("dst[0].bic", "ABCDEFAA123");
148 props.setProperty("dst[0].iban", "DE0987654321");
149 props.setProperty("dst[0].name", "SEPAstian");
150 props.setProperty("btg[0].value", "100.00");
151 props.setProperty("btg[0].curr", "EUR");
152 props.setProperty("mandateid[0]", "0987654321");
153 props.setProperty("manddateofsig[0]", "2013-11-23");
154 props.setProperty("usage[0]", "Verwendungszweck");
155 props.setProperty("amendmandindic[0]", "false");
156 props.setProperty("endtoendid[0]", "fghij");
157 props.setProperty("creditorid[0]", "DE1234567890");
158
159 props.setProperty("dst[1].bic", "ABCDEFBB456");
160 props.setProperty("dst[1].iban", "DE5432109876");
161 props.setProperty("dst[1].name", "BICole");
162 props.setProperty("btg[1].value", "150.00");
163 props.setProperty("btg[1].curr", "EUR");
164 props.setProperty("mandateid[1]", "5432109876");
165 props.setProperty("manddateofsig[1]", "2013-11-23");
166 props.setProperty("usage[1]", "Verwendungszweck 2");
167 props.setProperty("amendmandindic[1]", "false");
168 props.setProperty("endtoendid[1]", "fghij");
169 props.setProperty("creditorid[1]", "DE1234567890");
170
171 for (PainVersion version:PainVersion.getKnownVersions(Type.PAIN_008))
172 {
173 // Der Test schlaegt automatisch fehl, wenn die Schema-Validierung nicht klappt
174 ISEPAGenerator gen = SEPAGeneratorFactory.get("LastSEPA", version);
175 ByteArrayOutputStream bos = new ByteArrayOutputStream();
176 gen.generate(props, bos, true);
177 }
178 }
179
180 /**
181 * Testet das Mappen des SEPA-Type "B2B" auf die passende Enum.
182 * Siehe https://www.willuhn.de/bugzilla/show_bug.cgi?id=1458
183 * @throws Exception
184 */
185 @Test
186 public void test005() throws Exception
187 {
188 Properties props = new Properties();
189 props.setProperty("src.bic", "ABCDEFAA123");
190 props.setProperty("src.iban", "DE1234567890");
191 props.setProperty("src.name", "Max Mustermann");
192 props.setProperty("dst.bic", "ABCDEFAA123");
193 props.setProperty("dst.iban", "DE0987654321");
194 props.setProperty("dst.name", "SEPAstian");
195 props.setProperty("btg.value", "100.00");
196 props.setProperty("btg.curr", "EUR");
197 props.setProperty("usage", "Verwendungszweck");
198 props.setProperty("sepaid", "abcde");
199 props.setProperty("endtoendid", "fghij");
200 props.setProperty("creditorid", "DE1234567890");
201 props.setProperty("mandateid", "0987654321");
202 props.setProperty("manddateofsig", "2013-11-23");
203 props.setProperty("amendmandindic", "false");
204 props.setProperty("sequencetype", "FRST");
205 props.setProperty("targetdate", "2013-11-30");
206 props.setProperty("type", "B2B");
207
208 for (PainVersion version:PainVersion.getKnownVersions(Type.PAIN_008))
209 {
210 // Der Test schlaegt automatisch fehl, wenn die Schema-Validierung nicht klappt
211 ISEPAGenerator gen = SEPAGeneratorFactory.get("LastSEPA", version);
212 ByteArrayOutputStream bos = new ByteArrayOutputStream();
213 gen.generate(props, bos, true);
214 }
215 }
216
217 /**
218 * Testet die korrekte Codierung von Umlauten im erzeugten PAIN-Dokument.
219 * @throws Exception
220 */
221 @Test
222 public void test006() throws Exception
223 {
224 String umlaute = "üöäÜÖÄ";
225 Properties props = new Properties();
226 props.setProperty("src.bic", "ABCDEFAA123");
227 props.setProperty("src.iban", "DE1234567890");
228 props.setProperty("src.name", umlaute);
229 props.setProperty("dst.bic", "ABCDEFAA123");
230 props.setProperty("dst.iban", "DE0987654321");
231 props.setProperty("dst.name", "SEPAstian");
232 props.setProperty("btg.value", "100.00");
233 props.setProperty("btg.curr", "EUR");
234 props.setProperty("usage", "Verwendungszweck");
235 props.setProperty("sepaid", "abcde");
236 props.setProperty("endtoendid", "fghij");
237
238 for (PainVersion version:PainVersion.getKnownVersions(Type.PAIN_001))
239 {
240 ISEPAGenerator gen = SEPAGeneratorFactory.get("UebSEPA", version);
241 ByteArrayOutputStream bos = new ByteArrayOutputStream();
242 gen.generate(props, bos, true);
243 String xml = bos.toString(ISEPAGenerator.ENCODING);
244 Assert.assertTrue(xml.contains(umlaute));
245 }
246 }
247
248 }
1414
1515 import org.junit.Assert;
1616 import org.junit.Test;
17 import org.kapott.hbci.sepa.PainVersion;
17 import org.kapott.hbci.sepa.SepaVersion;
1818 import org.kapott.hbci4java.AbstractTest;
1919
2020 /**
2929 @Test
3030 public void test001() throws Exception
3131 {
32 Map<String, PainVersion> files = new HashMap<String, PainVersion>() {
32 Map<String, SepaVersion> files = new HashMap<String, SepaVersion>() {
3333 {
34 put("test-pain-parse-00100102.xml", PainVersion.PAIN_001_001_02);
35 put("test-pain-parse-00100202.xml", PainVersion.PAIN_001_002_02);
36 put("test-pain-parse-00100203.xml", PainVersion.PAIN_001_002_03);
37 put("test-pain-parse-00100303.xml", PainVersion.PAIN_001_003_03);
38 put("test-pain-parse-00100103.xml", PainVersion.PAIN_001_001_03);
34 put("test-pain-parse-00100102.xml", SepaVersion.PAIN_001_001_02);
35 put("test-pain-parse-00100202.xml", SepaVersion.PAIN_001_002_02);
36 put("test-pain-parse-00100203.xml", SepaVersion.PAIN_001_002_03);
37 put("test-pain-parse-00100303.xml", SepaVersion.PAIN_001_003_03);
38 put("test-pain-parse-00100103.xml", SepaVersion.PAIN_001_001_03);
3939 }
4040 };
4141
42 for (Entry<String, PainVersion> entry : files.entrySet())
42 for (Entry<String, SepaVersion> entry : files.entrySet())
4343 {
4444 InputStream is = null;
4545 try
4646 {
4747 is = this.getStream(entry.getKey());
48 PainVersion version = PainVersion.autodetect(is);
48 SepaVersion version = SepaVersion.autodetect(is);
4949 Assert.assertEquals(version, entry.getValue());
5050 }
5151 finally
6868 try
6969 {
7070 is = this.getStream("test-pain-parse-none.xml");
71 PainVersion version = PainVersion.autodetect(is);
71 SepaVersion version = SepaVersion.autodetect(is);
7272 Assert.assertNull(version);
7373 }
7474 finally
9191 try
9292 {
9393 is = this.getStream("test-pain-parse-invalid.xml");
94 PainVersion.autodetect(is);
94 SepaVersion.autodetect(is);
9595 Assert.fail();
9696 }
9797 catch (IllegalArgumentException iae)
+0
-189
src/test/java/org/kapott/hbci4java/sepa/TestPainVersion.java less more
0 /**********************************************************************
1 *
2 * Copyright (c) by Olaf Willuhn
3 * All rights reserved
4 *
5 **********************************************************************/
6
7 package org.kapott.hbci4java.sepa;
8
9 import java.util.ArrayList;
10 import java.util.List;
11
12 import org.junit.Assert;
13 import org.junit.Test;
14 import org.kapott.hbci.GV.generators.GenLastSEPA00800101;
15 import org.kapott.hbci.GV.generators.GenUebSEPA00100303;
16 import org.kapott.hbci.sepa.PainVersion;
17 import org.kapott.hbci.sepa.PainVersion.Type;
18
19 /**
20 * Tests fuer den PAIN-Version Parser
21 */
22 public class TestPainVersion
23 {
24 /**
25 * Testet simples Parsen einer PAIN-Version.
26 * @throws Exception
27 */
28 @Test
29 public void test001() throws Exception
30 {
31 PainVersion v = PainVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.003.03");
32 Assert.assertEquals(Type.PAIN_001,v.getType());
33 Assert.assertEquals(3,v.getMajor());
34 Assert.assertEquals(3,v.getMinor());
35 Assert.assertEquals(GenUebSEPA00100303.class.getName(),v.getGeneratorClass("UebSEPA"));
36 }
37
38 /**
39 * Testet simples Parsen einer PAIN-Version.
40 * @throws Exception
41 */
42 @Test
43 public void test002() throws Exception
44 {
45 PainVersion v = PainVersion.byURN("sepade.pain.008.001.01.xsd");
46 Assert.assertEquals(Type.PAIN_008,v.getType());
47 Assert.assertEquals(1,v.getMajor());
48 Assert.assertEquals(1,v.getMinor());
49 Assert.assertEquals(GenLastSEPA00800101.class.getName(),v.getGeneratorClass("LastSEPA"));
50 }
51
52 /**
53 * Testet, dass ein ungueltiger PAIN-Typ nicht gelesen werden kann.
54 * @throws Exception
55 */
56 @Test(expected=IllegalArgumentException.class)
57 public void test003() throws Exception
58 {
59 PainVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.005.003.03");
60 }
61
62 /**
63 * Testet, dass eine ungueltige URN nicht gelesen werden kann.
64 * @throws Exception
65 */
66 @Test(expected=IllegalArgumentException.class)
67 public void test004() throws Exception
68 {
69 PainVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001");
70 }
71
72 /**
73 * Testet, dass eine ungueltige URN nicht gelesen werden kann.
74 * @throws Exception
75 */
76 @Test(expected=IllegalArgumentException.class)
77 public void test005() throws Exception
78 {
79 PainVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.001");
80 }
81
82 /**
83 * Testet das Ermitteln der hoechsten PAIN-Version.
84 * @throws Exception
85 */
86 @Test
87 public void test006() throws Exception
88 {
89 List<PainVersion> list = new ArrayList<PainVersion>()
90 {{
91 add(PainVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.001.01"));
92 add(PainVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.002.03"));
93 add(PainVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.003.03"));
94 add(PainVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.001.02"));
95 }};
96
97 PainVersion highest = PainVersion.findGreatest(list);
98 Assert.assertNotNull(highest);
99 Assert.assertEquals(PainVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.003.03"),highest);
100 }
101
102 /**
103 * Testet das Ermitteln der hoechsten PAIN-Version auch dann, wenn diese neuen bizarren
104 * Versionen mit drin stehen, die augenscheinlich aelter sind.
105 * @throws Exception
106 */
107 @Test
108 public void test007() throws Exception
109 {
110 List<PainVersion> list = new ArrayList<PainVersion>()
111 {{
112 add(PainVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.001.01"));
113 add(PainVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.002.03"));
114
115 // Bizzar, aber ist so. Der Test prueft, dass 001.001.03 die aktuellste Version ist. Siehe die Hinweise in PainVersion#compareTo
116 add(PainVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.001.03"));
117
118 add(PainVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.003.03"));
119 add(PainVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.001.02"));
120
121 }};
122
123 PainVersion highest = PainVersion.findGreatest(list);
124 Assert.assertNotNull(highest);
125 Assert.assertEquals(PainVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.001.03"),highest);
126 }
127
128 /**
129 * Testet das Fehlschlagen bei nicht-kompatibler PAIN-Versionen.
130 * @throws Exception
131 */
132 @Test(expected=IllegalArgumentException.class)
133 public void test008() throws Exception
134 {
135 List<PainVersion> list = new ArrayList<PainVersion>()
136 {{
137 add(PainVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.002.03"));
138 add(PainVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.008.001.01"));
139 add(PainVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.003.03"));
140 add(PainVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.001.02"));
141 }};
142
143 PainVersion.findGreatest(list);
144 }
145
146
147 /**
148 * Testet, dass die PAIN-Version von HBCI4Java unterstuetzt wird.
149 * @throws Exception
150 */
151 @Test
152 public void test009() throws Exception
153 {
154 PainVersion v = PainVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.003.03");
155 Assert.assertTrue(v.isSupported("UebSEPA"));
156 }
157
158 /**
159 * Testet, dass die PAIN-Version von HBCI4Java nicht unterstuetzt wird.
160 * @throws Exception
161 */
162 @Test
163 public void test010() throws Exception
164 {
165 PainVersion v = PainVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.004.03");
166 Assert.assertFalse(v.isSupported("UebSEPA"));
167 }
168
169 /**
170 * Testet, dass die PAIN-Version auch dann korrekt erkannt wird, wenn sie in der alten Form angegeben ist.
171 * Es gibt naemlich Banken, die in HISPAS das alte Bezeichner-Format senden (also etwa "sepade.pain.001.002.03.xsd"),
172 * anschliessend aber meckern, wenn man denen beim Einreichen eines Auftrages genau dieses Format
173 * uebergibt. Dort wollen die dann ploetzlich stattdessen den neuen URN haben
174 * (also "urn:iso:std:iso:20022:tech:xsd:pain.001.002.03").
175 * Siehe http://www.onlinebanking-forum.de/phpBB2/viewtopic.php?p=95160#95160
176 * @throws Exception
177 */
178 @Test
179 public void test011() throws Exception
180 {
181 PainVersion v = PainVersion.byURN("sepade.pain.001.002.03.xsd");
182 Assert.assertEquals(PainVersion.PAIN_001_002_03,v);
183 Assert.assertEquals("urn:iso:std:iso:20022:tech:xsd:pain.001.002.03",v.getURN());
184 }
185
186 }
187
188
0 /**********************************************************************
1 *
2 * Copyright (c) by Olaf Willuhn
3 * All rights reserved
4 *
5 **********************************************************************/
6
7 package org.kapott.hbci4java.sepa;
8
9 import java.io.ByteArrayOutputStream;
10 import java.util.Properties;
11
12 import org.junit.Assert;
13 import org.junit.Test;
14 import org.kapott.hbci.GV.generators.ISEPAGenerator;
15 import org.kapott.hbci.GV.generators.SEPAGeneratorFactory;
16 import org.kapott.hbci.sepa.SepaVersion;
17 import org.kapott.hbci.sepa.SepaVersion.Type;
18
19 /**
20 * Testet das pure Generieren von SEPA XML-Dateien - ohne HBCI-Context.
21 */
22 public class TestSepaGen
23 {
24 /**
25 * Testet das Erstellen von SEPA-Ueberweisungen.
26 * @throws Exception
27 */
28 @Test
29 public void test001() throws Exception
30 {
31 Properties props = new Properties();
32 props.setProperty("src.bic", "ABCDEFAA123");
33 props.setProperty("src.iban", "DE1234567890");
34 props.setProperty("src.name", "Max Mustermann");
35 props.setProperty("dst.bic", "ABCDEFAA123");
36 props.setProperty("dst.iban", "DE0987654321");
37 props.setProperty("dst.name", "SEPAstian");
38 props.setProperty("btg.value", "100.00");
39 props.setProperty("btg.curr", "EUR");
40 props.setProperty("usage", "Verwendungszweck");
41 props.setProperty("sepaid", "abcde");
42 props.setProperty("endtoendid", "fghij");
43
44 for (SepaVersion version:SepaVersion.getKnownVersions(Type.PAIN_001))
45 {
46 // Der Test schlaegt automatisch fehl, wenn die Schema-Validierung nicht klappt
47 ISEPAGenerator gen = SEPAGeneratorFactory.get("UebSEPA", version);
48 ByteArrayOutputStream bos = new ByteArrayOutputStream();
49 gen.generate(props, bos, true);
50 }
51 }
52
53 /**
54 * Testet das Erstellen von SEPA-Lastschriften.
55 * @throws Exception
56 */
57 @Test
58 public void test002() throws Exception
59 {
60 Properties props = new Properties();
61 props.setProperty("src.bic", "ABCDEFAA123");
62 props.setProperty("src.iban", "DE1234567890");
63 props.setProperty("src.name", "Max Mustermann");
64 props.setProperty("dst.bic", "ABCDEFAA123");
65 props.setProperty("dst.iban", "DE0987654321");
66 props.setProperty("dst.name", "SEPAstian");
67 props.setProperty("btg.value", "100.00");
68 props.setProperty("btg.curr", "EUR");
69 props.setProperty("usage", "Verwendungszweck");
70 props.setProperty("sepaid", "abcde");
71 props.setProperty("endtoendid", "fghij");
72 props.setProperty("creditorid", "DE1234567890");
73 props.setProperty("mandateid", "0987654321");
74 props.setProperty("manddateofsig", "2013-11-23");
75 props.setProperty("amendmandindic", "false");
76 props.setProperty("sequencetype", "FRST");
77 props.setProperty("targetdate", "2013-11-30");
78 props.setProperty("type", "CORE");
79
80 for (SepaVersion version:SepaVersion.getKnownVersions(Type.PAIN_008))
81 {
82 // Der Test schlaegt automatisch fehl, wenn die Schema-Validierung nicht klappt
83 ISEPAGenerator gen = SEPAGeneratorFactory.get("LastSEPA", version);
84 ByteArrayOutputStream bos = new ByteArrayOutputStream();
85 gen.generate(props, bos, true);
86 }
87 }
88
89 /**
90 * Testet das Erstellen von SEPA-Multi-Ueberweisungen.
91 * @throws Exception
92 */
93 @Test
94 public void test003() throws Exception
95 {
96 Properties props = new Properties();
97 props.setProperty("src.bic", "ABCDEFAA123");
98 props.setProperty("src.iban", "DE1234567890");
99 props.setProperty("src.name", "Max Mustermann");
100 props.setProperty("sepaid", "abcde");
101
102 props.setProperty("dst[0].bic", "ABCDEFAA123");
103 props.setProperty("dst[0].iban", "DE0987654321");
104 props.setProperty("dst[0].name", "SEPAstian");
105 props.setProperty("btg[0].value", "100.00");
106 props.setProperty("btg[0].curr", "EUR");
107 props.setProperty("usage[0]", "Verwendungszweck");
108 props.setProperty("endtoendid[0]", "fghij");
109
110 props.setProperty("dst[1].bic", "ABCDEFBB456");
111 props.setProperty("dst[1].iban", "DE5432109876");
112 props.setProperty("dst[1].name", "BICole");
113 props.setProperty("btg[1].value", "150.00");
114 props.setProperty("btg[1].curr", "EUR");
115 props.setProperty("usage[1]", "Verwendungszweck 2");
116 props.setProperty("endtoendid[1]", "fghij");
117
118 for (SepaVersion version:SepaVersion.getKnownVersions(Type.PAIN_001))
119 {
120 // Der Test schlaegt automatisch fehl, wenn die Schema-Validierung nicht klappt
121 ISEPAGenerator gen = SEPAGeneratorFactory.get("UebSEPA", version);
122 ByteArrayOutputStream bos = new ByteArrayOutputStream();
123 gen.generate(props, bos, true);
124 }
125 }
126
127 /**
128 * Testet das Erstellen von SEPA-Multi-Lastschriften.
129 * @throws Exception
130 */
131 @Test
132 public void test004() throws Exception
133 {
134 Properties props = new Properties();
135 props.setProperty("src.bic", "ABCDEFAA123");
136 props.setProperty("src.iban", "DE1234567890");
137 props.setProperty("src.name", "Max Mustermann");
138 props.setProperty("sepaid", "abcde");
139 props.setProperty("sequencetype", "FRST");
140 props.setProperty("targetdate", "2013-11-30");
141 props.setProperty("type", "CORE");
142
143 props.setProperty("dst[0].bic", "ABCDEFAA123");
144 props.setProperty("dst[0].iban", "DE0987654321");
145 props.setProperty("dst[0].name", "SEPAstian");
146 props.setProperty("btg[0].value", "100.00");
147 props.setProperty("btg[0].curr", "EUR");
148 props.setProperty("mandateid[0]", "0987654321");
149 props.setProperty("manddateofsig[0]", "2013-11-23");
150 props.setProperty("usage[0]", "Verwendungszweck");
151 props.setProperty("amendmandindic[0]", "false");
152 props.setProperty("endtoendid[0]", "fghij");
153 props.setProperty("creditorid[0]", "DE1234567890");
154
155 props.setProperty("dst[1].bic", "ABCDEFBB456");
156 props.setProperty("dst[1].iban", "DE5432109876");
157 props.setProperty("dst[1].name", "BICole");
158 props.setProperty("btg[1].value", "150.00");
159 props.setProperty("btg[1].curr", "EUR");
160 props.setProperty("mandateid[1]", "5432109876");
161 props.setProperty("manddateofsig[1]", "2013-11-23");
162 props.setProperty("usage[1]", "Verwendungszweck 2");
163 props.setProperty("amendmandindic[1]", "false");
164 props.setProperty("endtoendid[1]", "fghij");
165 props.setProperty("creditorid[1]", "DE1234567890");
166
167 for (SepaVersion version:SepaVersion.getKnownVersions(Type.PAIN_008))
168 {
169 // Der Test schlaegt automatisch fehl, wenn die Schema-Validierung nicht klappt
170 ISEPAGenerator gen = SEPAGeneratorFactory.get("LastSEPA", version);
171 ByteArrayOutputStream bos = new ByteArrayOutputStream();
172 gen.generate(props, bos, true);
173 }
174 }
175
176 /**
177 * Testet das Mappen des SEPA-Type "B2B" auf die passende Enum.
178 * Siehe https://www.willuhn.de/bugzilla/show_bug.cgi?id=1458
179 * @throws Exception
180 */
181 @Test
182 public void test005() throws Exception
183 {
184 Properties props = new Properties();
185 props.setProperty("src.bic", "ABCDEFAA123");
186 props.setProperty("src.iban", "DE1234567890");
187 props.setProperty("src.name", "Max Mustermann");
188 props.setProperty("dst.bic", "ABCDEFAA123");
189 props.setProperty("dst.iban", "DE0987654321");
190 props.setProperty("dst.name", "SEPAstian");
191 props.setProperty("btg.value", "100.00");
192 props.setProperty("btg.curr", "EUR");
193 props.setProperty("usage", "Verwendungszweck");
194 props.setProperty("sepaid", "abcde");
195 props.setProperty("endtoendid", "fghij");
196 props.setProperty("creditorid", "DE1234567890");
197 props.setProperty("mandateid", "0987654321");
198 props.setProperty("manddateofsig", "2013-11-23");
199 props.setProperty("amendmandindic", "false");
200 props.setProperty("sequencetype", "FRST");
201 props.setProperty("targetdate", "2013-11-30");
202 props.setProperty("type", "B2B");
203
204 for (SepaVersion version:SepaVersion.getKnownVersions(Type.PAIN_008))
205 {
206 // Der Test schlaegt automatisch fehl, wenn die Schema-Validierung nicht klappt
207 ISEPAGenerator gen = SEPAGeneratorFactory.get("LastSEPA", version);
208 ByteArrayOutputStream bos = new ByteArrayOutputStream();
209 gen.generate(props, bos, true);
210 }
211 }
212
213 /**
214 * Testet die korrekte Codierung von Umlauten im erzeugten PAIN-Dokument.
215 * @throws Exception
216 */
217 @Test
218 public void test006() throws Exception
219 {
220 String umlaute = "üöäÜÖÄ";
221 Properties props = new Properties();
222 props.setProperty("src.bic", "ABCDEFAA123");
223 props.setProperty("src.iban", "DE1234567890");
224 props.setProperty("src.name", umlaute);
225 props.setProperty("dst.bic", "ABCDEFAA123");
226 props.setProperty("dst.iban", "DE0987654321");
227 props.setProperty("dst.name", "SEPAstian");
228 props.setProperty("btg.value", "100.00");
229 props.setProperty("btg.curr", "EUR");
230 props.setProperty("usage", "Verwendungszweck");
231 props.setProperty("sepaid", "abcde");
232 props.setProperty("endtoendid", "fghij");
233
234 for (SepaVersion version:SepaVersion.getKnownVersions(Type.PAIN_001))
235 {
236 ISEPAGenerator gen = SEPAGeneratorFactory.get("UebSEPA", version);
237 ByteArrayOutputStream bos = new ByteArrayOutputStream();
238 gen.generate(props, bos, true);
239 String xml = bos.toString(ISEPAGenerator.ENCODING);
240 Assert.assertTrue(xml.contains(umlaute));
241 }
242 }
243
244 }
0 /**********************************************************************
1 *
2 * Copyright (c) by Olaf Willuhn
3 * All rights reserved
4 *
5 **********************************************************************/
6
7 package org.kapott.hbci4java.sepa;
8
9 import java.util.ArrayList;
10 import java.util.List;
11
12 import org.junit.Assert;
13 import org.junit.Test;
14 import org.kapott.hbci.GV.generators.GenLastSEPA00800101;
15 import org.kapott.hbci.GV.generators.GenUebSEPA00100303;
16 import org.kapott.hbci.sepa.SepaVersion;
17 import org.kapott.hbci.sepa.SepaVersion.Type;
18
19 /**
20 * Tests fuer den SEPA-Version Parser
21 */
22 public class TestSepaVersion
23 {
24 /**
25 * Testet simples Parsen einer PAIN-Version.
26 * @throws Exception
27 */
28 @Test
29 public void test001() throws Exception
30 {
31 SepaVersion v = SepaVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.003.03");
32 Assert.assertEquals(Type.PAIN_001,v.getType());
33 Assert.assertEquals(3,v.getMajor());
34 Assert.assertEquals(3,v.getMinor());
35 Assert.assertEquals(GenUebSEPA00100303.class.getName(),v.getGeneratorClass("UebSEPA"));
36 }
37
38 /**
39 * Testet simples Parsen einer PAIN-Version.
40 * @throws Exception
41 */
42 @Test
43 public void test002() throws Exception
44 {
45 SepaVersion v = SepaVersion.byURN("sepade.pain.008.001.01.xsd");
46 Assert.assertEquals(Type.PAIN_008,v.getType());
47 Assert.assertEquals(1,v.getMajor());
48 Assert.assertEquals(1,v.getMinor());
49 Assert.assertEquals(GenLastSEPA00800101.class.getName(),v.getGeneratorClass("LastSEPA"));
50 }
51
52 /**
53 * Testet, dass ein ungueltiger PAIN-Typ nicht gelesen werden kann.
54 * @throws Exception
55 */
56 @Test(expected=IllegalArgumentException.class)
57 public void test003() throws Exception
58 {
59 SepaVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.005.003.03");
60 }
61
62 /**
63 * Testet, dass eine ungueltige URN nicht gelesen werden kann.
64 * @throws Exception
65 */
66 @Test(expected=IllegalArgumentException.class)
67 public void test004() throws Exception
68 {
69 SepaVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001");
70 }
71
72 /**
73 * Testet, dass eine ungueltige URN nicht gelesen werden kann.
74 * @throws Exception
75 */
76 @Test(expected=IllegalArgumentException.class)
77 public void test005() throws Exception
78 {
79 SepaVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.001");
80 }
81
82 /**
83 * Testet das Ermitteln der hoechsten PAIN-Version.
84 * @throws Exception
85 */
86 @Test
87 public void test006() throws Exception
88 {
89 List<SepaVersion> list = new ArrayList<SepaVersion>()
90 {{
91 add(SepaVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.001.01"));
92 add(SepaVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.002.03"));
93 add(SepaVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.003.03"));
94 add(SepaVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.001.02"));
95 }};
96
97 SepaVersion highest = SepaVersion.findGreatest(list);
98 Assert.assertNotNull(highest);
99 Assert.assertEquals(SepaVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.003.03"),highest);
100 }
101
102 /**
103 * Testet das Ermitteln der hoechsten PAIN-Version auch dann, wenn diese neuen bizarren
104 * Versionen mit drin stehen, die augenscheinlich aelter sind.
105 * @throws Exception
106 */
107 @Test
108 public void test007() throws Exception
109 {
110 List<SepaVersion> list = new ArrayList<SepaVersion>()
111 {{
112 add(SepaVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.001.01"));
113 add(SepaVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.002.03"));
114
115 // Bizzar, aber ist so. Der Test prueft, dass 001.001.03 die aktuellste Version ist. Siehe die Hinweise in PainVersion#compareTo
116 add(SepaVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.001.03"));
117
118 add(SepaVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.003.03"));
119 add(SepaVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.001.02"));
120
121 }};
122
123 SepaVersion highest = SepaVersion.findGreatest(list);
124 Assert.assertNotNull(highest);
125 Assert.assertEquals(SepaVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.001.03"),highest);
126 }
127
128 /**
129 * Testet das Fehlschlagen bei nicht-kompatibler PAIN-Versionen.
130 * @throws Exception
131 */
132 @Test(expected=IllegalArgumentException.class)
133 public void test008() throws Exception
134 {
135 List<SepaVersion> list = new ArrayList<SepaVersion>()
136 {{
137 add(SepaVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.002.03"));
138 add(SepaVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.008.001.01"));
139 add(SepaVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.003.03"));
140 add(SepaVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.001.02"));
141 }};
142
143 SepaVersion.findGreatest(list);
144 }
145
146
147 /**
148 * Testet, dass die PAIN-Version von HBCI4Java unterstuetzt wird.
149 * @throws Exception
150 */
151 @Test
152 public void test009() throws Exception
153 {
154 SepaVersion v = SepaVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.003.03");
155 Assert.assertTrue(v.canGenerate("UebSEPA"));
156 }
157
158 /**
159 * Testet, dass die PAIN-Version von HBCI4Java nicht unterstuetzt wird.
160 * @throws Exception
161 */
162 @Test
163 public void test010() throws Exception
164 {
165 SepaVersion v = SepaVersion.byURN("urn:iso:std:iso:20022:tech:xsd:pain.001.004.03");
166 Assert.assertFalse(v.canGenerate("UebSEPA"));
167 }
168
169 /**
170 * Testet, dass die PAIN-Version auch dann korrekt erkannt wird, wenn sie in der alten Form angegeben ist.
171 * Es gibt naemlich Banken, die in HISPAS das alte Bezeichner-Format senden (also etwa "sepade.pain.001.002.03.xsd"),
172 * anschliessend aber meckern, wenn man denen beim Einreichen eines Auftrages genau dieses Format
173 * uebergibt. Dort wollen die dann ploetzlich stattdessen den neuen URN haben
174 * (also "urn:iso:std:iso:20022:tech:xsd:pain.001.002.03").
175 * Siehe http://www.onlinebanking-forum.de/phpBB2/viewtopic.php?p=95160#95160
176 * @throws Exception
177 */
178 @Test
179 public void test011() throws Exception
180 {
181 SepaVersion v = SepaVersion.byURN("sepade.pain.001.002.03.xsd");
182 Assert.assertEquals(SepaVersion.PAIN_001_002_03,v);
183 Assert.assertEquals("urn:iso:std:iso:20022:tech:xsd:pain.001.002.03",v.getURN());
184 }
185
186 /**
187 * Testet eine CAMT-Version.
188 * @throws Exception
189 */
190 @Test
191 public void test012() throws Exception
192 {
193 SepaVersion v = SepaVersion.byURN("urn:iso:std:iso:20022:tech:xsd:camt.052.001.04");
194 Assert.assertEquals(SepaVersion.CAMT_052_001_04,v);
195 Assert.assertEquals("urn:iso:std:iso:20022:tech:xsd:camt.052.001.04",v.getURN());
196 }
197
198 /**
199 * Testet das Ermitteln der hoechsten CAMT-Version.
200 * @throws Exception
201 */
202 @Test
203 public void test013() throws Exception
204 {
205 List<SepaVersion> list = new ArrayList<SepaVersion>()
206 {{
207 add(SepaVersion.byURN("urn:iso:std:iso:20022:tech:xsd:camt.052.001.02"));
208 add(SepaVersion.byURN("urn:iso:std:iso:20022:tech:xsd:camt.052.001.05"));
209 add(SepaVersion.byURN("urn:iso:std:iso:20022:tech:xsd:camt.052.001.07"));
210 }};
211
212 SepaVersion highest = SepaVersion.findGreatest(list);
213 Assert.assertNotNull(highest);
214 Assert.assertEquals(SepaVersion.CAMT_052_001_07,highest);
215 }
216 }
217
218
+0
-5
src/test/java/org/kapott/hbci4java/sepa/test-pain-parse-00100102.xml less more
0 <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
1 <Document xsi:schemaLocation="urn:sepade:xsd:pain.001.001.02 pain.001.001.02.xsd"
2 xmlns="urn:sepade:xsd:pain.001.001.02" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
3 <pain.001.001.02 />
4 </Document>
+0
-6
src/test/java/org/kapott/hbci4java/sepa/test-pain-parse-00100103.xml less more
0 <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
1 <Document
2 xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03 pain.001.001.03.xsd"
3 xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
4 <CstmrCdtTrfInitn />
5 </Document>
+0
-5
src/test/java/org/kapott/hbci4java/sepa/test-pain-parse-00100202.xml less more
0 <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
1 <Document xsi:schemaLocation="urn:swift:xsd:$pain.001.002.02 pain.001.002.02.xsd"
2 xmlns="urn:swift:xsd:$pain.001.002.02" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
3 <pain.001.001.02 />
4 </Document>
+0
-6
src/test/java/org/kapott/hbci4java/sepa/test-pain-parse-00100203.xml less more
0 <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
1 <Document
2 xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.001.002.03 pain.001.002.03.xsd"
3 xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.002.03" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
4 <CstmrCdtTrfInitn />
5 </Document>
+0
-6
src/test/java/org/kapott/hbci4java/sepa/test-pain-parse-00100303.xml less more
0 <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
1 <Document
2 xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.001.003.03 pain.001.003.03.xsd"
3 xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.003.03" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
4 <CstmrCdtTrfInitn />
5 </Document>
+0
-6
src/test/java/org/kapott/hbci4java/sepa/test-pain-parse-invalid.xml less more
0 <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
1 <Document
2 xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.001.003.03 pain.001.003.03.xsd"
3 xmlns="urn:iso:std:iso:20022:tech:xsd:pain" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
4 <CstmrCdtTrfInitn />
5 </Document>
+0
-4
src/test/java/org/kapott/hbci4java/sepa/test-pain-parse-none.xml less more
0 <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
1 <Document>
2 <CstmrCdtTrfInitn />
3 </Document>
0 HNHBK:1:3+000000001881+220+1653639025+1+1653639025:1'HNSHK:2:3+900+2+1+1+2::1241978588+0+1:20120316:210842+1:999:1+6:10:16+280::1:S:0:0'HIRMG:3:2+0010::Nachricht entgegengenommen'HIRMS:4:2:4+3920::Auftraege werden nur gemaess Zwei-Schritt-Verfahren (ITAN) angenommen.:900'HIBPA:5:2:4+1+280:33020000+akf Bank Wuppertal+23+1+220'HISHV:6:2:4+N+RDH:1'HIKAZS:7:5:4+1+1+60:N:N'HIUEBS:8:4:4+1+1+14:51:53:54:67:69'HISUBS:9:5:4+1+1+9999:14:51:53:54'HISLAS:10:5:4+1+1+9999:14:04:05'HISALS:11:5:4+1+1'HIAOMS:12:1:4+1+1+J:756;24;23;24;64;15000,;EUR:208;24;23;24;64;15000,;EUR:246;24;23;24;64;15000,;EUR:440;24;23;24;64;15000,;EUR:616;24;23;24;64;15000,;EUR:752;24;23;24;64;15000,;EUR:705;24;23;24;64;15000,;EUR:203;24;23;24;64;15000,;EUR:348;24;23;24;64;15000,;EUR:056;24;23;24;64;15000,;EUR:372;24;23;24;64;15000,;EUR:380;24;23;24;64;15000,;EUR:442;24;23;24;64;15000,;EUR:528;24;23;24;64;15000,;EUR:040;24;23;24;64;15000,;EUR:620;24;23;24;64;15000,;EUR:724;24;23;24;64;15000,;EUR:826;24;23;24;64;15000,;EUR:474;24;23;24;64;15000,;EUR:352;24;23;24;64;15000,;EUR:300;24;23;24;64;15000,;EUR:250;24;23;24;64;15000,;EUR:638;24;23;24;64;15000,;EUR:254;24;23;24;64;15000,;EUR:292;24;23;24;64;15000,;EUR:312;24;23;24;64;15000,;EUR:470;24;23;24;64;15000,;EUR:196;24;23;24;64;15000,;EUR:233;24;23;24;64;15000,;EUR:428;24;23;24;64;15000,;EUR:276;24;23;24;64;15000,;EUR:578;24;23;24;64;15000,;EUR'HILASS:13:4:4+1+1+14:04:05'HIPINS:14:1:4+1+1+1+5:6:6:BENUTZER:KUNDEN:HKUEB:J:HKSUB:J:HKKAZ:N:HKSLA:J:HKTUE:J:HKTUA:J:HKTUB:N:HKTUL:J:HKAOM:J:HKTAN:N'HITANS:15:2:4+1+1+1+N:J:1:900:1:ITAN:ITAN:6:1:TAN:6:1:N:1:0:N:N:N'HIUPA:16:2:4+XXXX+0+0'HIUPD:17:4:4+10023340::280:33020000+XXXX+EUR+Jan Kahl++Jan Kahl++HKKAZ:1+HKUEB:1+HKSUB:1+HKSAL:1+HKTAN:1'HISYN:18:3:5+1241978588'HNSHA:19:1+2++XXXXX'HNHBS:20:1+1'
0 HNHBK:1:3+000000006876+300+266706756+1+266706756:1'HIRMG:2:2+3060::Teilweise liegen Warnungen/Hinweise vor:'HIRMS:3:2:4+3050::BPD nicht aktuell. Aktuelle Version folgt.:+3920::Zugelassene 2-Schrittverfahren für den Benutzer:902:901'HIBPA:4:3:4+45+280:20050550+Hamburger Sparkasse+0+1+2:201:210:220:300+150'HIKOM:5:4:4+280:20050550+1+2:online-banking.haspa.de:::+3:https?://ssl2.haspa.de/OnlineBankingFinTS/pintan:::'HISHV:6:3:4+N+RDH:1'HIUEBS:7:4:4+800+1+14:51:53:54:56'HIUEBS:8:3:4+800+1+14:51:53:54:56'HIUEBS:9:2:4+800+1+14:51:53:54:56'HITUBS:10:2:4+800+1+N'HITUBS:11:1:4+800+1+N'HICDES:12:1:4+800+1+1+4:0:360:0102030612:01020304050607080910111213141516171819202122232425262728293031::'HICDNS:13:1:4+800+1+1+0:0:360:J:J:J:J:N:N:N:N:N:0102030612:01020304050607080910111213141516171819202122232425262728293031::'HICDBS:14:1:4+800+1+1+N'HICDLS:15:1:4+800+1+1+0:360:N:J'HIDABS:16:3:4+800+1'HIDABS:17:2:4+800+1'HIDABS:18:1:4+800+1'HILASS:19:4:4+800+1+14:04:05'HILASS:20:3:4+800+1+14:04:05'HILASS:21:2:4+800+1+14:04:05'HISUBS:22:5:4+800+1+0:14:51:53:54:56'HISUBS:23:4:4+800+1+0:14:51:53:54:56'HISUBS:24:3:4+800+1+0:14:51:53:54:56'HISLAS:25:5:4+800+1+0:14:04:05'HISLAS:26:4:4+800+1+0:14:04:05'HISLAS:27:3:4+800+1+0:14:04:05'HIKAZS:28:7:4+800+1+1+90:N:N'HIKAZS:29:6:4+800+1+1+90:N:N'HIKAZS:30:5:4+800+1+90:N:N'HIKAZS:31:4:4+800+1+90:N'HISALS:32:7:4+800+1+1'HISALS:33:6:4+800+1+1'HISALS:34:5:4+800+1'HISALS:35:4:4+800+1'HISALS:36:3:4+800+1'HIFGBS:37:3:4+800+1'HIFGBS:38:2:4+800+1'HIWPDS:39:5:4+800+1+N:N:N'HIWPDS:40:4:4+800+1+N:N:N'HIWPDS:41:3:4+800+1+N'HIWPDS:42:2:4+800+1+N'HIKDMS:43:4:4+800+1+2048'HIKDMS:44:3:4+800+1+2048'HIKDMS:45:2:4+800+1+2048'HIGAMS:46:3:4+800+1+2048'HIGAMS:47:2:4+800+1+2048'HIGAMS:48:1:4+800+1+2048'HIKIAS:49:3:4+800+1'HIKIAS:50:2:4+800+1'HIKIAS:51:1:4+800+1'HIINFS:52:3:4+800+1'HIINFS:53:2:4+800+1'HIINFS:54:1:4+800+1'HIWPOS:55:3:4+800+1+1+0:N:0:N:J:OTCO;XBER;XBRE;XDUS;XFRA;XHAM;XHAN;XMUN;XSTU;XETR;XLON;XPAR;XISM;XNYS;XAMS;ZCH;XXXX:::0,:EUR:MAKT;LMTO;STOP:NOHE:GDAY;GTMO'HIWPOS:56:2:4+800+1+0:N:0:N:J:OTCO;XBER;XBRE;XDUS;XFRA;XHAM;XHAN;XMUN;XSTU;XETR;XLON;XPAR;XISM;XNYS;XAMS;ZCH;XXXX:2;3;4;5:Kassa;variabler Handel;nur Auktion;variabel (XETRA):::0,:EUR:MAKT;LMTO;STOP;SLOS:NOHE:GDAY;GTMO'HIWPOS:57:1:4+800+1+0:J:OTCO;XBER;XBRE;XDUS;XFRA;XHAM;XHAN;XMUN;XSTU;XETR;XLON;XPAR;XISM;XNYS;XAMS;ZCH;XXXX:2;3;4;5:Kassa;variabler Handel;nur Auktion;variabel (XETRA):30:0,:EUR:MAKT:LMTO:STOP:SLOS:NOHE:GDAY:GTMO'HIWOAS:58:2:4+800+1+N:MAKT;LMTO;STOP;SLOS:J:N:GDAY;GTMO:N:0:J:N:N:0,:EUR'HIWOAS:59:1:4+800+1+N:J:N:N:N:N:J:0,:EUR'HIWPSS:60:2:4+800+1+J:N'HIWPSS:61:1:4+800+1+J'HIWSOS:62:3:4+800+1+1+J:61:'HIWSOS:63:2:4+800+1+J:61:'HIWSOS:64:1:4+800+1+J:61:'HIOANS:65:3:4+800+1+1+J:61:'HIOANS:66:2:4+800+1+1+J:61:'HIOANS:67:1:4+800+1+J:61'HIWPRS:68:2:4+800+1+J:N:N:N::festverzinsliche WP:Fonds:deutsche Fonds:ausländische Fonds:Aktien:deutsche Aktien:ausländische Aktien:Optionsscheine'HIWPRS:69:1:4+800+1+J:N:N:N::festverzinsliche WP:Fonds:deutsche Fonds:ausländische Fonds:Aktien:deutsche Aktien:ausländische Aktien:Optionsscheine'HIWSDS:70:2:4+800+1+J:A;Dax Inland:B;Inland sonstige'HIWSDS:71:1:4+800+1'HISPAS:72:3:4+800+1+1+J:N:N:N:0:urn?:iso?:std?:iso?:20022?:tech?:xsd?:pain.001.002.03:urn?:iso?:std?:iso?:20022?:tech?:xsd?:pain.008.002.02'HISPAS:73:2:4+800+1+1+J:N:N:N:urn?:iso?:std?:iso?:20022?:tech?:xsd?:pain.001.002.03:urn?:iso?:std?:iso?:20022?:tech?:xsd?:pain.008.002.02'HISPAS:74:1:4+800+1+1+J:N:N:urn?:iso?:std?:iso?:20022?:tech?:xsd?:pain.001.002.03:urn?:iso?:std?:iso?:20022?:tech?:xsd?:pain.008.002.02'HICCSS:75:1:4+800+1+1'HIDSES:76:1:4+800+1+1+3:14:6:14'HIBSES:77:1:4+800+1+1+2:14:2:14'HIDMES:78:1:4+800+1+1+3:14:6:14:0:J:N'HIBMES:79:1:4+800+1+1+2:14:2:14:0:J:N'HICCMS:80:1:4+800+1+1+0:J:N'HICSES:81:1:4+800+1+1+0:360'HICSAS:82:1:4+800+1+1+0:360'HICSBS:83:1:4+800+1+1+N:N'HICSLS:84:1:4+800+1+1+J'HIDSBS:85:1:4+800+1+1+N:N:56'HIDSWS:86:1:4+800+1+1+J::'HIUMBS:87:1:4+800+1+14:51'HILSWS:88:2:4+800+1+1+::05'DINTRS:89:2:4+800+1+1+N'DIKNDS:90:2:4+800+1+1+N:'HIEKAS:91:3:4+800+1+1+J:J:N:3'HIEKAS:92:2:4+800+1+1+J:J:N:3'HIEKAS:93:1:4+800+1+1+J:J:N:3'HIQTGS:94:1:4+800+1+1'HIFRDS:95:1:4+800+1'HILWBS:96:2:4+800+1+1+N:56:N'HILWBS:97:1:4+800+1+1+N:56'HITABS:98:3:4+800+1+1'HITABS:99:2:4+800+1+1'HITABS:100:1:4+800+1+1'HITAUS:101:2:4+800+1+1+N:N:N:J:1:2'HITAUS:102:1:4+800+1+1+N:N:N'HITSYS:103:1:4+800+1+1+J:N'HIMTRS:104:1:4+800+1+1+N'HIMTFS:105:1:4+800+1+1'HIMTAS:106:1:4+800+1+1+N'HITMLS:107:1:4+800+1+1'HIPAES:108:1:4+1+1+1'HITAZS:109:1:4+800+1+1'HIPINS:110:1:4+1+1+1+5:12:6:Einwahlkontonummer::HKFGB:N:HKDAB:N:HKTUB:N:HKUEB:J:HKLAS:J:HKSUB:J:HKSLA:J:HKKAZ:N:HKSAL:N:HKWSD:N:HKWPR:N:HKWPD:N:HKWPO:J:HKWOA:J:HKWPS:J:HKWSO:N:HKOAN:N:HKWSD:N:HKWPR:N:HKKDM:J:HKGAM:N:HKPAE:J:HKTLA:J:HKTLF:J:HKTSP:N:HKTAZ:N:HKUMB:J:HKLSW:J:DKNTR:N:DKKND:J:HKTAN:N:HKSPA:N:HKCCS:J:HKCCM:J:HKDSE:J:HKBSE:J:HKDME:J:HKBME:J:HKCSE:J:HKCSB:N:HKCSA:J:HKCSL:J:HKCDE:J:HKCDB:N:HKCDN:J:HKCDL:J:HKDSB:N:HKDSW:J:HKEKA:N:HKQTG:N:HKFRD:N:HKLWB:N:HKTAB:N:HKTAU:N:HKTSY:N:HKMTR:J:HKMTF:N:HKMTA:J:HKTML:N'HITANS:111:4:4+1+1+1+N:N:1:900:1:iTAN:::iTAN:6:1:TAN-Nummer:2:1:N:4:0:N:N:N:N:N:00:0:1:903:1:mTAN:mobileTAN:1.3.2:smsTAN:6:1:Ihre TAN:999:0:N:4:0:N:N:J:J:J:00:0:1:901:1:HHD1.3.2UC:HHDUC:1.3.2:chipTAN:6:1:Ihre TAN:999:0:N:4:0:N:N:J:J:J:00:0:1:902:1:HHD1.3.2OPT:HHDOPT1:1.3.2:chipTAN comfort:6:1:Ihre TAN:999:0:N:4:0:N:N:J:J:J:00:0:1'HITANS:112:3:4+1+1+1+N:N:1:900:1:iTAN:iTAN:6:1:TAN-Nummer:2:1:N:4:0:N:N:N:00:0:1:903:1:mTAN:smsTAN:6:1:Ihre TAN:999:0:N:4:0:N:J:J:00:0:1:901:1:HHD1.3.2UC:chipTAN:6:1:Ihre TAN:999:0:N:4:0:N:J:J:00:0:1:902:1:HHD1.3.2OPT:chipTAN comfort:6:1:Ihre TAN:999:0:N:4:0:N:J:J:00:0:1'HITANS:113:2:4+1+1+1+N:N:1:900:1:iTAN:iTAN:6:1:TAN-Nummer:2:1:N:4:0:N:N:N'HITANS:114:1:4+1+1+1+N:N:1:0:900:1:iTAN:iTAN:6:1:TAN-Nummer:2:1:N:N'HIUPA:115:4:4+XXXXXXXXXX+42+0'HIUPD:116:6:4+XXXXXXXXXX::280:20050550++XXXXXXXXXX+0+EUR+Muster, Alexander++Giro++HKSAK:1::::+HKISA:1::::+HKSSP:1::::+HKDAB:1::::+HKTUB:1::::+HKUEB:1::::+HKSUB:1::::+HKKAZ:1::::+HKSAL:1::::+HKKDM:1::::+HKPAE:1::::+HKTLA:1::::+HKTLF:1::::+HKTSP:1::::+HKTAZ:1::::+HKLSW:1::::+HKTAN:1::::+HKSPA:1::::+HKCCS:1::::+HKCCM:1::::+HKCSE:1::::+HKCSB:1::::+HKCSA:1::::+HKCSL:1::::+HKCDE:1::::+HKCDB:1::::+HKCDN:1::::+HKCDL:1::::+HKDSB:1::::+HKDSW:1::::+HKEKA:1::::+HKQTG:1::::+HKFRD:1::::+HKLWB:1::::+HKTAB:1::::+HKTAU:1::::+HKTSY:1::::+HKMTR:1::::+HKMTF:1::::+HKMTA:1::::+HKTML:1::::'HIUPD:117:6:4+1000000000::280:20050550++XXXXXXXXXX+6+EUR+Muster, Alexander++Cashkonto++HKSAK:1::::+HKISA:1::::+HKSSP:1::::+HKKAZ:1::::+HKSAL:1::::+HKKDM:1::::+HKPAE:1::::+HKTLA:1::::+HKTLF:1::::+HKTSP:1::::+HKTAZ:1::::+HKTAN:1::::+HKSPA:1::::+HKCCS:1::::+HKEKA:1::::+HKQTG:1::::+HKFRD:1::::+HKTAB:1::::+HKTAU:1::::+HKTSY:1::::+HKMTR:1::::+HKMTF:1::::+HKMTA:1::::+HKTML:1::::'HNHBS:118:1+1'
0 HNHBK:1:3+000000006469+220+00471H2J1921a72WpL5YDu61el13D+1+00471H2J1921a72WpL5YDu61el13D:1'
1 HIRMG:2:2+9050::Nachricht teilweise fehlerhaft.'
2 HIRMS:3:2:3+3050::BPD nicht mehr aktuell. Aktuelle Version folgt.+9010::Verarbeitung nicht möglich'
3 HIBPA:4:2:3+19+280:86050200+SPARKASSE MULDENTAL+1+1+220+0'
4 HIKOM:5:3:3+280:86050200+1+2:62.181.134.126+3:hbci.finanzit.com/cgi/hbcipt.cgi'
5 HISHV:6:2:3+N+DDV:1'
6 DIKADS:7:1:3+1+1+N:J:N:1'
7 DIKNDS:8:1:3+1+1+N'
8 DILSWS:9:1:3+1+1+::04:05'
9 DINTRS:10:1:3+1+1'
10 DIPAES:11:1:3+1+1'
11 DIPINS:12:1:3+1+1+DKKAD:N:DKKND:J:DKLSW:J:DKNTR:N:DKPAE:J:DKPSA:J:DKQTG:N:DKSVI:N:DKSVK:N:DKTAZ:N:DKTLA:N:DKTLF:J:DKTSP:N:HKAOM:J:HKAZK:N:HKDAA:N:HKDAB:N:HKDAE:J:HKDAL:J:HKDAN:J:HKDAS:J:HKEKA:N:HKFRD:N:HKKAS:N:HKKAZ:N:HKKDM:J:HKKIF:N:HKMTA:J:HKMTF:N:HKMTR:J:HKPAE:J:HKPPD:J:HKPSA:J:HKPSP:N:HKQTG:N:HKSAL:N:HKSLA:J:HKSLB:N:HKSLE:J:HKSLL:J:HKSTP:J:HKSUB:J:HKTAB:N:HKTAN:N:HKTAU:J:HKTAZ:N:HKTLA:N:HKTLF:J:HKTML:N:HKTSB:N:HKTSE:J:HKTSL:J:HKTSP:N:HKTSY:N:HKTUA:J:HKTUB:N:HKTUE:J:HKTUL:J:HKUEB:J:HKUMB:J:HKWFO:J:HKWOA:J:HKWPD:N:HKWPO:J:HKWPS:J:HKWSD:N:HKWSO:N:IKSEP:J'
12 DIPSAS:13:1:3+1+1'
13 DIQTGS:14:1:3+1+1'
14 DISVIS:15:1:3+1+1'
15 DISVKS:16:1:3+1+1'
16 DITAZS:17:1:3+1+1'
17 DITLAS:18:1:3+1+1'
18 DITLFS:19:1:3+1+1+J'
19 DITSPS:20:1:3+1+1+N'
20 HIAOMS:21:1:3+1+1+J:040;140;140;140;140;50000,;EUR:056;140;140;140;140;50000,;EUR:100;140;140;140;140;50000,;EUR:756;140;140;140;140;50000,;EUR:196;140;140;140;140;50000,;EUR:203;140;140;140;140;50000,;EUR:280;140;140;140;140;50000,;EUR:208;140;140;140;140;50000,;EUR:233;140;140;140;140;50000,;EUR:724;140;140;140;140;50000,;EUR:246;140;140;140;140;50000,;EUR:250;140;140;140;140;50000,;EUR:826;140;140;140;140;50000,;EUR:254;140;140;140;140;50000,;EUR:292;140;140;140;140;50000,;EUR:312;140;140;140;140;50000,;EUR:300;140;140;140;140;50000,;EUR:348;140;140;140;140;50000,;EUR:372;140;140;140;140;50000,;EUR:352;140;140;140;140;50000,;EUR:380;140;140;140;140;50000,;EUR:438;140;140;140;140;50000,;EUR:440;140;140;140;140;50000,;EUR:442;140;140;140;140;50000,;EUR:428;140;140;140;140;50000,;EUR:474;140;140;140;140;50000,;EUR:470;140;140;140;140;50000,;EUR:528;140;140;140;140;50000,;EUR:578;140;140;140;140;50000,;EUR:616;140;140;140;140;50000,;EUR:620;140;140;140;140;50000,;EUR:638;140;140;140;140;50000,;EUR:642;140;140;140;140;50000,;EUR:752;140;140;140;140;50000,;EUR:705;140;140;140;140;50000,;EUR:703;140;140;140;140;50000,;EUR'
21 HIAZKS:22:1:3+1+1'
22 HIDAAS:23:1:3+1+1'
23 HIDAAS:24:2:3+1+1'
24 HIDABS:25:1:3+1+1'
25 HIDABS:26:2:3+1+1'
26 HIDAES:27:2:3+1+1+13:1:360:0102030612:010203040506070809101112131415161718192021222324252627282930:::52'
27 HIDAES:28:3:3+1+1+13:1:360:0102030612:010203040506070809101112131415161718192021222324252627282930:::52'
28 HIDALS:29:1:3+1+1+1:360:J'
29 HIDALS:30:2:3+1+1+1:360:J'
30 HIDANS:31:2:3+1+1+9:1:360:J:J:J:N:J:N:N:N:N:N:13:0102030612:010203040506070809101112131415161718192021222324252627282930:::52'
31 HIDANS:32:3:3+1+1+9:1:360:J:J:J:N:J:N:N:N:N:N:13:0102030612:010203040506070809101112131415161718192021222324252627282930:::52'
32 HIDASS:33:1:3+1+1+9:1:360:1:N'
33 HIDASS:34:2:3+1+1+9:1:360:1:N:N'
34 HIEKAS:35:2:3+1+1+1+N:J:N:1'
35 HIFRDS:36:1:3+1+1'
36 HIKASS:37:1:3+1+1+11;SpkCard m. Ersatzauto m. Chip:12;SpkCard m. Ersatzauto o. Chip:13;SpkCard o. Ersatzauto m. Chip:14;SpkCard o. Ersatzauto o. Chip:15;SpkCard f. Minderj. m. Chip:16;SpkCard f. Minderj. o. Chip:17;S-Kundenkarte m. Chip:18;S-Kundenkarte o. Chip:8;Hauskarte ohne Chip:7;Hauskarte mit Chip:1;ec-Karte ohne Chip:5;S-Card 1 ohne Chip:6;S-Card 2 ohne Chip:2;ec-Card mit Chip:3;S-Card 1 mit Chip:4;S-Card 2 mit Chip'
37 HIKAZS:38:4:3+1+1+30:N'
38 HIKDMS:39:2:3+1+1+320'
39 HIKDMS:40:3:3+1+1+320'
40 HIKDMS:41:4:3+1+1+320'
41 HIKIFS:42:1:3+1+1'
42 HIMTAS:43:1:3+1+1+1+N'
43 HIMTFS:44:1:3+1+1+1'
44 HIMTRS:45:1:3+1+1+1+N'
45 HIPAES:46:1:3+1+1+1'
46 HIPINS:47:1:3+1+1+1+:::::DKKAD:N:DKKND:J:DKLSW:J:DKNTR:N:DKPAE:J:DKPSA:J:DKQTG:N:DKSVI:N:DKSVK:N:DKTAZ:N:DKTLA:N:DKTLF:J:DKTSP:N:HKAOM:J:HKAZK:N:HKDAA:N:HKDAB:N:HKDAE:J:HKDAL:J:HKDAN:J:HKDAS:J:HKEKA:N:HKFRD:N:HKKAS:N:HKKAZ:N:HKKDM:J:HKKIF:N:HKMTA:J:HKMTF:N:HKMTR:J:HKPAE:J:HKPPD:J:HKPSA:J:HKPSP:N:HKQTG:N:HKSAL:N:HKSLA:J:HKSLB:N:HKSLE:J:HKSLL:J:HKSTP:J:HKSUB:J:HKTAB:N:HKTAN:N:HKTAU:J:HKTAZ:N:HKTLA:N:HKTLF:J:HKTML:N:HKTSB:N:HKTSE:J:HKTSL:J:HKTSP:N:HKTSY:N:HKTUA:J:HKTUB:N:HKTUE:J:HKTUL:J:HKUEB:J:HKUMB:J:HKWFO:J:HKWOA:J:HKWPD:N:HKWPO:J:HKWPS:J:HKWSD:N:HKWSO:N:IKSEP:J'
47 HIPPDS:48:1:3+1+1+1+1:Telekom:Xtra Cash & Go:N:::15;30;50:2:Vodafone:CallYa:N:::15;25;50:3:E-Plus:Free & Easy:N:::15;20;30:4:O2:LOOP:N:::15;20;30:5:congstar:Prepaid:N:::15;30;50:6:blau:Prepaid:N:::15;20;30:8:o.tel.o:o.tel.o prepaid:N:::9;19;29'
48 HIPSAS:49:1:3+1+1+1'
49 HIPSPS:50:1:3+1+1+1'
50 HIQTGS:51:1:3+1+1+1'
51 HISALS:52:4:3+1+1'
52 HISLAS:53:3:3+1+1+999:14:04:05'
53 HISLAS:54:4:3+1+1+999:14:04:05'
54 HISLBS:55:3:3+1+1+1+N'
55 HISLES:56:3:3+1+1+1+1:15:99:14:04:05'
56 HISLLS:57:3:3+1+1+1'
57 HISTPS:58:1:3+1+1+1+1:AT:BE:BG:CH:CY:CZ:DE:DK:EE:ES:FI:FR:GB:GF:GI:GP:GR:HU:IE:IS:IT:LI:LT:LU:LV:MQ:MT:NL:NO:PL:PT:RE:RO:SE:SI:SK'
58 HISTPS:59:3:3+1+1+1+2006:1:50000,:12500,:AT:BE:BG:CH:CY:CZ:DE:DK:EE:ES:FI:FR:GB:GF:GI:GP:GR:HU:IE:IS:IT:LI:LT:LU:LV:MQ:MT:NL:NO:PL:PT:RE:RO:SE:SI:SK'
59 HISUBS:60:3:3+1+1+999:14:51:53:54:56'
60 HISUBS:61:4:3+1+1+999:14:51:53:54:56'
61 HITABS:62:2:3+1+1+1'
62 HITANS:63:1:3+1+1+1+J:N:0:0:996:2:iTAN:Indiziertes TAN-Verfahren:6:1:TAN-Nummer:10:1:J:N:997:2:smsTAN:smsTAN-Verfahren:6:1:TAN-Nummer:46:1:J:N:995:2:chipTAN:chipTAN-Verfahren:6:1:TAN-Nummer:180:1:J:N'
63 HITAUS:64:2:3+1+1+1+N:J:N:J:11:13:15:17'
64 HITAZS:65:1:3+1+1+1'
65 HITLAS:66:1:3+1+1+1'
66 HITLFS:67:1:3+1+1+1+2'
67 HITMLS:68:1:3+1+1+1'
68 HITSBS:69:3:3+1+1+1+N'
69 HITSES:70:3:3+1+1+1+1:15:99:14:51:56:53:54'
70 HITSLS:71:3:3+1+1+1'
71 HITSPS:72:1:3+1+1+1+1'
72 HITSYS:73:1:3+1+1+1+N:N'
73 HITUAS:74:2:3+1+1+1:90:14:51'
74 HITUBS:75:1:3+1+1+N'
75 HITUES:76:2:3+1+1+1:90:14:51'
76 HITULS:77:1:3+1+1'
77 HIUEBS:78:2:3+1+1+14:51'
78 HIUEBS:79:3:3+1+1+14:51'
79 HIUMBS:80:1:3+1+1+14:51'
80 HIWFOS:81:1:3+1+1+N:0:N:N:J'
81 HIWOAS:82:2:3+1+1+N:MAKT;LMTO;STOP;SLOS:J:J:GDAY;GTMO;GTHD:J:0:N:N:N:0,'
82 HIWPDS:83:3:3+1+1+J'
83 HIWPDS:84:5:3+1+1+J:N:N'
84 HIWPOS:85:2:3+1+1+0:N:0:N:N:XBER;XDUS;XFRA;XHAM;XHAN;XMUN;XSTU;XETR;XAMS;XBRU;XDUB;XHEL;XLIS;XLUX;XMAD;XMIL;XOSL;XPAR;XSTO;XWBO;XXXX;OTCO;XBKK;XHKG;XJKT;XJSE;XCSE;XLON;XASX;XNYS;XSES;XTKS;XTSE;XNZE;XSWX;XNGO;XVTX;XPRA;XATH;XBKK;XBAR;XBRN;XTSX;XBUD;XCHI;XISM;XFKA;XKSY;XIST;XKLS;XLJU;XMEX;XASE;XFJO;XPHL;XLAT;XNAS;XOTC;XSAP;XOME;XSUR;XWAR;DIFX;XSWB;XGAT:::90:4:0,::MAKT;LMTO;STOP;SLOS:FIKI;NOHE:GDAY;GTMO;GTHD;IOCA'
85 HIWPSS:86:2:3+1+1+J:N'
86 HIWSDS:87:2:3+1+1+J:0;keine Aussage:1;geringes Risiko:4;mittleres Risiko:7;hohes Risiko:9;besonderer Beratungbedarf'
87 HIWSOS:88:1:3+1+1+N:60:2:3:5:6:7:8:9:10'
88 IISEPS:89:1:3+1+1+1'
89 HNHBS:90:1+1'
0 HNHBK:1:3+000000006469+220+00471H2J1921a72WpL5YDu61el13D+1+00471H2J1921a72WpL5YDu61el13D:1'HIRMG:2:2+9050::Nachricht teilweise fehlerhaft.'HIRMS:3:2:3+3050::BPD nicht mehr aktuell. Aktuelle Version folgt.+9010::Verarbeitung nicht möglich'HIBPA:4:2:3+19+280:86050200+SPARKASSE MULDENTAL+1+1+220+0'HIKOM:5:3:3+280:86050200+1+2:62.181.134.126+3:hbci.finanzit.com/cgi/hbcipt.cgi'HISHV:6:2:3+N+DDV:1'DIKADS:7:1:3+1+1+N:J:N:1'DIKNDS:8:1:3+1+1+N'DILSWS:9:1:3+1+1+::04:05'DINTRS:10:1:3+1+1'DIPAES:11:1:3+1+1'DIPINS:12:1:3+1+1+DKKAD:N:DKKND:J:DKLSW:J:DKNTR:N:DKPAE:J:DKPSA:J:DKQTG:N:DKSVI:N:DKSVK:N:DKTAZ:N:DKTLA:N:DKTLF:J:DKTSP:N:HKAOM:J:HKAZK:N:HKDAA:N:HKDAB:N:HKDAE:J:HKDAL:J:HKDAN:J:HKDAS:J:HKEKA:N:HKFRD:N:HKKAS:N:HKKAZ:N:HKKDM:J:HKKIF:N:HKMTA:J:HKMTF:N:HKMTR:J:HKPAE:J:HKPPD:J:HKPSA:J:HKPSP:N:HKQTG:N:HKSAL:N:HKSLA:J:HKSLB:N:HKSLE:J:HKSLL:J:HKSTP:J:HKSUB:J:HKTAB:N:HKTAN:N:HKTAU:J:HKTAZ:N:HKTLA:N:HKTLF:J:HKTML:N:HKTSB:N:HKTSE:J:HKTSL:J:HKTSP:N:HKTSY:N:HKTUA:J:HKTUB:N:HKTUE:J:HKTUL:J:HKUEB:J:HKUMB:J:HKWFO:J:HKWOA:J:HKWPD:N:HKWPO:J:HKWPS:J:HKWSD:N:HKWSO:N:IKSEP:J'DIPSAS:13:1:3+1+1'DIQTGS:14:1:3+1+1'DISVIS:15:1:3+1+1'DISVKS:16:1:3+1+1'DITAZS:17:1:3+1+1'DITLAS:18:1:3+1+1'DITLFS:19:1:3+1+1+J'DITSPS:20:1:3+1+1+N'HIAOMS:21:1:3+1+1+J:040;140;140;140;140;50000,;EUR:056;140;140;140;140;50000,;EUR:100;140;140;140;140;50000,;EUR:756;140;140;140;140;50000,;EUR:196;140;140;140;140;50000,;EUR:203;140;140;140;140;50000,;EUR:280;140;140;140;140;50000,;EUR:208;140;140;140;140;50000,;EUR:233;140;140;140;140;50000,;EUR:724;140;140;140;140;50000,;EUR:246;140;140;140;140;50000,;EUR:250;140;140;140;140;50000,;EUR:826;140;140;140;140;50000,;EUR:254;140;140;140;140;50000,;EUR:292;140;140;140;140;50000,;EUR:312;140;140;140;140;50000,;EUR:300;140;140;140;140;50000,;EUR:348;140;140;140;140;50000,;EUR:372;140;140;140;140;50000,;EUR:352;140;140;140;140;50000,;EUR:380;140;140;140;140;50000,;EUR:438;140;140;140;140;50000,;EUR:440;140;140;140;140;50000,;EUR:442;140;140;140;140;50000,;EUR:428;140;140;140;140;50000,;EUR:474;140;140;140;140;50000,;EUR:470;140;140;140;140;50000,;EUR:528;140;140;140;140;50000,;EUR:578;140;140;140;140;50000,;EUR:616;140;140;140;140;50000,;EUR:620;140;140;140;140;50000,;EUR:638;140;140;140;140;50000,;EUR:642;140;140;140;140;50000,;EUR:752;140;140;140;140;50000,;EUR:705;140;140;140;140;50000,;EUR:703;140;140;140;140;50000,;EUR'HIAZKS:22:1:3+1+1'HIDAAS:23:1:3+1+1'HIDAAS:24:2:3+1+1'HIDABS:25:1:3+1+1'HIDABS:26:2:3+1+1'HIDAES:27:2:3+1+1+13:1:360:0102030612:010203040506070809101112131415161718192021222324252627282930:::52'HIDAES:28:3:3+1+1+13:1:360:0102030612:010203040506070809101112131415161718192021222324252627282930:::52'HIDALS:29:1:3+1+1+1:360:J'HIDALS:30:2:3+1+1+1:360:J'HIDANS:31:2:3+1+1+9:1:360:J:J:J:N:J:N:N:N:N:N:13:0102030612:010203040506070809101112131415161718192021222324252627282930:::52'HIDANS:32:3:3+1+1+9:1:360:J:J:J:N:J:N:N:N:N:N:13:0102030612:010203040506070809101112131415161718192021222324252627282930:::52'HIDASS:33:1:3+1+1+9:1:360:1:N'HIDASS:34:2:3+1+1+9:1:360:1:N:N'HIEKAS:35:2:3+1+1+1+N:J:N:1'HIFRDS:36:1:3+1+1'HIKASS:37:1:3+1+1+11;SpkCard m. Ersatzauto m. Chip:12;SpkCard m. Ersatzauto o. Chip:13;SpkCard o. Ersatzauto m. Chip:14;SpkCard o. Ersatzauto o. Chip:15;SpkCard f. Minderj. m. Chip:16;SpkCard f. Minderj. o. Chip:17;S-Kundenkarte m. Chip:18;S-Kundenkarte o. Chip:8;Hauskarte ohne Chip:7;Hauskarte mit Chip:1;ec-Karte ohne Chip:5;S-Card 1 ohne Chip:6;S-Card 2 ohne Chip:2;ec-Card mit Chip:3;S-Card 1 mit Chip:4;S-Card 2 mit Chip'HIKAZS:38:4:3+1+1+30:N'HIKDMS:39:2:3+1+1+320'HIKDMS:40:3:3+1+1+320'HIKDMS:41:4:3+1+1+320'HIKIFS:42:1:3+1+1'HIMTAS:43:1:3+1+1+1+N'HIMTFS:44:1:3+1+1+1'HIMTRS:45:1:3+1+1+1+N'HIPAES:46:1:3+1+1+1'HIPINS:47:1:3+1+1+1+:::::DKKAD:N:DKKND:J:DKLSW:J:DKNTR:N:DKPAE:J:DKPSA:J:DKQTG:N:DKSVI:N:DKSVK:N:DKTAZ:N:DKTLA:N:DKTLF:J:DKTSP:N:HKAOM:J:HKAZK:N:HKDAA:N:HKDAB:N:HKDAE:J:HKDAL:J:HKDAN:J:HKDAS:J:HKEKA:N:HKFRD:N:HKKAS:N:HKKAZ:N:HKKDM:J:HKKIF:N:HKMTA:J:HKMTF:N:HKMTR:J:HKPAE:J:HKPPD:J:HKPSA:J:HKPSP:N:HKQTG:N:HKSAL:N:HKSLA:J:HKSLB:N:HKSLE:J:HKSLL:J:HKSTP:J:HKSUB:J:HKTAB:N:HKTAN:N:HKTAU:J:HKTAZ:N:HKTLA:N:HKTLF:J:HKTML:N:HKTSB:N:HKTSE:J:HKTSL:J:HKTSP:N:HKTSY:N:HKTUA:J:HKTUB:N:HKTUE:J:HKTUL:J:HKUEB:J:HKUMB:J:HKWFO:J:HKWOA:J:HKWPD:N:HKWPO:J:HKWPS:J:HKWSD:N:HKWSO:N:IKSEP:J'HIPPDS:48:1:3+1+1+1+1:Telekom:Xtra Cash & Go:N:::15;30;50:2:Vodafone:CallYa:N:::15;25;50:3:E-Plus:Free & Easy:N:::15;20;30:4:O2:LOOP:N:::15;20;30:5:congstar:Prepaid:N:::15;30;50:6:blau:Prepaid:N:::15;20;30:8:o.tel.o:o.tel.o prepaid:N:::9;19;29'HIPSAS:49:1:3+1+1+1'HIPSPS:50:1:3+1+1+1'HIQTGS:51:1:3+1+1+1'HISALS:52:4:3+1+1'HISLAS:53:3:3+1+1+999:14:04:05'HISLAS:54:4:3+1+1+999:14:04:05'HISLBS:55:3:3+1+1+1+N'HISLES:56:3:3+1+1+1+1:15:99:14:04:05'HISLLS:57:3:3+1+1+1'HISTPS:58:1:3+1+1+1+1:AT:BE:BG:CH:CY:CZ:DE:DK:EE:ES:FI:FR:GB:GF:GI:GP:GR:HU:IE:IS:IT:LI:LT:LU:LV:MQ:MT:NL:NO:PL:PT:RE:RO:SE:SI:SK'HISTPS:59:3:3+1+1+1+2006:1:50000,:12500,:AT:BE:BG:CH:CY:CZ:DE:DK:EE:ES:FI:FR:GB:GF:GI:GP:GR:HU:IE:IS:IT:LI:LT:LU:LV:MQ:MT:NL:NO:PL:PT:RE:RO:SE:SI:SK'HISUBS:60:3:3+1+1+999:14:51:53:54:56'HISUBS:61:4:3+1+1+999:14:51:53:54:56'HITABS:62:2:3+1+1+1'HITANS:63:1:3+1+1+1+J:N:0:0:996:2:iTAN:Indiziertes TAN-Verfahren:6:1:TAN-Nummer:10:1:J:N:997:2:smsTAN:smsTAN-Verfahren:6:1:TAN-Nummer:46:1:J:N:995:2:chipTAN:chipTAN-Verfahren:6:1:TAN-Nummer:180:1:J:N'HITAUS:64:2:3+1+1+1+N:J:N:J:11:13:15:17'HITAZS:65:1:3+1+1+1'HITLAS:66:1:3+1+1+1'HITLFS:67:1:3+1+1+1+2'HITMLS:68:1:3+1+1+1'HITSBS:69:3:3+1+1+1+N'HITSES:70:3:3+1+1+1+1:15:99:14:51:56:53:54'HITSLS:71:3:3+1+1+1'HITSPS:72:1:3+1+1+1+1'HITSYS:73:1:3+1+1+1+N:N'HITUAS:74:2:3+1+1+1:90:14:51'HITUBS:75:1:3+1+1+N'HITUES:76:2:3+1+1+1:90:14:51'HITULS:77:1:3+1+1'HIUEBS:78:2:3+1+1+14:51'HIUEBS:79:3:3+1+1+14:51'HIUMBS:80:1:3+1+1+14:51'HIWFOS:81:1:3+1+1+N:0:N:N:J'HIWOAS:82:2:3+1+1+N:MAKT;LMTO;STOP;SLOS:J:J:GDAY;GTMO;GTHD:J:0:N:N:N:0,'HIWPDS:83:3:3+1+1+J'HIWPDS:84:5:3+1+1+J:N:N'HIWPOS:85:2:3+1+1+0:N:0:N:N:XBER;XDUS;XFRA;XHAM;XHAN;XMUN;XSTU;XETR;XAMS;XBRU;XDUB;XHEL;XLIS;XLUX;XMAD;XMIL;XOSL;XPAR;XSTO;XWBO;XXXX;OTCO;XBKK;XHKG;XJKT;XJSE;XCSE;XLON;XASX;XNYS;XSES;XTKS;XTSE;XNZE;XSWX;XNGO;XVTX;XPRA;XATH;XBKK;XBAR;XBRN;XTSX;XBUD;XCHI;XISM;XFKA;XKSY;XIST;XKLS;XLJU;XMEX;XASE;XFJO;XPHL;XLAT;XNAS;XOTC;XSAP;XOME;XSUR;XWAR;DIFX;XSWB;XGAT:::90:4:0,::MAKT;LMTO;STOP;SLOS:FIKI;NOHE:GDAY;GTMO;GTHD;IOCA'HIWPSS:86:2:3+1+1+J:N'HIWSDS:87:2:3+1+1+J:0;keine Aussage:1;geringes Risiko:4;mittleres Risiko:7;hohes Risiko:9;besonderer Beratungbedarf'HIWSOS:88:1:3+1+1+N:60:2:3:5:6:7:8:9:10'IISEPS:89:1:3+1+1+1'HNHBS:90:1+1'
0 HNHBK:1:3+000000000556+300+VA3053023462839+2+VA3053023462839:2'HNSHK:2:4+PIN:2+942+441703067+1+1+2::MmzGQqhvlzwBAAASF34Y40RBCgQA+1+1:20130530:234628+1:999:1+6:10:16+280:49999924:XXXXX:S:0:0'HIRMG:3:2+0010::Nachricht entgegengenommen. (TRE)'HIRMS:4:2:3+0020::Auftrag ausgeführt'HITAB:5:3:3+1+G:1:6729403199000300393::::::::::VR-NetworldCard+M:1:::::::::::mobileTAN::::::::::20130206'HNSHA:6:2+441703067'HNHBS:7:1+2'
0 HNHBK:1:3+000000002603+300+H11051313022520+1+H11051313022520:1'
1 HIRMG:2:2+3060::Teilweise liegen Warnungen oder Hinweise vor'
2 HIRMS:3:2:3+3050:2:Die BPD wird aktualisiert'
3 HIBPA:4:3:3+30+280:67461424+Volksbank Franken eG+1+1+300+250'
4 HIKOM:5:4:3+280:67461424+1+2:hbci01.fiducia.de+3:https?://hbci11.fiducia.de/cgi-bin/hbciservlet'
5 HISHV:6:3:3+N+RDH:3+PIN:1+RDH:7+RDH:9+RDH:10'
6 HICCSS:7:1:3+1+1+1'
7 HIDABS:8:2:3+1+1'
8 HIDAES:9:3:3+1+1+2:3:400:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:53:54'
9 HIDALS:10:2:3+1+1+0:0:N'
10 HIDANS:11:3:3+1+1+9:3:400:J:J:J:J:J:N:N:J:J:J:2:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:53:54'
11 HIKAZS:12:7:3+1+1+1+365:J:N'
12 HIKAZS:13:6:3+1+1+1+365:J:N'
13 HIKAZS:14:5:3+1+1+365:J:N'
14 HIKAZS:15:4:3+1+1+365:J'
15 HIPAES:16:1:3+1+1+1'
16 HIPINS:17:1:3+1+1+0+5:20:6:VR-NetKey::HKCCS:J:HKDAB:N:HKDAE:J:HKDAL:J:HKDAN:J:HKKAZ:N:HKPAE:J:HKPPD:J:HKPRO:N:HKPSP:N:HKSAL:N:HKSLA:J:HKSPA:N:HKSTP:J:HKSUB:J:HKTAN:N:HKTUA:J:HKTUB:N:HKTUE:J:HKTUL:J:HKUEB:J:HKUMB:J'
17 HIPPDS:18:1:3+1+1+1+1:Telekom:prepaid:N:0:0:15;30;50:2:Vodafone:prepaid:N:0:0:15;25;50:3:E-Plus:prepaid:N:0:0:15;20;30:4:O2:prepaid:N:0:0:15;20;30:5:Congstar:prepaid:N:0:0:15;30;50:6:Blau:prepaid:N:0:0:15;20;30'
18 HIPROS:19:3:3+1+1'
19 HIPSPS:20:1:3+1+1+1'
20 HISALS:21:4:3+1+1'
21 HISLAS:22:4:3+1+1+500:14:04:05'
22 HISPAS:23:1:3+1+1+1+J:J:N:sepade?:xsd?:pain.001.001.02.xsd:sepade?:xsd?:pain.001.002.02.xsd'
23 HISTPS:24:1:3+1+1+1+1:AT:BE:BG:CY:CZ:DK:EE:ES:FI:FR:GB:GF:GI:GP:GR:HU:IE:IS:IT:LI:LT:LU:LV:MQ:MT:NL:NO:PL:PT:RE:RO:SE:SI:SK'
24 HISUBS:25:4:3+1+1+500:14:51:53:54:56:67:68:69'
25
26 HITANS:26:5:3+1+1+1+J:N:1:942:1:MTAN2:mobileTAN::mobile TAN:6:1:SMS:2048:0:J:1:0:N:0:2:J:J:00:1:1:962:1:HHD1.4:HHD:1.4:Smart-TAN plus manuell:6:1:Challenge:2048:0:J:1:0:N:0:2:J:J:00:1:1:972:1:HHD1.4OPT:HHDOPT1:1.4:Smart-TAN plus optisch:6:1:Challenge:2048:0:J:1:0:N:0:2:J:J:00:1:1'
27 HITANS:27:4:3+1+1+1+J:N:1:912:1:IndexTAN2:::iTAN:6:1:Index:999:1:J:1:0:N:N:J:J:N:00:0:1:932:1:HHD1.3.1:HHD:1.3.1:SmartTAN plus:6:1:Challenge:999:0:J:1:0:N:N:J:J:J:00:0:1:942:1:MTAN2:mobileTAN::mobile TAN:6:1:SMS:999:0:J:1:0:N:N:J:J:N:00:0:1:952:1:HHD1.3.2OPT:HHDOPT1:1.3.2:SmartTAN optic:6:1:Challenge:999:0:J:1:0:N:N:J:J:J:00:0:1'
28 HITANS:28:2:3+1+1+0+J:N:1:904:1:SMARTTAN2:SmartTAN:6:1:SmartTAN:256:0:J:1:0:N:J:J:912:1:IndexTAN2:iTAN:6:1:Index:256:1:J:1:0:N:J:J:942:1:MTAN:mobileTAN:6:1:SMS:256:0:J:1:0:N:J:J'
29
30 HITUAS:29:2:3+1+1+1:400:14:51:53:54:56:67:68:69'
31 HITUBS:30:1:3+1+1+J'
32 HITUES:31:2:3+1+1+1:400:14:51:53:54:56:67:68:69'
33 HITULS:32:1:3+1+1'
34 HIUEBS:33:3:3+1+1+14:51:53:54:56:67:68:69'
35 HIUMBS:34:2:3+1+1+1+14:51'
36 HIUMBS:35:1:3+1+1+14:51'
37 HNHBS:36:1+1'
0 HNHBK:1:3+000000002603+300+H11051313022520+1+H11051313022520:1'
1 HIRMG:2:2+3060::Teilweise liegen Warnungen oder Hinweise vor'
2 HIRMS:3:2:3+3050:2:Die BPD wird aktualisiert'
3 HIBPA:4:3:3+30+280:67461424+Volksbank Franken eG+1+1+300+250'
4 HIKOM:5:4:3+280:67461424+1+2:hbci01.fiducia.de+3:https?://hbci11.fiducia.de/cgi-bin/hbciservlet'
5 HISHV:6:3:3+N+RDH:3+PIN:1+RDH:7+RDH:9+RDH:10'
6 HICCSS:7:1:3+1+1+1'
7 HIDABS:8:2:3+1+1'
8 HIDAES:9:3:3+1+1+2:3:400:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:53:54'
9 HIDALS:10:2:3+1+1+0:0:N'
10 HIDANS:11:3:3+1+1+9:3:400:J:J:J:J:J:N:N:J:J:J:2:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:53:54'
11 HIKAZS:12:7:3+1+1+1+365:J:N'
12 HIKAZS:13:6:3+1+1+1+365:J:N'
13 HIKAZS:14:5:3+1+1+365:J:N'
14 HIKAZS:15:4:3+1+1+365:J'
15 HIPAES:16:1:3+1+1+1'
16 HIPINS:17:1:3+1+1+0+5:20:6:VR-NetKey::HKCCS:J:HKDAB:N:HKDAE:J:HKDAL:J:HKDAN:J:HKKAZ:N:HKPAE:J:HKPPD:J:HKPRO:N:HKPSP:N:HKSAL:N:HKSLA:J:HKSPA:N:HKSTP:J:HKSUB:J:HKTAN:N:HKTUA:J:HKTUB:N:HKTUE:J:HKTUL:J:HKUEB:J:HKUMB:J'
17 HIPPDS:18:1:3+1+1+1+1:Telekom:prepaid:N:0:0:15;30;50:2:Vodafone:prepaid:N:0:0:15;25;50:3:E-Plus:prepaid:N:0:0:15;20;30:4:O2:prepaid:N:0:0:15;20;30:5:Congstar:prepaid:N:0:0:15;30;50:6:Blau:prepaid:N:0:0:15;20;30'
18 HIPROS:19:3:3+1+1'
19 HIPSPS:20:1:3+1+1+1'
20 HISALS:21:4:3+1+1'
21 HISLAS:22:4:3+1+1+500:14:04:05'
22 HISPAS:23:1:3+1+1+1+J:J:N:sepade?:xsd?:pain.001.001.02.xsd:sepade?:xsd?:pain.001.002.02.xsd'
23 HISTPS:24:1:3+1+1+1+1:AT:BE:BG:CY:CZ:DK:EE:ES:FI:FR:GB:GF:GI:GP:GR:HU:IE:IS:IT:LI:LT:LU:LV:MQ:MT:NL:NO:PL:PT:RE:RO:SE:SI:SK'
24 HISUBS:25:4:3+1+1+500:14:51:53:54:56:67:68:69'
25
26 HITANS:26:5:3+1+1+1+J:N:1:942:1:MTAN2 :mobileTAN: :mobile TAN :6:1:SMS :2048:0:J:1:0:N:0:2:J:J:00:1:1
27 :962:1:HHD1.4 :HHD :1.4 :Smart-TAN plus manuell:6:1:Challenge:2048:0:J:1:0:N:0:2:J:J:00:1:1
28 :972:1:HHD1.4OPT :HHDOPT1 :1.4 :Smart-TAN plus optisch:6:1:Challenge:2048:0:J:1:0:N:0:2:J:J:00:1:1'
29 HITANS:27:4:3+1+1+1+J:N:1:912:1:IndexTAN2 : : :iTAN :6:1:Index :999 :1:J:1:0:N:N:J:J:N:00:0:1
30 :932:1:HHD1.3.1 :HHD :1.3.1:SmartTAN plus :6:1:Challenge:999 :0:J:1:0:N:N:J:J:J:00:0:1
31 :942:1:MTAN2 :mobileTAN: :mobile TAN :6:1:SMS :999 :0:J:1:0:N:N:J:J:N:00:0:1
32 :952:1:HHD1.3.2OPT:HHDOPT1 :1.3.2:SmartTAN optic :6:1:Challenge:999 :0:J:1:0:N:N:J:J:J:00:0:1'
33 HITANS:28:2:3+1+1+0+J:N:1:904:1:SMARTTAN2 :SmartTAN :6:1:SmartTAN :256 :0:J:1:0:N:J:J
34 :912:1:IndexTAN2 :iTAN :6:1:Index :256 :1:J:1:0:N:J:J
35 :942:1:MTAN :mobileTAN :6:1:SMS :256 :0:J:1:0:N:J:J'
36
37 HITUAS:29:2:3+1+1+1:400:14:51:53:54:56:67:68:69'
38 HITUBS:30:1:3+1+1+J'
39 HITUES:31:2:3+1+1+1:400:14:51:53:54:56:67:68:69'
40 HITULS:32:1:3+1+1'
41 HIUEBS:33:3:3+1+1+14:51:53:54:56:67:68:69'
42 HIUMBS:34:2:3+1+1+1+14:51'
43 HIUMBS:35:1:3+1+1+14:51'
44 HNHBS:36:1+1'
0 HNHBK:1:3+000000002603+300+H11051313022520+1+H11051313022520:1'HIRMG:2:2+3060::Teilweise liegen Warnungen oder Hinweise vor'HIRMS:3:2:3+3050:2:Die BPD wird aktualisiert'HIBPA:4:3:3+30+280:67461424+Volksbank Franken eG+1+1+300+250'HIKOM:5:4:3+280:67461424+1+2:hbci01.fiducia.de+3:https?://hbci11.fiducia.de/cgi-bin/hbciservlet'HISHV:6:3:3+N+RDH:3+PIN:1+RDH:7+RDH:9+RDH:10'HICCSS:7:1:3+1+1+1'HIDABS:8:2:3+1+1'HIDAES:9:3:3+1+1+2:3:400:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:53:54'HIDALS:10:2:3+1+1+0:0:N'HIDANS:11:3:3+1+1+9:3:400:J:J:J:J:J:N:N:J:J:J:2:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:53:54'HIKAZS:12:7:3+1+1+1+365:J:N'HIKAZS:13:6:3+1+1+1+365:J:N'HIKAZS:14:5:3+1+1+365:J:N'HIKAZS:15:4:3+1+1+365:J'HIPAES:16:1:3+1+1+1'HIPINS:17:1:3+1+1+0+5:20:6:VR-NetKey::HKCCS:J:HKDAB:N:HKDAE:J:HKDAL:J:HKDAN:J:HKKAZ:N:HKPAE:J:HKPPD:J:HKPRO:N:HKPSP:N:HKSAL:N:HKSLA:J:HKSPA:N:HKSTP:J:HKSUB:J:HKTAN:N:HKTUA:J:HKTUB:N:HKTUE:J:HKTUL:J:HKUEB:J:HKUMB:J'HIPPDS:18:1:3+1+1+1+1:Telekom:prepaid:N:0:0:15;30;50:2:Vodafone:prepaid:N:0:0:15;25;50:3:E-Plus:prepaid:N:0:0:15;20;30:4:O2:prepaid:N:0:0:15;20;30:5:Congstar:prepaid:N:0:0:15;30;50:6:Blau:prepaid:N:0:0:15;20;30'HIPROS:19:3:3+1+1'HIPSPS:20:1:3+1+1+1'HISALS:21:4:3+1+1'HISLAS:22:4:3+1+1+500:14:04:05'HISPAS:23:1:3+1+1+1+J:J:N:sepade?:xsd?:pain.001.001.02.xsd:sepade?:xsd?:pain.001.002.02.xsd'HISTPS:24:1:3+1+1+1+1:AT:BE:BG:CY:CZ:DK:EE:ES:FI:FR:GB:GF:GI:GP:GR:HU:IE:IS:IT:LI:LT:LU:LV:MQ:MT:NL:NO:PL:PT:RE:RO:SE:SI:SK'HISUBS:25:4:3+1+1+500:14:51:53:54:56:67:68:69'HITANS:26:5:3+1+1+1+J:N:1:942:1:MTAN2:mobileTAN::mobile TAN:6:1:SMS:2048:0:J:1:0:N:0:2:J:J:00:1:1:962:1:HHD1.4:HHD:1.4:Smart-TAN plus manuell:6:1:Challenge:2048:0:J:1:0:N:0:2:J:J:00:1:1:972:1:HHD1.4OPT:HHDOPT1:1.4:Smart-TAN plus optisch:6:1:Challenge:2048:0:J:1:0:N:0:2:J:J:00:1:1'HITANS:27:4:3+1+1+1+J:N:1:912:1:IndexTAN2:::iTAN:6:1:Index:999:1:J:1:0:N:N:J:J:N:00:0:1:932:1:HHD1.3.1:HHD:1.3.1:SmartTAN plus:6:1:Challenge:999:0:J:1:0:N:N:J:J:J:00:0:1:942:1:MTAN2:mobileTAN::mobile TAN:6:1:SMS:999:0:J:1:0:N:N:J:J:N:00:0:1:952:1:HHD1.3.2OPT:HHDOPT1:1.3.2:SmartTAN optic:6:1:Challenge:999:0:J:1:0:N:N:J:J:J:00:0:1'HITANS:28:2:3+1+1+0+J:N:1:904:1:SMARTTAN2:SmartTAN:6:1:SmartTAN:256:0:J:1:0:N:J:J:912:1:IndexTAN2:iTAN:6:1:Index:256:1:J:1:0:N:J:J:942:1:MTAN:mobileTAN:6:1:SMS:256:0:J:1:0:N:J:J'HITUAS:29:2:3+1+1+1:400:14:51:53:54:56:67:68:69'HITUBS:30:1:3+1+1+J'HITUES:31:2:3+1+1+1:400:14:51:53:54:56:67:68:69'HITULS:32:1:3+1+1'HIUEBS:33:3:3+1+1+14:51:53:54:56:67:68:69'HIUMBS:34:2:3+1+1+1+14:51'HIUMBS:35:1:3+1+1+14:51'HNHBS:36:1+1'
0 HNHBK:1:3+000000010586+220+5730744363313150+1+5730744363313150:1'
1 HIRMG:2:2+3060::Teilweise liegen Warnungen oder Hinweise vor (HBMSG=10336)'
2 HIRMS:3:2:3+3050::BPD nicht mehr aktuell. Aktuelle Version folgt (HBMSG=10468)+0010::Der Auftrag wurde ausgeführt. (MBT61100000006)'
3 HIBPA:4:2:3+40+280:76052080+Sparkasse Neumarkt-Parsberg+3+1+201:210:220+650'
4 HIKOM:5:3:3+280:76052080+1+2:I085.BY.S-HBCI.DE::MIM:1'
5 HISHV:6:2:3+N+DDV:1'DIANAS:7:1:3+1+1+1+1:15'
6 DIANLS:8:1:3+1+1+1'
7 DIBAZS:9:1:3+1+1+1+J:J'
8 DIBKDS:10:3:3+1+1+1'
9 DIBKDS:11:4:3+1+1+1'
10 DIBKUS:12:3:3+1+1+1+J:N'
11 DIBRKS:13:1:3+1+1+1'
12 DIBUMS:14:3:3+1+1+1+N'
13 DIDFAS:15:1:3+1+1+1+N'
14 DIDFDS:16:1:3+1+1+1'
15 DIDFLS:17:1:3+1+1+1'
16 DIDFOS:18:1:3+1+1+1'
17 DIDFSS:19:1:3+1+1+1+N:1;DekaBank-Konzern;5;Swisscanto;7;JPMorgan Fleming,8;Lombard Odier;10;Franklin Templeton;11;Gartmore;12;Goldman Sachs;13;Black Rock Merrill;14;Threadneedle;15;UBS;16;Schroders:10_10:Aktienfonds Asien - Pazifik ohne Japan:10_20:Aktienfonds Branche:10_30:Aktienfonds Deutschland:10_40:Aktienfonds Emerging Markets:10_50:Aktienfonds Euroland:10_60:Aktienfonds Europa Länder:10_70:Aktienfonds Europa:10_80:Aktienfonds Japan:10_90:Aktienfonds Lateinamerika:10_100:Aktienfonds Nordamerika:10_110:Aktienfonds Osteuropa:10_120:Aktienfonds Welt:10_400:Aktienfonds Afrika:10_410:Aktienfonds Mittlerer Osten:10_420:Aktienfonds Nordeuropa:20_130:Dachfonds Chance Plus:20_140:Dachfonds Chance:20_150:Dachfonds Ertrag Plus:20_160:Dachfonds Ertrag:20_170:Dachfonds Wachstum:20_180:Dachfonds laufzeitbegrenzt:30_430:Garantiefonds:40_200:Geldmarktfonds:40_210:Geldmarktnahe Fonds:50_220:Alternative Investmentfonds Hedgefonds:50_230:Alternative Investmentfonds Private Equity:50_240:Alternative Investmentfonds Rohstofffonds:60_250:Sonderkonzepte Absolute-/Total-Returnstrategiefonds:60_260:Sonderkonzepte Altersvorsorgefonds:60_270:Sonderkonzepte Institutionelle Fondskonzepte:60_280:Sonderkonzepte Steuerorientierte Fonds:70_30:Immobilienfonds Deutschland:70_70:Immobilienfonds Europa:70_120:Immobilienfonds Welt:80_50:Mischfonds Euroland:80_290:Mischfonds ausgewogen:80_300:Mischfonds dynamisch:80_310:Mischfonds flexibel:80_320:Mischfonds konservativ:90_330:Rentenfonds Inflationsindexierte Anleihen:90_340:Rentenfonds Laufzeitfonds:90_350:Rentenfonds MBS:90_360:Rentenfonds Nachranganleihen:90_370:Rentenfonds Staatsanleihen:90_380:Rentenfonds Unternehmensanleihen:90_390:Rentenfonds Wandelanleihen'
18 DIDFUS:20:1:3+1+1+1+N'
19 DIDOFS:21:1:3+1+1+1'
20 DIFAFS:22:2:3+1+1+1+N:N'
21 DIFOPS:23:1:3+1+1+N:0:N:N:N::::0,::MAKT'
22 DIFPOS:24:1:3+3+1+N:0:N:N'
23 DIKAUS:25:3:3+1+1+1+N'
24 DIKKAS:26:2:3+1+1+1+N:N:2'
25 DIKKSS:27:3:3+1+1+1'
26 DIKKUS:28:2:3+1+1+1+90:N:J'
27 DINZPS:29:1:3+1+1+N:N:0:N:N:0,'
28 DIPAES:30:1:3+1+1'
29 DIPINS:31:1:3+1+1+DKPAE:J:DKTLF:J:DKTLA:N:DKTSP:N:HKVVB:N:HKUEB:J:HKSUB:J:HKLAS:J:HKSLA:J:HKDAE:J:HKDAN:J:HKDAL:J:HKDAB:N:HKWPO:J:HKWOA:J:HKWPS:J:HKWSO:N:HKWPD:N:HKNEZ:J:HKNEA:N:HKKDM:J:HKSAL:N:HKKAZ:N:HKWPR:N:HKTUE:J:HKTUA:J:HKTUL:J:HKTUB:N:HKAOM:J:HKWSD:N:HKWFO:J:DKPSA:J:HKKIF:N:HKFRD:N:HKUMB:J:HKFGB:N:HKEKA:N:HKQTG:N:HKAUB:J:DKANA:J:DKANL:J:DKPSP:N:HKTAN:N:DKFDA:N:HKPPD:J:DKURK:J:DKZDF:J:DKZDL:J:DKBAZ:N:DKBRK:N:HKTSE:J:HKTSL:J:HKSLE:J:HKSLL:J:HKTSB:N:HKSLB:N:DKBKD:N:DKBKU:N:DKBUM:N:HKLSW:J:HKLWB:N:DKWAP:N:DKWOP:N:DKFOP:N:DKNZP:N:HKWPK:N:HKSPA:N:HKCCM:J:HKCCS:J:HKTAU:N:HKTAB:N:HKTSY:N:HKCME:J:HKCMB:N:HKCML:J:HKEUE:J:HKFPO:J:DKFPO:N:HKWDU:N:HKWFP:N:HKCSA:J:HKCSB:N:HKCSE:J:HKCSL:J:HKMTA:J:HKMTF:N:HKMTR:J:HKTML:N:HKTAZ:N:DKVVD:N:DKVVU:N:DKKAU:N:DKKKA:N:DKKKS:N:DKKKU:N:HKDAS:J:DKDFA:N:DKDFD:N:DKDFL:J:DKDFO:J:DKDFS:N:DKDFU:N:DKFAF:N:DKDOF:N'
30 DIPSAS:32:1:3+1+1'
31 DIPSPS:33:1:3+1+1'
32 DITLAS:34:1:3+1+1'
33 DITLFS:35:1:3+1+1+N'
34 DITLFS:36:2:3+1+1+N'
35 DITSPS:37:1:3+1+1+N'
36 DIURKS:38:1:3+1+1+1+14:51'
37 DIVVDS:39:1:3+3+1+1'
38 DIVVUS:40:1:3+3+1+1+N:J'
39 DIWAPS:41:1:3+1+1+J:STOP;SLOS;LMTO;MAKT:J:J:GDAY;GTMO;GTHD;OPEN;CLOS:J:0:N:N:N:9999999,99:EUR'
40 DIWOPS:42:1:3+1+1+0:N:0:N:N:XBER;XDUS;XFRA;XHAM;XHAN;XMUN;XSTU;XETR;OTCO;XXXX;XGAT;XBRU;XDUB;XHEL;XHKG;XJKT;XJSE;XCSE;XLIS;XLON;XLUX;XMAD;XMIL;XASX;XNYS;XOSL;XPAR;XSES;XSTO;XTKS;XTSE;XNZE;XWBO;XSWX;DIFX;XASE;XATH;XBAR;XBKK;XBRN;XBUD;XCHI;XFKA;XWAR;XIST;XKLS;XLAT;XLJU;XMEX;XNGO;XNAS;XOME;XOTC;XPHL;XPRA;XSAP;XSUR;XSWB;XTSX;XVTX;XAMS;ARCX:07;08:Variabel;Continuous Trade (XETRA):::9999999,99:EUR:STOP;SLOS;LMTO;MAKT:BUYI;SELL;FIKI;NOHE;ALNO:GDAY;GTMO;GTHD;IOCA;OPEN;CLOS'
41 DIZDFS:43:1:3+1+1+1'
42 DIZDLS:44:1:3+1+1+1'
43 HIAOMS:45:1:3+1+1+J:040;140;140;140;140;50000,;EUR;50000,;EUR:056;140;140;140;140;50000,;EUR;50000,;EUR:246;140;140;140;140;50000,;EUR;50000,;EUR:250;140;140;140;140;50000,;EUR;50000,;EUR:300;140;140;140;140;50000,;EUR;50000,;EUR:372;140;140;140;140;50000,;EUR;50000,;EUR:380;140;140;140;140;50000,;EUR;50000,;EUR:442;140;140;140;140;50000,;EUR;50000,;EUR:528;140;140;140;140;50000,;EUR;50000,;EUR:620;140;140;140;140;50000,;EUR;50000,;EUR:724;140;140;140;140;50000,;EUR;50000,;EUR:826;140;140;140;140;50000,;EUR;50000,;EUR:208;140;140;140;140;50000,;EUR;50000,;EUR:292;140;140;140;140;50000,;EUR;50000,;EUR:752;140;140;140;140;50000,;EUR;50000,;EUR:196;140;140;140;140;50000,;EUR;50000,;EUR:203;140;140;140;140;50000,;EUR;50000,;EUR:233;140;140;140;140;50000,;EUR;50000,;EUR:348;140;140;140;140;50000,;EUR;50000,;EUR:440;140;140;140;140;50000,;EUR;50000,;EUR:428;140;140;140;140;50000,;EUR;50000,;EUR:470;140;140;140;140;50000,;EUR;50000,;EUR:616;140;140;140;140;50000,;EUR;50000,;EUR:705;140;140;140;140;50000,;EUR;50000,;EUR:703;140;140;140;140;50000,;EUR;50000,;EUR:352;140;140;140;140;50000,;EUR;50000,;EUR:578;140;140;140;140;50000,;EUR;50000,;EUR:438;140;140;140;140;50000,;EUR;50000,;EUR:100;140;140;140;140;50000,;EUR;50000,;EUR:642;140;140;140;140;50000,;EUR;50000,;EUR:756;140;140;140;140;50000,;EUR;50000,;EUR'
44 HIAUBS:46:5:3+1+1+1'
45 HICCMS:47:1:3+1+1+1+1000:N:N'
46 HICCSS:48:1:3+1+1+1'
47 HICMBS:49:1:3+1+1+1+N:J'
48 HICMES:50:1:3+1+1+1+1:360:1000:N:N'
49 HICMLS:51:1:3+1+1+1'
50 HICSAS:52:1:3+1+1+1+1:360'
51 HICSBS:53:1:3+1+1+1+N:J'
52 HICSES:54:1:3+1+1+1+1:360'
53 HICSLS:55:1:3+1+1+1+J'
54 HIDABS:56:1:3+3+1'
55 HIDABS:57:2:3+3+1'
56 HIDABS:58:3:3+3+1'
57 HIDAES:59:2:3+3+1+4:0:9999:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:54'
58 HIDAES:60:3:3+3+1+4:0:9999:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:54'
59 HIDALS:61:1:3+3+1+0:9999:J'
60 HIDALS:62:2:3+3+1+0:9999:J'
61 HIDANS:63:2:3+3+1+0:2:9999:J:J:J:N:J:J:N:J:J:J:4:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:54'
62 HIDANS:64:3:3+3+1+0:0:9999:J:J:J:N:J:J:N:J:J:J:4:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:54'
63 HIDASS:65:4:3+3+1+1+1:0:9999:1:N:N'
64 HIEKAS:66:2:3+1+1+1+J:J:N:1'
65 HIEKAS:67:3:3+1+1+1+J:J:N:1'
66 HIEUES:68:2:3+1+1+1+2007:1:12500,:V;W;:10:1'
67 HIFGBS:69:2:3+3+1'
68 HIFGBS:70:3:3+3+1'
69 HIFPOS:71:1:3+3+1+N:0:N:N'
70 HIFRDS:72:1:3+1+1'
71 HIFRDS:73:4:3+1+1+1+N:N:N:1:DekaBank'
72 HIKAZS:74:4:3+3+1+360:J'
73 HIKAZS:75:5:3+3+1+360:J:N'
74 HIKDMS:76:2:3+3+0+2048'
75 HIKDMS:77:3:3+3+0+2048'
76 HIKDMS:78:4:3+3+0+2048'
77 HIKIFS:79:1:3+1+1'
78 HIKIFS:80:4:3+1+1+1+J:J'
79 HIKIFS:81:5:3+1+1+1+J:J'
80 HILASS:82:2:3+3+1+14:05:04'
81 HILASS:83:3:3+3+1+14:05:04'
82 HILASS:84:4:3+3+1+14:05:04'
83 HILSWS:85:2:3+1+1+1+::05'
84 HILWBS:86:2:3+3+1+1+J:42:J'
85 HIMTAS:87:1:3+1+1+1+N'
86 HIMTFS:88:1:3+1+1+1'
87 HIMTRS:89:1:3+1+1+1+N'
88 HINEAS:90:1:3+1+1+1:2:3:4'
89 HINEZS:91:1:3+1+1+N:N:0:N:N:0,'
90 HIPPDS:92:1:3+1+1+1+1:Telekom:Xtra-Card:N:::15;30;50:2:Vodafone:CallYa:N:::15;25;50:3:E-Plus:Free and easy:N:::15;20;30:4:O2:Loop:N:::15;20;30:5:congstar:congstar:N:::15;30;50:6:blau:blau:N:::15;20;30:8:o.tel.o:o.tel.o:N:::9;19;29'
91 HIQTGS:93:1:3+1+1+1'
92 HISALS:94:3:3+3+1'
93 HISALS:95:4:3+3+1'
94 HISALS:96:5:3+3+1'
95 HISLAS:97:3:3+1+1+1000:14:05:04'
96 HISLAS:98:4:3+1+1+1000:14:05:04'
97 HISLBS:99:2:3+3+1+J'
98 HISLES:100:2:3+3+1+1:360:1000:14:04:05'
99 HISLLS:101:2:3+3+1'
100 HISPAS:102:1:3+1+1+1+J:N:N:http?://www.sepa-zka.de/1.0/pain.001.001.02.xsd'
101 HISPAS:103:2:3+1+1+1+J:N:N:N:http?://www.sepa-zka.de/1.0/pain.001.001.02.xsd'
102 HISUBS:104:3:3+1+1+1000:14:51:53:54:56:67:69'
103 HISUBS:105:4:3+1+1+1000:14:51:53:54:56:67:69'
104 HITABS:106:2:3+1+1+1'
105 HITABS:107:3:3+1+1+1'
106 HITABS:108:4:3+1+1+1'
107 HITANS:109:1:3+2+1+1+J:N:0:0:900:2:iTAN:iTAN:6:1:TAN-Nummer:3:1:J:J:920:2:smsTAN:smsTAN:6:1:TAN-Nummer:3:1:J:J'
108 HITANS:110:3:3+2+1+1+J:N:0:900:2:iTAN:iTAN:6:1:TAN-Nummer:3:1:J:2:0:N:N:N:00:0:0:920:2:smsTAN:smsTAN:6:1:TAN-Nummer:3:1:J:2:0:N:N:N:00:2:5:910:2:HHD1.3.0:chipTAN manuell:6:1:TAN-Nummer:3:1:J:2:0:N:N:N:00:0:1:911:2:HHD1.3.0OPT:chipTAN optisch:6:1:TAN-Nummer:3:1:J:2:0:N:N:N:00:0:1'
109 HITAUS:111:1:3+1+1+1+N:N:J'
110 HITAZS:112:1:3+1+1+1'
111 HITMLS:113:1:3+1+1+1'
112 HITSBS:114:2:3+3+1+J'
113 HITSES:115:2:3+3+1+1:360:1000:14:51:53:54:56:67:69'
114 HITSLS:116:2:3+3+1'
115 HITSYS:117:1:3+1+1+1+J:N'
116 HITUAS:118:2:3+3+1+1:360:14:51:53:54:56:67:69'
117 HITUBS:119:1:3+3+1+J'
118 HITUES:120:2:3+3+1+1:360:14:51:53:54:56:67:69'
119 HITULS:121:1:3+3+1'
120 HIUEBS:122:2:3+3+1+14:51:53:54:56:67:69'
121 HIUEBS:123:3:3+3+1+14:51:53:54:56:67:69'
122 HIUEBS:124:4:3+3+1+14:51:53:54:56:67:69'
123 HIUMBS:125:1:3+3+1+14:51'
124 HIWDUS:126:4:3+3+1+999'
125 HIWFOS:127:1:3+1+1+N:0:N:N:N::::0,::MAKT'
126 HIWFPS:128:2:3+3+1+RENTEN:INVESTMENTFONDS:GENUSSSCHEINE:SPARBRIEFE:UNTERNEHMENSANLEIHEN:EMERGING MARKET ANLEIHEN:STRUKTURIERTE ANLEIHEN:ZERTIFIKATE:AKTIEN:OPTIONSSCHEINE:ALLE ANGEBOTE EIGENES INSTITUT:ALLE ANGEBOTE UEBERGEORD. INSTITUTE'
127 HIWOAS:129:2:3+1+1+J:STOP;SLOS;LMTO;MAKT:J:J:GDAY;GTMO;GTHD;OPEN;CLOS:J:0:N:N:N:9999999,99:EUR'
128 HIWPDS:130:3:3+3+1+J'
129 HIWPDS:131:5:3+1+1+J:N:N'
130 HIWPKS:132:1:3+3+0+XBER;XDUS;XFRA;XHAM;XHAN;XMUN;XSTU;XETR;OTCO;XAMS;XASE;XASX;XATH;XBAR;XBIL;XBOS;XBRN;XBRU;XCAG;XCHI;XCSE;XDUB;XEUN;XHEL;XHKG;XISM;XJSE;XKLS;XLIS;XLON;XLUX;XMAD;XMIL;XNAS;XNQL;XNYS;XNZE;XOSL;XOTC;XPAR;XPHL;XSAP;XSES;XSHE;XSSE;XSSI;XSTO;XSWX;XTKS;XTSE;XVAL;XWBO'
131 HIWPOS:133:2:3+1+1+0:N:0:N:N:XBER;XDUS;XFRA;XHAM;XHAN;XMUN;XSTU;XETR;OTCO;XXXX;XGAT;XBRU;XDUB;XHEL;XHKG;XJKT;XJSE;XCSE;XLIS;XLON;XLUX;XMAD;XMIL;XASX;XNYS;XOSL;XPAR;XSES;XSTO;XTKS;XTSE;XNZE;XWBO;XSWX;DIFX;XASE;XATH;XBAR;XBKK;XBRN;XBUD;XCHI;XFKA;XWAR;XIST;XKLS;XLAT;XLJU;XMEX;XNGO;XNAS;XOME;XOTC;XPHL;XPRA;XSAP;XSUR;XSWB;XTSX;XVTX;XAMS;ARCX:07;08:Variabel;Continuous Trade (XETRA):::9999999,99:EUR:STOP;SLOS;LMTO;MAKT:BUYI;SELL;FIKI;NOHE;ALNO:GDAY;GTMO;GTHD;IOCA;OPEN;CLOS'
132 HIWPRS:134:1:3+3+1+J:J:N:N:XBER;XDUS;XFRA;XHAM;XHAN;XMUN;XSTU;XETR;OTCO;XXXX;XGAT;XBRU;XDUB;XHEL;XHKG;XJKT;XJSE;XCSE;XLIS;XLON;XLUX;XMAD;XMIL;XASX;XNYS;XOSL;XPAR;XSES;XSTO;XTKS;XTSE;XNZE;XWBO;XSWX;DIFX;XASE;XATH;XBAR;XBKK;XBRN;XBUD;XCHI;XFKA;XWAR;XIST;XKLS;XLAT;XLJU;XMEX;XNGO;XNAS;XOME;XOTC;XPHL;XPRA;XSAP;XSUR;XSWB;XTSX;XVTX;XAMS;ARCX:Aktien:Festverzinsliche Wertpapiere:Fonds:Fremdwährungsanleihen:Genussscheine:Indexzertifikate:Optionsscheine:Wandel- und Optionsanleihen cum'
133 HIWPSS:135:1:3+3+1+J'
134 HIWSDS:136:2:3+3+1+J:A;Inland DAX:B;Inland Sonstige:C;Ausland Europa:D;Ausland Sonstige'
135 HIWSOS:137:1:3+3+1+N:60:2:3:5:6:7:8:9:10'
136 HNHBS:138:1+1'
0 HNHBK:1:3+000000010586+220+5730744363313150+1+5730744363313150:1'
1 HIRMG:2:2+3060::Teilweise liegen Warnungen oder Hinweise vor (HBMSG=10336)'
2 HIRMS:3:2:3+3050::BPD nicht mehr aktuell. Aktuelle Version folgt (HBMSG=10468)+0010::Der Auftrag wurde ausgeführt. (MBT61100000006)'
3 HIBPA:4:2:3+40+280:76052080+Sparkasse Neumarkt-Parsberg+3+1+201:210:220+650'
4 HIKOM:5:3:3+280:76052080+1+2:I085.BY.S-HBCI.DE::MIM:1'
5 HISHV:6:2:3+N+DDV:1'DIANAS:7:1:3+1+1+1+1:15'
6 DIANLS:8:1:3+1+1+1'
7 DIBAZS:9:1:3+1+1+1+J:J'
8 DIBKDS:10:3:3+1+1+1'
9 DIBKDS:11:4:3+1+1+1'
10 DIBKUS:12:3:3+1+1+1+J:N'
11 DIBRKS:13:1:3+1+1+1'
12 DIBUMS:14:3:3+1+1+1+N'
13 DIDFAS:15:1:3+1+1+1+N'
14 DIDFDS:16:1:3+1+1+1'
15 DIDFLS:17:1:3+1+1+1'
16 DIDFOS:18:1:3+1+1+1'
17 DIDFSS:19:1:3+1+1+1+N:1;DekaBank-Konzern;5;Swisscanto;7;JPMorgan Fleming,8;Lombard Odier;10;Franklin Templeton;11;Gartmore;12;Goldman Sachs;13;Black Rock Merrill;14;Threadneedle;15;UBS;16;Schroders:10_10:Aktienfonds Asien - Pazifik ohne Japan:10_20:Aktienfonds Branche:10_30:Aktienfonds Deutschland:10_40:Aktienfonds Emerging Markets:10_50:Aktienfonds Euroland:10_60:Aktienfonds Europa Länder:10_70:Aktienfonds Europa:10_80:Aktienfonds Japan:10_90:Aktienfonds Lateinamerika:10_100:Aktienfonds Nordamerika:10_110:Aktienfonds Osteuropa:10_120:Aktienfonds Welt:10_400:Aktienfonds Afrika:10_410:Aktienfonds Mittlerer Osten:10_420:Aktienfonds Nordeuropa:20_130:Dachfonds Chance Plus:20_140:Dachfonds Chance:20_150:Dachfonds Ertrag Plus:20_160:Dachfonds Ertrag:20_170:Dachfonds Wachstum:20_180:Dachfonds laufzeitbegrenzt:30_430:Garantiefonds:40_200:Geldmarktfonds:40_210:Geldmarktnahe Fonds:50_220:Alternative Investmentfonds Hedgefonds:50_230:Alternative Investmentfonds Private Equity:50_240:Alternative Investmentfonds Rohstofffonds:60_250:Sonderkonzepte Absolute-/Total-Returnstrategiefonds:60_260:Sonderkonzepte Altersvorsorgefonds:60_270:Sonderkonzepte Institutionelle Fondskonzepte:60_280:Sonderkonzepte Steuerorientierte Fonds:70_30:Immobilienfonds Deutschland:70_70:Immobilienfonds Europa:70_120:Immobilienfonds Welt:80_50:Mischfonds Euroland:80_290:Mischfonds ausgewogen:80_300:Mischfonds dynamisch:80_310:Mischfonds flexibel:80_320:Mischfonds konservativ:90_330:Rentenfonds Inflationsindexierte Anleihen:90_340:Rentenfonds Laufzeitfonds:90_350:Rentenfonds MBS:90_360:Rentenfonds Nachranganleihen:90_370:Rentenfonds Staatsanleihen:90_380:Rentenfonds Unternehmensanleihen:90_390:Rentenfonds Wandelanleihen'
18 DIDFUS:20:1:3+1+1+1+N'
19 DIDOFS:21:1:3+1+1+1'
20 DIFAFS:22:2:3+1+1+1+N:N'
21 DIFOPS:23:1:3+1+1+N:0:N:N:N::::0,::MAKT'
22 DIFPOS:24:1:3+3+1+N:0:N:N'
23 DIKAUS:25:3:3+1+1+1+N'
24 DIKKAS:26:2:3+1+1+1+N:N:2'
25 DIKKSS:27:3:3+1+1+1'
26 DIKKUS:28:2:3+1+1+1+90:N:J'
27 DINZPS:29:1:3+1+1+N:N:0:N:N:0,'
28 DIPAES:30:1:3+1+1'
29 DIPINS:31:1:3+1+1+DKPAE:J:DKTLF:J:DKTLA:N:DKTSP:N:HKVVB:N:HKUEB:J:HKSUB:J:HKLAS:J:HKSLA:J:HKDAE:J:HKDAN:J:HKDAL:J:HKDAB:N:HKWPO:J:HKWOA:J:HKWPS:J:HKWSO:N:HKWPD:N:HKNEZ:J:HKNEA:N:HKKDM:J:HKSAL:N:HKKAZ:N:HKWPR:N:HKTUE:J:HKTUA:J:HKTUL:J:HKTUB:N:HKAOM:J:HKWSD:N:HKWFO:J:DKPSA:J:HKKIF:N:HKFRD:N:HKUMB:J:HKFGB:N:HKEKA:N:HKQTG:N:HKAUB:J:DKANA:J:DKANL:J:DKPSP:N:HKTAN:N:DKFDA:N:HKPPD:J:DKURK:J:DKZDF:J:DKZDL:J:DKBAZ:N:DKBRK:N:HKTSE:J:HKTSL:J:HKSLE:J:HKSLL:J:HKTSB:N:HKSLB:N:DKBKD:N:DKBKU:N:DKBUM:N:HKLSW:J:HKLWB:N:DKWAP:N:DKWOP:N:DKFOP:N:DKNZP:N:HKWPK:N:HKSPA:N:HKCCM:J:HKCCS:J:HKTAU:N:HKTAB:N:HKTSY:N:HKCME:J:HKCMB:N:HKCML:J:HKEUE:J:HKFPO:J:DKFPO:N:HKWDU:N:HKWFP:N:HKCSA:J:HKCSB:N:HKCSE:J:HKCSL:J:HKMTA:J:HKMTF:N:HKMTR:J:HKTML:N:HKTAZ:N:DKVVD:N:DKVVU:N:DKKAU:N:DKKKA:N:DKKKS:N:DKKKU:N:HKDAS:J:DKDFA:N:DKDFD:N:DKDFL:J:DKDFO:J:DKDFS:N:DKDFU:N:DKFAF:N:DKDOF:N'
30 DIPSAS:32:1:3+1+1'
31 DIPSPS:33:1:3+1+1'
32 DITLAS:34:1:3+1+1'
33 DITLFS:35:1:3+1+1+N'
34 DITLFS:36:2:3+1+1+N'
35 DITSPS:37:1:3+1+1+N'
36 DIURKS:38:1:3+1+1+1+14:51'
37 DIVVDS:39:1:3+3+1+1'
38 DIVVUS:40:1:3+3+1+1+N:J'
39 DIWAPS:41:1:3+1+1+J:STOP;SLOS;LMTO;MAKT:J:J:GDAY;GTMO;GTHD;OPEN;CLOS:J:0:N:N:N:9999999,99:EUR'
40 DIWOPS:42:1:3+1+1+0:N:0:N:N:XBER;XDUS;XFRA;XHAM;XHAN;XMUN;XSTU;XETR;OTCO;XXXX;XGAT;XBRU;XDUB;XHEL;XHKG;XJKT;XJSE;XCSE;XLIS;XLON;XLUX;XMAD;XMIL;XASX;XNYS;XOSL;XPAR;XSES;XSTO;XTKS;XTSE;XNZE;XWBO;XSWX;DIFX;XASE;XATH;XBAR;XBKK;XBRN;XBUD;XCHI;XFKA;XWAR;XIST;XKLS;XLAT;XLJU;XMEX;XNGO;XNAS;XOME;XOTC;XPHL;XPRA;XSAP;XSUR;XSWB;XTSX;XVTX;XAMS;ARCX:07;08:Variabel;Continuous Trade (XETRA):::9999999,99:EUR:STOP;SLOS;LMTO;MAKT:BUYI;SELL;FIKI;NOHE;ALNO:GDAY;GTMO;GTHD;IOCA;OPEN;CLOS'
41 DIZDFS:43:1:3+1+1+1'
42 DIZDLS:44:1:3+1+1+1'
43 HIAOMS:45:1:3+1+1+J:040;140;140;140;140;50000,;EUR;50000,;EUR:056;140;140;140;140;50000,;EUR;50000,;EUR:246;140;140;140;140;50000,;EUR;50000,;EUR:250;140;140;140;140;50000,;EUR;50000,;EUR:300;140;140;140;140;50000,;EUR;50000,;EUR:372;140;140;140;140;50000,;EUR;50000,;EUR:380;140;140;140;140;50000,;EUR;50000,;EUR:442;140;140;140;140;50000,;EUR;50000,;EUR:528;140;140;140;140;50000,;EUR;50000,;EUR:620;140;140;140;140;50000,;EUR;50000,;EUR:724;140;140;140;140;50000,;EUR;50000,;EUR:826;140;140;140;140;50000,;EUR;50000,;EUR:208;140;140;140;140;50000,;EUR;50000,;EUR:292;140;140;140;140;50000,;EUR;50000,;EUR:752;140;140;140;140;50000,;EUR;50000,;EUR:196;140;140;140;140;50000,;EUR;50000,;EUR:203;140;140;140;140;50000,;EUR;50000,;EUR:233;140;140;140;140;50000,;EUR;50000,;EUR:348;140;140;140;140;50000,;EUR;50000,;EUR:440;140;140;140;140;50000,;EUR;50000,;EUR:428;140;140;140;140;50000,;EUR;50000,;EUR:470;140;140;140;140;50000,;EUR;50000,;EUR:616;140;140;140;140;50000,;EUR;50000,;EUR:705;140;140;140;140;50000,;EUR;50000,;EUR:703;140;140;140;140;50000,;EUR;50000,;EUR:352;140;140;140;140;50000,;EUR;50000,;EUR:578;140;140;140;140;50000,;EUR;50000,;EUR:438;140;140;140;140;50000,;EUR;50000,;EUR:100;140;140;140;140;50000,;EUR;50000,;EUR:642;140;140;140;140;50000,;EUR;50000,;EUR:756;140;140;140;140;50000,;EUR;50000,;EUR'
44 HIAUBS:46:5:3+1+1+1'
45 HICCMS:47:1:3+1+1+1+1000:N:N'
46 HICCSS:48:1:3+1+1+1'
47 HICMBS:49:1:3+1+1+1+N:J'
48 HICMES:50:1:3+1+1+1+1:360:1000:N:N'
49 HICMLS:51:1:3+1+1+1'
50 HICSAS:52:1:3+1+1+1+1:360'
51 HICSBS:53:1:3+1+1+1+N:J'
52 HICSES:54:1:3+1+1+1+1:360'
53 HICSLS:55:1:3+1+1+1+J'
54 HIDABS:56:1:3+3+1'
55 HIDABS:57:2:3+3+1'
56 HIDABS:58:3:3+3+1'
57 HIDAES:59:2:3+3+1+4:0:9999:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:54'
58 HIDAES:60:3:3+3+1+4:0:9999:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:54'
59 HIDALS:61:1:3+3+1+0:9999:J'
60 HIDALS:62:2:3+3+1+0:9999:J'
61 HIDANS:63:2:3+3+1+0:2:9999:J:J:J:N:J:J:N:J:J:J:4:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:54'
62 HIDANS:64:3:3+3+1+0:0:9999:J:J:J:N:J:J:N:J:J:J:4:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:54'
63 HIDASS:65:4:3+3+1+1+1:0:9999:1:N:N'
64 HIEKAS:66:2:3+1+1+1+J:J:N:1'
65 HIEKAS:67:3:3+1+1+1+J:J:N:1'
66 HIEUES:68:2:3+1+1+1+2007:1:12500,:V;W;:10:1'
67 HIFGBS:69:2:3+3+1'
68 HIFGBS:70:3:3+3+1'
69 HIFPOS:71:1:3+3+1+N:0:N:N'
70 HIFRDS:72:1:3+1+1'
71 HIFRDS:73:4:3+1+1+1+N:N:N:1:DekaBank'
72 HIKAZS:74:4:3+3+1+360:J'
73 HIKAZS:75:5:3+3+1+360:J:N'
74 HIKDMS:76:2:3+3+0+2048'
75 HIKDMS:77:3:3+3+0+2048'
76 HIKDMS:78:4:3+3+0+2048'
77 HIKIFS:79:1:3+1+1'
78 HIKIFS:80:4:3+1+1+1+J:J'
79 HIKIFS:81:5:3+1+1+1+J:J'
80 HILASS:82:2:3+3+1+14:05:04'
81 HILASS:83:3:3+3+1+14:05:04'
82 HILASS:84:4:3+3+1+14:05:04'
83 HILSWS:85:2:3+1+1+1+::05'
84 HILWBS:86:2:3+3+1+1+J:42:J'
85 HIMTAS:87:1:3+1+1+1+N'
86 HIMTFS:88:1:3+1+1+1'
87 HIMTRS:89:1:3+1+1+1+N'
88 HINEAS:90:1:3+1+1+1:2:3:4'
89 HINEZS:91:1:3+1+1+N:N:0:N:N:0,'
90 HIPPDS:92:1:3+1+1+1+1:Telekom:Xtra-Card:N:::15;30;50:2:Vodafone:CallYa:N:::15;25;50:3:E-Plus:Free and easy:N:::15;20;30:4:O2:Loop:N:::15;20;30:5:congstar:congstar:N:::15;30;50:6:blau:blau:N:::15;20;30:8:o.tel.o:o.tel.o:N:::9;19;29'
91 HIQTGS:93:1:3+1+1+1'
92 HISALS:94:3:3+3+1'
93 HISALS:95:4:3+3+1'
94 HISALS:96:5:3+3+1'
95 HISLAS:97:3:3+1+1+1000:14:05:04'
96 HISLAS:98:4:3+1+1+1000:14:05:04'
97 HISLBS:99:2:3+3+1+J'
98 HISLES:100:2:3+3+1+1:360:1000:14:04:05'
99 HISLLS:101:2:3+3+1'
100 HISPAS:102:1:3+1+1+1+J:N:N:http?://www.sepa-zka.de/1.0/pain.001.001.02.xsd'
101 HISPAS:103:2:3+1+1+1+J:N:N:N:http?://www.sepa-zka.de/1.0/pain.001.001.02.xsd'
102 HISUBS:104:3:3+1+1+1000:14:51:53:54:56:67:69'
103 HISUBS:105:4:3+1+1+1000:14:51:53:54:56:67:69'
104 HITABS:106:2:3+1+1+1'
105 HITABS:107:3:3+1+1+1'
106 HITABS:108:4:3+1+1+1'
107
108 HITANS:109:1:3+2+1+1+J:N:0:0:900:2:iTAN :iTAN :6:1:TAN-Nummer:3:1:J:J
109 :920:2:smsTAN :smsTAN :6:1:TAN-Nummer:3:1:J:J'
110 HITANS:110:3:3+2+1+1+J:N:0 :900:2:iTAN :iTAN :6:1:TAN-Nummer:3:1:J:2:0:N:N:N:00:0:0
111 :920:2:smsTAN :smsTAN :6:1:TAN-Nummer:3:1:J:2:0:N:N:N:00:2:5
112 :910:2:HHD1.3.0 :chipTAN manuell:6:1:TAN-Nummer:3:1:J:2:0:N:N:N:00:0:1
113 :911:2:HHD1.3.0OPT:chipTAN optisch:6:1:TAN-Nummer:3:1:J:2:0:N:N:N:00:0:1'
114
115 HITAUS:111:1:3+1+1+1+N:N:J'
116 HITAZS:112:1:3+1+1+1'
117 HITMLS:113:1:3+1+1+1'
118 HITSBS:114:2:3+3+1+J'
119 HITSES:115:2:3+3+1+1:360:1000:14:51:53:54:56:67:69'
120 HITSLS:116:2:3+3+1'
121 HITSYS:117:1:3+1+1+1+J:N'
122 HITUAS:118:2:3+3+1+1:360:14:51:53:54:56:67:69'
123 HITUBS:119:1:3+3+1+J'
124 HITUES:120:2:3+3+1+1:360:14:51:53:54:56:67:69'
125 HITULS:121:1:3+3+1'
126 HIUEBS:122:2:3+3+1+14:51:53:54:56:67:69'
127 HIUEBS:123:3:3+3+1+14:51:53:54:56:67:69'
128 HIUEBS:124:4:3+3+1+14:51:53:54:56:67:69'
129 HIUMBS:125:1:3+3+1+14:51'
130 HIWDUS:126:4:3+3+1+999'
131 HIWFOS:127:1:3+1+1+N:0:N:N:N::::0,::MAKT'
132 HIWFPS:128:2:3+3+1+RENTEN:INVESTMENTFONDS:GENUSSSCHEINE:SPARBRIEFE:UNTERNEHMENSANLEIHEN:EMERGING MARKET ANLEIHEN:STRUKTURIERTE ANLEIHEN:ZERTIFIKATE:AKTIEN:OPTIONSSCHEINE:ALLE ANGEBOTE EIGENES INSTITUT:ALLE ANGEBOTE UEBERGEORD. INSTITUTE'
133 HIWOAS:129:2:3+1+1+J:STOP;SLOS;LMTO;MAKT:J:J:GDAY;GTMO;GTHD;OPEN;CLOS:J:0:N:N:N:9999999,99:EUR'
134 HIWPDS:130:3:3+3+1+J'
135 HIWPDS:131:5:3+1+1+J:N:N'
136 HIWPKS:132:1:3+3+0+XBER;XDUS;XFRA;XHAM;XHAN;XMUN;XSTU;XETR;OTCO;XAMS;XASE;XASX;XATH;XBAR;XBIL;XBOS;XBRN;XBRU;XCAG;XCHI;XCSE;XDUB;XEUN;XHEL;XHKG;XISM;XJSE;XKLS;XLIS;XLON;XLUX;XMAD;XMIL;XNAS;XNQL;XNYS;XNZE;XOSL;XOTC;XPAR;XPHL;XSAP;XSES;XSHE;XSSE;XSSI;XSTO;XSWX;XTKS;XTSE;XVAL;XWBO'
137 HIWPOS:133:2:3+1+1+0:N:0:N:N:XBER;XDUS;XFRA;XHAM;XHAN;XMUN;XSTU;XETR;OTCO;XXXX;XGAT;XBRU;XDUB;XHEL;XHKG;XJKT;XJSE;XCSE;XLIS;XLON;XLUX;XMAD;XMIL;XASX;XNYS;XOSL;XPAR;XSES;XSTO;XTKS;XTSE;XNZE;XWBO;XSWX;DIFX;XASE;XATH;XBAR;XBKK;XBRN;XBUD;XCHI;XFKA;XWAR;XIST;XKLS;XLAT;XLJU;XMEX;XNGO;XNAS;XOME;XOTC;XPHL;XPRA;XSAP;XSUR;XSWB;XTSX;XVTX;XAMS;ARCX:07;08:Variabel;Continuous Trade (XETRA):::9999999,99:EUR:STOP;SLOS;LMTO;MAKT:BUYI;SELL;FIKI;NOHE;ALNO:GDAY;GTMO;GTHD;IOCA;OPEN;CLOS'
138 HIWPRS:134:1:3+3+1+J:J:N:N:XBER;XDUS;XFRA;XHAM;XHAN;XMUN;XSTU;XETR;OTCO;XXXX;XGAT;XBRU;XDUB;XHEL;XHKG;XJKT;XJSE;XCSE;XLIS;XLON;XLUX;XMAD;XMIL;XASX;XNYS;XOSL;XPAR;XSES;XSTO;XTKS;XTSE;XNZE;XWBO;XSWX;DIFX;XASE;XATH;XBAR;XBKK;XBRN;XBUD;XCHI;XFKA;XWAR;XIST;XKLS;XLAT;XLJU;XMEX;XNGO;XNAS;XOME;XOTC;XPHL;XPRA;XSAP;XSUR;XSWB;XTSX;XVTX;XAMS;ARCX:Aktien:Festverzinsliche Wertpapiere:Fonds:Fremdwährungsanleihen:Genussscheine:Indexzertifikate:Optionsscheine:Wandel- und Optionsanleihen cum'
139 HIWPSS:135:1:3+3+1+J'
140 HIWSDS:136:2:3+3+1+J:A;Inland DAX:B;Inland Sonstige:C;Ausland Europa:D;Ausland Sonstige'
141 HIWSOS:137:1:3+3+1+N:60:2:3:5:6:7:8:9:10'
142 HNHBS:138:1+1'
0 HNHBK:1:3+000000010586+220+5730744363313150+1+5730744363313150:1'HIRMG:2:2+3060::Teilweise liegen Warnungen oder Hinweise vor (HBMSG=10336)'HIRMS:3:2:3+3050::BPD nicht mehr aktuell. Aktuelle Version folgt (HBMSG=10468)+0010::Der Auftrag wurde ausgeführt. (MBT61100000006)'HIBPA:4:2:3+40+280:76052080+Sparkasse Neumarkt-Parsberg+3+1+201:210:220+650'HIKOM:5:3:3+280:76052080+1+2:I085.BY.S-HBCI.DE::MIM:1'HISHV:6:2:3+N+DDV:1'DIANAS:7:1:3+1+1+1+1:15'DIANLS:8:1:3+1+1+1'DIBAZS:9:1:3+1+1+1+J:J'DIBKDS:10:3:3+1+1+1'DIBKDS:11:4:3+1+1+1'DIBKUS:12:3:3+1+1+1+J:N'DIBRKS:13:1:3+1+1+1'DIBUMS:14:3:3+1+1+1+N'DIDFAS:15:1:3+1+1+1+N'DIDFDS:16:1:3+1+1+1'DIDFLS:17:1:3+1+1+1'DIDFOS:18:1:3+1+1+1'DIDFSS:19:1:3+1+1+1+N:1;DekaBank-Konzern;5;Swisscanto;7;JPMorgan Fleming,8;Lombard Odier;10;Franklin Templeton;11;Gartmore;12;Goldman Sachs;13;Black Rock Merrill;14;Threadneedle;15;UBS;16;Schroders:10_10:Aktienfonds Asien - Pazifik ohne Japan:10_20:Aktienfonds Branche:10_30:Aktienfonds Deutschland:10_40:Aktienfonds Emerging Markets:10_50:Aktienfonds Euroland:10_60:Aktienfonds Europa Länder:10_70:Aktienfonds Europa:10_80:Aktienfonds Japan:10_90:Aktienfonds Lateinamerika:10_100:Aktienfonds Nordamerika:10_110:Aktienfonds Osteuropa:10_120:Aktienfonds Welt:10_400:Aktienfonds Afrika:10_410:Aktienfonds Mittlerer Osten:10_420:Aktienfonds Nordeuropa:20_130:Dachfonds Chance Plus:20_140:Dachfonds Chance:20_150:Dachfonds Ertrag Plus:20_160:Dachfonds Ertrag:20_170:Dachfonds Wachstum:20_180:Dachfonds laufzeitbegrenzt:30_430:Garantiefonds:40_200:Geldmarktfonds:40_210:Geldmarktnahe Fonds:50_220:Alternative Investmentfonds Hedgefonds:50_230:Alternative Investmentfonds Private Equity:50_240:Alternative Investmentfonds Rohstofffonds:60_250:Sonderkonzepte Absolute-/Total-Returnstrategiefonds:60_260:Sonderkonzepte Altersvorsorgefonds:60_270:Sonderkonzepte Institutionelle Fondskonzepte:60_280:Sonderkonzepte Steuerorientierte Fonds:70_30:Immobilienfonds Deutschland:70_70:Immobilienfonds Europa:70_120:Immobilienfonds Welt:80_50:Mischfonds Euroland:80_290:Mischfonds ausgewogen:80_300:Mischfonds dynamisch:80_310:Mischfonds flexibel:80_320:Mischfonds konservativ:90_330:Rentenfonds Inflationsindexierte Anleihen:90_340:Rentenfonds Laufzeitfonds:90_350:Rentenfonds MBS:90_360:Rentenfonds Nachranganleihen:90_370:Rentenfonds Staatsanleihen:90_380:Rentenfonds Unternehmensanleihen:90_390:Rentenfonds Wandelanleihen'DIDFUS:20:1:3+1+1+1+N'DIDOFS:21:1:3+1+1+1'DIFAFS:22:2:3+1+1+1+N:N'DIFOPS:23:1:3+1+1+N:0:N:N:N::::0,::MAKT'DIFPOS:24:1:3+3+1+N:0:N:N'DIKAUS:25:3:3+1+1+1+N'DIKKAS:26:2:3+1+1+1+N:N:2'DIKKSS:27:3:3+1+1+1'DIKKUS:28:2:3+1+1+1+90:N:J'DINZPS:29:1:3+1+1+N:N:0:N:N:0,'DIPAES:30:1:3+1+1'DIPINS:31:1:3+1+1+DKPAE:J:DKTLF:J:DKTLA:N:DKTSP:N:HKVVB:N:HKUEB:J:HKSUB:J:HKLAS:J:HKSLA:J:HKDAE:J:HKDAN:J:HKDAL:J:HKDAB:N:HKWPO:J:HKWOA:J:HKWPS:J:HKWSO:N:HKWPD:N:HKNEZ:J:HKNEA:N:HKKDM:J:HKSAL:N:HKKAZ:N:HKWPR:N:HKTUE:J:HKTUA:J:HKTUL:J:HKTUB:N:HKAOM:J:HKWSD:N:HKWFO:J:DKPSA:J:HKKIF:N:HKFRD:N:HKUMB:J:HKFGB:N:HKEKA:N:HKQTG:N:HKAUB:J:DKANA:J:DKANL:J:DKPSP:N:HKTAN:N:DKFDA:N:HKPPD:J:DKURK:J:DKZDF:J:DKZDL:J:DKBAZ:N:DKBRK:N:HKTSE:J:HKTSL:J:HKSLE:J:HKSLL:J:HKTSB:N:HKSLB:N:DKBKD:N:DKBKU:N:DKBUM:N:HKLSW:J:HKLWB:N:DKWAP:N:DKWOP:N:DKFOP:N:DKNZP:N:HKWPK:N:HKSPA:N:HKCCM:J:HKCCS:J:HKTAU:N:HKTAB:N:HKTSY:N:HKCME:J:HKCMB:N:HKCML:J:HKEUE:J:HKFPO:J:DKFPO:N:HKWDU:N:HKWFP:N:HKCSA:J:HKCSB:N:HKCSE:J:HKCSL:J:HKMTA:J:HKMTF:N:HKMTR:J:HKTML:N:HKTAZ:N:DKVVD:N:DKVVU:N:DKKAU:N:DKKKA:N:DKKKS:N:DKKKU:N:HKDAS:J:DKDFA:N:DKDFD:N:DKDFL:J:DKDFO:J:DKDFS:N:DKDFU:N:DKFAF:N:DKDOF:N'DIPSAS:32:1:3+1+1'DIPSPS:33:1:3+1+1'DITLAS:34:1:3+1+1'DITLFS:35:1:3+1+1+N'DITLFS:36:2:3+1+1+N'DITSPS:37:1:3+1+1+N'DIURKS:38:1:3+1+1+1+14:51'DIVVDS:39:1:3+3+1+1'DIVVUS:40:1:3+3+1+1+N:J'DIWAPS:41:1:3+1+1+J:STOP;SLOS;LMTO;MAKT:J:J:GDAY;GTMO;GTHD;OPEN;CLOS:J:0:N:N:N:9999999,99:EUR'DIWOPS:42:1:3+1+1+0:N:0:N:N:XBER;XDUS;XFRA;XHAM;XHAN;XMUN;XSTU;XETR;OTCO;XXXX;XGAT;XBRU;XDUB;XHEL;XHKG;XJKT;XJSE;XCSE;XLIS;XLON;XLUX;XMAD;XMIL;XASX;XNYS;XOSL;XPAR;XSES;XSTO;XTKS;XTSE;XNZE;XWBO;XSWX;DIFX;XASE;XATH;XBAR;XBKK;XBRN;XBUD;XCHI;XFKA;XWAR;XIST;XKLS;XLAT;XLJU;XMEX;XNGO;XNAS;XOME;XOTC;XPHL;XPRA;XSAP;XSUR;XSWB;XTSX;XVTX;XAMS;ARCX:07;08:Variabel;Continuous Trade (XETRA):::9999999,99:EUR:STOP;SLOS;LMTO;MAKT:BUYI;SELL;FIKI;NOHE;ALNO:GDAY;GTMO;GTHD;IOCA;OPEN;CLOS'DIZDFS:43:1:3+1+1+1'DIZDLS:44:1:3+1+1+1'HIAOMS:45:1:3+1+1+J:040;140;140;140;140;50000,;EUR;50000,;EUR:056;140;140;140;140;50000,;EUR;50000,;EUR:246;140;140;140;140;50000,;EUR;50000,;EUR:250;140;140;140;140;50000,;EUR;50000,;EUR:300;140;140;140;140;50000,;EUR;50000,;EUR:372;140;140;140;140;50000,;EUR;50000,;EUR:380;140;140;140;140;50000,;EUR;50000,;EUR:442;140;140;140;140;50000,;EUR;50000,;EUR:528;140;140;140;140;50000,;EUR;50000,;EUR:620;140;140;140;140;50000,;EUR;50000,;EUR:724;140;140;140;140;50000,;EUR;50000,;EUR:826;140;140;140;140;50000,;EUR;50000,;EUR:208;140;140;140;140;50000,;EUR;50000,;EUR:292;140;140;140;140;50000,;EUR;50000,;EUR:752;140;140;140;140;50000,;EUR;50000,;EUR:196;140;140;140;140;50000,;EUR;50000,;EUR:203;140;140;140;140;50000,;EUR;50000,;EUR:233;140;140;140;140;50000,;EUR;50000,;EUR:348;140;140;140;140;50000,;EUR;50000,;EUR:440;140;140;140;140;50000,;EUR;50000,;EUR:428;140;140;140;140;50000,;EUR;50000,;EUR:470;140;140;140;140;50000,;EUR;50000,;EUR:616;140;140;140;140;50000,;EUR;50000,;EUR:705;140;140;140;140;50000,;EUR;50000,;EUR:703;140;140;140;140;50000,;EUR;50000,;EUR:352;140;140;140;140;50000,;EUR;50000,;EUR:578;140;140;140;140;50000,;EUR;50000,;EUR:438;140;140;140;140;50000,;EUR;50000,;EUR:100;140;140;140;140;50000,;EUR;50000,;EUR:642;140;140;140;140;50000,;EUR;50000,;EUR:756;140;140;140;140;50000,;EUR;50000,;EUR'HIAUBS:46:5:3+1+1+1'HICCMS:47:1:3+1+1+1+1000:N:N'HICCSS:48:1:3+1+1+1'HICMBS:49:1:3+1+1+1+N:J'HICMES:50:1:3+1+1+1+1:360:1000:N:N'HICMLS:51:1:3+1+1+1'HICSAS:52:1:3+1+1+1+1:360'HICSBS:53:1:3+1+1+1+N:J'HICSES:54:1:3+1+1+1+1:360'HICSLS:55:1:3+1+1+1+J'HIDABS:56:1:3+3+1'HIDABS:57:2:3+3+1'HIDABS:58:3:3+3+1'HIDAES:59:2:3+3+1+4:0:9999:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:54'HIDAES:60:3:3+3+1+4:0:9999:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:54'HIDALS:61:1:3+3+1+0:9999:J'HIDALS:62:2:3+3+1+0:9999:J'HIDANS:63:2:3+3+1+0:2:9999:J:J:J:N:J:J:N:J:J:J:4:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:54'HIDANS:64:3:3+3+1+0:0:9999:J:J:J:N:J:J:N:J:J:J:4:0102030612:01020304050607080910111213141516171819202122232425262728293099:::52:54'HIDASS:65:4:3+3+1+1+1:0:9999:1:N:N'HIEKAS:66:2:3+1+1+1+J:J:N:1'HIEKAS:67:3:3+1+1+1+J:J:N:1'HIEUES:68:2:3+1+1+1+2007:1:12500,:V;W;:10:1'HIFGBS:69:2:3+3+1'HIFGBS:70:3:3+3+1'HIFPOS:71:1:3+3+1+N:0:N:N'HIFRDS:72:1:3+1+1'HIFRDS:73:4:3+1+1+1+N:N:N:1:DekaBank'HIKAZS:74:4:3+3+1+360:J'HIKAZS:75:5:3+3+1+360:J:N'HIKDMS:76:2:3+3+0+2048'HIKDMS:77:3:3+3+0+2048'HIKDMS:78:4:3+3+0+2048'HIKIFS:79:1:3+1+1'HIKIFS:80:4:3+1+1+1+J:J'HIKIFS:81:5:3+1+1+1+J:J'HILASS:82:2:3+3+1+14:05:04'HILASS:83:3:3+3+1+14:05:04'HILASS:84:4:3+3+1+14:05:04'HILSWS:85:2:3+1+1+1+::05'HILWBS:86:2:3+3+1+1+J:42:J'HIMTAS:87:1:3+1+1+1+N'HIMTFS:88:1:3+1+1+1'HIMTRS:89:1:3+1+1+1+N'HINEAS:90:1:3+1+1+1:2:3:4'HINEZS:91:1:3+1+1+N:N:0:N:N:0,'HIPPDS:92:1:3+1+1+1+1:Telekom:Xtra-Card:N:::15;30;50:2:Vodafone:CallYa:N:::15;25;50:3:E-Plus:Free and easy:N:::15;20;30:4:O2:Loop:N:::15;20;30:5:congstar:congstar:N:::15;30;50:6:blau:blau:N:::15;20;30:8:o.tel.o:o.tel.o:N:::9;19;29'HIQTGS:93:1:3+1+1+1'HISALS:94:3:3+3+1'HISALS:95:4:3+3+1'HISALS:96:5:3+3+1'HISLAS:97:3:3+1+1+1000:14:05:04'HISLAS:98:4:3+1+1+1000:14:05:04'HISLBS:99:2:3+3+1+J'HISLES:100:2:3+3+1+1:360:1000:14:04:05'HISLLS:101:2:3+3+1'HISPAS:102:1:3+1+1+1+J:N:N:http?://www.sepa-zka.de/1.0/pain.001.001.02.xsd'HISPAS:103:2:3+1+1+1+J:N:N:N:http?://www.sepa-zka.de/1.0/pain.001.001.02.xsd'HISUBS:104:3:3+1+1+1000:14:51:53:54:56:67:69'HISUBS:105:4:3+1+1+1000:14:51:53:54:56:67:69'HITABS:106:2:3+1+1+1'HITABS:107:3:3+1+1+1'HITABS:108:4:3+1+1+1'HITANS:109:1:3+2+1+1+J:N:0:0:900:2:iTAN:iTAN:6:1:TAN-Nummer:3:1:J:J:920:2:smsTAN:smsTAN:6:1:TAN-Nummer:3:1:J:J'HITANS:110:3:3+2+1+1+J:N:0:900:2:iTAN:iTAN:6:1:TAN-Nummer:3:1:J:2:0:N:N:N:00:0:0:920:2:smsTAN:smsTAN:6:1:TAN-Nummer:3:1:J:2:0:N:N:N:00:2:5:910:2:HHD1.3.0:chipTAN manuell:6:1:TAN-Nummer:3:1:J:2:0:N:N:N:00:0:1:911:2:HHD1.3.0OPT:chipTAN optisch:6:1:TAN-Nummer:3:1:J:2:0:N:N:N:00:0:1'HITAUS:111:1:3+1+1+1+N:N:J'HITAZS:112:1:3+1+1+1'HITMLS:113:1:3+1+1+1'HITSBS:114:2:3+3+1+J'HITSES:115:2:3+3+1+1:360:1000:14:51:53:54:56:67:69'HITSLS:116:2:3+3+1'HITSYS:117:1:3+1+1+1+J:N'HITUAS:118:2:3+3+1+1:360:14:51:53:54:56:67:69'HITUBS:119:1:3+3+1+J'HITUES:120:2:3+3+1+1:360:14:51:53:54:56:67:69'HITULS:121:1:3+3+1'HIUEBS:122:2:3+3+1+14:51:53:54:56:67:69'HIUEBS:123:3:3+3+1+14:51:53:54:56:67:69'HIUEBS:124:4:3+3+1+14:51:53:54:56:67:69'HIUMBS:125:1:3+3+1+14:51'HIWDUS:126:4:3+3+1+999'HIWFOS:127:1:3+1+1+N:0:N:N:N::::0,::MAKT'HIWFPS:128:2:3+3+1+RENTEN:INVESTMENTFONDS:GENUSSSCHEINE:SPARBRIEFE:UNTERNEHMENSANLEIHEN:EMERGING MARKET ANLEIHEN:STRUKTURIERTE ANLEIHEN:ZERTIFIKATE:AKTIEN:OPTIONSSCHEINE:ALLE ANGEBOTE EIGENES INSTITUT:ALLE ANGEBOTE UEBERGEORD. INSTITUTE'HIWOAS:129:2:3+1+1+J:STOP;SLOS;LMTO;MAKT:J:J:GDAY;GTMO;GTHD;OPEN;CLOS:J:0:N:N:N:9999999,99:EUR'HIWPDS:130:3:3+3+1+J'HIWPDS:131:5:3+1+1+J:N:N'HIWPKS:132:1:3+3+0+XBER;XDUS;XFRA;XHAM;XHAN;XMUN;XSTU;XETR;OTCO;XAMS;XASE;XASX;XATH;XBAR;XBIL;XBOS;XBRN;XBRU;XCAG;XCHI;XCSE;XDUB;XEUN;XHEL;XHKG;XISM;XJSE;XKLS;XLIS;XLON;XLUX;XMAD;XMIL;XNAS;XNQL;XNYS;XNZE;XOSL;XOTC;XPAR;XPHL;XSAP;XSES;XSHE;XSSE;XSSI;XSTO;XSWX;XTKS;XTSE;XVAL;XWBO'HIWPOS:133:2:3+1+1+0:N:0:N:N:XBER;XDUS;XFRA;XHAM;XHAN;XMUN;XSTU;XETR;OTCO;XXXX;XGAT;XBRU;XDUB;XHEL;XHKG;XJKT;XJSE;XCSE;XLIS;XLON;XLUX;XMAD;XMIL;XASX;XNYS;XOSL;XPAR;XSES;XSTO;XTKS;XTSE;XNZE;XWBO;XSWX;DIFX;XASE;XATH;XBAR;XBKK;XBRN;XBUD;XCHI;XFKA;XWAR;XIST;XKLS;XLAT;XLJU;XMEX;XNGO;XNAS;XOME;XOTC;XPHL;XPRA;XSAP;XSUR;XSWB;XTSX;XVTX;XAMS;ARCX:07;08:Variabel;Continuous Trade (XETRA):::9999999,99:EUR:STOP;SLOS;LMTO;MAKT:BUYI;SELL;FIKI;NOHE;ALNO:GDAY;GTMO;GTHD;IOCA;OPEN;CLOS'HIWPRS:134:1:3+3+1+J:J:N:N:XBER;XDUS;XFRA;XHAM;XHAN;XMUN;XSTU;XETR;OTCO;XXXX;XGAT;XBRU;XDUB;XHEL;XHKG;XJKT;XJSE;XCSE;XLIS;XLON;XLUX;XMAD;XMIL;XASX;XNYS;XOSL;XPAR;XSES;XSTO;XTKS;XTSE;XNZE;XWBO;XSWX;DIFX;XASE;XATH;XBAR;XBKK;XBRN;XBUD;XCHI;XFKA;XWAR;XIST;XKLS;XLAT;XLJU;XMEX;XNGO;XNAS;XOME;XOTC;XPHL;XPRA;XSAP;XSUR;XSWB;XTSX;XVTX;XAMS;ARCX:Aktien:Festverzinsliche Wertpapiere:Fonds:Fremdwährungsanleihen:Genussscheine:Indexzertifikate:Optionsscheine:Wandel- und Optionsanleihen cum'HIWPSS:135:1:3+3+1+J'HIWSDS:136:2:3+3+1+J:A;Inland DAX:B;Inland Sonstige:C;Ausland Europa:D;Ausland Sonstige'HIWSOS:137:1:3+3+1+N:60:2:3:5:6:7:8:9:10'HNHBS:138:1+1'
0 HNHBK:1:3+000000013158+300+RA3012915250382+1+RA3012915250382:1'
1 HIRMG:2:2+3060::Bitte beachten Sie die enthaltenen Warnungen/Hinweise. (TRE)'
2 HIRMS:3:2:3+3050::BPD nicht mehr aktuell, aktuelle Version enthalten. (TRE)+0020::Informationen fehlerfrei entgegengenommen. (TRE)'
3 HIBPA:4:3:3+112+280:49999924+Test Schulung 4924 IMS8+1+1+300+500'
4 HIVISS:5:1:3+1+1+1+1;L;;Bankauftrag;;;;1;L;;allgemein;;;;2;L;;Legitimation;;;;2;L;;Benutzerkennung;;;;3;L;;Version;;;;4;L;;Überweisung;;;;4;L;;Inland;;;;5;L;;Umbuchung;;;;6;L;;Umbuchung;;;;6;L;;terminiert;;;;7;L;;Überweisung;;;;7;L;;Referenzkonto;;;;8;L;;Überweisung;;;;8;L;;SEPA/EU;;;;9;L;;Überweisung;;;;9;L;;Inland;;;;10;L;;Überweisung;;;;10;L;;Ausland;;;;11;L;;Sammelüberw.;;;;11;L;;Inland;;;;12;L;;Sammelüberw.;;;;12;L;;SEPA;;;;13;L;;Sammelüberw.;;;;13;L;;Ausland;;;;14;L;;Lastschrift;;;;14;L;;Inland;;;;15;L;;Rückgabe;;;;15;L;;Lastschrift;;;;16;L;;Lastschrift;;;;16;L;;SEPA;;;;17;L;;Lastschrift;;;;17;L;;Ausland;;;;18;L;;Sammellasts.;;;;18;L;;Inland;;;;19;L;;Sammellasts.;;;;19;L;;SEPA;;;;20;L;;Sammellasts.;;;;20;L;;Ausland;;;;21;L;;Terminüberw.;;;;21;L;;Inland;;;;22;L;;Terminüberw.;;;;22;L;;SEPA;;;;23;L;;Terminüberw.;;;;23;L;;Ausland;;;;24;L;;Terminüberw.;;;;24;L;;Sammel Inl.;;;;25;L;;Terminüberw.;;;;25;L;;Sammel SEPA;;;;26;L;;Terminüberw.;;;;26;L;;Sammel Ausl.;;;;27;L;;Terminlasts.;;;;27;L;;Inland;;;;28;L;;Terminlasts.;;;;28;L;;SEPA;;;;29;L;;Terminlasts.;;;;29;L;;Ausland;;;;30;L;;Terminlasts.;;;;30;L;;Sammel Inl.;;;;31;L;;Terminlasts.;;;;31;L;;Sammel SEPA;;;;32;L;;Terminlasts.;;;;32;L;;Sammel Ausl.;;;;33;L;;Dauerüberw.;;;;33;L;;Inland;;;;34;L;;Dauerüberw.;;;;34;L;;SEPA;;;;35;L;;Dauerüberw.;;;;35;L;;Ausland;;;;36;L;;Dauerlasts.;;;;36;L;;Inland;;;;37;L;;Dauerlasts.;;;;37;L;;SEPA;;;;38;L;;Bestand;;;;38;L;;abfragen;;;;39;L;;Löschen;;;;39;L;;Auftrag;;;;40;L;;Aussetzen;;;;40;L;;Auftrag;;;;41;L;;Aussetzen;;;;41;L;;Auftrag;;;;42;L;;Ändern;;;;42;L;;Auftrag;;;;43;L;;Ändern;;;;43;L;;Auftrag;;;;44;L;;Freigabe;;;;44;L;;Überw. DTAUS;;;;45;L;;Freigabe;;;;45;L;;Lasts. DTAUS;;;;46;L;;Freigabe;;;;46;L;;Überw. DTAZV;;;;47;L;;Freigabe;;;;47;L;;Überw. SEPA;;;;48;L;;Freigabe;;;;48;L;;Lasts. SEPA;;;;49;L;;Freigabe;;;;49;L;;DSRZ-Dateien;;;;50;L;;Kontoauszug;;;;50;L;;u. Quittung;;;;51;L;;Kontoauszug;;;;51;L;;an/abmelden;;;;52;L;;Postfach;;;;52;L;;an/abmelden;;;;53;L;;Postkorb;;;;54;L;;Datentresor;;;;55;L;;Wertpapier;;;;55;L;;Kauf;;;;56;L;;Wertpapier;;;;56;L;;Verkauf;;;;57;L;;Wertpapier;;;;57;L;;Geschäft;;;;58;L;;Anlage;;;;58;L;;Abschluss;;;;59;L;;Kredit;;;;59;L;;Abschluss;;;;60;L;;Produkt;;;;60;L;;Kauf;;;;61;L;;Versicherung;;;;61;L;;Abschluss;;;;62;L;;Service;;;;62;L;;Funktionen;;;;63;L;;TAN-Medien;;;;63;L;;Management;;;;64;L;;Mobiltelefon;;;;64;L;;laden;;;;65;L;;GeldKarte;;;;65;L;;laden;;;;66;L;;Zahlung;;;;66;L;;Internet;;;;67;L;;Geldtransfer;;;;67;L;;Internet;;;;68;L;;Freistellung;;;;69;L;;Adresse;;;;69;L;;ändern;;;;70;L;;Wertpapier;;;;70;L;;Kauf;;;;71;L;;Wertpapier;;;;71;L;;Verkauf;;;;72;L;;Wertpapier;;;;72;L;;Geschäft;;;;73;L;;Eigene;;;;73;L;;IBAN;;;;74;L;;IBAN;;;;74;L;;Empfänger;;;;75;L;;IBAN;;;;75;L;;Zahler;;;;76;L;;IBAN;;;;76;L;;Absender;;;;77;L;;Kunden;;;;77;L;;Nummer;;;;78;L;;Vertrags-;;;;78;L;;Kennung;;;;79;L;;Eigene;;;;79;L;;IBAN;;;;80;L;;Name;;;;81;L;;Auftrags-;;;;81;L;;Identifikation;;;;82;L;;Händler ;;;;82;L;;Name;;;;83;L;;Karten-;;;;83;L;;nummer;;;;84;L;;TAN;;;;84;L;;Medium;;;;85;L;;Summe nur;;;;85;L;;Vorkommastellen;;;;86;L;;Freistellung;;;;86;L;;ändern;;;;87;L;;Umbuchung;;;;87;L;;Inland;;;;88;L;;Umbuchung;;;;88;L;;SEPA/EU;;;;89;L;;Adresse?:;;;;89;L;16;#;;;;90;L;;Angebots-Nr?:;;;;90;R;16;#;;;;91;L;;Anzahl?:;;;;91;R;16;#;;;;92;L;;Auftrags-ID?:;;;;92;L;16;#;;;;93;L;;Aut.Merkmal?:;;;;93;L;16;#;;;;94;L;;Bankdaten?:;;;;94;L;16;#;;;;95;L;;Betrag?:;;;;95;R;16;#;;;;96;L;;BIC Empf.?:;;;;96;L;16;#;;;;97;L;;BLZ Abs.?:;;;;97;R;16;#;;;;98;L;;BLZ Empf.?:;;;;98;R;16;#;;;;99;L;;BLZ Karte?:;;;;99;R;16;#;;;;100;L;;BLZ Zahler?:;;;;100;R;16;#;;;;101;L;;Eigene BLZ?:;;;;101;R;16;#;;;;102;L;;Eigenes Kto?:;;;;102;R;16;#;;;;103;L;;Geburtsdatum;;;;103;L;16;#;;;;104;L;;Händlername?:;;;;104;L;16;#;;;;105;L;;ISIN?:;;;;105;L;16;#;;;;106;L;;Kartennummer;;;;106;R;16;#;;;;107;L;;Konto Abs.?:;;;;107;R;16;#;;;;108;L;;Konto Empf.?:;;;;108;R;16;#;;;;109;L;;Konto Zahler;;;;109;R;16;#;;;;110;L;;Kreditkarte?:;;;;110;R;16;#;;;;111;L;;Limit?:;;;;111;R;16;#;;;;112;L;;Menge?:;;;;112;R;16;#;;;;113;L;;Mobilfunknr?:;;;;113;R;16;#;;;;114;L;;Name Empf.?:;;;;114;L;16;#;;;;115;L;;Postleitzahl;;;;115;R;16;#;;;;116;L;;Rate?:;;;;116;R;16;#;;;;117;L;;Referenzkto?:;;;;117;R;16;#;;;;118;L;;Referenzzahl;;;;118;R;16;#;;;;119;L;;Stücke/Nom.?:;;;;119;R;16;#;;;;120;L;;TAN-Medium;;;;120;L;16;#;;;;121;L;;Termin?:;;;;121;L;16;#;;;;122;L;;Vertrag.Kenn;;;;122;L;16;#;;;;123;L;;WP-Kenn-Nr?:;;;;123;R;16;#;;;;124;L;;Kunden-Nr.;;;;124;R;16;#;;;;125;L;;Summe;;;;125;R;16;#;;;;126;L;32;#;;;;127;R;32;#;;;;128;L;16;#;;;;129;R;16;#;;;:HKAUB;4;811;10;;;85;;;129;3;Z.3:HKBME;1;811;31;;;91;4;NbOfTxs.1;95;4;CtrlSum.1;73;;;126;4;IBAN.1:HKBML;1;811;39;;;79;;;126;1;3,1;95;1;7,1:HKBSA;1;811;42;;;75;;;126;4;IBAN.2;95;4;CtrlSum.1:HKBSE;1;811;28;;;75;;;126;4;IBAN.2;95;4;CtrlSum.1:HKBSL;1;811;39;;;75;;;126;4;IBAN.2;95;4;CtrlSum.1:HKCCM;1;811;12;;;91;4;NbOfTxs.1;95;4;CtrlSum.1;79;;;126;4;IBAN.1:HKCCS;1;811;8;;;74;;;126;4;IBAN.2;95;4;CtrlSum.1:HKCME;1;811;25;;;91;4;NbOfTxs.1;95;4;CtrlSum.1;79;;;126;1;2,1:HKCML;1;811;39;;;79;;;126;1;3,1;95;1;7,1:HKCSA;1;811;42;;;74;;;126;4;IBAN.2;95;4;CtrlSum.1:HKCSE;1;811;22;;;74;;;126;4;IBAN.2;95;4;CtrlSum.1:HKCSL;1;811;39;;;74;;;126;4;IBAN.2;95;4;CtrlSum.1:HKDAE;3;811;33;;;108;1;3,1;98;1;3,3;95;1;6,1:HKDAL;2;811;39;;;108;1;3,1;98;1;3,3;95;1;6,1:HKDAN;3;811;42;;;108;1;3,1;98;1;3,3;95;1;6,1:HKDAS;2;811;40;;;108;1;3,1;98;1;3,3;95;1;6,1:HKDME;1;811;31;;;91;4;NbOfTxs.1;95;4;CtrlSum.1;73;;;126;4;IBAN.1:HKDML;1;811;39;;;79;;;126;1;3,1;95;1;7,1:HKDSA;1;811;42;;;75;;;126;4;IBAN.2;95;4;CtrlSum.1:HKDSE;1;811;28;;;75;;;126;4;IBAN.2;95;4;CtrlSum.1:HKDSL;1;811;39;;;75;;;126;4;IBAN.2;95;4;CtrlSum.1:HKFGA;2;811;42;;;108;1;2,1:HKFGN;2;811;58;;;108;1;2,1:HKLAS;3;811;14;;;109;1;3,1;100;1;3,3;95;1;6,1:HKPPD;1;811;64;;;113;1;4;95;1;5,1:HKSLA;4;811;18;;;91;2;E.4;95;2;E.8;102;2;A.9:HKSUB;4;811;11;;;91;2;E.4;95;2;E.8;102;2;A.9:HKSTP;1;811;8;;;85;;;129;3;Z.3:HKUEB;3;811;4;;;108;1;3,1;98;1;3,3;95;1;6,1:HKUMB;1;811;87;;;108;1;3,1;95;1;6,1:HKTUA;2;811;42;;;108;1;3,1;98;1;3,3;95;1;6,1:HKTUE;2;811;21;;;108;1;3,1;98;1;3,3;95;1;6,1:HKTUL;1;811;39;;;102;1;2,1;95;1;6,1:HKIDN;2;811;2;;;126;1;3'
5 HNHBS:6:1+1'
0 HNHBK:1:3+000000000000+300+000000000000=0000000000000000=+1+000000000000=0000000000000000=:1'
1 HNSHK:2:4+PIN:2+911+0000000000+1+1+2::AAAAAAAAAAAAAAAAAAAA+1+1:00000000:000000+1:999:1+6:10:16+280:00000000:XXXXXXXX:S:0:0'
2 HIRMG:3:2+3060::Bitte beachten Sie die enthaltenen Warnungen/Hinweise.'
3 HIRMS:4:2:4+3050::UPD nicht mehr aktuell, aktuelle Version enthalten.+3920::Zugelassene Zwei-Schritt-Verfahren für den Benutzer.:910:911+0020::Der Auftrag wurde ausgeführt.'
4 HIUPA:5:4:4+0000000000+0+0++000000000000000000000'
5 HIUPD:6:6:4+000000000::280:00000000+DE00000000000000000000+0000000000+10+EUR+NAME1++NAME2++HKSAK:1+HKISA:1+HKSSP:1+DKPAE:1+DKPSA:1+DKPSP:1+HKPAE:1+HKTSY:1+HKTAB:1+HKTAU:1+HKTAZ:1+HKSPA:1+HKCAZ:1+HKTAN:1+DKANA:1+DKANL:1+HKFRD:1+HKKDM:1+HKKAZ:1+HKSAL:1++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++{"umsltzt"?:"2016-08-23-16.48.20.988676"}'
6 HIUPD:7:6:4+000000000::280:00000000+DE00000000000000000000+0000000000+1+EUR+NAME1++NAME2++HKSAK:1+HKISA:1+HKSSP:1+DKPAE:1+DKPSA:1+DKPSP:1+HKPAE:1+HKTSY:1+HKTAB:1+HKTAU:1+HKTAZ:1+HKSPA:1+HKCAZ:1+HKCCM:1+HKCCS:1+HKCDB:1+HKCDE:1+HKCDL:1+HKCDN:1+HKCDU:1+HKCMB:1+HKCME:1+HKCML:1+HKCSA:1+HKCSB:1+HKCSE:1+HKCSL:1+HKCUB:1+HKCUM:1+HKDSB:1+HKDSW:1+HKEKA:1+HKQTG:1+HKEKP:1+HKTAN:1+DKANA:1+DKANL:1+DKALE:1+DKALL:1+DKALN:1+DKBAZ:1+DKBVK:1+DKTCK:1+DKZDF:1+DKZDL:1+HKFRD:1+HKKDM:1+HKKAZ:1+HKSAL:1+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++{"umsltzt"?:"2016-08-26-06.01.34.775823"}'
7 HIUPD:8:6:4+000000000::280:00000000+DE00000000000000000000+0000000000+1+EUR+NAME1++NAME2++HKSAK:1+HKISA:1+HKSSP:1+DKPAE:1+DKPSA:1+DKPSP:1+HKPAE:1+HKTSY:1+HKTAB:1+HKTAU:1+HKTAZ:1+HKSPA:1+HKCAZ:1+HKCCM:1+HKCCS:1+HKCDB:1+HKCDE:1+HKCDL:1+HKCDN:1+HKCDU:1+HKCMB:1+HKCME:1+HKCML:1+HKCSA:1+HKCSB:1+HKCSE:1+HKCSL:1+HKCUB:1+HKCUM:1+HKDSB:1+HKDSW:1+HKEKA:1+HKQTG:1+HKEKP:1+HKPPD:1+HKTAN:1+DKANA:1+DKANL:1+DKALE:1+DKALL:1+DKALN:1+DKBAZ:1+DKBVK:1+DKTCK:1+DKZDF:1+DKZDL:1+HKFRD:1+HKKDM:1+HKKAZ:1+HKKIF:1+HKSAL:1+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++{"umsltzt"?:"2016-08-18-20.42.10.853855"}'
8 HIUPD:9:6:4+000000000::280:00000000+DE00000000000000000000+0000000000+10+EUR+NAME1++NAME2++HKSAK:1+HKISA:1+HKSSP:1+DKPAE:1+DKPSA:1+DKPSP:1+HKPAE:1+HKTSY:1+HKTAB:1+HKTAU:1+HKTAZ:1+HKSPA:1+HKCAZ:1+HKTAN:1+DKANA:1+DKANL:1+HKFRD:1+HKKDM:1+HKKAZ:1+HKSAL:1++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++{"umsltzt"?:"2016-03-31-10.35.19.564359"}'
9 HIUPD:10:6:4+000000000::280:00000000+DE00000000000000000000+0000000000+10+EUR+NAME1++NAME2++HKSAK:1+HKISA:1+HKSSP:1+DKPAE:1+DKPSA:1+DKPSP:1+HKPAE:1+HKTSY:1+HKTAB:1+HKTAU:1+HKTAZ:1+HKSPA:1+HKCAZ:1+HKTAN:1+DKANA:1+DKANL:1+HKFRD:1+HKKDM:1+HKKAZ:1+HKSAL:1++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++{"umsltzt"?:"2016-03-31-10.35.19.564359"}'
10 HIUPD:11:6:4+000000000::280:00000000+DE00000000000000000000+0000000000+1+EUR+NAME1++NAME2++HKSAK:1+HKISA:1+HKSSP:1+DKPAE:1+DKPSA:1+DKPSP:1+HKPAE:1+HKTSY:1+HKTAB:1+HKTAU:1+HKTAZ:1+HKSPA:1+HKCAZ:1+HKCCM:1+HKCCS:1+HKCDB:1+HKCDE:1+HKCDL:1+HKCDN:1+HKCDU:1+HKCMB:1+HKCME:1+HKCML:1+HKCSA:1+HKCSB:1+HKCSE:1+HKCSL:1+HKCUB:1+HKCUM:1+HKDSB:1+HKDSW:1+HKEKA:1+HKQTG:1+HKEKP:1+HKPPD:1+HKTAN:1+DKANA:1+DKANL:1+DKALE:1+DKALL:1+DKALN:1+DKBAZ:1+DKBVK:1+DKTCK:1+DKZDF:1+DKZDL:1+HKFRD:1+HKKDM:1+HKKAZ:1+HKKIF:1+HKSAL:1+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++{"umsltzt"?:"2016-08-18-20.42.10.853855"}'
11 HNSHA:12:2+0000000000'
12 HNHBS:13:1+1'
0 HNHBK:1:3+000000001823+220+1234567890+2+1234567890:2'
1 HIRMG:2:2+0010::Nachricht entgegengenommen.'
2 HIRMS:3:2:3+0020::Sie haben 10 Dauerauftrag/Daueraufträge im Bestand.'
3 HIDAB:4:4:3+123456789:EUR:280:12345678+1234567890::280:12345678+Möller, Ralf++1,:EUR+52+000+WIRTSCHAFTSGELDUND SONSTIGE:S::+20120402+1+20080901:M:1:1'
4 HIDAB:5:4:3+123456789:EUR:280:12345678+1234567890::280:12345678+Möller, Ralf++2,:EUR+52+000+AUTO:::+20120402+3+20030601:M:1:1'
5 HIDAB:6:4:3+123456789:EUR:280:12345678+1234567890::280:12345678+Möller, Ralf++3,:EUR+52+000+HAUSKONTO:::+20120402+4+20091101:M:1:1'
6 HIDAB:7:4:3+123456789:EUR:280:12345678+1234567890::280:12345678+Möller, Ralf++4,:EUR+52+000+URLAUB:::+20120402+5+20020201:M:1:1'
7 HIDAB:8:4:3+123456789:EUR:280:12345678+1234567890::280:12345678+Möller, Ralf++5,:EUR+52+000+KLEIDER:::+20120402+6+20030601:M:1:1'
8 HIDAB:9:4:3+123456789:EUR:280:12345678+1234567890::280:12345678+Foobar AG++6,:EUR+52+000+artiges (17), easy-ms(17),:k62 (20) MX-backup Jahresg:eb}hren z.T. im Voraus:+20121101+10+20091101:M:12:1'
9 HIDAB:10:4:3+123456789:EUR:280:12345678+1234567890::280:12345678+Möller, Verena++7,:EUR+52+000+Taschengeld f}r Verena:::+20120402+11+20120101:M:1:1'
10 HIDAB:11:4:3+123456789:EUR:280:12345678+1234567890::280:12345678+Möller, Ralf++8,:EUR+52+000+Ausgleich Wohnungskonto:::+20120402+12+20120201:M:1:1'
11 HIDAB:12:4:3+123456789:EUR:280:12345678+1234567890::280:12345678+Ralf Möller++9,:EUR+52+000+Essensgeld:::+20120402+14+20090201:M:1:1'
12 HIDAB:13:4:3+123456789:EUR:280:12345678+1234567890::280:12345678+Sarah Möller++10,:EUR+52+000+Taschengeld Sarah:::+20120402+15+20120101:M:1:1'
13 HNHBS:14:1+2'
0 HNHBK:1:3+000000008501+300+123456789012345678901234567890+2+123456789012345678901234567890:2'
1 HIRMG:2:2+0010::Nachricht entgegengenommen.'
2 HIRMS:3:2:3+0020::Auftrag ausgeführt'
3 HICDB:4:1:3+DE1928020050XXXXXXXXXX:OLBODEH2XXX:XXXXXXXXXX:EUR:280:28020050+urn?:iso?:std?:iso?:20022?:tech?:xsd?:pain.001.001.03+@1141@<?xml version="1.0" encoding="UTF-8"?><Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.002.03" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.001.002.03 pain.001.002.03.xsd" ><CstmrCdtTrfInitn><GrpHdr><MsgId>0000002</MsgId><CreDtTm>2017-03-30T21:04:53.000Z</CreDtTm><NbOfTxs>1</NbOfTxs><CtrlSum>25.00</CtrlSum><InitgPty><Nm>Max Mustermannn</Nm></InitgPty></GrpHdr><PmtInf><PmtInfId>0000002</PmtInfId><PmtMtd>TRF</PmtMtd><PmtTpInf><SvcLvl><Cd>SEPA</Cd></SvcLvl></PmtTpInf><ReqdExctnDt>2017-04-15</ReqdExctnDt><Dbtr><Nm>Max Mustermannn</Nm></Dbtr><DbtrAcct><Id><IBAN>DE1234567890XXXXXXXXXX</IBAN></Id></DbtrAcct><DbtrAgt><FinInstnId><BIC>OLBODEH2XXX</BIC></FinInstnId></DbtrAgt><ChrgBr>SLEV</ChrgBr><CdtTrfTxInf><PmtId><EndToEndId>NOTPROVIDED</EndToEndId></PmtId><Amt><InstdAmt Ccy="EUR" >10.00</InstdAmt></Amt><CdtrAgt><FinInstnId><BIC>OLBODEH2XXX</BIC></FinInstnId></CdtrAgt><Cdtr><Nm>abcdefgijk</Nm></Cdtr><CdtrAcct><Id><IBAN>DE12345678901234567890</IBAN></Id></CdtrAcct><RmtInf><Ustrd>ABCDEFGHIJK</Ustrd></RmtInf></CdtTrfTxInf></PmtInf></CstmrCdtTrfInitn></Document>+0000002+20170415:M:1:15++J+N+J'
4 HICDB:5:1:3+DE1928020050XXXXXXXXXX:OLBODEH2XXX:XXXXXXXXXX:EUR:280:28020050+urn?:iso?:std?:iso?:20022?:tech?:xsd?:pain.001.001.03+@1181@<?xml version="1.0" encoding="UTF-8"?><Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.002.03" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.001.002.03 pain.001.002.03.xsd" ><CstmrCdtTrfInitn><GrpHdr><MsgId>0000004</MsgId><CreDtTm>2017-03-30T21:04:53.000Z</CreDtTm><NbOfTxs>1</NbOfTxs><CtrlSum>50.00</CtrlSum><InitgPty><Nm>Max Mustermannn</Nm></InitgPty></GrpHdr><PmtInf><PmtInfId>0000004</PmtInfId><PmtMtd>TRF</PmtMtd><PmtTpInf><SvcLvl><Cd>SEPA</Cd></SvcLvl></PmtTpInf><ReqdExctnDt>2017-04-15</ReqdExctnDt><Dbtr><Nm>Max Mustermannn</Nm></Dbtr><DbtrAcct><Id><IBAN>DE1234567890XXXXXXXXXX</IBAN></Id></DbtrAcct><DbtrAgt><FinInstnId><BIC>OLBODEH2XXX</BIC></FinInstnId></DbtrAgt><ChrgBr>SLEV</ChrgBr><CdtTrfTxInf><PmtId><EndToEndId>NOTPROVIDED</EndToEndId></PmtId><Amt><InstdAmt Ccy="EUR" >15.00</InstdAmt></Amt><CdtrAgt><FinInstnId><BIC>OLBODEH2XXX</BIC></FinInstnId></CdtrAgt><Cdtr><Nm>ABCDEFGHIJKL</Nm></Cdtr><CdtrAcct><Id><IBAN>DE12345678901234567890</IBAN></Id></CdtrAcct><RmtInf><Ustrd>Abcdhdgsjsshdjdksksjdjdkdjdjdkdkdjsjsjsksksjsksje</Ustrd></RmtInf></CdtTrfTxInf></PmtInf></CstmrCdtTrfInitn></Document>+0000004+20170415:M:1:15:20220615++J+N+J'
5 HICDB:6:1:3+DE1928020050XXXXXXXXXX:OLBODEH2XXX:XXXXXXXXXX:EUR:280:28020050+urn?:iso?:std?:iso?:20022?:tech?:xsd?:pain.001.001.03+@1160@<?xml version="1.0" encoding="UTF-8"?><Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.002.03" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.001.002.03 pain.001.002.03.xsd" ><CstmrCdtTrfInitn><GrpHdr><MsgId>0000005</MsgId><CreDtTm>2017-03-30T21:04:53.000Z</CreDtTm><NbOfTxs>1</NbOfTxs><CtrlSum>20.00</CtrlSum><InitgPty><Nm>Max Mustermannn</Nm></InitgPty></GrpHdr><PmtInf><PmtInfId>0000005</PmtInfId><PmtMtd>TRF</PmtMtd><PmtTpInf><SvcLvl><Cd>SEPA</Cd></SvcLvl></PmtTpInf><ReqdExctnDt>2017-04-15</ReqdExctnDt><Dbtr><Nm>Max Mustermannn</Nm></Dbtr><DbtrAcct><Id><IBAN>DE1234567890XXXXXXXXXX</IBAN></Id></DbtrAcct><DbtrAgt><FinInstnId><BIC>OLBODEH2XXX</BIC></FinInstnId></DbtrAgt><ChrgBr>SLEV</ChrgBr><CdtTrfTxInf><PmtId><EndToEndId>NOTPROVIDED</EndToEndId></PmtId><Amt><InstdAmt Ccy="EUR" >20.00</InstdAmt></Amt><CdtrAgt><FinInstnId><BIC>WBAGDE61XXX</BIC></FinInstnId></CdtrAgt><Cdtr><Nm>abcdefgijk</Nm></Cdtr><CdtrAcct><Id><IBAN>DE12345678901234567890</IBAN></Id></CdtrAcct><RmtInf><Ustrd>dgdhdjdsjshdhdjsieudjdjsjsksks</Ustrd></RmtInf></CdtTrfTxInf></PmtInf></CstmrCdtTrfInitn></Document>+0000005+20170415:M:1:15++J+N+J'
6 HICDB:7:1:3+DE1928020050XXXXXXXXXX:OLBODEH2XXX:XXXXXXXXXX:EUR:280:28020050+urn?:iso?:std?:iso?:20022?:tech?:xsd?:pain.001.001.03+@1156@<?xml version="1.0" encoding="UTF-8"?><Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.002.03" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.001.002.03 pain.001.002.03.xsd" ><CstmrCdtTrfInitn><GrpHdr><MsgId>0000008</MsgId><CreDtTm>2017-03-30T21:04:53.000Z</CreDtTm><NbOfTxs>1</NbOfTxs><CtrlSum>333.33</CtrlSum><InitgPty><Nm>Max Mustermannn</Nm></InitgPty></GrpHdr><PmtInf><PmtInfId>0000008</PmtInfId><PmtMtd>TRF</PmtMtd><PmtTpInf><SvcLvl><Cd>SEPA</Cd></SvcLvl></PmtTpInf><ReqdExctnDt>2017-04-01</ReqdExctnDt><Dbtr><Nm>Max Mustermannn</Nm></Dbtr><DbtrAcct><Id><IBAN>DE1234567890XXXXXXXXXX</IBAN></Id></DbtrAcct><DbtrAgt><FinInstnId><BIC>OLBODEH2XXX</BIC></FinInstnId></DbtrAgt><ChrgBr>SLEV</ChrgBr><CdtTrfTxInf><PmtId><EndToEndId>NOTPROVIDED</EndToEndId></PmtId><Amt><InstdAmt Ccy="EUR" >100.00</InstdAmt></Amt><CdtrAgt><FinInstnId><BIC>PBNKDEFFXXX</BIC></FinInstnId></CdtrAgt><Cdtr><Nm>ABCDEFGHIJ</Nm></Cdtr><CdtrAcct><Id><IBAN>DE12345678901234567890</IBAN></Id></CdtrAcct><RmtInf><Ustrd>dhdhdjdjsshdhdjksksksjds</Ustrd></RmtInf></CdtTrfTxInf></PmtInf></CstmrCdtTrfInitn></Document>+0000008+20170401:M:1:1:20190201++J+N+J'
7 HICDB:8:1:3+DE1928020050XXXXXXXXXX:OLBODEH2XXX:XXXXXXXXXX:EUR:280:28020050+urn?:iso?:std?:iso?:20022?:tech?:xsd?:pain.001.001.03+@1147@<?xml version="1.0" encoding="UTF-8"?><Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.002.03" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.001.002.03 pain.001.002.03.xsd" ><CstmrCdtTrfInitn><GrpHdr><MsgId>0000009</MsgId><CreDtTm>2017-03-30T21:04:53.000Z</CreDtTm><NbOfTxs>1</NbOfTxs><CtrlSum>100.00</CtrlSum><InitgPty><Nm>Max Mustermannn</Nm></InitgPty></GrpHdr><PmtInf><PmtInfId>0000009</PmtInfId><PmtMtd>TRF</PmtMtd><PmtTpInf><SvcLvl><Cd>SEPA</Cd></SvcLvl></PmtTpInf><ReqdExctnDt>2017-04-15</ReqdExctnDt><Dbtr><Nm>Max Mustermannn</Nm></Dbtr><DbtrAcct><Id><IBAN>DE1234567890XXXXXXXXXX</IBAN></Id></DbtrAcct><DbtrAgt><FinInstnId><BIC>OLBODEH2XXX</BIC></FinInstnId></DbtrAgt><ChrgBr>SLEV</ChrgBr><CdtTrfTxInf><PmtId><EndToEndId>NOTPROVIDED</EndToEndId></PmtId><Amt><InstdAmt Ccy="EUR" >110.00</InstdAmt></Amt><CdtrAgt><FinInstnId><BIC>OLBODEH2XXX</BIC></FinInstnId></CdtrAgt><Cdtr><Nm>ABCDEFGHIJKL</Nm></Cdtr><CdtrAcct><Id><IBAN>DE12345678901234567890</IBAN></Id></CdtrAcct><RmtInf><Ustrd>dhdjdhdjdhsks</Ustrd></RmtInf></CdtTrfTxInf></PmtInf></CstmrCdtTrfInitn></Document>+0000009+20170415:M:1:15++J+N+J'
8 HICDB:9:1:3+DE1928020050XXXXXXXXXX:OLBODEH2XXX:XXXXXXXXXX:EUR:280:28020050+urn?:iso?:std?:iso?:20022?:tech?:xsd?:pain.001.001.03+@1158@<?xml version="1.0" encoding="UTF-8"?><Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.002.03" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.001.002.03 pain.001.002.03.xsd" ><CstmrCdtTrfInitn><GrpHdr><MsgId>0000011</MsgId><CreDtTm>2017-03-30T21:04:53.000Z</CreDtTm><NbOfTxs>1</NbOfTxs><CtrlSum>58.33</CtrlSum><InitgPty><Nm>Max Mustermannn</Nm></InitgPty></GrpHdr><PmtInf><PmtInfId>0000011</PmtInfId><PmtMtd>TRF</PmtMtd><PmtTpInf><SvcLvl><Cd>SEPA</Cd></SvcLvl></PmtTpInf><ReqdExctnDt>2017-04-01</ReqdExctnDt><Dbtr><Nm>Max Mustermannn</Nm></Dbtr><DbtrAcct><Id><IBAN>DE1234567890XXXXXXXXXX</IBAN></Id></DbtrAcct><DbtrAgt><FinInstnId><BIC>OLBODEH2XXX</BIC></FinInstnId></DbtrAgt><ChrgBr>SLEV</ChrgBr><CdtTrfTxInf><PmtId><EndToEndId>NOTPROVIDED</EndToEndId></PmtId><Amt><InstdAmt Ccy="EUR" >50.00</InstdAmt></Amt><CdtrAgt><FinInstnId><BIC>PBNKDEFFXXX</BIC></FinInstnId></CdtrAgt><Cdtr><Nm>Abcdefghij</Nm></Cdtr><CdtrAcct><Id><IBAN>DE12345678901234567890</IBAN></Id></CdtrAcct><RmtInf><Ustrd>dfjdudddkjsdksksjdjdkdksmxsd</Ustrd></RmtInf></CdtTrfTxInf></PmtInf></CstmrCdtTrfInitn></Document>+0000011+20170401:M:1:1:20201001++J+N+J'
9 HNHBS:10:1+2'
0 <?xml version="1.0" encoding="UTF-8"?>
1 <Document
2 xmlns="urn:iso:std:iso:20022:tech:xsd:camt.052.001.02"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:camt.052.001.02 camt.052.001.02.xsd">
5 <BkToCstmrAcctRpt>
6 <GrpHdr>
7 <MsgId>1234567890</MsgId>
8 <CreDtTm>2018-07-23T12:43:32+01:00</CreDtTm>
9 <MsgPgntn>
10 <PgNb>1</PgNb>
11 <LastPgInd>true</LastPgInd>
12 </MsgPgntn>
13 </GrpHdr>
14 <Rpt>
15 <Id>camt052_ONLINEBA</Id>
16 <ElctrncSeqNb>00000</ElctrncSeqNb>
17 <CreDtTm>2018-07-23T12:43:32+01:00</CreDtTm>
18 <Acct>
19 <Id>
20 <IBAN>DE12345678901234567890</IBAN>
21 </Id>
22 <Ccy>EUR</Ccy>
23 <Svcr>
24 <FinInstnId>
25 <BIC>ABCDEFG1ABC</BIC>
26 <Nm>MUSTERBANK MUSTERHAUSEN</Nm>
27 <Othr>
28 <Id>DE 123456789</Id>
29 <Issr>UmsStId</Issr>
30 </Othr>
31 </FinInstnId>
32 </Svcr>
33 </Acct>
34 <Bal>
35 <Tp>
36 <CdOrPrtry>
37 <Cd>PRCD</Cd>
38 </CdOrPrtry>
39 </Tp>
40 <Amt Ccy="EUR">100.00</Amt>
41 <CdtDbtInd>CRDT</CdtDbtInd>
42 <Dt>
43 <Dt>2018-07-19</Dt>
44 </Dt>
45 </Bal>
46 <Bal>
47 <Tp>
48 <CdOrPrtry>
49 <Cd>CLBD</Cd>
50 </CdOrPrtry>
51 </Tp>
52 <Amt Ccy="EUR">110.50</Amt>
53 <CdtDbtInd>CRDT</CdtDbtInd>
54 <Dt>
55 <Dt>2018-07-20</Dt>
56 </Dt>
57 </Bal>
58
59 <Ntry>
60 <Amt Ccy="EUR">10.00</Amt>
61 <CdtDbtInd>CRDT</CdtDbtInd>
62 <Sts>BOOK</Sts>
63 <BookgDt>
64 <Dt>2018-07-20</Dt>
65 </BookgDt>
66 <ValDt>
67 <Dt>2018-07-21</Dt>
68 </ValDt>
69 <AcctSvcrRef>NONREF</AcctSvcrRef>
70 <BkTxCd />
71 <NtryDtls>
72 <TxDtls>
73 <Refs>
74 <Prtry>
75 <Tp>FI-UMSATZ-ID</Tp>
76 <Ref>2018-07-20-07.51.25.370057</Ref>
77 </Prtry>
78 </Refs>
79 <BkTxCd>
80 <Prtry>
81 <Cd>NSTO+152+9201+000</Cd>
82 <Issr>DK</Issr>
83 </Prtry>
84 </BkTxCd>
85 <RltdPties>
86 <Dbtr>
87 <Nm>Max Mustermann</Nm>
88 </Dbtr>
89 <DbtrAcct>
90 <Id>
91 <IBAN>DE12345678901234567891</IBAN>
92 </Id>
93 </DbtrAcct>
94 <Cdtr>
95 <Nm>Erika Empfaenger</Nm>
96 </Cdtr>
97 <CdtrAcct>
98 <Id>
99 <IBAN>DE12345678901234567890</IBAN>
100 </Id>
101 </CdtrAcct>
102 </RltdPties>
103 <RltdAgts>
104 <DbtrAgt>
105 <FinInstnId>
106 <BIC>ABCDEFG2ABC</BIC>
107 </FinInstnId>
108 </DbtrAgt>
109 <CdtrAgt>
110 <FinInstnId>
111 <BIC>ABCDEFG1ABC</BIC>
112 </FinInstnId>
113 </CdtrAgt>
114 </RltdAgts>
115 <Purp>
116 <Cd>RINP</Cd>
117 </Purp>
118 <RmtInf>
119 <Ustrd>Verwendungszweck 1</Ustrd>
120 </RmtInf>
121 </TxDtls>
122 </NtryDtls>
123 <AddtlNtryInf>DAUERAUFTRAG</AddtlNtryInf>
124 </Ntry>
125
126 <Ntry>
127 <Amt Ccy="EUR">0.50</Amt>
128 <CdtDbtInd>CRDT</CdtDbtInd>
129 <Sts>BOOK</Sts>
130 <BookgDt>
131 <Dt>2018-07-20</Dt>
132 </BookgDt>
133 <ValDt>
134 <Dt>2018-07-22</Dt>
135 </ValDt>
136 <AcctSvcrRef>NONREF</AcctSvcrRef>
137 <BkTxCd />
138 <NtryDtls>
139 <TxDtls>
140 <Refs>
141 <Prtry>
142 <Tp>FI-UMSATZ-ID</Tp>
143 <Ref>2018-07-20-07.51.28.370057</Ref>
144 </Prtry>
145 </Refs>
146 <BkTxCd>
147 <Prtry>
148 <Cd>NSTO+152+9201+000</Cd>
149 <Issr>DK</Issr>
150 </Prtry>
151 </BkTxCd>
152 <RltdPties>
153 <Dbtr>
154 <Nm>Bert Bezahler</Nm>
155 </Dbtr>
156 <DbtrAcct>
157 <Id>
158 <IBAN>DE12345678901234567892</IBAN>
159 </Id>
160 </DbtrAcct>
161 <Cdtr>
162 <Nm>Erika Empfaenger</Nm>
163 </Cdtr>
164 <CdtrAcct>
165 <Id>
166 <IBAN>DE12345678901234567890</IBAN>
167 </Id>
168 </CdtrAcct>
169 </RltdPties>
170 <RltdAgts>
171 <DbtrAgt>
172 <FinInstnId>
173 <BIC>ABCDEFG3ABC</BIC>
174 </FinInstnId>
175 </DbtrAgt>
176 <CdtrAgt>
177 <FinInstnId>
178 <BIC>ABCDEFG1ABC</BIC>
179 </FinInstnId>
180 </CdtrAgt>
181 </RltdAgts>
182 <Purp>
183 <Cd>DEPT</Cd>
184 </Purp>
185 <RmtInf>
186 <Ustrd>Verwendungszweck 2</Ustrd>
187 </RmtInf>
188 </TxDtls>
189 </NtryDtls>
190 <AddtlNtryInf>EINZAHLUNG</AddtlNtryInf>
191 </Ntry>
192
193 </Rpt>
194 </BkToCstmrAcctRpt>
195 </Document>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <Document
2 xmlns="urn:iso:std:iso:20022:tech:xsd:camt"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:camt.052.001.02 camt.052.001.02.xsd">
5 <BkToCstmrAcctRpt>
6 </BkToCstmrAcctRpt>
7 </Document>
0 <?xml version="1.0" encoding="UTF-8"?>
1 <Document>
2 <BkToCstmrAcctRpt>
3 </BkToCstmrAcctRpt>
4 </Document>
0 <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
1 <Document xsi:schemaLocation="urn:sepade:xsd:pain.001.001.02 pain.001.001.02.xsd"
2 xmlns="urn:sepade:xsd:pain.001.001.02" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
3 <pain.001.001.02 />
4 </Document>
0 <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
1 <Document
2 xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03 pain.001.001.03.xsd"
3 xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
4 <CstmrCdtTrfInitn />
5 </Document>
0 <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
1 <Document xsi:schemaLocation="urn:swift:xsd:$pain.001.002.02 pain.001.002.02.xsd"
2 xmlns="urn:swift:xsd:$pain.001.002.02" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
3 <pain.001.001.02 />
4 </Document>
0 <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
1 <Document
2 xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.001.002.03 pain.001.002.03.xsd"
3 xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.002.03" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
4 <CstmrCdtTrfInitn />
5 </Document>
0 <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
1 <Document
2 xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.001.003.03 pain.001.003.03.xsd"
3 xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.003.03" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
4 <CstmrCdtTrfInitn />
5 </Document>
0 <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
1 <Document
2 xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.001.003.03 pain.001.003.03.xsd"
3 xmlns="urn:iso:std:iso:20022:tech:xsd:pain" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
4 <CstmrCdtTrfInitn />
5 </Document>
0 <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
1 <Document>
2 <CstmrCdtTrfInitn />
3 </Document>