ofx160.dtd
上传用户:jingke1993
上传日期:2022-06-08
资源大小:140k
文件大小:142k
源码类别:

xml/soap/webservice

开发平台:

Visual C++

  1. <!--#version 160 -->
  2. <!--
  3.     $Revision:   1.0  $
  4.     $Date:   28 Sep 1999 10:50:36  $
  5.        
  6.  Open Financial Exchange DTD 
  7.  Copyright 1997, 1998, 1999 CheckFree Corp., Intuit Inc., Microsoft Corp.
  8.  All rights reserved
  9. -->
  10. <!-- ============================================================================= -->
  11. <!-- ENTITIES - Extensions
  12.     This entity allows users of this DTD to add new message sets
  13.     to the DTD.
  14.     
  15.     Note:  Since these entities are currently empty placeholders, they appear
  16.     at the end of lists without a preceding comma or vertical bar.  Once these
  17.     entities assume real values, a comma or vertical bar should be added
  18.     before each occurrence in a list.
  19.     In particular, new message set request and response aggregates should be
  20.     separated and preceded by a comma and must be optional (followed by a
  21.     question mark).
  22.     New message set profile aggregates should be separated and preceded by
  23.     vertical bars.
  24. -->
  25. <!-- ============================================================================= -->
  26. <!-- Add extra xxxMSGSETRQVn here -->
  27. <!ENTITY % EXTRARQMSGSETS "">
  28. <!-- Add extra xxxMSGSETRSVn here -->
  29. <!ENTITY % EXTRARSMSGSETS "">
  30. <!-- Add extra XXXMSGSET here -->
  31. <!ENTITY % EXTRAMSGSETS   "">
  32. <!-- ============================================================================= -->
  33. <!-- ENTITIES - types
  34.     This section defines entities as 'types' for all 
  35.     primitive element values.  This is the only place
  36.     that #PCDATA and #Datatype should appear.  
  37. -->
  38. <!-- ============================================================================= -->
  39. <!-- Server ID : encoding for <TOKEN>s, <SERVERTID>s, etc -->
  40. <!ENTITY % SRVRIDTYPE "(#PCDATA)" >
  41. <!--#ENTITY % SRVRIDTYPE #Datatype(A-10)-->
  42. <!-- UUID : a universal ID , up to 36 char hexadecimal -->
  43. <!-- OFX 1.5 -->
  44. <!-- Also encoding for <TOKEN2>s, <SERVERTID2>s, etc -->
  45. <!ENTITY % UUIDTYPE "(#PCDATA)" >
  46. <!--#ENTITY % UUIDTYPE #Datatype(A-36)-->
  47. <!-- Single character data -->
  48. <!ENTITY % CHARTYPE "(#PCDATA)">
  49. <!--#ENTITY % CHARTYPE #Datatype(A-1)-->
  50. <!-- URL -->
  51. <!ENTITY % URLTYPE  "(#PCDATA)">
  52. <!--#ENTITY % URLTYPE #Datatype(A-255)-->
  53. <!-- URL2 was added to OFX 1.5 to handle longer URLs -->
  54. <!ENTITY % URL2TYPE  "(#PCDATA)">
  55. <!--#ENTITY % URL2TYPE #Datatype(A-1024)-->
  56. <!-- Integer -->
  57. <!ENTITY % INTTYPE  "(#PCDATA)">
  58. <!--#ENTITY % INTTYPE #Datatype(I-4)-->
  59. <!-- Rate, percentage -->
  60. <!ENTITY % RATETYPE "(#PCDATA)">
  61. <!--#ENTITY % RATETYPE #DataType(N-32)-->
  62. <!-- Current Amount: Used for specifying an amount.
  63.  may be signed; comma or period for decimal point
  64. -->
  65. <!ENTITY % AMTTYPE  "(#PCDATA)">
  66. <!--#ENTITY % AMTTYPE #DataType(N-32)-->
  67. <!--  Date and Time: Used for specifying
  68.  the date and time. All date-time pairs
  69.  are based on local time of the server or client.
  70. -->
  71. <!ENTITY % DTTMTYPE "(#PCDATA)">
  72. <!--#ENTITY % DTTMTYPE #DataType(DATE)-->
  73. <!-- Datatype with time only, no date -->
  74. <!ENTITY % TMTYPE "(#PCDATA)">
  75. <!--#ENTITY % TMTYPE  #DataType(TIME)-->
  76. <!-- Boolean : Y/N -->
  77. <!ENTITY % BOOLTYPE "(#PCDATA)">
  78. <!--#ENTITY % BOOLTYPE #DataType(BOOL)-->
  79. <!-- a general purpose identifier type -->
  80. <!ENTITY % IDTYPE   "(#PCDATA)">
  81. <!--#ENTITY % IDTYPE #DataType(A-32)-->
  82. <!-- a general purpose name type -->
  83. <!ENTITY % GENNAMETYPE   "(#PCDATA)">
  84. <!--#ENTITY % GENNAMETYPE #DataType(A-32)-->
  85. <!-- Profile data types brought from MIFST 1.0 -->
  86. <!ENTITY % EMPTYTYPE "(#PCDATA)">
  87. <!--#ENTITY % EMPTYTYPE  #DataType(A0-0)-->
  88. <!ENTITY % STATETYPE "(#PCDATA)">
  89. <!--#ENTITY % STATETYPE  #DataType(A-5)-->
  90. <!ENTITY % APPIDTYPE "(#PCDATA)">
  91. <!--#ENTITY % APPIDTYPE #DataType(A-5)-->
  92. <!ENTITY % BANKIDTYPE "(#PCDATA)">
  93. <!--#ENTITY % BANKIDTYPE #DataType(A-9)-->
  94. <!ENTITY % RATINGTYPE "(#PCDATA)">
  95. <!--#ENTITY % RATINGTYPE #DataType(A-10)-->
  96. <!ENTITY % COUNTRYTYPE "(#PCDATA)">
  97. <!--#ENTITY % COUNTRYTYPE #DataType(A-3)-->
  98. <!ENTITY % ZIPTYPE "(#PCDATA)">
  99. <!--#ENTITY % ZIPTYPE #DataType(A-11)-->
  100. <!ENTITY % PAYEEIDTYPE "(#PCDATA)">
  101. <!--#ENTITY % PAYEEIDTYPE      #DataType(A-12)-->
  102. <!ENTITY % CHECKNUMTYPE "(#PCDATA)">
  103. <!--#ENTITY % CHECKNUMTYPE #DataType(A-12)-->
  104. <!ENTITY % NONCETYPE "(#PCDATA)">
  105. <!--#ENTITY % NONCETYPE      #DataType(A-16)-->
  106. <!ENTITY % BROKERIDTYPE "(#PCDATA)">
  107. <!--#ENTITY % BROKERIDTYPE  #DataType(A-22)-->
  108. <!ENTITY % ACCTIDTYPE "(#PCDATA)">
  109. <!--#ENTITY % ACCTIDTYPE #DataType(A-22)-->
  110. <!ENTITY % TICKERTYPE "(#PCDATA)">
  111. <!--#ENTITY % TICKERTYPE #DataType(A-32)-->
  112. <!ENTITY % FIIDTYPE "(#PCDATA)">
  113. <!--#ENTITY % FIIDTYPE #DataType(A-32)-->
  114. <!ENTITY % TYPEDESCTYPE "(#PCDATA)">
  115. <!--#ENTITY % TYPEDESCTYPE #DataType(A-32)-->
  116. <!ENTITY % PHONETYPE "(#PCDATA)">
  117. <!--#ENTITY % PHONETYPE #DataType(A-32)-->
  118. <!ENTITY % ADDRESSTYPE "(#PCDATA)">
  119. <!--#ENTITY % ADDRESSTYPE #DataType(A-32)-->
  120. <!ENTITY % OPTIONLEVELTYPE "(#PCDATA)">
  121. <!--#ENTITY % OPTIONLEVELTYPE #DataType(A-40)-->
  122. <!ENTITY % SUBJECTTYPE "(#PCDATA)">
  123. <!--#ENTITY % SUBJECTTYPE #DataType(A-60)-->
  124. <!ENTITY % FICERTIDTYPE "(#PCDATA)">
  125. <!--#ENTITY % FICERTIDTYPE #DataType(A-64)-->
  126. <!ENTITY % USERKEYTYPE "(#PCDATA)">
  127. <!--#ENTITY % USERKEYTYPE #DataType(A-64)-->
  128. <!ENTITY % SHORTMSGTYPE "(#PCDATA)">
  129. <!--#ENTITY % SHORTMSGTYPE #DataType(A-80)-->
  130. <!ENTITY % SECNAMETYPE "(#PCDATA)">
  131. <!--#ENTITY % SECNAMETYPE #DataType(A-120)-->
  132. <!ENTITY % PASSWORDTYPE "(#PCDATA)">
  133. <!--#ENTITY % PASSWORDTYPE #DataType(A-171)-->
  134. <!ENTITY % FITIDTYPE "(#PCDATA)">
  135. <!--#ENTITY % FITIDTYPE #DataType(A-255)-->
  136. <!ENTITY % MSGTYPE "(#PCDATA)">
  137. <!--#ENTITY % MSGTYPE #DataType(A-255)-->
  138. <!ENTITY % LONGMSGTYPE "(#PCDATA)">
  139. <!--#ENTITY % LONGMSGTYPE #DataType(A-2000)-->
  140. <!ENTITY % MEMO2TYPE "(#PCDATA)">
  141. <!--#ENTITY % MEMO2TYPE #DataType(A-390)-->
  142. <!ENTITY % INFOTYPE "(#PCDATA)">
  143. <!--#ENTITY % INFOTYPE #DataType(A-360)-->
  144. <!ENTITY % SESSCOOKIETYPE "(#PCDATA)">
  145. <!--#ENTITY % SESSCOOKIETYPE #DataType(A-1000)-->
  146. <!ENTITY % MSGBODYTYPE "(#PCDATA)">
  147. <!--#ENTITY % MSGBODYTYPE #DataType(R-10000)-->
  148. <!ENTITY % INVNOTYPE "(#PCDATA)">
  149. <!--#ENTITY % INVNOTYPE #DataType(A-32)-->
  150. <!ENTITY % NINSTSTYPE "(#PCDATA)">
  151. <!--#ENTITY % NINSTSTYPE #DataType(I-3)-->
  152. <!ENTITY % TEMPPASSTYPE "(#PCDATA)">
  153. <!--#ENTITY % TEMPPASSTYPE #DataType(A-32)-->
  154. <!ENTITY % DAYSPANTYPE "(#PCDATA)">
  155. <!--#ENTITY % DAYSPANTYPE #DataType(I-3)-->
  156. <!ENTITY % REFNUMTYPE "(#PCDATA)">
  157. <!--#ENTITY % REFNUMTYPE #DataType(A-32)-->
  158. <!ENTITY % MAXMINTYPE "(#PCDATA)">
  159. <!--#ENTITY % MAXMINTYPE #DataType(I-2)-->
  160. <!ENTITY % VERTYPE "(#PCDATA)">
  161. <!--#ENTITY % VERTYPE #DataType(I-5)-->
  162. <!ENTITY % SHARESPERTYPE "(#PCDATA)">
  163. <!--#ENTITY % SHARESPERTYPE #DataType(I-5)-->
  164. <!ENTITY % ERRORTYPE "(#PCDATA)">
  165. <!--#ENTITY % ERRORTYPE   #DataType(I-6)-->
  166. <!ENTITY % SICTYPE "(#PCDATA)">
  167. <!--#ENTITY % SICTYPE     #DataType(I-6)-->
  168. <!ENTITY % CUSIPTYPE "(#PCDATA)">
  169. <!--#ENTITY % CUSIPTYPE #DataType(A-32)-->
  170. <!ENTITY % EXTTYPE "(#PCDATA)">
  171. <!--#ENTITY % EXTTYPE #DataType(I-10)-->
  172. <!ENTITY % BILLREFINFOTYPE "(#PCDATA)">
  173. <!--#ENTITY % BILLREFINFOTYPE #DataType(A-80)-->
  174. <!ENTITY % BOOKINGTEXTTYPE "(#PCDATA)">
  175. <!--#ENTITY % BOOKINGTEXTTYPE #DataType(A-40)-->
  176. <!ENTITY % NAMEACCTHELDTYPE "(#PCDATA)">
  177. <!--#ENTITY % NAMEACCTHELDTYPE #DataType(A-96)-->
  178. <!ENTITY % COLUMNTYPE "(#PCDATA)">
  179. <!--#ENTITY % COLUMNTYPE #DataType(A-8)-->
  180. <!ENTITY % TANTYPE "(#PCDATA)">
  181. <!--#ENTITY % TANTYPE #DataType(A-80)-->
  182. <!ENTITY % SECUIDTYPE "(#PCDATA)">
  183. <!--#ENTITY % SECUIDTYPE  #DataType(A-10)-->
  184. <!ENTITY % EXTDPMTDSC2TYPE "(#PCDATA)">
  185. <!--#ENTITY % EXTDPMTDSC2TYPE  #DataType(A-1280)-->
  186. <!-- Country-specific data types follow -->
  187. <!ENTITY % ITACAUSALETYPE "(#PCDATA)">
  188. <!--#ENTITY % ITACAUSALETYPE #DataType(I-2)-->
  189. <!-- Enumerated data types follow-->
  190. <!ENTITY % ASSETCLASSENUM "(#PCDATA)">
  191. <!--#ENTITY % ASSETCLASSENUM #Enum("DOMESTICBOND", "INTLBOND","LARGESTOCK","SMALLSTOCK",
  192.   "INTLSTOCK","MONEYMRKT","OTHER")-->
  193. <!ENTITY % CALLTYPEENUM "(#PCDATA)">
  194. <!--#ENTITY % CALLTYPEENUM #Enum("CALL", "PUT","PREFUND","MATURITY")-->
  195. <!ENTITY % STOCKENUM "(#PCDATA)">
  196. <!--#ENTITY % STOCKENUM #Enum("COMMON", "PREFERRED","CONVERTIBLE","OTHER")-->
  197. <!ENTITY % BUYENUM "(#PCDATA)">
  198. <!--#ENTITY % BUYENUM #Enum("BUY", "BUYTOCOVER")-->
  199. <!ENTITY % INCOMEENUM "(#PCDATA)">
  200. <!--#ENTITY % INCOMEENUM #Enum("CGLONG", "CGSHORT","DIV","INTEREST", "MISC")-->
  201. <!ENTITY % OPTACTIONENUM "(#PCDATA)">
  202. <!--#ENTITY % OPTACTIONENUM #Enum("EXERCISE", "ASSIGN","EXPIRE")-->
  203. <!ENTITY % OPTBUYENUM "(#PCDATA)">
  204. <!--#ENTITY % OPTBUYENUM #Enum("BUYTOOPEN", "BUYTOCLOSE")-->
  205. <!ENTITY % OPTSELLENUM "(#PCDATA)">
  206. <!--#ENTITY % OPTSELLENUM #Enum("SELLTOOPEN", "SELLTOCLOSE")-->
  207. <!ENTITY % POSTYPEENUM "(#PCDATA)">
  208. <!--#ENTITY % POSTYPEENUM #Enum("LONG", "SHORT")-->
  209. <!ENTITY % RELATEDENUM "(#PCDATA)">
  210. <!--#ENTITY % RELATEDENUM #Enum("SPREAD", "STRADDLE","NONE","OTHER")-->
  211. <!ENTITY % SECUREDENUM "(#PCDATA)">
  212. <!--#ENTITY % SECUREDENUM #Enum("NAKED", "COVERED")-->
  213. <!ENTITY % SELLREASONENUM "(#PCDATA)">
  214. <!--#ENTITY % SELLREASONENUM #Enum("CALL", "MATURITY", "SELL")-->
  215. <!ENTITY % SELLTYPEENUM "(#PCDATA)">
  216. <!--#ENTITY % SELLTYPEENUM #Enum("SELL", "SELLSHORT")-->
  217. <!ENTITY % DURATIONENUM "(#PCDATA)">
  218. <!--#ENTITY % DURATIONENUM #Enum("DAY", "GOODTILCANCEL","IMMEDIATE")-->
  219. <!ENTITY % RESTRICTIONENUM "(#PCDATA)">
  220. <!--#ENTITY % RESTRICTIONENUM #Enum("ALLORNONE", "MINUNITS","NONE")-->
  221. <!ENTITY % INOUTENUM "(#PCDATA)">
  222. <!--#ENTITY % INOUTENUM #Enum("IN", "OUT")-->
  223. <!ENTITY % UNITTYPEENUM "(#PCDATA)">
  224. <!--#ENTITY % UNITTYPEENUM #Enum("SHARES", "CURRENCY")-->
  225. <!ENTITY % SUBACCTENUM "(#PCDATA)">
  226. <!--#ENTITY % SUBACCTENUM #Enum("CASH", "MARGIN","SHORT","OTHER")-->
  227. <!ENTITY % OPTTYPEENUM "(#PCDATA)">
  228. <!--#ENTITY % OPTTYPEENUM #Enum("CALL", "PUT")-->
  229. <!ENTITY % MFTENUM "(#PCDATA)">
  230. <!--#ENTITY % MFTENUM #Enum("OPENEND", "CLOSEEND","OTHER")-->
  231. <!ENTITY % DEBTENUM "(#PCDATA)">
  232. <!--#ENTITY % DEBTENUM #Enum("COUPON","ZERO")-->
  233. <!ENTITY % DEBTCLASSENUM "(#PCDATA)">
  234. <!--#ENTITY % DEBTCLASSENUM #Enum("TREASURY", "MUNICIPAL","CORPORATE","OTHER")-->
  235. <!ENTITY % EXTDPMTFORENUM "(#PCDATA)">
  236. <!--#ENTITY % EXTDPMTFORENUM #Enum("INDIVIDUAL","BUSINESS")-->
  237. <!ENTITY % COUPONFREQENUM "(#PCDATA)">
  238. <!--#ENTITY % COUPONFREQENUM #Enum("MONTHLY","QUARTERLY","SEMIANNUALLY","ANUALLY","OTHER")-->
  239. <!ENTITY % CHARTYPEENUM "(#PCDATA)">
  240. <!--#ENTITY % CHARTYPEENUM #Enum("ALPHAONLY","NUMERICONLY","ALPHAORNUMERIC","ALPHAANDNUMERIC")-->
  241. <!ENTITY % BALANCEENUM "(#PCDATA)">
  242. <!--#ENTITY % BALANCEENUM #Enum("DOLLAR","PERCENT","NUMBER")-->
  243. <!ENTITY % ACCOUNTENUM "(#PCDATA)">
  244. <!--#ENTITY % ACCOUNTENUM #Enum("CHECKING","SAVINGS","MONEYMRKT","CREDITLINE")-->
  245. <!ENTITY % ACCOUNTENUM2 "(#PCDATA)">
  246. <!--#ENTITY % ACCOUNTENUM2 #Enum("CHECKING","SAVINGS","MONEYMRKT","CREDITLINE","CMA")-->
  247. <!ENTITY % FREQENUM "(#PCDATA)">
  248. <!--#ENTITY % FREQENUM #Enum("WEEKLY","BIWEEKLY","TWICEMONTHLY","MONTHLY","FOURWEEKS","BIMONTHLY",
  249. "QUARTERLY","SEMIANNUALLY","TRIANNUALLY","ANUALLY")-->
  250. <!ENTITY % DAYSENUM "(#PCDATA)">
  251. <!--#ENTITY % DAYSENUM #Enum("MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY",
  252. "SATURDAY","SUNDAY")-->
  253. <!ENTITY % CLIENTROUTINGENUM "(#PCDATA)">
  254. <!--#ENTITY % CLIENTROUTINGENUM #Enum("NONE","SERVICE","MSGSET")-->
  255. <!ENTITY % XFERSTATUSENUM "(#PCDATA)">
  256. <!--#ENTITY % XFERSTATUSENUM #Enum("WILLPROCESSON","POSTEDON","NOFUNDSON", "CANCELEDON", "FAILEDON")-->
  257. <!ENTITY % TRANSACTIONENUM "(#PCDATA)">
  258. <!--#ENTITY % TRANSACTIONENUM #Enum("CREDIT","DEBIT","INT","DIV","FEE","SRVCHG","DEP","ATM",
  259.         "POS","XFER","CHECK","PAYMENT","CASH","DIRECTDEP","DIRECTDEBIT",
  260.         "REPEATPMT","OTHER")-->
  261. <!ENTITY % PMTPROCESSSTATUSENUM "(#PCDATA)">
  262. <!--#ENTITY % PMTPROCESSSTATUSENUM #Enum("WILLPROCESSON","PROCESSEDON","NOFUNDSON","FAILEDON",
  263. "CANCELEDON")-->
  264. <!ENTITY % USPRODUCTENUM "(#PCDATA)">
  265. <!--#ENTITY % USPRODUCTENUM #Enum("401K","403B","IRA","KEOGH","OTHER","SARSEP","SIMPLE","NORMAL",
  266.     "TDA","TRUST","UGMA")-->
  267. <!ENTITY % SEVERITYENUM "(#PCDATA)">
  268. <!--#ENTITY % SEVERITYENUM #Enum("INFO","WARN","ERROR")-->
  269. <!ENTITY % SECURITYENUM "(#PCDATA)">
  270. <!--#ENTITY % SECURITYENUM #Enum("NONE","TYPE1")-->
  271. <!ENTITY % SYNCENUM "(#PCDATA)">
  272. <!--#ENTITY % SYNCENUM #Enum("FULL","LITE")-->
  273. <!ENTITY % SERVICESTATUSENUM "(#PCDATA)">
  274. <!--#ENTITY % SERVICESTATUSENUM #Enum("AVAIL","PEND", "ACTIVE")-->
  275. <!ENTITY % SERVICESTATUS2ENUM "(#PCDATA)">
  276. <!--#ENTITY % SERVICESTATUS2ENUM #Enum("AVAIL","PEND", "ACTIVE", "REJECTED")-->
  277. <!ENTITY % SERVICEENUM "(#PCDATA)">
  278. <!--#ENTITY % SERVICEENUM #Enum("BANKSVC","BPSVC", "INVSVC")-->
  279. <!ENTITY % SERVICEENUM2 "(#PCDATA)">
  280. <!--#ENTITY % SERVICEENUM2 #Enum("BANKSVC","BPSVC", "INVSVC", "PRESSVC")-->
  281. <!ENTITY % CORRECTIVEACTENUM "(#PCDATA)">
  282. <!--#ENTITY % CORRECTIVEACTENUM #Enum("REPLACE","DELETE")-->
  283. <!ENTITY % CHECKSTATUSENUM "(#PCDATA)">
  284. <!--#ENTITY % CHECKSTATUSENUM #Enum("0","1","100","101")-->
  285. <!ENTITY % IDSCOPEENUM "(#PCDATA)">
  286. <!--#ENTITY % IDSCOPEENUM #Enum("GLOBAL","USER")-->
  287. <!ENTITY % INVESTMENTACCOUNTENUM "(#PCDATA)">
  288. <!--#ENTITY % INVESTMENTACCOUNTENUM #Enum("INDIVIDUAL","JOINT", "TRUST", "CORPORATE")-->
  289. <!ENTITY % PWTYPEENUM "(#PCDATA)">
  290. <!--#ENTITY % PWTYPEENUM  #Enum("FIXED","ONETIME","HWTOKEN")-->
  291. <!ENTITY % PMTINSTRUMENTENUM "(#PCDATA)">
  292. <!--#ENTITY % PMTINSTRUMENTENUM  #Enum("CONCENTRATOR","CHECKINGACCOUNT","CREDITCARD","ECOIN")-->
  293. <!ENTITY % LANGUAGEENUM "(#PCDATA)">
  294. <!--#ENTITY % LANGUAGEENUM #Enum("AAR","ABK","ACE","ACH","ADA","AFA","AFH","AFR",
  295.   "AJM","AKA","AKK","ALB","ALE","ALG","AMH","ANG",
  296. "APA","ARA","ARC","ARM","ARN","ARP","ART","ARW",
  297. "ASM","ATH","AVA","AVE","AWA","AYM","AZE","BAD",
  298. "BAI","BAK","BAL","BAM","BAN","BAQ","BAS","BAT",
  299.   "BEJ","BEL","BEM","BEN","BER","BHO","BIH","BIK",
  300. "BIN","BIS","BLA","BOD","BRA","BRE","BUG","BUL",
  301.   "BUR","CAD","CAI","CAR","CAT","CAU","CEB","CEL",
  302.   "CES","CHA","CHB","CHE","CHG","CHI","CHN","CHO",
  303. "CHR","CHU","CHV","CHY","COP","COR","COS","CPE",
  304. "CPF","CPP","CRE","CRP","CUS","CYM","CZE","DAK",
  305. "DAN","DEL","DEU","DIN","DOI","DRA","DUA","DUM",
  306. "DUT","DYU","DZO","EFI","EGY","EKA","ELL","ELX",
  307. "ENG","ENM","EPO","ESK","ESL","EST","ETH","EUS",
  308. "EWE","EWO","FAN","FAO","FAS","FAT","FIJ","FIN",
  309. "FIU","FON","FRA","FRE","FRM","FRO","FRY","FUL",
  310. "GAA","GAE","GAI","GAY","GDH","GEM","GEO","GER",
  311. "GIL","GLG","GMH","GOH","GON","GOT","GRB","GRC",
  312. "GRE","GRN","GUJ","HAI","HAU","HAW","HEB","HER",
  313. "HIL","HIM","HIN","HMO","HUN","HUP","HYE","IBA",
  314. "IBO","ICE","IJO","IKU","ILE","ILO","INA","INC",
  315. "IND","INE","IPK","IRA","IRI","IRO","ISL","ITA",
  316. "JAV","JAW","JPN","JPR","JRB","KAA","KAB","KAC",
  317. "KAL","KAM","KAN","KAR","KAS","KAT","KAU","KAW",
  318. "KAZ","KHA","KHI","KHM","KHO","KIK","KIN","KIR",
  319. "KOK","KON","KOR","KPE","KRO","KRU","KUA","KUR",
  320. "KUS","KUT","LAD","LAH","LAM","LAO","LAP","LAT",
  321. "LAV","LIN","LIT","LOL","LOZ","LUB","LUG","LUI",
  322. "LUN","LUO","MAC","MAD","MAG","MAH","MAI","MAK",
  323. "MAL","MAN","MAO","MAP","MAR","MAS","MAX","MAY",
  324. "MEN","MIC","MIN","MIS","MKE","MKH","MLG","MLT",
  325. "MNI","MNO","MOH","MOL","MON","MOS","MRI","MSA",
  326.   "MUL","MUN","MUS","MWR","MYA","MYN","NAH","NAI",
  327. "NAU","NAV","NDE","NLD","NDO","NEP","NEW","NIC",
  328. "NIU","NON","NOR","NSO","NUB","NYA","NYM","NYN",
  329. "NYO","NZI","OCI","OJI","ORI","ORM","OSA","OSS",
  330. "OTA","OTO","PAA","PAG","PAL","PAM","PAN","PAP",
  331. "PAU","PEO","PER","PLI","POL","PON","POR","PRA",
  332. "PRO","PUS","QUE","RAJ","RAR","ROA","ROH","ROM",
  333. "RON","RUM","RUN","RUS","SAD","SAG","SAI","SAL",
  334. "SAM","SAN","SCO","SCR","SEL","SEM","SHN","SID",
  335. "SIN","SIO","SIT","SLA","SLK","SLO","SLV","SMO",
  336. "SNA","SND","SOG","SOM","SON","SOT","SPA","SQI",
  337.   "SRR","SSA","SSW","SUK","SUN","SUS","SUX","SVE",
  338. "SWA","SWE","SYR","TAH","TAM","TAT","TEL","TEM",
  339. "TER","TGK","TGL","THA","TIB","TIG","TIR","TIV",
  340. "TLI","TOG","TON","TRU","TSI","TSN","TSO","TUK",
  341. "TUM","TUR","TUT","TWI","UGA","UIG","UKR","UMB",
  342. "UND","URD","UZB","VAI","VEN","VIE","VOL","VOT",
  343. "WAK","WAL","WAR","WAS","WEL","WEN","WOL","XHO",
  344. "YAO","YAP","YID","YOR","ZAP","ZEN","ZHA","ZHO",
  345. "ZUL","ZUN")-->
  346. <!ENTITY % CURRENCYENUM "(#PCDATA)">
  347. <!--#ENTITY % CURRENCYENUM #Enum("ADP","AED","AFA","ALL","ANG","AOK","ARA","ATS","AUD",
  348. "AWG","BBD","BDT","BEF","BGL","BHD","BIF","BMD","BND",
  349. "BOB","BRC","BSD","BTN","BUK","BWP","BZD","CAD","CHF",
  350. "CLF","CLP","CNY","COP","CRC","CSK","CUP","CVE","CYP",
  351. "DDM","DEM","DJF","DKK","DOP","DZD","ECS","EGP","ESP",
  352. "ETB","EUR","FIM","FJD","FKP","FRF","GBP","GHC","GIP","GMD",
  353. "GNF","GRD","GTQ","GWP","GYD","HKD","HNL","HTG","HUF",
  354. "IDR","IEP","ILS","INR","IQD","IRR","ISK","ITL","JMD",
  355. "JOD","JPY","KES","KHR","KMF","KPW","KRW","KWD","KYD",
  356. "LAK","LBP","LKR","LRD","LSL","LUF","LYD","MAD","MGF",
  357. "MNT","MOP","MRO","MTL","MUR","MVR","MWK","MXP","MYR",
  358. "MZM","NGN","NIC","NLG","NOK","NPR","NZD","OMR","PAB",
  359. "PEI","PGK","PHP","PKR","PLZ","PTE","PYG","QAR","ROL",
  360. "RWF","SAR","SBD","SCR","SDP","SEK","SGD","SHP","SLL",
  361. "SOS","SRG","STD","SUR","SVC","SYP","SZL","THB","TND",
  362. "TOP","TPE","TRL","TTD","TWD","TZS","UGS","USD","UYP",
  363. "VEB","VND","VUV","WST","YDD","YER","YUD","ZAR","ZMK",
  364. "ZRZ","ZWD")-->
  365. <!-- OFX 1.6: Add PAYEEMODPENDING to BILLPAYMSGSETV2. -->
  366. <!ENTITY % PAYEEMODENUM "(#PCDATA)">
  367. <!--#ENTITY % PAYEEMODENUM #Enum("NEVER", "IFREQUESTED")-->
  368. <!-- OFX 1.6: Add these tags to PRESLISTRQ. -->               
  369. <!ENTITY % BILLTYPEENUM "(#PCDATA)">
  370. <!--#ENTITY % BILLTYPEENUM #Enum("BILL", "STATEMENT", "NOTICE")-->
  371. <!ENTITY % BILLSTATUSCODEENUM "(#PCDATA)">
  372. <!--#ENTITY % BILLSTATUSCODEENUM #Enum("NEW", "DELIVERED", "VIEWED", "RETIRED", 
  373.                                           "WITHDRAWN", "UNDELIVERABLE")-->
  374. <!ENTITY % BILLPMTSTATUSCODEENUM "(#PCDATA)">
  375. <!--#ENTITY % BILLPMTSTATUSCODEENUM #Enum("NONE", "SCHEDULED", "PROCESSED", "POSTED", 
  376.                                           "PAIDOUTOFBAND", "AUTOPAY", "CANCELLED", 
  377.                                           "UNPAYABLE")-->
  378. <!-- OFX 1.6: New STATUSMODBY tag for the new BILLSTATUS and BILLPMTSATUS. -->
  379. <!ENTITY % STATUSMODBYENUM "(#PCDATA)">
  380. <!--#ENTITY % STATUSMODBYENUM #Enum("CUSTOMER", "CUSTAGENT", "BILLPUBLISHER", 
  381.                                       "BILLPUBLISHERSR", "PMTPROVIDER", 
  382.                                       "PMTPROVIDERSR", "BILLER", "BILLERSR")-->
  383. <!-- ============================================================================= -->
  384. <!-- ENTITIES - special characters
  385.     This section defines special characters defined in Chapter 2
  386. -->
  387. <!-- ============================================================================= -->
  388. <!-- ampersand -->
  389. <!ENTITY amp CDATA "&#38;">     
  390. <!-- greater than -->
  391. <!ENTITY gt CDATA "&#62;">
  392. <!-- less than -->
  393. <!ENTITY lt CDATA "&#60;">      
  394. <!-- ============================================================================= -->
  395. <!-- ENTITIES - macros
  396.     This section defines macros used in one or more modules
  397.     where a new level of aggregation was not desired but
  398.     common structure is present
  399. -->
  400. <!-- ============================================================================= -->
  401. <!-- Sync macros: all sync requests/responses have same form, but
  402.      have own name.  Although we could use the multiple-element syntax and put
  403.      them all here, we'd rather keep service-specific names in the service files.
  404.      Thus, we have a macro here that is trivially referenced in each service module -->
  405. <!-- OFX 1.5 -->
  406. <!-- ADDED TOKEN2 -->
  407. <!ENTITY % SYNCRQMACRO "((TOKEN | TOKEN2 | TOKENONLY | REFRESH ) 
  408.     , REJECTIFMISSING)" >   
  409. <!-- OFX 1.5 -->
  410. <!-- ADDED SYNCERROR -->
  411. <!-- ADDED TOKEN2 -->
  412. <!ENTITY % SYNCRSMACRO "((TOKEN | TOKEN2), LOSTSYNC?, SYNCERROR?)">
  413. <!-- Transaction Macro: all transaction requests have same form
  414.      but own name.  Didn't want to create a new sub-aggregate
  415.      to hold these elements so use a macro to incorporate them
  416.      into each XXXTRNRQ and XXXTRNRS -->
  417. <!ENTITY % TRNRQMACRO "(TRNUID , CLTCOOKIE?, TAN?)">
  418. <!ENTITY % TRNRSMACRO "(TRNUID , STATUS , CLTCOOKIE?)">
  419. <!-- Account from and account info: if you add a new service and it adds
  420.      a specific account from or account info aggregate, add it here so it will be
  421.      known to aggregates such as the account info request -->
  422. <!-- OFX 1.5 -->
  423. <!-- ADDED PRESACCTFROM -->
  424. <!ENTITY % ACCTFROMMACRO "(BANKACCTFROM | CCACCTFROM | INVACCTFROM| PRESACCTFROM)">
  425. <!-- OFX 1.5 -->
  426. <!-- ADDED PRESACCTTO -->
  427. <!ENTITY % ACCTTOMACRO "(BANKACCTTO | CCACCTTO | INVACCTTO | PRESACCTTO)">
  428. <!-- OFX 1.5 -->
  429. <!-- ADDED PRESACCTINFO -->
  430. <!ENTITY % ACCTINFOMACRO "(BANKACCTINFO | CCACCTINFO | BPACCTINFO | INVACCTINFO | PRESACCTINFO)">
  431.                       
  432. <!-- ============================================================================= -->
  433. <!-- Signon Message set -->
  434. <!-- Different from most: only one sonrq and at most one
  435.      pin change allowed -->
  436. <!ELEMENT (SIGNONMSGSRQV1, SIGNONMSGSRQV2)    - - (SONRQ , PINCHTRNRQ?, CHALLENGETRNRQ?)>
  437. <!ELEMENT (SIGNONMSGSRSV1, SIGNONMSGSRSV2)    - - (SONRS , PINCHTRNRS?, CHALLENGETRNRS?)>
  438. <!-- Signon message set profile entry -->
  439. <!-- OFX 1.6 correction of ordinance within profile.  OFX 1.5.1 servers are compatible with
  440.      OFX 1.0.2 clients if they comply. -->
  441. <!ELEMENT SIGNONMSGSET      - - (SIGNONMSGSETV1, SIGNONMSGSETV2?)>
  442. <!ELEMENT (SIGNONMSGSETV1, SIGNONMSGSETV2)    - - (MSGSETCORE)>
  443. <!-- Transactions -->
  444. <!ELEMENT PINCHTRNRQ    - - (%TRNRQMACRO , PINCHRQ)>
  445. <!ELEMENT CHALLENGETRNRQ    - - (%TRNRQMACRO , CHALLENGERQ)>
  446. <!ELEMENT PINCHTRNRS    - - (%TRNRSMACRO , PINCHRS?)>
  447. <!ELEMENT CHALLENGETRNRS    - - (%TRNRSMACRO , CHALLENGERS?)>
  448. <!-- Signon Request and Response -->
  449. <!-- Signon Request version 2 adds country and onetimepass for non-US -->
  450. <!-- OFX 1.5 -->
  451. <!-- ADDED ONETIMEPASS, COUNTRY -->
  452. <!-- COUNTRY was originally named COUNTSYS, until it was noticed that its data type is
  453.      the same as that for country names in addresses. Since both are based on the ISO
  454.      code for countries, the element name was changed in the signon -->
  455. <!ELEMENT SONRQ  - - (DTCLIENT , ((USERID , USERPASS, ONETIMEPASS?) | USERKEY),
  456.                          GENUSERKEY? , LANGUAGE, COUNTRY? , FI? , SESSCOOKIE? , APPID , APPVER)>
  457. <!--#ELEMENT SONRQ #Link(ONETIMEPASS,SIGNONMSGSRQV2)-->
  458. <!--#ELEMENT SONRQ #Link(COUNTRY,SIGNONMSGSRQV2)-->
  459. <!ELEMENT FI            - - (ORG , FID?)>
  460. <!ELEMENT ORG           - o %GENNAMETYPE>
  461. <!ELEMENT FID           - o %FIIDTYPE>
  462. <!-- OFX 1.5 -->
  463. <!-- ONETIMEPASS, A-32 -->
  464. <!ELEMENT ONETIMEPASS   - o %TEMPPASSTYPE>
  465. <!ELEMENT SESSCOOKIE    - o %SESSCOOKIETYPE>
  466. <!-- Signon Response version 2 adds country for non-US -->
  467. <!-- OFX 1.5 -->
  468. <!-- ADDED COUNTRY -->
  469. <!ELEMENT SONRS - - (STATUS , DTSERVER , USERKEY? , 
  470.                          TSKEYEXPIRE? , LANGUAGE, COUNTRY? ,
  471.                         DTPROFUP? , DTACCTUP? , FI?, SESSCOOKIE?)>
  472. <!--#ELEMENT SONRS #Link(COUNTRY,SIGNONMSGSRSV2)-->
  473. <!-- PIN Change request and response -->
  474. <!ELEMENT PINCHRQ   - - (USERID , NEWUSERPASS)>
  475. <!ELEMENT PINCHRS   - - (USERID , DTCHANGED?)>
  476. <!ELEMENT NEWUSERPASS - o %PASSWORDTYPE>
  477. <!ELEMENT DTCHANGED     - o %DTTMTYPE>
  478. <!-- Challenge request and response -->
  479. <!ELEMENT CHALLENGERQ   - - (USERID, FICERTID?)>
  480. <!ELEMENT CHALLENGERS   - - (USERID , NONCE, FICERTID)>
  481. <!ELEMENT NONCE  - o %NONCETYPE>
  482. <!ELEMENT FICERTID  - o %FICERTIDTYPE>
  483. <!-- ============================================================================= -->
  484. <!--            Message Entries for Message Sets                                    -->
  485. <!-- ============================================================================= -->
  486. <!-- OFX 1.6 correction of ordinance within profile.  OFX 1.5.1 servers are compatible with
  487.      OFX 1.0.2 clients if they comply. -->
  488. <!ELEMENT BANKMSGSET        - - (BANKMSGSETV1, BANKMSGSETV2*)>
  489. <!ELEMENT CREDITCARDMSGSET  - - (CREDITCARDMSGSETV1, CREDITCARDMSGSETV2*)>
  490. <!ELEMENT INTERXFERMSGSET   - - (INTERXFERMSGSETV1, INTERXFERMSGSETV2*)>
  491. <!ELEMENT WIREXFERMSGSET    - - (WIREXFERMSGSETV1, WIREXFERMSGSETV2*)>
  492. <!-- ============================================================================= -->
  493. <!--            Message Set Profile Data                                           -->
  494. <!-- ============================================================================= -->
  495. <!-- Banking Message Set -->
  496. <!ELEMENT BANKMSGSETV1 - -        
  497.                                   (MSGSETCORE , INVALIDACCTTYPE* , CLOSINGAVAIL , XFERPROF? , 
  498.                                    STPCHKPROF? , EMAILPROF)>
  499. <!ELEMENT BANKMSGSETV2 - - 
  500.                                   (MSGSETCORE , INVALIDACCTTYPE2* , CLOSINGAVAIL , XFERPROF? , 
  501.                                    STPCHKPROF? , EMAILPROF)>
  502. <!-- Credit Card Message Set -->
  503. <!ELEMENT (CREDITCARDMSGSETV1, CREDITCARDMSGSETV2)  - - (MSGSETCORE , CLOSINGAVAIL)>
  504. <!-- Interbank Transfer Message Set -->
  505. <!ELEMENT INTERXFERMSGSETV1  - - 
  506.                                  (MSGSETCORE , XFERPROF, CANBILLPAY, CANCELWND , DOMXFERFEE , 
  507.                                   INTLXFERFEE)>
  508. <!-- OFX 1.5 -->
  509. <!-- ADDED CANMULTI -->
  510. <!ELEMENT INTERXFERMSGSETV2  - - 
  511.                                  (MSGSETCORE , XFERPROF, CANBILLPAY, CANCELWND , DOMXFERFEE , 
  512.                                   INTLXFERFEE, CANMULTI)>
  513. <!-- Wire Transfer Message Set -->
  514. <!ELEMENT (WIREXFERMSGSETV1, WIREXFERMSGSETV2)  - - 
  515.                                  (MSGSETCORE , PROCDAYSOFF* , PROCENDTM , CANSCHED , DOMXFERFEE , 
  516.                                   INTLXFERFEE)>
  517. <!ELEMENT XFERPROF    - - (PROCDAYSOFF* , PROCENDTM , CANSCHED , CANRECUR , CANMODXFERS , 
  518.                            CANMODMDLS , MODELWND, DAYSWITH, DFLTDAYSTOPAY, NEEDTANTRANSFER?, SUPPORTDTAVAIL?)>
  519. <!--#ELEMENT XFERPROF #Link(NEEDTANTRANSFER,PROFMSGSRSV2)-->
  520. <!--#ELEMENT XFERPROF #Link(SUPPORTDTAVAIL,PROFMSGSRSV2)-->
  521. <!ELEMENT STPCHKPROF  - - (PROCDAYSOFF* , PROCENDTM , CANUSERANGE , CANUSEDESC, STPCHKFEE)>
  522. <!ELEMENT EMAILPROF  - - (CANEMAIL , CANNOTIFY)>
  523. <!--    Can schedule transfers -->
  524. <!ELEMENT CANSCHED - o %BOOLTYPE>
  525. <!--    Can modify pending transfers -->
  526. <!ELEMENT CANMODXFERS - o %BOOLTYPE>
  527. <!--  Can use description to stop a check -->
  528. <!ELEMENT CANUSEDESC - o %BOOLTYPE>
  529. <!--  Can use range to stop checks -->
  530. <!ELEMENT CANUSERANGE - o %BOOLTYPE>
  531. <!--    Default stop check fee -->
  532. <!ELEMENT STPCHKFEE     - o %AMTTYPE>
  533. <!--  Can handle email -->
  534. <!ELEMENT CANEMAIL - o %BOOLTYPE>
  535. <!--  Can send notifications -->
  536. <!ELEMENT CANNOTIFY - o %BOOLTYPE>
  537. <!--    Unsupported account types -->
  538. <!ELEMENT INVALIDACCTTYPE - o %ACCOUNTENUM>
  539. <!--    Unsupported account types -->
  540. <!--    OFX 1.5 -->
  541. <!--    Use INVALIDACCTTYPE2 -->
  542. <!ELEMENT INVALIDACCTTYPE2 - o %ACCOUNTENUM2>
  543. <!--  Can return closing statement info -->
  544. <!ELEMENT CLOSINGAVAIL - o %BOOLTYPE>
  545. <!--  Can use interbank transfers for bill pay -->
  546. <!ELEMENT CANBILLPAY - o %BOOLTYPE>
  547. <!-- Number of days after which a transfer is processed that it can be canceled -->
  548. <!ELEMENT CANCELWND - o %DAYSPANTYPE>
  549. <!-- Fee for sending a domestic transfer transfer -->
  550. <!ELEMENT DOMXFERFEE - o %AMTTYPE>
  551. <!-- Fee for sending an international transfer -->
  552. <!ELEMENT INTLXFERFEE - o %AMTTYPE>
  553. <!-- Can Provider do MULTIINTER -->
  554. <!ELEMENT CANMULTI - o %BOOLTYPE>
  555. <!-- If Y, TAN is required for funds xfer -->
  556. <!ELEMENT NEEDTANTRANSFER - o %BOOLTYPE>
  557. <!-- ============================================================================= -->
  558. <!--             Message Sets                                                      -->
  559. <!-- ============================================================================= -->
  560. <!-- Banking Messages Request Sets and their contained TRN requests -->
  561. <!ELEMENT (BANKMSGSRQV1, BANKMSGSRQV2) - - 
  562.                                   ((STMTTRNRQ   | STMTENDTRNRQ  | INTRATRNRQ | RECINTRATRNRQ | 
  563.                                    STPCHKTRNRQ  | BANKMAILTRNRQ | BANKMAILSYNCRQ |
  564.                                    STPCHKSYNCRQ | INTRASYNCRQ   | RECINTRASYNCRQ)+) >
  565. <!ELEMENT (CREDITCARDMSGSRQV1, CREDITCARDMSGSRQV2)  - -  
  566.                                   ((CCSTMTTRNRQ | CCSTMTENDTRNRQ)+)>
  567. <!ELEMENT (WIREXFERMSGSRQV1, WIREXFERMSGSRQV2)  - - 
  568.                                   ((WIRETRNRQ   | WIRESYNCRQ)+)>
  569. <!ELEMENT INTERXFERMSGSRQV1   - - ((INTERTRNRQ  | RECINTERTRNRQ | INTERSYNCRQ | RECINTERSYNCRQ)+)>  
  570. <!-- OFX 1.5 -->
  571. <!-- ADDED MULTIINTERTRNRQ -->
  572. <!ELEMENT INTERXFERMSGSRQV2   - - ((INTERTRNRQ  | RECINTERTRNRQ | INTERSYNCRQ | RECINTERSYNCRQ | MULTIINTERTRNRQ)+)>  
  573. <!-- Banking Message Set -->
  574. <!ELEMENT STMTTRNRQ     - - (%TRNRQMACRO , STMTRQ)>
  575. <!ELEMENT STMTENDTRNRQ  - - (%TRNRQMACRO , STMTENDRQ)>
  576. <!ELEMENT STPCHKTRNRQ   - - (%TRNRQMACRO , STPCHKRQ)>
  577. <!ELEMENT INTRATRNRQ    - - (%TRNRQMACRO , (INTRARQ | INTRAMODRQ | INTRACANRQ))>
  578. <!ELEMENT RECINTRATRNRQ - - (%TRNRQMACRO , (RECINTRARQ | RECINTRAMODRQ | RECINTRACANRQ))>
  579. <!ELEMENT BANKMAILTRNRQ - - (%TRNRQMACRO , BANKMAILRQ)>
  580. <!-- Credit Card Message Set -->
  581. <!ELEMENT CCSTMTTRNRQ      - - (%TRNRQMACRO , CCSTMTRQ)>
  582. <!ELEMENT CCSTMTENDTRNRQ   - - (%TRNRQMACRO , CCSTMTENDRQ)>
  583. <!-- Interbank Transfer Message Set -->
  584. <!ELEMENT INTERTRNRQ      - - (%TRNRQMACRO , (INTERRQ | INTERMODRQ | INTERCANRQ))>
  585. <!ELEMENT RECINTERTRNRQ   - - (%TRNRQMACRO , (RECINTERRQ | RECINTERMODRQ | RECINTERCANRQ))>
  586. <!-- OFX 1.5 -->
  587. <!-- New Aggregate -->
  588. <!ELEMENT MULTIINTERTRNRQ - - (%TRNRQMACRO , INTERRQ+)>
  589. <!-- Wire Transfer Message Set -->
  590. <!ELEMENT WIRETRNRQ     - - (%TRNRQMACRO , (WIRERQ | WIRECANRQ))>
  591. <!-- Banking Messages Response Sets and their contained TRN responses -->
  592. <!ELEMENT (BANKMSGSRSV1, BANKMSGSRSV2)  - - 
  593.                                   ((STMTTRNRS   | STMTENDTRNRS  | INTRATRNRS | RECINTRATRNRS | 
  594.                                    STPCHKTRNRS  | BANKMAILTRNRS | BANKMAILSYNCRS |
  595.                                    STPCHKSYNCRS | INTRASYNCRS   | RECINTRASYNCRS)+)>
  596. <!ELEMENT (CREDITCARDMSGSRSV1, CREDITCARDMSGSRSV2)  - - 
  597.                                   ((CCSTMTTRNRS | CCSTMTENDTRNRS)+)>
  598. <!ELEMENT (WIREXFERMSGSRSV1, WIREXFERMSGSRSV2)  - - 
  599.                                   ((WIRETRNRS   | WIRESYNCRS)+)>
  600. <!ELEMENT INTERXFERMSGSRSV1   - - ((INTERTRNRS  | RECINTERTRNRS | INTERSYNCRS | RECINTERSYNCRS)+)>  
  601. <!-- OFX 1.5 -->
  602. <!-- ADDED MULTIINTERTRNRS -->
  603. <!ELEMENT INTERXFERMSGSRSV2   - - ((INTERTRNRS  | RECINTERTRNRS | INTERSYNCRS | RECINTERSYNCRS | MULTIINTERTRNRS)+)>  
  604. <!-- Banking TRN responses -->
  605. <!-- Banking Message Set -->
  606. <!ELEMENT STMTTRNRS     - - (%TRNRSMACRO , STMTRS?)>
  607. <!ELEMENT STMTENDTRNRS  - - (%TRNRSMACRO , STMTENDRS?)>
  608. <!ELEMENT STPCHKTRNRS   - - (%TRNRSMACRO , STPCHKRS?)>
  609. <!ELEMENT INTRATRNRS    - - (%TRNRSMACRO , (INTRARS | INTRAMODRS | INTRACANRS)?)>
  610. <!ELEMENT RECINTRATRNRS - - (%TRNRSMACRO , (RECINTRARS | RECINTRAMODRS | RECINTRACANRS)?)>
  611. <!ELEMENT BANKMAILTRNRS - - (%TRNRSMACRO , (BANKMAILRS | CHKMAILRS | DEPMAILRS)?)>
  612. <!-- Credit Card Message Set -->
  613. <!ELEMENT CCSTMTTRNRS    - - (%TRNRSMACRO , CCSTMTRS?)>
  614. <!ELEMENT CCSTMTENDTRNRS - - (%TRNRSMACRO , CCSTMTENDRS?)>
  615. <!-- Interbank Transfer Message Set -->
  616. <!ELEMENT INTERTRNRS      - - (%TRNRSMACRO , (INTERRS | INTERMODRS | INTERCANRS)?)>
  617. <!ELEMENT RECINTERTRNRS   - - (%TRNRSMACRO , (RECINTERRS | RECINTERMODRS | RECINTERCANRS)?)>
  618. <!-- OFX 1.6 correction.  All previous DTD versions required one or more INTERRS
  619.      aggregates, preventing normal error handling. -->
  620. <!ELEMENT MULTIINTERTRNRS - - (%TRNRSMACRO , INTERRS*)>
  621. <!-- Wire Transfer Message Set -->
  622. <!ELEMENT WIRETRNRS     - - (%TRNRSMACRO , (WIRERS | WIRECANRS)?)>
  623. <!-- ============================================================================= -->
  624. <!--            Requests                                                           -->
  625. <!-- ============================================================================= -->
  626. <!-- statement request -->
  627. <!ELEMENT STMTRQ - - (BANKACCTFROM , INCTRAN?)>
  628. <!-- credit card statement request -->
  629. <!ELEMENT CCSTMTRQ - - (CCACCTFROM , INCTRAN?)>
  630. <!-- closing statement request request -->
  631. <!ELEMENT STMTENDRQ - - (BANKACCTFROM , DTSTART? , DTEND?)>
  632. <!-- credit card closing statement request  -->
  633. <!ELEMENT CCSTMTENDRQ - - (CCACCTFROM , DTSTART? , DTEND?)>
  634. <!-- stop check request -->
  635. <!ELEMENT STPCHKRQ - - (BANKACCTFROM , (CHKRANGE|CHKDESC))> 
  636. <!-- intrabank transfer request -->
  637. <!ELEMENT INTRARQ - - (XFERINFO)>
  638. <!-- intrabank transfer modification request -->
  639. <!-- version 2 uses SRVRTID2, version 1 SRVRTID -->
  640. <!-- OFX 1.5 -->
  641. <!ELEMENT INTRAMODRQ - - ((SRVRTID|SRVRTID2), XFERINFO)> 
  642. <!--#ELEMENT INTRAMODRQ #Link(SRVRTID,BANKMSGSRQV1)-->
  643. <!--#ELEMENT INTRAMODRQ #Link(SRVRTID2,BANKMSGSRQV2)-->
  644. <!-- intrabank transfer cancellation request -->
  645. <!-- version 2 uses SRVRTID2, version 1 SRVRTID -->
  646. <!-- OFX 1.5 -->
  647. <!ELEMENT INTRACANRQ - - (SRVRTID|SRVRTID2)>
  648. <!--#ELEMENT INTRACANRQ #Link(SRVRTID,BANKMSGSRQV1)-->
  649. <!--#ELEMENT INTRACANRQ #Link(SRVRTID2,BANKMSGSRQV2)-->
  650. <!-- interbank transfer request -->
  651. <!ELEMENT INTERRQ - - (XFERINFO)> 
  652. <!-- interbank transfer modification request -->
  653. <!-- version 2 uses SRVRTID2, version 1 SRVRTID -->
  654. <!-- OFX 1.5 -->
  655. <!ELEMENT INTERMODRQ - - ((SRVRTID|SRVRTID2) , XFERINFO )>
  656. <!--#ELEMENT INTERMODRQ #Link(SRVRTID,INTERXFERMSGSRQV1)-->
  657. <!--#ELEMENT INTERMODRQ #Link(SRVRTID2,INTERXFERMSGSRQV2)-->
  658. <!-- interbank transfer cancellation request -->
  659. <!-- version 2 uses SRVRTID2, version 1 SRVRTID -->
  660. <!-- OFX 1.5 -->
  661. <!ELEMENT INTERCANRQ - - (SRVRTID|SRVRTID2)>
  662. <!--#ELEMENT INTERCANRQ #Link(SRVRTID,INTERXFERMSGSRQV1)-->
  663. <!--#ELEMENT INTERCANRQ #Link(SRVRTID2,INTERXFERMSGSRQV2)-->
  664. <!-- wire transfer request -->
  665. <!ELEMENT WIRERQ - - (BANKACCTFROM , WIREBENEFICIARY , WIREDESTBANK? , TRNAMT , DTDUE? , PAYINSTRUCT?)> 
  666. <!-- wire transfer cancellation request -->
  667. <!-- version 2 uses SRVRTID2, version 1 SRVRTID -->
  668. <!-- OFX 1.5 -->
  669. <!ELEMENT WIRECANRQ - - (SRVRTID|SRVRTID2)>
  670. <!--#ELEMENT WIRECANRQ #Link(SRVRTID,WIREXFERMSGSRQV1)-->
  671. <!--#ELEMENT WIRECANRQ #Link(SRVRTID2,WIREXFERMSGSRQV2)-->
  672. <!-- recurring intra transfer request -->
  673. <!ELEMENT RECINTRARQ - - (RECURRINST ,  (INTRARQ | XFERINFO) )>
  674. <!--#ELEMENT RECINTRARQ #Link(INTRARQ,BANKMSGSRQV1)-->
  675. <!--#ELEMENT RECINTRARQ #Link(XFERINFO,BANKMSGSRQV2)-->
  676. <!-- recurring intra transfer modification request -->
  677. <!ELEMENT RECINTRAMODRQ - - ((RECSRVRTID | RECSRVRTID2), RECURRINST ,  (INTRARQ | XFERINFO), MODPENDING)>
  678. <!--#ELEMENT RECINTRAMODRQ #Link(RECSRVRTID,BANKMSGSRQV1)-->
  679. <!--#ELEMENT RECINTRAMODRQ #Link(RECSRVRTID2,BANKMSGSRQV2)-->
  680. <!--#ELEMENT RECINTRAMODRQ #Link(INTRARQ,BANKMSGSRQV1)-->
  681. <!--#ELEMENT RECINTRAMODRQ #Link(XFERINFO,BANKMSGSRQV2)-->
  682. <!-- recurring intra transfer cancellation request -->
  683. <!ELEMENT RECINTRACANRQ - - ((RECSRVRTID | RECSRVRTID2), CANPENDING)>
  684. <!--#ELEMENT RECINTRACANRQ #Link(RECSRVRTID,BANKMSGSRQV1)-->
  685. <!--#ELEMENT RECINTRACANRQ #Link(RECSRVRTID2,BANKMSGSRQV2)-->
  686. <!-- recurring inter transfer request -->
  687. <!ELEMENT RECINTERRQ - - (RECURRINST , (INTERRQ | XFERINFO) )>
  688. <!--#ELEMENT RECINTERRQ #Link(INTERRQ,INTERXFERMSGSRQV1)-->
  689. <!--#ELEMENT RECINTERRQ #Link(XFERINFO, INTERXFERMSGSRQV2)-->
  690. <!-- recurring inter transfer modification request -->
  691. <!ELEMENT RECINTERMODRQ - - ((RECSRVRTID | RECSRVRTID2), RECURRINST , (INTERRQ | XFERINFO), MODPENDING)>
  692. <!--#ELEMENT RECINTERMODRQ #Link(RECSRVRTID, INTERXFERMSGSRQV1)-->
  693. <!--#ELEMENT RECINTERMODRQ #Link(RECSRVRTID2, INTERXFERMSGSRQV2)-->
  694. <!--#ELEMENT RECINTERMODRQ #Link(INTERRQ,INTERXFERMSGSRQV1)-->
  695. <!--#ELEMENT RECINTERMODRQ #Link(XFERINFO, INTERXFERMSGSRQV2)-->
  696. <!-- recurring inter transfer cancellation request -->
  697. <!ELEMENT RECINTERCANRQ - - ((RECSRVRTID | RECSRVRTID2), CANPENDING)> 
  698. <!--#ELEMENT RECINTERCANRQ #Link(RECSRVRTID, INTERXFERMSGSRQV1)-->
  699. <!--#ELEMENT RECINTERCANRQ #Link(RECSRVRTID2, INTERXFERMSGSRQV2)-->
  700. <!-- bank mail request -->
  701. <!ELEMENT BANKMAILRQ - - ((BANKACCTFROM | CCACCTFROM) , MAIL)>
  702. <!-- ============================================================================= -->
  703. <!--            Synchronization                                                    -->
  704. <!-- ============================================================================= -->
  705. <!-- stop check synchronization request -->
  706. <!ELEMENT STPCHKSYNCRQ - - (%SYNCRQMACRO , BANKACCTFROM, STPCHKTRNRQ*)>
  707. <!--#ELEMENT STPCHKSYNCRQ #Link(TOKEN,BANKMSGSRQV1)-->
  708. <!--#ELEMENT STPCHKSYNCRQ #Link(TOKEN2,BANKMSGSRQV2)-->
  709. <!-- intrabank transfer sychronization request, v2 adds ccacctfrom -->
  710. <!-- OFX 1.5 -->
  711. <!-- FROM BANKACCTFROM to (BANKACCTFROM | CCACCTFROM) -->
  712. <!ELEMENT INTRASYNCRQ - - (%SYNCRQMACRO , (BANKACCTFROM | CCACCTFROM), INTRATRNRQ*)>
  713. <!--#ELEMENT INTRASYNCRQ #Link(CCACCTFROM,BANKMSGSRQV2)-->
  714. <!--#ELEMENT INTRASYNCRQ #Link(TOKEN,BANKMSGSRQV1)-->
  715. <!--#ELEMENT INTRASYNCRQ #Link(TOKEN2,BANKMSGSRQV2)-->
  716. <!-- interbank transfer synchronization request, v2 adds ccacctfrom -->
  717. <!-- OFX 1.5 -->
  718. <!-- FROM BANKACCTFROM to (BANKACCTFROM | CCACCTFROM) -->
  719. <!-- FROM INTERTRNRQ to (INTERTRNRQ | MULTIINTERTRNRQ) -->
  720. <!ELEMENT INTERSYNCRQ - - (%SYNCRQMACRO , (BANKACCTFROM | CCACCTFROM), (INTERTRNRQ | MULTIINTERTRNRQ)*)>
  721. <!--#ELEMENT INTERSYNCRQ #Link(CCACCTFROM,INTERXFERMSGSRQV2)-->
  722. <!--#ELEMENT INTERSYNCRQ #Link(MULTIINTERTRNRQ,INTERXFERMSGSRQV2)-->
  723. <!--#ELEMENT INTERSYNCRQ #Link(TOKEN,INTERXFERMSGSRQV1)-->
  724. <!--#ELEMENT INTERSYNCRQ #Link(TOKEN2,INTERXFERMSGSRQV2)-->
  725. <!-- wire transfer synchronization request -->
  726. <!ELEMENT WIRESYNCRQ - - (%SYNCRQMACRO , BANKACCTFROM, WIRETRNRQ*)>
  727. <!--#ELEMENT WIRESYNCRQ #Link(TOKEN,WIREXFERMSGSRQV1)-->
  728. <!--#ELEMENT WIRESYNCRQ #Link(TOKEN2,WIREXFERMSGSRQV2)-->
  729.          
  730. <!--
  731.   recurring intra transfer synchronization request, 
  732.   for transactions <RECINTRARQ>,<RECINTRAMODRQ>, and/or <RECINTRACANRQ>
  733.   v2 adds ccacctfrom
  734. -->
  735. <!-- OFX 1.5 -->
  736. <!-- FROM BANKACCTFROM to (BANKACCTFROM | CCACCTFROM) -->
  737. <!ELEMENT RECINTRASYNCRQ - - (%SYNCRQMACRO, (BANKACCTFROM | CCACCTFROM), RECINTRATRNRQ*)>
  738. <!--#ELEMENT RECINTRASYNCRQ #Link(CCACCTFROM,BANKMSGSRQV2)-->
  739. <!--#ELEMENT RECINTRASYNCRQ #Link(TOKEN,BANKMSGSRQV1)-->
  740. <!--#ELEMENT RECINTRASYNCRQ #Link(TOKEN2,BANKMSGSRQV2)-->
  741. <!--
  742.   recurring inter transfer synchronization request, 
  743.   for transactions <RECINTERRQ>,<RECINTERMODRQ>, and/or <RECINTERCANRQ>
  744.   v2 adds ccacctfrom
  745. -->
  746. <!-- OFX 1.5 -->
  747. <!-- FROM BANKACCTFROM to (BANKACCTFROM | CCACCTFROM) -->
  748. <!ELEMENT RECINTERSYNCRQ - - (%SYNCRQMACRO, (BANKACCTFROM | CCACCTFROM), RECINTERTRNRQ*)>
  749. <!--#ELEMENT RECINTERSYNCRQ #Link(CCACCTFROM,INTERXFERMSGSRQV2)-->
  750. <!--#ELEMENT RECINTERSYNCRQ #Link(TOKEN,INTERXFERMSGSRQV1)-->
  751. <!--#ELEMENT RECINTERSYNCRQ #Link(TOKEN2,INTERXFERMSGSRQV2)-->
  752. <!-- bank mail synchronization request -->
  753. <!ELEMENT BANKMAILSYNCRQ - - (%SYNCRQMACRO , INCIMAGES, USEHTML, (BANKACCTFROM | CCACCTFROM), BANKMAILTRNRQ*)>
  754. <!--#ELEMENT BANKMAILSYNCRQ #Link(TOKEN,BANKMSGSRQV1)-->
  755. <!--#ELEMENT BANKMAILSYNCRQ #Link(TOKEN2,BANKMSGSRQV2)-->
  756. <!-- ============================================================================= -->
  757. <!--            Responses                                                          -->
  758. <!-- ============================================================================= -->
  759. <!-- statement response -->
  760. <!ELEMENT STMTRS - - (CURDEF , BANKACCTFROM , BANKTRANLIST? , LEDGERBAL , AVAILBAL? , MKTGINFO?)>
  761. <!-- credit card statement response -->
  762. <!ELEMENT CCSTMTRS - - (CURDEF , CCACCTFROM , BANKTRANLIST? , LEDGERBAL , AVAILBAL? , MKTGINFO?)>
  763. <!-- closing info response -->
  764. <!ELEMENT STMTENDRS - - (CURDEF , BANKACCTFROM , CLOSING*)>
  765. <!-- credit card closing info response -->
  766. <!ELEMENT CCSTMTENDRS - - (CURDEF , CCACCTFROM , CCCLOSING*)>
  767. <!-- stop check response -->
  768. <!ELEMENT STPCHKRS - - (CURDEF , BANKACCTFROM , STPCHKNUM+,
  769.                         FEE, FEEMSG)>
  770.  
  771. <!-- intrabank transfer response -->
  772. <!-- version 2 uses SRVRTID2, version 1 SRVRTID -->
  773. <!-- OFX 1.5 -->
  774. <!ELEMENT INTRARS - - (CURDEF , (SRVRTID | SRVRTID2), XFERINFO , (DTXFERPRJ|DTPOSTED)? , (RECSRVRTID | RECSRVRTID2)?, XFERPRCSTS?)>
  775. <!--#ELEMENT INTRARS #Link(SRVRTID,BANKMSGSRSV1)-->
  776. <!--#ELEMENT INTRARS #Link(SRVRTID2,BANKMSGSRSV2)-->
  777. <!--#ELEMENT INTRARS #Link(RECSRVRTID,BANKMSGSRSV1)-->
  778. <!--#ELEMENT INTRARS #Link(RECSRVRTID2,BANKMSGSRSV2)-->
  779. <!-- intrabank transfer modification response -->
  780. <!-- version 2 uses SRVRTID2, version 1 SRVRTID -->
  781. <!-- OFX 1.5 -->
  782. <!ELEMENT INTRAMODRS - - ((SRVRTID | SRVRTID2), XFERINFO , XFERPRCSTS?)>
  783. <!--#ELEMENT INTRAMODRS #Link(SRVRTID,BANKMSGSRSV1)-->
  784. <!--#ELEMENT INTRAMODRS #Link(SRVRTID2,BANKMSGSRSV2)-->
  785. <!-- intrabank transfer transfer cancellation response -->
  786. <!-- version 2 uses SRVRTID2, version 1 SRVRTID -->
  787. <!-- OFX 1.5 -->
  788. <!ELEMENT INTRACANRS - - (SRVRTID|SRVRTID2)>
  789. <!--#ELEMENT INTRACANRS #Link(SRVRTID,BANKMSGSRSV1)-->
  790. <!--#ELEMENT INTRACANRS #Link(SRVRTID2,BANKMSGSRSV2)-->
  791. <!-- interbank transfer response -->
  792. <!-- version 2 uses SRVRTID2, version 1 SRVRTID -->
  793. <!-- OFX 1.5 -->
  794. <!ELEMENT INTERRS - - (CURDEF , (SRVRTID | SRVRTID2), XFERINFO,
  795.                       (DTXFERPRJ|DTPOSTED)? , REFNUM? , (RECSRVRTID | RECSRVRTID2)?, XFERPRCSTS?)>
  796. <!--#ELEMENT INTERRS #Link(SRVRTID,INTERXFERMSGSRSV1)-->
  797. <!--#ELEMENT INTERRS #Link(SRVRTID2,INTERXFERMSGSRSV2)-->
  798. <!--#ELEMENT INTERRS #Link(RECSRVRTID,INTERXFERMSGSRSV1)-->
  799. <!--#ELEMENT INTERRS #Link(RECSRVRTID2,INTERXFERMSGSRSV2)-->
  800. <!-- interbank transfer modification response -->
  801. <!-- version 2 uses SRVRTID2, version 1 SRVRTID -->
  802. <!-- OFX 1.5 -->
  803. <!ELEMENT INTERMODRS - - ((SRVRTID | SRVRTID2), XFERINFO, XFERPRCSTS?)>
  804. <!--#ELEMENT INTERMODRS #Link(SRVRTID,INTERXFERMSGSRSV1)-->
  805. <!--#ELEMENT INTERMODRS #Link(SRVRTID2,INTERXFERMSGSRSV2)-->
  806. <!-- interbank transfer cancellation request -->
  807. <!-- version 2 uses SRVRTID2, version 1 SRVRTID -->
  808. <!-- OFX 1.5 -->
  809. <!ELEMENT INTERCANRS - - (SRVRTID|SRVRTID2)>
  810. <!--#ELEMENT INTERCANRS #Link(SRVRTID,INTERXFERMSGSRSV1)-->
  811. <!--#ELEMENT INTERCANRS #Link(SRVRTID2,INTERXFERMSGSRSV2)-->
  812. <!-- wire transfer response -->
  813. <!-- version 2 uses SRVRTID2, version 1 SRVRTID -->
  814. <!-- OFX 1.5 -->
  815. <!ELEMENT WIRERS - - (CURDEF , (SRVRTID | SRVRTID2), BANKACCTFROM , WIREBENEFICIARY ,
  816.                       WIREDESTBANK? , TRNAMT , DTDUE? , PAYINSTRUCT? , (DTXFERPRJ|DTPOSTED)? , FEE? , CONFMSG?)>
  817. <!--#ELEMENT WIRERS #Link(SRVRTID,WIREXFERMSGSRSV1)-->
  818. <!--#ELEMENT WIRERS #Link(SRVRTID2,WIREXFERMSGSRSV2)-->
  819. <!-- wire transfer cancellation request -->
  820. <!-- version 2 uses SRVRTID2, version 1 SRVRTID -->
  821. <!-- OFX 1.5 -->
  822. <!ELEMENT WIRECANRS - - (SRVRTID|SRVRTID2)>
  823. <!--#ELEMENT WIRECANRS #Link(SRVRTID,WIREXFERMSGSRSV1)-->
  824. <!--#ELEMENT WIRECANRS #Link(SRVRTID2,WIREXFERMSGSRSV2)-->
  825. <!-- recurring intra transfer response -->
  826. <!ELEMENT RECINTRARS - - ((RECSRVRTID | RECSRVRTID2), RECURRINST , (INTRARS | XFERINFO) )>
  827. <!--#ELEMENT RECINTRARS #Link(RECSRVRTID,BANKMSGSRSV1)-->
  828. <!--#ELEMENT RECINTRARS #Link(RECSRVRTID2,BANKMSGSRSV2)-->
  829. <!--#ELEMENT RECINTRARS #Link(INTRARS,BANKMSGSRSV1)-->
  830. <!--#ELEMENT RECINTRARS #Link(XFERINFO,BANKMSGSRSV2)-->
  831. <!-- recurring intra transfer modification request -->
  832. <!ELEMENT RECINTRAMODRS - - ((RECSRVRTID | RECSRVRTID2), RECURRINST , (INTRARS | XFERINFO) , MODPENDING)>
  833. <!--#ELEMENT RECINTRAMODRS #Link(RECSRVRTID,BANKMSGSRSV1)-->
  834. <!--#ELEMENT RECINTRAMODRS #Link(RECSRVRTID2,BANKMSGSRSV2)-->
  835. <!--#ELEMENT RECINTRAMODRS #Link(INTRARS,BANKMSGSRSV1)-->
  836. <!--#ELEMENT RECINTRAMODRS #Link(XFERINFO,BANKMSGSRSV2)-->
  837. <!-- recurring intra transfer cancellation response -->
  838. <!ELEMENT RECINTRACANRS - - ((RECSRVRTID | RECSRVRTID2), CANPENDING)>
  839. <!--#ELEMENT RECINTRACANRS #Link(RECSRVRTID,BANKMSGSRSV1)-->
  840. <!--#ELEMENT RECINTRACANRS #Link(RECSRVRTID2,BANKMSGSRSV2)-->
  841. <!-- recurring inter transfer response -->
  842. <!ELEMENT RECINTERRS - - ((RECSRVRTID | RECSRVRTID2), RECURRINST , (INTERRS | XFERINFO) )>
  843. <!--#ELEMENT RECINTERRS #Link(RECSRVRTID,INTERXFERMSGSRSV1)-->
  844. <!--#ELEMENT RECINTERRS #Link(RECSRVRTID2,INTERXFERMSGSRSV2)-->
  845. <!--#ELEMENT RECINTERRS #Link(INTERRS,INTERXFERMSGSRSV1)-->
  846. <!--#ELEMENT RECINTERRS #Link(XFERINFO,INTERXFERMSGSRSV2)-->
  847. <!-- recurring inter transfer modification request -->
  848. <!ELEMENT RECINTERMODRS - - ((RECSRVRTID | RECSRVRTID2), RECURRINST , (INTERRS | XFERINFO) , MODPENDING)>
  849. <!--#ELEMENT RECINTERMODRS #Link(RECSRVRTID,INTERXFERMSGSRSV1)-->
  850. <!--#ELEMENT RECINTERMODRS #Link(RECSRVRTID2,INTERXFERMSGSRSV2)-->
  851. <!--#ELEMENT RECINTERMODRS #Link(INTERRS,INTERXFERMSGSRSV1)-->
  852. <!--#ELEMENT RECINTERMODRS #Link(XFERINFO,INTERXFERMSGSRSV2)-->
  853. <!-- recurring inter transfer cancellation response -->
  854. <!ELEMENT RECINTERCANRS - - ((RECSRVRTID | RECSRVRTID2), CANPENDING)>
  855. <!--#ELEMENT RECINTERCANRS #Link(RECSRVRTID,INTERXFERMSGSRSV1)-->
  856. <!--#ELEMENT RECINTERCANRS #Link(RECSRVRTID2,INTERXFERMSGSRSV2)-->
  857. <!-- bank mail response -->
  858. <!ELEMENT BANKMAILRS - - ((BANKACCTFROM | CCACCTFROM) , MAIL)>
  859. <!-- returned check mail response -->
  860. <!ELEMENT CHKMAILRS - - (BANKACCTFROM , MAIL , CHECKNUM , TRNAMT? , DTUSER? , FEE?)>
  861. <!-- returned deposit mail response -->
  862. <!ELEMENT DEPMAILRS - - (BANKACCTFROM , MAIL , TRNAMT , DTUSER? , FEE?)>
  863. <!-- stop check synchronization request -->
  864. <!ELEMENT STPCHKSYNCRS - - (%SYNCRSMACRO , BANKACCTFROM,  STPCHKTRNRS*)>
  865. <!--#ELEMENT STPCHKSYNCRS #Link(TOKEN,BANKMSGSRSV1)-->
  866. <!--#ELEMENT STPCHKSYNCRS #Link(TOKEN2,BANKMSGSRSV2)-->
  867. <!--#ELEMENT STPCHKSYNCRS #Link(SYNCERROR,BANKMSGSRSV2)-->
  868. <!-- intrabank transfer synchronization request, v2 adds ccacctfrom -->
  869. <!-- OFX 1.5 -->
  870. <!-- FROM BANKACCTFROM to (BANKACCTFROM | CCACCTFROM) -->
  871. <!ELEMENT INTRASYNCRS - - (%SYNCRSMACRO , (BANKACCTFROM | CCACCTFROM), INTRATRNRS*)>
  872. <!--#ELEMENT INTRASYNCRS #Link(CCACCTFROM,BANKMSGSRSV2)-->
  873. <!--#ELEMENT INTRASYNCRS #Link(TOKEN,BANKMSGSRSV1)-->
  874. <!--#ELEMENT INTRASYNCRS #Link(TOKEN2,BANKMSGSRSV2)-->
  875. <!--#ELEMENT INTRASYNCRS #Link(SYNCERROR,BANKMSGSRSV2)-->
  876. <!-- interbank transfer synchronization request, v2 adds ccacctfrom -->
  877. <!-- OFX 1.5 -->
  878. <!-- FROM BANKACCTFROM to (BANKACCTFROM | CCACCTFROM) -->
  879. <!-- FROM INTERTRNRS to (INTERTRNRS | MULTIINTERTRNRS) -->
  880. <!ELEMENT INTERSYNCRS - - (%SYNCRSMACRO , (BANKACCTFROM | CCACCTFROM), (INTERTRNRS | MULTIINTERTRNRS)*)>
  881. <!--#ELEMENT INTERSYNCRS #Link(CCACCTFROM,INTERXFERMSGSRSV2)-->
  882. <!--#ELEMENT INTERSYNCRS #Link(TOKEN,INTERXFERMSGSRSV1)-->
  883. <!--#ELEMENT INTERSYNCRS #Link(TOKEN2,INTERXFERMSGSRSV2)-->
  884. <!--#ELEMENT INTERSYNCRS #Link(SYNCERROR,INTERXFERMSGSRSV2)-->
  885. <!-- wire transfer synchronization request -->
  886. <!-- OFX 1.5 -->
  887. <!-- FROM BANKACCTFROM to (BANKACCTFROM | CCACCTFROM) -->
  888. <!ELEMENT WIRESYNCRS - - (%SYNCRSMACRO , BANKACCTFROM, WIRETRNRS*)>
  889. <!--#ELEMENT WIRESYNCRS #Link(TOKEN,WIREXFERMSGSRSV1)-->
  890. <!--#ELEMENT WIRESYNCRS #Link(TOKEN2,WIREXFERMSGSRSV2)-->
  891. <!--#ELEMENT WIRESYNCRS #Link(SYNCERROR,WIREXFERMSGSRSV2)-->
  892. <!-- 
  893.   recurring intra transfer synchronization request, 
  894.   for transactions <RECINTRARS>,<RECINTRARS>, and/or <RECINTRACANRS>
  895.   v2 adds ccacctfrom  
  896. -->
  897. <!-- OFX 1.5 -->
  898. <!-- FROM BANKACCTFROM to (BANKACCTFROM | CCACCTFROM) -->
  899. <!ELEMENT RECINTRASYNCRS - - (%SYNCRSMACRO , (BANKACCTFROM | CCACCTFROM), RECINTRATRNRS*)>
  900. <!--#ELEMENT RECINTRASYNCRS #Link(CCACCTFROM,BANKMSGSRSV2)-->
  901. <!--#ELEMENT RECINTRASYNCRS #Link(TOKEN,BANKMSGSRSV1)-->
  902. <!--#ELEMENT RECINTRASYNCRS #Link(TOKEN2,BANKMSGSRSV2)-->
  903. <!--#ELEMENT RECINTRASYNCRS #Link(SYNCERROR,BANKMSGSRSV2)-->
  904. <!-- 
  905.   recurring inter transfer synchronization request, 
  906.   for transactions <RECINTERRS>,<RECINTERRS>, and/or <RECINTERCANRS>
  907.   v2 adds ccacctfrom
  908. -->
  909. <!-- OFX 1.5 -->
  910. <!-- FROM BANKACCTFROM to (BANKACCTFROM | CCACCTFROM) -->
  911. <!ELEMENT RECINTERSYNCRS - - (%SYNCRSMACRO , (BANKACCTFROM | CCACCTFROM), RECINTERTRNRS*)>
  912. <!--#ELEMENT RECINTERSYNCRS #Link(CCACCTFROM,INTERXFERMSGSRSV2)-->
  913. <!--#ELEMENT RECINTERSYNCRS #Link(TOKEN,INTERXFERMSGSRSV1)-->
  914. <!--#ELEMENT RECINTERSYNCRS #Link(TOKEN2,INTERXFERMSGSRSV2)-->
  915. <!--#ELEMENT RECINTERSYNCRS #Link(SYNCERROR,INTERXFERMSGSRSV2)-->
  916. <!-- BANK MAIL synchronization request -->
  917. <!ELEMENT BANKMAILSYNCRS - - (%SYNCRSMACRO , (BANKACCTFROM | CCACCTFROM), BANKMAILTRNRS*)>
  918. <!--#ELEMENT BANKMAILSYNCRS #Link(TOKEN,BANKMSGSRSV1)-->
  919. <!--#ELEMENT BANKMAILSYNCRS #Link(TOKEN2,BANKMSGSRSV2)-->
  920. <!--#ELEMENT BANKMAILSYNCRS #Link(SYNCERROR,BANKMSGSRSV2)-->
  921. <!-- ============================================================================= -->
  922. <!--            Aggregates                                                         -->
  923. <!-- ============================================================================= -->
  924. <!-- BANKACCTINFO CCACCTINFO -->
  925. <!ELEMENT BANKACCTINFO  - - (BANKACCTFROM ,
  926.                              SUPTXDL, XFERSRC, XFERDEST, (SVCSTATUS|SVCSTATUS2), REASON?)>
  927. <!--#ELEMENT BANKACCTINFO #Link(SVCSTATUS,SIGNUPMSGSRSV1)-->
  928. <!--#ELEMENT BANKACCTINFO #Link(SVCSTATUS2,SIGNUPMSGSRSV2)-->
  929. <!--#ELEMENT BANKACCTINFO #Link(REASON,SIGNUPMSGSRSV2)-->
  930. <!ELEMENT CCACCTINFO    - - (CCACCTFROM ,
  931.                              SUPTXDL, XFERSRC, XFERDEST, (SVCSTATUS|SVCSTATUS2), REASON?)>
  932. <!--#ELEMENT CCACCTINFO #Link(SVCSTATUS,SIGNUPMSGSRSV1)-->
  933. <!--#ELEMENT CCACCTINFO #Link(SVCSTATUS2,SIGNUPMSGSRSV2)-->
  934. <!--#ELEMENT CCACCTINFO #Link(REASON,SIGNUPMSGSRSV2)-->
  935.                              
  936. <!ELEMENT SUPTXDL       - o %BOOLTYPE>
  937. <!ELEMENT XFERSRC       - o %BOOLTYPE>
  938. <!ELEMENT XFERDEST      - o %BOOLTYPE>
  939. <!--
  940. statement transaction data
  941. -->
  942. <!ELEMENT BANKTRANLIST     - - (DTSTART , DTEND , STMTTRN*)>
  943. <!--
  944. Ledger balance
  945. -->
  946. <!ELEMENT LEDGERBAL     - - (BALAMT , DTASOF)>
  947. <!--
  948. Available balance
  949. -->
  950. <!ELEMENT AVAILBAL      - - (BALAMT , DTASOF)>
  951. <!--
  952. credit card statement information
  953. -->
  954. <!ELEMENT CCCLOSING - - (FITID , DTOPEN? , DTCLOSE , DTNEXT? ,
  955.  BALOPEN? , BALCLOSE ,
  956.  DTPMTDUE? , MINPMTDUE? ,
  957.  FINCHG? , PAYANDCREDIT? , PURANDADV? , DEBADJ? , CREDITLIMIT? ,
  958.  DTPOSTSTART , DTPOSTEND , MKTGINFO? ,
  959.  (CURRENCY | ORIGCURRENCY)? )>
  960. <!--
  961. non-Credit Card account types
  962. -->
  963. <!ELEMENT CLOSING - - (FITID , DTOPEN? , DTCLOSE , DTNEXT? ,
  964.  BALOPEN? , BALCLOSE , BALMIN? ,
  965.  DEPANDCREDIT? , CHKANDDEB? , TOTALFEES? , TOTALINT? ,
  966.  DTPOSTSTART , DTPOSTEND , MKTGINFO? ,
  967.  (CURRENCY | ORIGCURRENCY)? )>
  968. <!-- Opening statement date -->
  969. <!ELEMENT DTOPEN - o %DTTMTYPE>
  970. <!-- Closing statement date -->
  971. <!ELEMENT DTCLOSE - o %DTTMTYPE>
  972. <!-- Closing date of next statement -->
  973. <!ELEMENT DTNEXT - o %DTTMTYPE>
  974. <!-- Opening statement balance -->
  975. <!ELEMENT BALOPEN - o %AMTTYPE>
  976. <!-- Closing statement balance -->
  977. <!ELEMENT BALCLOSE - o %AMTTYPE>
  978. <!-- Payment due date -->
  979. <!ELEMENT DTPMTDUE - o %DTTMTYPE>
  980. <!-- Minimum amount due -->
  981. <!ELEMENT MINPMTDUE - o %AMTTYPE>
  982. <!-- Finance charges -->
  983. <!ELEMENT FINCHG - o %AMTTYPE>
  984. <!-- Total of payments and credits -->
  985. <!ELEMENT PAYANDCREDIT - o %AMTTYPE>
  986. <!-- Total of purchases and cash advance -->
  987. <!ELEMENT PURANDADV - o %AMTTYPE>
  988. <!-- Debit adjustments -->
  989. <!ELEMENT DEBADJ - o %AMTTYPE>
  990. <!-- Current credit limit -->
  991. <!ELEMENT CREDITLIMIT - o %AMTTYPE>
  992. <!-- Minimum balance in statement period -->
  993. <!ELEMENT BALMIN - o %AMTTYPE>
  994. <!-- Total of deposits and credits -->
  995. <!ELEMENT DEPANDCREDIT - o %AMTTYPE>
  996. <!-- Total of checks and debits -->
  997. <!ELEMENT CHKANDDEB - o %AMTTYPE>
  998. <!-- Total fees -->
  999. <!ELEMENT TOTALFEES - o %AMTTYPE>
  1000. <!-- Total interest -->
  1001. <!ELEMENT TOTALINT - o %AMTTYPE>
  1002. <!-- Start date for posted transactions -->
  1003. <!ELEMENT DTPOSTSTART - o %DTTMTYPE>
  1004. <!-- End date for posted transactions -->
  1005. <!ELEMENT DTPOSTEND - o %DTTMTYPE>
  1006. <!-- statement transaction aggregate -->
  1007. <!-- OFX 1.5 -->
  1008. <!-- CHANGE PAYEE to (PAYEE | PAYEE2) -->
  1009. <!-- CHANGE SRVRTID to (SRVRTID | SRVRTID2) -->
  1010. <!-- CHANGE MEMO to (MEMO | MEMO2) -->
  1011. <!-- CHANGE PAYEEID to (PAYEEID | PAYEEID2) -->
  1012. <!-- OFX 1.6: Added SPNAME and allowed it only when SRVRTID[2] is there too. -->
  1013. <!ELEMENT STMTTRN - - (TRNTYPE , DTPOSTED , DTUSER? , DTAVAIL? , TRNAMT , FITID ,
  1014.      (CORRECTFITID , CORRECTACTION)? ,
  1015.      ( SPNAME?, (SRVRTID | SRVRTID2) )?, CHECKNUM? , REFNUM? , 
  1016.      SIC? , (PAYEEID | PAYEEID2)? , (NAME | (PAYEE | PAYEE2))?,
  1017.      (BANKACCTTO | CCACCTTO)?,
  1018.      (MEMO | MEMO2)? , (CURRENCY | ORIGCURRENCY)?)> 
  1019. <!--#ELEMENT STMTTRN #Link(SRVRTID,(BANKMSGSRQV1|BANKMSGSRSV1))-->
  1020. <!--#ELEMENT STMTTRN #Link(SRVRTID2,(BANKMSGSRQV2|BANKMSGSRSV2))-->
  1021. <!--#ELEMENT STMTTRN #Link(PAYEE,(BANKMSGSRQV1|BANKMSGSRSV1))-->
  1022. <!--#ELEMENT STMTTRN #Link(PAYEE2,(BANKMSGSRQV2|BANKMSGSRSV2))-->
  1023. <!--#ELEMENT STMTTRN #Link(MEMO,(BANKMSGSRQV1|BANKMSGSRSV1))-->
  1024. <!--#ELEMENT STMTTRN #Link(MEMO2,(BANKMSGSRQV2|BANKMSGSRSV2))-->
  1025. <!--#ELEMENT STMTTRN #Link(PAYEEID,(BANKMSGSRQV1|BANKMSGSRSV1))-->
  1026. <!--#ELEMENT STMTTRN #Link(PAYEEID2,(BANKMSGSRQV2|BANKMSGSRSV2))-->
  1027. <!-- Status of request -->
  1028. <!ELEMENT TRNTYPE - o %TRANSACTIONENUM>
  1029. <!-- Date transaction was posted to account -->
  1030. <!ELEMENT DTPOSTED - o %DTTMTYPE>
  1031. <!-- Date user initiated transaction, if known -->
  1032. <!ELEMENT DTUSER - o %DTTMTYPE>
  1033. <!-- Standard Industrial Code -->
  1034. <!ELEMENT SIC - o %SICTYPE>
  1035. <!-- Check range aggregate. -->
  1036. <!ELEMENT CHKRANGE - - (CHKNUMSTART , CHKNUMEND?)>
  1037. <!-- Check description aggregate. -->
  1038. <!ELEMENT CHKDESC - - (NAME , CHECKNUM? , DTUSER? , TRNAMT?)>
  1039. <!-- Start check number -->
  1040. <!ELEMENT CHKNUMSTART - o %CHECKNUMTYPE>
  1041. <!-- Ending check number to cancel -->
  1042. <!ELEMENT CHKNUMEND - o %CHECKNUMTYPE>
  1043. <!-- Reference number -->
  1044. <!ELEMENT REFNUM - o %REFNUMTYPE>
  1045. <!-- stopped check item -->
  1046. <!ELEMENT STPCHKNUM - - (CHECKNUM , NAME? , DTUSER? , TRNAMT? , 
  1047.                          CHKSTATUS , CHKERROR? , (CURRENCY | ORIGCURRENCY)?)>
  1048. <!-- Status code for individual stop check request -->
  1049. <!ELEMENT CHKSTATUS - o %CHECKSTATUSENUM>
  1050. <!-- Further textual error explanation -->
  1051. <!ELEMENT CHKERROR - o %MSGTYPE>
  1052. <!-- Transfer information aggregate -->
  1053. <!-- OFX 1.5 -->
  1054. <!-- ADDED DTAVAIL -->
  1055. <!ELEMENT XFERINFO - - ((BANKACCTFROM | CCACCTFROM) , (BANKACCTTO | CCACCTTO) , TRNAMT , DTDUE?, DTAVAIL?, MEMO2?)>
  1056. <!--#ELEMENT XFERINFO #Link(DTAVAIL,(BANKMSGSRQV2|BANKMSGSRSV2|CREDITCARDMSGSRQV2|CREDITCARDMSGSRSV2))-->
  1057. <!--#ELEMENT XFERINFO #Link(MEMO2,(BANKMSGSRQV2|BANKMSGSRSV2|CREDITCARDMSGSRQV2|CREDITCARDMSGSRSV2))-->
  1058. <!-- Transfer processing status -->
  1059. <!ELEMENT XFERPRCSTS - - (XFERPRCCODE , DTXFERPRC)>
  1060. <!--  Transfers processing date; enum for processing date interpretation -->
  1061. <!ELEMENT XFERPRCCODE - o %XFERSTATUSENUM>
  1062. <!-- Date transfer is expected to be processed -->
  1063. <!ELEMENT DTXFERPRC - o %DTTMTYPE>
  1064. <!-- Date transaction is projected for posting to account -->
  1065. <!ELEMENT DTXFERPRJ - o %DTTMTYPE>
  1066. <!-- Beneficiary of a wire transfer -- >
  1067. <!-- OFX 1.5 -->
  1068. <!-- CHANGE MEMO to (MEMO | MEMO2) -->
  1069. <!ELEMENT WIREBENEFICIARY - - (NAME , BANKACCTTO , (MEMO | MEMO2)?)>
  1070. <!--#ELEMENT WIREBENEFICIARY #Link(MEMO,(WIREXFERMSGSRQV1|WIREXFERMSGSRSV1))-->
  1071. <!--#ELEMENT WIREBENEFICIARY #Link(MEMO2,(WIREXFERMSGSRQV2|WIREXFERMSGSRSV2))-->
  1072. <!-- Beneficiary's bank for a wire transfer -- >
  1073. <!ELEMENT WIREDESTBANK - - (EXTBANKDESC)>
  1074. <!-- Extended description of a bank for a wire transfer -- >
  1075. <!ELEMENT EXTBANKDESC - - (NAME , BANKID , (ADDR1,(ADDR2,ADDR3?)?) , CITY , STATE , POSTALCODE , COUNTRY? , PHONE?)>
  1076. <!-- Payment instructions for a wire transfer -->
  1077. <!ELEMENT PAYINSTRUCT - o %MSGTYPE>
  1078. <!-- Fee assessed for the transfer -->
  1079. <!ELEMENT FEE - o %AMTTYPE>
  1080. <!-- Description of fee -->
  1081. <!ELEMENT FEEMSG    - o %SHORTMSGTYPE>
  1082. <!-- Transfer confirmation message -->
  1083. <!ELEMENT CONFMSG - o %MSGTYPE>
  1084. <!-- Message Set Wrappers and Profile -->
  1085. <!ELEMENT (BILLPAYMSGSRQV1,BILLPAYMSGSRQV2)       - -     ((PAYEETRNRQ | PAYEESYNCRQ)*,
  1086.                                                              ( PMTTRNRQ | RECPMTTRNRQ | PMTINQTRNRQ | PMTMAILTRNRQ |
  1087.                                                                    PMTSYNCRQ | RECPMTSYNCRQ | PMTMAILSYNCRQ)*)>
  1088. <!ELEMENT (BILLPAYMSGSRSV1,BILLPAYMSGSRSV2)       - -     ((PAYEETRNRS | PAYEESYNCRS)*,
  1089.                                                                  ( PMTTRNRS | RECPMTTRNRS | PMTINQTRNRS | PMTMAILTRNRS |
  1090.                                                                    PMTSYNCRS | RECPMTSYNCRS | PMTMAILSYNCRS)*)>
  1091. <!-- -->
  1092. <!-- OFX 1.6 correction of ordinance within profile.  OFX 1.5.1 servers are compatible with
  1093.      OFX 1.0.2 clients if they comply. -->
  1094. <!ELEMENT BILLPAYMSGSET         - -     (BILLPAYMSGSETV1, BILLPAYMSGSETV2*)>
  1095. <!ELEMENT BILLPAYMSGSETV1       - -     (MSGSETCORE,
  1096.                                         DAYSWITH, DFLTDAYSTOPAY,
  1097.                                         XFERDAYSWITH, XFERDFLTDAYSTOPAY, 
  1098.                                         PROCDAYSOFF*, PROCENDTM, 
  1099.                                         MODELWND, POSTPROCWND, STSVIAMODS,
  1100.                                         PMTBYADDR, PMTBYXFER, PMTBYPAYEEID,
  1101.                                         CANADDPAYEE, HASEXTDPMT, 
  1102.                                         CANMODPMTS, CANMODMDLS, DIFFFIRSTPMT, 
  1103.                                         DIFFLASTPMT)>
  1104. <!-- OFX 1.6: Add CANMOTO and PAYEEMODPENDING. -->
  1105. <!ELEMENT BILLPAYMSGSETV2       - -     (MSGSETCORE,
  1106.                                         DAYSWITH, DFLTDAYSTOPAY,
  1107.                                         XFERDAYSWITH, XFERDFLTDAYSTOPAY, 
  1108.                                         PROCDAYSOFF*, PROCENDTM, 
  1109.                                         MODELWND, POSTPROCWND, STSVIAMODS,
  1110.                                         PMTBYADDR, PMTBYXFER, PMTBYPAYEEID,
  1111.                                         CANADDPAYEE, HASEXTDPMT, HASRECEXTDPMT,
  1112.                                         CANMODPMTS, CANMODMDLS, DIFFFIRSTPMT, 
  1113.                                         DIFFLASTPMT, NEEDTANPMT, NEEDTANPAYEE,
  1114. SUPPORTDTAVAIL, CANMOTO?, PAYEEMODPENDING? )>
  1115. <!ELEMENT DAYSWITH              - o     %DAYSPANTYPE>       <!--  number of days before the processing date that funds are withdrawn -->
  1116. <!ELEMENT DFLTDAYSTOPAY - o %DAYSPANTYPE>    <!--  the default number of days to pay -->
  1117. <!ELEMENT XFERDAYSWITH          - o     %DAYSPANTYPE>       <!--  number of days before the processing date that funds are withdrawn for xfers-->
  1118. <!ELEMENT XFERDFLTDAYSTOPAY     - o %DAYSPANTYPE>   <!--  the default number of days to pay for transfers-->
  1119. <!ELEMENT POSTPROCWND   - o     %DAYSPANTYPE>       <!--  the number of days after a transaction is processed that it is acessible
  1120.                                                                                           for status inquiries -->
  1121. <!ELEMENT STSVIAMODS    - o     %BOOLTYPE>      <!--  server supports communication of server-initiated payment status changes
  1122.                                                                                           via the PMTMODRS -->
  1123. <!ELEMENT PMTBYADDR             - o     %BOOLTYPE>      <!--  the payment provider supports payments to payees identified by billing
  1124.                                                                                           address, i.e. the PAYEE aggregate -->
  1125. <!ELEMENT PMTBYXFER     - o %BOOLTYPE>  <!--  can pay by transfers -->
  1126. <!ELEMENT PMTBYPAYEEID  - o %BOOLTYPE>  <!--  can pay by user supplied payee IDs -->
  1127. <!ELEMENT CANADDPAYEE   - o     %BOOLTYPE>      <!--  user can add payees if no, the user is restricted to payees added to the
  1128.                                                                                           users payee list by the payment system -->
  1129. <!ELEMENT HASEXTDPMT    - o     %BOOLTYPE>      <!--  supports the EXTDPMT business payment aggregate -->
  1130. <!ELEMENT HASRECEXTDPMT - o     %BOOLTYPE>      <!--  supports the RECEXTDPMT business payment aggregate -->
  1131. <!ELEMENT CANMODPMTS    - o     %BOOLTYPE>      <!--  permit modifications to payments, i.e. PMTMODRQ -->
  1132. <!ELEMENT DIFFFIRSTPMT  - o     %BOOLTYPE>      <!--  support for specifying a different amount for the first payment
  1133.                                                                                           generated by a model -->
  1134. <!ELEMENT DIFFLASTPMT   - o     %BOOLTYPE>      <!--  support for specifying a different amount for the last payment generated
  1135.                                                                                           by a model -->
  1136. <!ELEMENT NEEDTANPMT    - o     %BOOLTYPE>      <!-- need TAN for payment requests (should be N in US) -->
  1137. <!ELEMENT NEEDTANPAYEE  - o     %BOOLTYPE>      <!-- need TAN for payee requests (should be N in US) -->
  1138. <!-- OFX 1.6: Add CANMOTO and PAYEEMODPENDING. -->
  1139. <!ELEMENT CANMOTO - o %BOOLTYPE> <!-- Support for <CCMOTOACCT>. -->
  1140. <!ELEMENT PAYEEMODPENDING - o %PAYEEMODENUM> <!-- Support for <MODPENDING> in
  1141.      <PAYEEMODRQ>. -->
  1142. <!-- Transactions -->
  1143. <!ELEMENT PMTTRNRQ      - - (%TRNRQMACRO, (PMTRQ | PMTMODRQ | PMTCANCRQ))>
  1144. <!ELEMENT RECPMTTRNRQ   - - (%TRNRQMACRO, (RECPMTRQ | RECPMTMODRQ | RECPMTCANCRQ))>
  1145. <!ELEMENT PAYEETRNRQ    - - (%TRNRQMACRO, (PAYEERQ | PAYEEMODRQ | PAYEEDELRQ))>
  1146. <!ELEMENT PMTINQTRNRQ   - -     (%TRNRQMACRO, PMTINQRQ)>
  1147. <!ELEMENT PMTMAILTRNRQ  - - (%TRNRQMACRO, PMTMAILRQ)>
  1148. <!ELEMENT PMTTRNRS      - - (%TRNRSMACRO, (PMTRS | PMTMODRS | PMTCANCRS)?)>
  1149. <!ELEMENT RECPMTTRNRS   - - (%TRNRSMACRO, (RECPMTRS | RECPMTMODRS | RECPMTCANCRS)?)>
  1150. <!ELEMENT PAYEETRNRS    - - (%TRNRSMACRO, (PAYEERS | PAYEEMODRS | PAYEEDELRS)?)>
  1151. <!ELEMENT PMTINQTRNRS   - -     (%TRNRSMACRO, PMTINQRS?)>
  1152. <!ELEMENT PMTMAILTRNRS  - - (%TRNRSMACRO, PMTMAILRS?)>
  1153. <!-- ============================================================================= -->
  1154. <!-- Requests                                                                      -->
  1155. <!-- ============================================================================= -->
  1156. <!--  payment request -->
  1157. <!-- OFX 1.5 -->
  1158. <!-- CHANGE PMTINFO to (PMTINFO | PMTINFO2) -->
  1159. <!ELEMENT PMTRQ - -     ((PMTINFO | PMTINFO2))>              
  1160. <!--#ELEMENT PMTRQ #Link(PMTINFO,BILLPAYMSGSRQV1)-->
  1161. <!--#ELEMENT PMTRQ #Link(PMTINFO2,BILLPAYMSGSRQV2)-->
  1162. <!--  modification request -->
  1163. <!-- OFX 1.5 -->
  1164. <!-- CHANGE SRVRTID to (SRVRTID | SRVRTID2) -->
  1165. <!-- CHANGE PMTINFO to (PMTINFO | PMTINFO2) -->
  1166. <!ELEMENT PMTMODRQ      - -     ((SRVRTID | SRVRTID2), (PMTINFO | PMTINFO2))>             
  1167. <!--#ELEMENT PMTMODRQ #Link(SRVRTID,BILLPAYMSGSRQV1)-->
  1168. <!--#ELEMENT PMTMODRQ #Link(SRVRTID2,BILLPAYMSGSRQV2)-->
  1169. <!--#ELEMENT PMTMODRQ #Link(PMTINFO,BILLPAYMSGSRQV1)-->
  1170. <!--#ELEMENT PMTMODRQ #Link(PMTINFO2,BILLPAYMSGSRQV2)-->
  1171. <!--  cancellation request -->
  1172. <!-- OFX 1.5 -->
  1173. <!-- CHANGE SRVRTID to (SRVRTID | SRVRTID2) -->
  1174. <!ELEMENT PMTCANCRQ     - - ((SRVRTID | SRVRTID2))>
  1175. <!--#ELEMENT PMTCANCRQ #Link(SRVRTID,BILLPAYMSGSRQV1)-->
  1176. <!--#ELEMENT PMTCANCRQ #Link(SRVRTID2,BILLPAYMSGSRQV2)-->
  1177. <!--  recurring payment request -->
  1178. <!-- OFX 1.5 -->
  1179. <!-- CHANGE PMTINFO to (PMTINFO | PMTINFO2) -->
  1180. <!ELEMENT RECPMTRQ      - -     (RECURRINST, (PMTINFO | PMTINFO2), INITIALAMT?, FINALAMT?)>          
  1181. <!--#ELEMENT RECPMTRQ #Link(PMTINFO,BILLPAYMSGSRQV1)-->
  1182. <!--#ELEMENT RECPMTRQ #Link(PMTINFO2,BILLPAYMSGSRQV2)-->
  1183. <!-- modification request -->
  1184. <!-- OFX 1.5 -->
  1185. <!-- CHANGE RECSRVRTID to (RECSRVRTID | RECSRVRTID2) -->
  1186. <!-- CHANGE PMTINFO to (PMTINFO | PMTINFO2) -->
  1187. <!ELEMENT RECPMTMODRQ   - -     ((RECSRVRTID | RECSRVRTID2), RECURRINST, (PMTINFO | PMTINFO2),
  1188.   INITIALAMT?, FINALAMT?, MODPENDING)>          
  1189. <!--#ELEMENT RECPMTMODRQ #Link(RECSRVRTID,BILLPAYMSGSRQV1)-->
  1190. <!--#ELEMENT RECPMTMODRQ #Link(RECSRVRTID2,BILLPAYMSGSRQV2)-->
  1191. <!--#ELEMENT RECPMTMODRQ #Link(PMTINFO,BILLPAYMSGSRQV1)-->
  1192. <!--#ELEMENT RECPMTMODRQ #Link(PMTINFO2,BILLPAYMSGSRQV2)-->
  1193.  
  1194. <!--  cancellation request -->
  1195. <!-- OFX 1.5 -->
  1196. <!-- CHANGE RECSRVRTID to (RECSRVRTID | RECSRVRTID2) -->
  1197. <!ELEMENT RECPMTCANCRQ  - -     ((RECSRVRTID | RECSRVRTID2), CANPENDING)>
  1198. <!--#ELEMENT RECPMTCANCRQ #Link(RECSRVRTID,BILLPAYMSGSRQV1)-->
  1199. <!--#ELEMENT RECPMTCANCRQ #Link(RECSRVRTID2,BILLPAYMSGSRQV2)-->
  1200. <!-- payment status inquiry request -->
  1201. <!-- OFX 1.5 -->
  1202. <!-- CHANGE SRVRTID to (SRVRTID | SRVRTID2) -->
  1203. <!ELEMENT PMTINQRQ      - -     ((SRVRTID | SRVRTID2))>
  1204. <!--#ELEMENT PMTINQRQ #Link(SRVRTID,BILLPAYMSGSRQV1)-->
  1205. <!--#ELEMENT PMTINQRQ #Link(SRVRTID2,BILLPAYMSGSRQV2)-->
  1206.  
  1207. <!-- payee request : add a payee to the payee list -->
  1208. <!-- OFX 1.5 -->
  1209. <!-- CHANGE PAYEE to (PAYEE | PAYEE2) -->
  1210. <!-- CHANGE PAYEE to (PAYEEID | PAYEEID2) -->
  1211. <!ELEMENT PAYEERQ       - -     ((PAYEEID | PAYEEID2 | ((PAYEE | PAYEE2), BANKACCTTO?)), PAYACCT*)>
  1212. <!--#ELEMENT PAYEERQ #Link(PAYEE,BILLPAYMSGSRQV1)-->
  1213. <!--#ELEMENT PAYEERQ #Link(PAYEE2,BILLPAYMSGSRQV2)-->
  1214. <!--#ELEMENT PAYEERQ #Link(PAYEEID,BILLPAYMSGSRQV1)-->
  1215. <!--#ELEMENT PAYEERQ #Link(PAYEEID2,BILLPAYMSGSRQV2)-->
  1216. <!-- payee modification request -->
  1217. <!-- OFX 1.5 -->
  1218. <!-- CHANGE PAYEE to (PAYEE | PAYEE2) -->
  1219. <!-- CHANGE PAYEELSTID to (PAYEELSTID | PAYEELSTID2) -->
  1220. <!-- OFX 1.6: Add MODPENDING. -->
  1221. <!ELEMENT PAYEEMODRQ    - - ((PAYEELSTID | PAYEELSTID2),
  1222.      ((PAYEE | PAYEE2), BANKACCTTO?)?, PAYACCT*,
  1223.      MODPENDING? )>
  1224. <!--#ELEMENT PAYEEMODRQ #Link(PAYEELSTID,BILLPAYMSGSRQV1)-->
  1225. <!--#ELEMENT PAYEEMODRQ #Link(PAYEELSTID2,BILLPAYMSGSRQV2)-->
  1226. <!--#ELEMENT PAYEEMODRQ #Link(PAYEE,BILLPAYMSGSRQV1)-->
  1227. <!--#ELEMENT PAYEEMODRQ #Link(PAYEE2,BILLPAYMSGSRQV2)-->
  1228. <!--#ELEMENT PAYEEMODRQ #Link( MODPENDING, BILLPAYMSGSRQV2 )-->
  1229. <!-- payee deletion request -->
  1230. <!-- OFX 1.5 -->
  1231. <!-- CHANGE PAYEELSTID to (PAYEELSTID | PAYEELSTID2) -->
  1232. <!ELEMENT PAYEEDELRQ    - - ((PAYEELSTID | PAYEELSTID2))>
  1233. <!--#ELEMENT PAYEEDELRQ #Link(PAYEELSTID,BILLPAYMSGSRQV1)-->
  1234. <!--#ELEMENT PAYEEDELRQ #Link(PAYEELSTID2,BILLPAYMSGSRQV2)-->
  1235. <!-- ============================================================================= -->
  1236. <!-- Responses                                                                     -->
  1237. <!-- ============================================================================= -->
  1238. <!--  payment response -->
  1239. <!-- OFX 1.5 -->
  1240. <!-- CHANGE PAYEELSTID to (PAYEELSTID | PAYEELSTID2) -->
  1241. <!-- CHANGE SRVRTID to (SRVRTID | SRVRTID2) -->
  1242. <!-- CHANGE PMTINFO to (PMTINFO | PMTINFO2) -->
  1243. <!ELEMENT PMTRS         - - ((SRVRTID | SRVRTID2), (PAYEELSTID | PAYEELSTID2), CURDEF, (PMTINFO | PMTINFO2), EXTDPAYEE?, 
  1244.                          CHECKNUM?, PMTPRCSTS, (RECSRVRTID | RECSRVRTID2)?)>
  1245. <!--#ELEMENT PMTRS #Link(SRVRTID,BILLPAYMSGSRSV1)-->
  1246. <!--#ELEMENT PMTRS #Link(SRVRTID2,BILLPAYMSGSRSV2)-->
  1247. <!--#ELEMENT PMTRS #Link(PMTINFO,BILLPAYMSGSRSV1)-->
  1248. <!--#ELEMENT PMTRS #Link(PMTINFO2,BILLPAYMSGSRSV2)-->
  1249. <!--#ELEMENT PMTRS #Link(PAYEELSTID,BILLPAYMSGSRSV1)-->
  1250. <!--#ELEMENT PMTRS #Link(PAYEELSTID2,BILLPAYMSGSRSV2)-->
  1251. <!--#ELEMENT PMTRS #Link(RECSRVRTID,BILLPAYMSGSRSV1)-->
  1252. <!--#ELEMENT PMTRS #Link(RECSRVRTID2,BILLPAYMSGSRSV2)-->
  1253.    
  1254. <!-- payment modification response -->
  1255. <!-- OFX 1.5 -->
  1256. <!-- CHANGE SRVRTID to (SRVRTID | SRVRTID2) -->
  1257. <!-- CHANGE PMTINFO to (PMTINFO | PMTINFO2) -->
  1258. <!ELEMENT PMTMODRS      - -     ((SRVRTID | SRVRTID2), (PMTINFO | PMTINFO2), PMTPRCSTS?)>         
  1259. <!--#ELEMENT PMTMODRS #Link(SRVRTID,BILLPAYMSGSRSV1)-->
  1260. <!--#ELEMENT PMTMODRS #Link(SRVRTID2,BILLPAYMSGSRSV2)-->
  1261. <!--#ELEMENT PMTMODRS #Link(PMTINFO,BILLPAYMSGSRSV1)-->
  1262. <!--#ELEMENT PMTMODRS #Link(PMTINFO2,BILLPAYMSGSRSV2)-->
  1263. <!-- payment cancellation response -->
  1264. <!-- OFX 1.5 -->
  1265. <!-- CHANGE SRVRTID to (SRVRTID | SRVRTID2) -->
  1266. <!ELEMENT PMTCANCRS     - -     (SRVRTID | SRVRTID2)>              
  1267. <!--#ELEMENT PMTCANCRS #Link(SRVRTID,BILLPAYMSGSRSV1)-->
  1268. <!--#ELEMENT PMTCANCRS #Link(SRVRTID2,BILLPAYMSGSRSV2)-->
  1269. <!--  recurring payment response -->
  1270. <!-- OFX 1.5 -->
  1271. <!-- CHANGE RECSRVRTID to (RECSRVRTID | RECSRVRTID2) -->
  1272. <!-- CHANGE PAYEELSTID to (PAYEELSTID | PAYEELSTID2) -->
  1273. <!-- CHANGE PMTINFO to (PMTINFO | PMTINFO2) -->
  1274. <!ELEMENT RECPMTRS      - -     ((RECSRVRTID | RECSRVRTID2), (PAYEELSTID | PAYEELSTID2), CURDEF, RECURRINST,
  1275.   (PMTINFO | PMTINFO2), INITIALAMT?, FINALAMT?, EXTDPAYEE?)>
  1276. <!--#ELEMENT RECPMTRS #Link(RECSRVRTID,BILLPAYMSGSRSV1)-->
  1277. <!--#ELEMENT RECPMTRS #Link(RECSRVRTID2,BILLPAYMSGSRSV2)-->
  1278. <!--#ELEMENT RECPMTRS #Link(PAYEELSTID,BILLPAYMSGSRSV1)-->
  1279. <!--#ELEMENT RECPMTRS #Link(PAYEELSTID2,BILLPAYMSGSRSV2)-->
  1280. <!--#ELEMENT RECPMTRS #Link(PMTINFO,BILLPAYMSGSRSV1)-->
  1281. <!--#ELEMENT RECPMTRS #Link(PMTINFO2,BILLPAYMSGSRSV2)-->
  1282.  
  1283. <!-- modification response -->
  1284. <!-- OFX 1.5 -->
  1285. <!-- CHANGE RECSRVRTID to (RECSRVRTID | RECSRVRTID2) -->
  1286. <!-- CHANGE PMTINFO to (PMTINFO | PMTINFO2) -->
  1287. <!ELEMENT RECPMTMODRS   - -     ((RECSRVRTID | RECSRVRTID2), RECURRINST, (PMTINFO | PMTINFO2),
  1288.   INITIALAMT?, FINALAMT?, MODPENDING)>          
  1289. <!--#ELEMENT RECPMTMODRS #Link(RECSRVRTID,BILLPAYMSGSRSV1)-->
  1290. <!--#ELEMENT RECPMTMODRS #Link(RECSRVRTID2,BILLPAYMSGSRSV2)-->
  1291. <!--#ELEMENT RECPMTMODRS #Link(PMTINFO,BILLPAYMSGSRSV1)-->
  1292. <!--#ELEMENT RECPMTMODRS #Link(PMTINFO2,BILLPAYMSGSRSV2)-->
  1293. <!-- recurring payment modification response --> 
  1294. <!-- OFX 1.5 -->
  1295. <!-- CHANGE RECSRVRTID to (RECSRVRTID | RECSRVRTID2) -->
  1296. <!ELEMENT RECPMTCANCRS  - -     ((RECSRVRTID | RECSRVRTID2), CANPENDING)>               
  1297. <!--#ELEMENT RECPMTCANCRS #Link(RECSRVRTID,BILLPAYMSGSRSV1)-->
  1298. <!--#ELEMENT RECPMTCANCRS #Link(RECSRVRTID2,BILLPAYMSGSRSV2)-->
  1299. <!-- payment status inquiry response -->
  1300. <!-- OFX 1.5 -->
  1301. <!-- CHANGE SRVRTID to (SRVRTID | SRVRTID2) -->
  1302. <!ELEMENT PMTINQRS      - -     ((SRVRTID | SRVRTID2), PMTPRCSTS, CHECKNUM?)>
  1303. <!--#ELEMENT PMTINQRS #Link(SRVRTID,BILLPAYMSGSRSV1)-->
  1304. <!--#ELEMENT PMTINQRS #Link(SRVRTID2,BILLPAYMSGSRSV2)-->
  1305. <!-- payee response : add a payee to the payee list -->
  1306. <!-- OFX 1.5 -->
  1307. <!-- CHANGE PAYEE to (PAYEELSTID | PAYEELSTID2) -->
  1308. <!-- CHANGE PAYEE to (PAYEE | PAYEE2) -->
  1309. <!ELEMENT PAYEERS       - -     ((PAYEELSTID | PAYEELSTID2), ((PAYEE | PAYEE2), BANKACCTTO?)?, EXTDPAYEE?, PAYACCT*)>
  1310. <!--#ELEMENT PAYEERS #Link(PAYEELSTID,BILLPAYMSGSRSV1)-->
  1311. <!--#ELEMENT PAYEERS #Link(PAYEELSTID2,BILLPAYMSGSRSV2)-->
  1312. <!--#ELEMENT PAYEERS #Link(PAYEE,BILLPAYMSGSRSV1)-->
  1313. <!--#ELEMENT PAYEERS #Link(PAYEE2,BILLPAYMSGSRSV2)-->
  1314. <!-- payee modification response -->
  1315. <!-- OFX 1.5 -->
  1316. <!-- CHANGE PAYEE to (PAYEELSTID | PAYEELSTID2) -->
  1317. <!-- CHANGE PAYEE to (PAYEE | PAYEE2) -->
  1318. <!-- OFX 1.6: Add MODPENDING. -->
  1319. <!ELEMENT PAYEEMODRS    - - ((PAYEELSTID | PAYEELSTID2),
  1320.      ((PAYEE | PAYEE2), BANKACCTTO?)?, PAYACCT*, EXTDPAYEE?,
  1321.      MODPENDING? )>
  1322. <!--#ELEMENT PAYEEMODRS #Link(PAYEELSTID,BILLPAYMSGSRSV1)-->
  1323. <!--#ELEMENT PAYEEMODRS #Link(PAYEELSTID2,BILLPAYMSGSRSV2)-->
  1324. <!--#ELEMENT PAYEEMODRS #Link(PAYEE,BILLPAYMSGSRSV1)-->
  1325. <!--#ELEMENT PAYEEMODRS #Link(PAYEE2,BILLPAYMSGSRSV2)-->
  1326. <!--#ELEMENT PAYEEMODRS #Link( MODPENDING, BILLPAYMSGSRSV2 )-->
  1327. <!-- payee deletion response -->
  1328. <!-- OFX 1.5 -->
  1329. <!-- CHANGE PAYEE to (PAYEELSTID | PAYEELSTID2) -->
  1330. <!ELEMENT PAYEEDELRS    - - ((PAYEELSTID | PAYEELSTID2))>
  1331. <!--#ELEMENT PAYEEDELRS #Link(PAYEELSTID,BILLPAYMSGSRSV1)-->
  1332. <!--#ELEMENT PAYEEDELRS #Link(PAYEELSTID2,BILLPAYMSGSRSV2)-->
  1333.    
  1334. <!-- ============================================================================= -->
  1335. <!--                    Aggregates                                                         -->
  1336. <!-- ============================================================================= -->
  1337. <!-- BPACCTINFO -->
  1338. <!ELEMENT BPACCTINFO  - - (BANKACCTFROM, (SVCSTATUS|SVCSTATUS2), REASON?)>
  1339. <!--#ELEMENT BPACCTINFO #Link(SVCSTATUS,SIGNUPMSGSRSV1)-->
  1340. <!--#ELEMENT BPACCTINFO #Link(SVCSTATUS2,SIGNUPMSGSRSV2)-->
  1341. <!--#ELEMENT BPACCTINFO #Link(REASON,SIGNUPMSGSRSV2)-->
  1342. <!-- Payment information aggregate -->
  1343. <!ELEMENT PMTINFO  - - (BANKACCTFROM, TRNAMT, 
  1344.                         (PAYEEID|PAYEE), PAYEELSTID?, BANKACCTTO?,
  1345.                         EXTDPMT*, PAYACCT, DTDUE, 
  1346.                         MEMO?, BILLREFINFO?)>
  1347. <!-- OFX 1.5 -->
  1348. <!-- ADDED PMTTYPE -->
  1349. <!-- CHANGE PAYEEID | PAYEE to being optional -->
  1350. <!-- CHANGE PAYACCT to being optional -->
  1351. <!-- ADD DTAVAIL, ITA.CAUSALE, PMTFOR, BOOKINGTEXT -->
  1352. <!-- CHANGE PAYEE to PAYEE2 -->
  1353. <!-- CHANGE MEMO to MEMO2 -->
  1354. <!-- CHANGE PAYEEID to PAYEEID2 -->
  1355. <!-- CHANGE PAYEELSTID to PAYEELSTID2 -->
  1356. <!-- OFX 1.6: Changed BANKACCTFROM to ( BANKACCTFROM | CCMOTOACCT ).
  1357.      Added SPNAME and BILLID. -->
  1358. <!ELEMENT PMTINFO2  - - (PMTTYPE?, ( BANKACCTFROM | CCMOTOACCT ), TRNAMT,
  1359.                          (PAYEELSTID2 | ((PAYEEID2 | PAYEE2), PAYEELSTID2?)),
  1360.  BANKACCTTO?, EXTDPMT?, PAYACCT?, DTDUE,
  1361.                          DTAVAIL?, ITA.CAUSALE?, PMTFOR?, BOOKINGTEXT?,
  1362.                          MEMO2?, BILLREFINFO?,
  1363.  ( SPNAME?, BILLID )? )>
  1364.  
  1365. <!--  Some non-US fields from pmtinfo -->
  1366. <!ELEMENT PMTTYPE       - o %TYPEDESCTYPE>           
  1367. <!ELEMENT PMTFOR        - o %GENNAMETYPE>           
  1368. <!ELEMENT ITA.CAUSALE   - o %ITACAUSALETYPE>           
  1369. <!ELEMENT BOOKINGTEXT   - o %BOOKINGTEXTTYPE>
  1370. <!-- OFX 1.6: Add CCMOTOACCT aggregate. -->
  1371. <!ELEMENT CCMOTOACCT - - ( CCACCTFROM, DTEXPIRE, BRAND?, NAMEACCTHELD?,
  1372.      ( ADDR1, (ADDR2, ADDR3? )? )?, CITY?, STATE?,
  1373.      POSTALCODE?, COUNTRY? ) >
  1374. <!--  Payment processing status -->
  1375. <!ELEMENT PMTPRCSTS     - -     (PMTPRCCODE, DTPMTPRC)>
  1376. <!--  Payment processing date; enum for processing date interpretation -->
  1377. <!ELEMENT PMTPRCCODE    - o %PMTPROCESSSTATUSENUM>           
  1378. <!--  Payment processing date; Interpretation depends on <PMTPRCCODE> -->
  1379. <!ELEMENT DTPMTPRC      - o %DTTMTYPE>          
  1380.  
  1381. <!-- billing reference info -->
  1382. <!ELEMENT BILLREFINFO - o %BILLREFINFOTYPE>
  1383.  
  1384. <!--  Extended Payment aggregate -->
  1385. <!--  Either extdpmtdsc or extdpmtinv, or both, but at least one required -->
  1386. <!-- OFX 1.5 -->
  1387. <!-- CHANGE EXTDPMTCHK to (EXTDPMTCHK | EXTPMTCHK2) -->
  1388. <!ELEMENT EXTDPMT           - - (EXTDPMTFOR?, (EXTDPMTCHK|EXTDPMTCHK2)?, 
  1389.                              (((EXTDPMTDSC | EXTDPMTDSC2), EXTDPMTINV?) | EXTDPMTINV))>
  1390. <!--#ELEMENT EXTDPMT #Link(EXTDPMTCHK,(BILLPAYMSGSRQV1|BILLPAYMSGSRSV1))-->
  1391. <!--#ELEMENT EXTDPMT #Link(EXTDPMTCHK2,(BILLPAYMSGSRQV2|BILLPAYMSGSRSV2))-->
  1392. <!--#ELEMENT EXTDPMT #Link(EXTDPMTDSC,(BILLPAYMSGSRQV1|BILLPAYMSGSRSV1))-->
  1393. <!--#ELEMENT EXTDPMT #Link(EXTDPMTDSC2,(BILLPAYMSGSRQV2|BILLPAYMSGSRSV2))-->
  1394. <!ELEMENT EXTDPMTINV    - - (INVOICE+|INVOICE2+)>
  1395. <!--#ELEMENT EXTDPMTINV #Link(INVOICE,(BILLPAYMSGSRQV1|BILLPAYMSGSRSV1))-->
  1396. <!--#ELEMENT EXTDPMTINV #Link(INVOICE2,(BILLPAYMSGSRQV2|BILLPAYMSGSRSV2))-->
  1397. <!ELEMENT INVOICE       - - (INVNO, INVTOTALAMT, INVPAIDAMT,
  1398.                              INVDATE, INVDESC, DISCOUNT?,
  1399.                              ADJUSTMENT?, LINEITEM*)>
  1400. <!ELEMENT INVOICE2       - - (INVNO, INVTOTALAMT, INVPAIDAMT,
  1401.                              INVDATE, INVDESC, DISCOUNT2?,
  1402.                              ADJUSTMENT*, LINEITEM*)>
  1403. <!ELEMENT DISCOUNT      - - (DSCRATE, DSCAMT, DSCDATE?, DSCDESC)>
  1404. <!-- OFX 1.5 -->
  1405. <!-- CHANGE DSCRATE, DSCAMT to (DSCRATE | DSCAMT) -->
  1406. <!ELEMENT DISCOUNT2      - - ((DSCRATE | DSCAMT), DSCDATE?, DSCDESC)>
  1407. <!ELEMENT ADJUSTMENT    - - (ADJNO?, ADJDESC, ADJAMT, ADJDATE?)>
  1408. <!-- OFX 1.5 -->
  1409. <!-- ADDED LITMCODE -->
  1410. <!ELEMENT LINEITEM      - - (LITMAMT, LITMDESC, LITMCODE?)>
  1411. <!--#ELEMENT LINEITEM #Link(LITMCODE,(BILLPAYMSGSRQV2|BILLPAYMSGSRSV2|PRESDLVMSGSRSV1))-->
  1412. <!ELEMENT EXTDPMTFOR    - o %EXTDPMTFORENUM>
  1413. <!ELEMENT EXTDPMTCHK    - o %EXTTYPE>
  1414. <!ELEMENT EXTDPMTCHK2   - o %CHECKNUMTYPE>
  1415. <!-- OFX 1.6 correction to make OFX 1.5 clients and servers compatible with OFX 1.0.2
  1416.      servers and clients.  End tag for this element required in all versions of OFX. -->
  1417. <!ELEMENT EXTDPMTDSC    - - %MSGTYPE>
  1418. <!ELEMENT EXTDPMTDSC2   - o %EXTDPMTDSC2TYPE>
  1419. <!ELEMENT INVNO         - o %INVNOTYPE>
  1420. <!ELEMENT INVTOTALAMT   - o %AMTTYPE>