-
Notifications
You must be signed in to change notification settings - Fork 0
/
OFX_Common.go
908 lines (752 loc) · 32.1 KB
/
OFX_Common.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
// Code generated by xgen. DO NOT EDIT.
package gofx
// AbstractAccount ...
type AbstractAccount struct {
}
// Balance is The OFX element "BAL" is of type "Balance"
type Balance struct {
NAME string `xml:"NAME"`
DESC string `xml:"DESC"`
BALTYPE string `xml:"BALTYPE"`
VALUE string `xml:"VALUE"`
DTASOF string `xml:"DTASOF"`
CURRENCY *Currency `xml:"CURRENCY"`
}
// Status is The OFX element "STATUS" is of type "Status"
type Status struct {
CODE string `xml:"CODE"`
SEVERITY string `xml:"SEVERITY"`
MESSAGE string `xml:"MESSAGE"`
}
// AccountEnum is The OFX element "ACCTTYPE" is of type "AccountEnum"
type AccountEnum string
// AccountIdType is The OFX element "ACCTID" is of type "AccountIdType"
type AccountIdType string
// AddressType is The OFX element "ADDRESS" is of type "AddressType"
type AddressType string
// AmountType ...
type AmountType string
// BalanceEnum is The OFX element "BALANCEENUM" is of type "BalanceEnum"
type BalanceEnum string
// BankIdType is The OFX element "BANKID" is of type "BankIdType"
type BankIdType string
// BillRefInfoType is The OFX element "BILLREFINFO" is of type "BillRefInfoType"
type BillRefInfoType string
// BooleanType is The OFX element "BOOL" is of type "BooleanType"
type BooleanType string
// BrokerIdType is The OFX element "BROKERID" is of type "BrokerIdType"
type BrokerIdType string
// CharType is The OFX element "CHAR" is of type "CharType"
type CharType string
// CheckNumberType is The OFX element "CHECKNUM" is of type "CheckNumberType"
type CheckNumberType string
// CorrectiveActionEnum is The OFX element "CORRECTIVEACTENUM" is of type "CorrectiveActionEnum"
type CorrectiveActionEnum string
// CountryStringType is The OFX element "COUNTRYSTRING" is of type "CountryStringType"
type CountryStringType string
// CountryType is Should be the three-letter country code from ISO/DIS-3166
//
// The OFX element "COUNTRY" is of type "CountryType"
type CountryType string
// CurrencyEnum is These values are based on the ISO-4217 three-letter currency identifiers.
//
// The OFX element "CURRENCYENUM" is of type "CurrencyEnum".
type CurrencyEnum string
// CusipType is The OFX element "CUSIP" is of type "CusipType"
type CusipType string
// DayspanType is The OFX element "DAYSPAN" is of type "DayspanType"
type DayspanType string
// DateTimeType is The OFX element "DTTM" is of type "DateTimeType"
type DateTimeType string
// ErrorType is The OFX element "ERROR" is of type "ErrorType"
type ErrorType string
// FinancialInstitutionIdType is The OFX element "FIID" is of type "FinancialInstitutionIdType"
type FinancialInstitutionIdType string
// FinancialInstitutionTransactionIdType is The OFX element "FITID" is of type "FinancialInstitutionTransactionIdType"
type FinancialInstitutionTransactionIdType string
// FrequencyEnum is The OFX element "FREQENUM" is of type "FrequencyEnum"
type FrequencyEnum string
// InvestmentFrequencyEnum is The OFX element "FREQENUM" is of type "FrequencyEnum"
type InvestmentFrequencyEnum string
// GenericDescriptionType is The OFX element "GENDESC" is of type "GenericDescriptionType"
type GenericDescriptionType string
// GenericNameType is The OFX element "GENNAME" is of type "GenericNameType"
type GenericNameType string
// IdType is The OFX element "ID" is of type "IdType"
type IdType string
// InfoType is The OFX element "INFO" is of type "InfoType"
type InfoType string
// Investment401kSourceEnum is The OFX element "INV401KSOURCEENUM" is of type "Investment401kSourceEnum"
type Investment401kSourceEnum string
// InvestmentAccountEnum is The OFX element "INVESTMENTACCOUNTENUM" is of type "InvestmentAccountEnum"
type InvestmentAccountEnum string
// InvestmentNumberType is The OFX element "INVNO" is of type "InvestmentNumberType"
type InvestmentNumberType string
// LanguageEnum is The accepted values are based on the ISO-639 three-letter language codes.
//
// The OFX element "LANGUAGEENUM" is of type "LanguageEnum"
type LanguageEnum string
// MessageBodyType is The OFX element "MSGBODY" is of type "MessageBodyType"
type MessageBodyType string
// MessageType is The OFX element "MSG" is of type "MessageType"
type MessageType string
// NameAccountHeldType is The OFX element "NAMEACCTHELD" is of type "NameAccountHeldType"
type NameAccountHeldType string
// NumberOfInstructionsType is The OFX element "NINSTS" is of type "NumberOfInstructionsType"
type NumberOfInstructionsType string
// OptionLevelType is The OFX element "OPTIONLEVEL" is of type "OptionLevelType"
type OptionLevelType string
// PayeeIdType is The OFX element "PAYEEID" is of type "PayeeIdType"
type PayeeIdType string
// PhoneType is The OFX element "PHONE" is of type "PhoneType"
type PhoneType string
// PositiveAmountType ...
type PositiveAmountType string
// PositiveQuantityType ...
type PositiveQuantityType string
// QuantityType ...
type QuantityType string
// RateType is The OFX element "RATE" is of type "RateType"
type RateType string
// UnitPriceType ...
type UnitPriceType string
// ReferenceNumberType is The OFX element "REFNUM" is of type "ReferenceNumberType"
type ReferenceNumberType string
// SecurityNameType is The OFX element "SECNAME" is of type "SecurityNameType"
type SecurityNameType string
// SecurityUserIdType is The OFX element "SECUID" is of type "SecurityUserIdType"
type SecurityUserIdType string
// ServiceStatus2Enum is The OFX element "SERVICESTATUS2ENUM" is of type "ServiceStatus2Enum"
type ServiceStatus2Enum string
// ServiceStatusEnum is The OFX element "SERVICESTATUSENUM" is of type "ServiceStatusEnum"
type ServiceStatusEnum string
// SeverityEnum is The OFX element "SEVERITYENUM" is of type "SeverityEnum"
type SeverityEnum string
// SharesPerType is The OFX element "SHARESPER" is of type "SharesPerType"
type SharesPerType string
// ShortMessageType is The OFX element "SHORTMSG" is of type "ShortMessageType"
type ShortMessageType string
// StandardIndustryCodeType is The OFX element "SIC" is of type "StandardIndustryCodeType"
type StandardIndustryCodeType string
// ServerIdType is The OFX element "SRVRTID" is of type "ServerIdType"
type ServerIdType string
// StateCodeType is The OFX element "STATECODE" is of type "StateCodeType"
type StateCodeType string
// StateType is The OFX element "STATE" is of type "StateType"
type StateType string
// SubjectType is The OFX element "SUBJECT" is of type "SubjectType"
type SubjectType string
// TransactionAuthorizationNumberType is The OFX element "TAN" is of type "TransactionAuthorizationNumberType"
type TransactionAuthorizationNumberType string
// TimeType is The OFX element "TM" is of type "TimeType"
type TimeType string
// TransactionEnum is The OFX element "TRANSACTIONENUM" is of type "TransactionEnum"
type TransactionEnum string
// UrlType is The OFX element "URL" is of type "UrlType"
type UrlType string
// UsProductEnum is The OFX element "USPRODUCTENUM" is of type "UsProductEnum"
type UsProductEnum string
// GloballyUniqueUserIdType is The OFX element "UUID" is of type "GloballyUniqueUserIdType"
type GloballyUniqueUserIdType string
// TransferStatusEnum is The OFX element "XFERSTATUSENUM" is of type "TransferStatusEnum"
type TransferStatusEnum string
// YearType is The OFX element "YEAR" is of type "YearType"
type YearType string
// ZipType is The OFX element "ZIP" is of type "ZipType"
type ZipType string
// AbstractAccountInfo ...
type AbstractAccountInfo struct {
}
// AccountInfo is DEPRECATED
type AccountInfo struct {
NAME string `xml:"NAME"`
DESC string `xml:"DESC"`
PHONE string `xml:"PHONE"`
HOLDERINFO *HolderInfoType `xml:"HOLDERINFO"`
CONTACTPROFENC *ContactProfileEnc `xml:"CONTACTPROFENC"`
CONTACTPROF *ContactProfile `xml:"CONTACTPROF"`
BANKACCTINFO *BankAccountInfo `xml:"BANKACCTINFO"`
LOANACCTINFO *LoanAccountInfo `xml:"LOANACCTINFO"`
CCACCTINFO *CreditCardAccountInfo `xml:"CCACCTINFO"`
BPACCTINFO *BillPaymentAccountInfo `xml:"BPACCTINFO"`
INVACCTINFO *InvestmentAccountInfo `xml:"INVACCTINFO"`
PRESACCTINFO *PresentmentAccountInfo `xml:"PRESACCTINFO"`
}
// AccountInfoRequest is The OFX element "ACCTINFORQ" is of type "AccountInfoRequest"
type AccountInfoRequest struct {
DTACCTUP string `xml:"DTACCTUP"`
}
// AccountInfoResponse is The OFX element "ACCTINFORS" is of type "AccountInfoResponse"
type AccountInfoResponse struct {
DTACCTUP string `xml:"DTACCTUP"`
ACCTINFO []*AccountInfo `xml:"ACCTINFO"`
}
// Adjustment is The OFX element "ADJUSTMENT" is of type "Adjustment"
type Adjustment struct {
ADJNO string `xml:"ADJNO"`
ADJDESC string `xml:"ADJDESC"`
ADJAMT string `xml:"ADJAMT"`
ADJDATE string `xml:"ADJDATE"`
}
// AvailableBalance is The OFX element "AVAILBAL" is of type "AvailableBalance"
type AvailableBalance struct {
BALAMT string `xml:"BALAMT"`
DTASOF string `xml:"DTASOF"`
}
// BalanceList is The OFX element "BALLIST" is of type "BalanceList"
type BalanceList struct {
BAL []*Balance `xml:"BAL"`
}
// BankAccountInfo is The OFX element "BANKACCTINFO" is of type "BankAccountInfo"
type BankAccountInfo struct {
BANKACCTFROM *BankAccount `xml:"BANKACCTFROM"`
OTHERACCTINFO *OtherAccountInfo `xml:"OTHERACCTINFO"`
SUPTXDL string `xml:"SUPTXDL"`
XFERSRC string `xml:"XFERSRC"`
XFERDEST string `xml:"XFERDEST"`
LOANACCTTYPE string `xml:"LOANACCTTYPE"`
MATURITYDATE string `xml:"MATURITYDATE"`
MATURITYAMT string `xml:"MATURITYAMT"`
MINBALREQ string `xml:"MINBALREQ"`
ACCTCLASSIFICATION string `xml:"ACCTCLASSIFICATION"`
OVERDRAFTLIMIT string `xml:"OVERDRAFTLIMIT"`
SVCSTATUS string `xml:"SVCSTATUS"`
*AbstractAccountInfo
}
// BankAccount is The OFX elements BANKACCTFROM and BANKACCTTO are of type "BankAccount"
type BankAccount struct {
BANKID string `xml:"BANKID"`
BRANCHID string `xml:"BRANCHID"`
ACCTID string `xml:"ACCTID"`
ACCTTYPE string `xml:"ACCTTYPE"`
ACCTKEY string `xml:"ACCTKEY"`
*AbstractAccount
}
// BankTransactionList is The OFX element "BANKTRANLIST" is of type "BankTransactionList"
type BankTransactionList struct {
DTSTART string `xml:"DTSTART"`
DTEND string `xml:"DTEND"`
STMTTRN []*StatementTransaction `xml:"STMTTRN"`
}
// BillPaymentAccountInfo is The OFX element "BPACCTINFO" is of type "BillPaymentAccountInfo"
type BillPaymentAccountInfo struct {
BANKACCTFROM *BankAccount `xml:"BANKACCTFROM"`
OTHERACCTINFO *OtherAccountInfo `xml:"OTHERACCTINFO"`
SVCSTATUS string `xml:"SVCSTATUS"`
*AbstractAccountInfo
}
// CreditCardAccount is The OFX elements CCACCTFROM and CCACCTTO are of type "CreditCardAccount"
type CreditCardAccount struct {
ACCTID string `xml:"ACCTID"`
ACCTKEY string `xml:"ACCTKEY"`
*AbstractAccount
}
// CreditCardAccountInfo is The OFX element "CCACCTINFO" is of type "CreditCardAccountInfo"
type CreditCardAccountInfo struct {
CCACCTFROM *CreditCardAccount `xml:"CCACCTFROM"`
OTHERACCTINFO *OtherAccountInfo `xml:"OTHERACCTINFO"`
PARENTACCTID string `xml:"PARENTACCTID"`
SUPTXDL string `xml:"SUPTXDL"`
XFERSRC string `xml:"XFERSRC"`
XFERDEST string `xml:"XFERDEST"`
ACCTCLASSIFICATION string `xml:"ACCTCLASSIFICATION"`
SVCSTATUS string `xml:"SVCSTATUS"`
*AbstractAccountInfo
}
// Currency is The OFX elements "ORIGCURRENCY" and "CURRENCY" is of type "Currency"
type Currency struct {
CURRATE string `xml:"CURRATE"`
CURSYM string `xml:"CURSYM"`
}
// Discount is The OFX element "DISCOUNT" is of type "Discount"
type Discount struct {
DSCRATE string `xml:"DSCRATE"`
DSCAMT string `xml:"DSCAMT"`
DSCDATE string `xml:"DSCDATE"`
DSCDESC string `xml:"DSCDESC"`
}
// IncTransaction is The OFX element "INCTRAN" is of type "IncTransaction"
type IncTransaction struct {
DTSTART string `xml:"DTSTART"`
DTEND string `xml:"DTEND"`
INCLUDE string `xml:"INCLUDE"`
}
// InvestmentAccount is The OFX element "InvestmentAccount" is of type "InvestmentAccount"
type InvestmentAccount struct {
BROKERID string `xml:"BROKERID"`
ACCTID string `xml:"ACCTID"`
*AbstractAccount
}
// InvestmentAccountInfo is The OFX element "INVACCTINFO" is of type "InvestmentAccountInfo"
type InvestmentAccountInfo struct {
INVACCTFROM *InvestmentAccount `xml:"INVACCTFROM"`
OTHERACCTINFO *OtherAccountInfo `xml:"OTHERACCTINFO"`
USPRODUCTTYPE string `xml:"USPRODUCTTYPE"`
CHECKING string `xml:"CHECKING"`
SVCSTATUS string `xml:"SVCSTATUS"`
INVACCTTYPE string `xml:"INVACCTTYPE"`
OPTIONLEVEL string `xml:"OPTIONLEVEL"`
*AbstractAccountInfo
}
// Invoice is The OFX element "INVOICE" is of type "Invoice"
type Invoice struct {
INVNO string `xml:"INVNO"`
INVTOTALAMT string `xml:"INVTOTALAMT"`
INVPAIDAMT string `xml:"INVPAIDAMT"`
INVDATE string `xml:"INVDATE"`
INVDESC string `xml:"INVDESC"`
DISCOUNT *Discount `xml:"DISCOUNT"`
ADJUSTMENT *Adjustment `xml:"ADJUSTMENT"`
LINEITEM []*LineItem `xml:"LINEITEM"`
}
// LedgerBalance is The OFX element "LEDGERBAL" is of type "LedgerBalance"
type LedgerBalance struct {
BALAMT string `xml:"BALAMT"`
DTASOF string `xml:"DTASOF"`
}
// LineItem is The OFX element "LINEITEM" is of type "LineItem"
type LineItem struct {
LITMAMT string `xml:"LITMAMT"`
LITMDESC string `xml:"LITMDESC"`
}
// Mail is The OFX element "MAIL" is of type "Mail"
type Mail struct {
USERID string `xml:"USERID"`
DTCREATED string `xml:"DTCREATED"`
FROM string `xml:"FROM"`
TO string `xml:"TO"`
SUBJECT string `xml:"SUBJECT"`
MSGBODY string `xml:"MSGBODY"`
INCIMAGES string `xml:"INCIMAGES"`
USEHTML string `xml:"USEHTML"`
}
// Payee is The OFX element "PAYEE" is of type "Payee"
type Payee struct {
NAME string `xml:"NAME"`
ADDR1 string `xml:"ADDR1"`
ADDR2 string `xml:"ADDR2"`
ADDR3 string `xml:"ADDR3"`
CITY string `xml:"CITY"`
STATE string `xml:"STATE"`
POSTALCODE string `xml:"POSTALCODE"`
COUNTRY string `xml:"COUNTRY"`
PHONE string `xml:"PHONE"`
}
// PresentmentAccount is The OFX element "PRESACCTFROM" and "PRESACCTTO" is of type "PresentmentAccount"
type PresentmentAccount struct {
BILLPUB string `xml:"BILLPUB"`
BILLERID string `xml:"BILLERID"`
BILLERNAME string `xml:"BILLERNAME"`
ACCTID string `xml:"ACCTID"`
PRESNAMEADDRESS *PresentmentNameAddress `xml:"PRESNAMEADDRESS"`
USERID string `xml:"USERID"`
SPNAME string `xml:"SPNAME"`
PAYEEID string `xml:"PAYEEID"`
PAYEELSTID string `xml:"PAYEELSTID"`
*AbstractAccount
}
// PresentmentAccountInfo is The OFX element "PRESACCTINFO" is of type "PresentmentAccountInfo"
type PresentmentAccountInfo struct {
PRESACCTFROM *PresentmentAccount `xml:"PRESACCTFROM"`
SVCSTATUS string `xml:"SVCSTATUS"`
REASON string `xml:"REASON"`
*AbstractAccountInfo
}
// PresentmentNameAddress is The OFX element "PRESNAMEADDRESS" is of type "PresentmentNameAddress"
type PresentmentNameAddress struct {
NAMEACCTHELD string `xml:"NAMEACCTHELD"`
BUSNAMEACCTHELD string `xml:"BUSNAMEACCTHELD"`
ADDR1 string `xml:"ADDR1"`
ADDR2 string `xml:"ADDR2"`
ADDR3 string `xml:"ADDR3"`
CITY string `xml:"CITY"`
STATE string `xml:"STATE"`
POSTALCODE string `xml:"POSTALCODE"`
COUNTRY string `xml:"COUNTRY"`
DAYPHONE string `xml:"DAYPHONE"`
EVEPHONE string `xml:"EVEPHONE"`
}
// RecurringInstructions is The OFX element "RECURRINST" is of type "RecurringInstructions"
type RecurringInstructions struct {
NINSTS string `xml:"NINSTS"`
FREQ string `xml:"FREQ"`
}
// SecurityId is The OFX element "SECID" is of type "SecurityId"
type SecurityId struct {
UNIQUEID string `xml:"UNIQUEID"`
UNIQUEIDTYPE string `xml:"UNIQUEIDTYPE"`
}
// StatementTransaction is The OFX element "STMTTRN" is of type "StatementTransaction"
type StatementTransaction struct {
TRNTYPE string `xml:"TRNTYPE"`
DTPOSTED string `xml:"DTPOSTED"`
DTUSER string `xml:"DTUSER"`
DTAVAIL string `xml:"DTAVAIL"`
TRNAMT string `xml:"TRNAMT"`
LOANPMTINFO *LoanPaymentInfo `xml:"LOANPMTINFO"`
FITID string `xml:"FITID"`
CORRECTFITID string `xml:"CORRECTFITID"`
CORRECTACTION string `xml:"CORRECTACTION"`
SRVRTID string `xml:"SRVRTID"`
CHECKNUM string `xml:"CHECKNUM"`
REFNUM string `xml:"REFNUM"`
SIC string `xml:"SIC"`
PAYEEID string `xml:"PAYEEID"`
NAME string `xml:"NAME"`
PAYEE *Payee `xml:"PAYEE"`
EXTDNAME string `xml:"EXTDNAME"`
BANKACCTTO *BankAccount `xml:"BANKACCTTO"`
CCACCTTO *CreditCardAccount `xml:"CCACCTTO"`
MEMO string `xml:"MEMO"`
IMAGEDATA []*ImageData `xml:"IMAGEDATA"`
CURRENCY *Currency `xml:"CURRENCY"`
ORIGCURRENCY *Currency `xml:"ORIGCURRENCY"`
INV401KSOURCE string `xml:"INV401KSOURCE"`
}
// TransferInfo is The OFX element "XFERINFO" is of type "TransferInfo"
type TransferInfo struct {
BANKACCTFROM *BankAccount `xml:"BANKACCTFROM"`
LOANACCTFROM *LoanAccount `xml:"LOANACCTFROM"`
CCACCTFROM *CreditCardAccount `xml:"CCACCTFROM"`
BANKACCTTO *BankAccount `xml:"BANKACCTTO"`
LOANACCTTO *LoanAccount `xml:"LOANACCTTO"`
CCACCTTO *CreditCardAccount `xml:"CCACCTTO"`
TRNAMT string `xml:"TRNAMT"`
LOANTRNAMT *LoanTransactionAmount `xml:"LOANTRNAMT"`
DTDUE string `xml:"DTDUE"`
}
// TransferProcessingStatus is The OFX element "XFERPRCSTS" is of type "TransferProcessingStatus"
type TransferProcessingStatus struct {
XFERPRCCODE string `xml:"XFERPRCCODE"`
DTXFERPRC string `xml:"DTXFERPRC"`
}
// AbstractSyncRequest ...
type AbstractSyncRequest struct {
TOKEN string `xml:"TOKEN"`
TOKENONLY string `xml:"TOKENONLY"`
REFRESH string `xml:"REFRESH"`
REJECTIFMISSING string `xml:"REJECTIFMISSING"`
*AbstractRequest
}
// AbstractSyncResponse ...
type AbstractSyncResponse struct {
TOKEN string `xml:"TOKEN"`
LOSTSYNC string `xml:"LOSTSYNC"`
*AbstractResponse
}
// AbstractTransactionRequest ...
type AbstractTransactionRequest struct {
TRNUID string `xml:"TRNUID"`
CLTCOOKIE string `xml:"CLTCOOKIE"`
TAN string `xml:"TAN"`
*AbstractRequest
}
// AbstractTransactionResponse ...
type AbstractTransactionResponse struct {
TRNUID string `xml:"TRNUID"`
STATUS *Status `xml:"STATUS"`
CLTCOOKIE string `xml:"CLTCOOKIE"`
*AbstractResponse
}
// LoanAccountEnum is The OFX element "LOANACCTTYPE" is of type "LoanAccountEnum"
type LoanAccountEnum string
// LoanTypeEnum is The OFX element "LOANTYPE" is of type "LoanTypeEnum"
type LoanTypeEnum string
// LoanNumPaymentsType is The OFX element "LOANINITNUMPMTS" is of type "LoanInitialPaymentsType"
type LoanNumPaymentsType string
// ExtendedNameType is The OFX element "EXTDNAME" is of type "ExtendedNameType"
type ExtendedNameType string
// PrincipalBalanceType is The OFX element "PRINBAL" is of type "PrincipalBalanceType"
type PrincipalBalanceType struct {
BALAMT string `xml:"BALAMT"`
PRINYTD string `xml:"PRINYTD"`
PRINLTD string `xml:"PRINLTD"`
DTASOF string `xml:"DTASOF"`
}
// LoanInterestType is The OFX element "LOANINT" is of type "LoanInterestType"
type LoanInterestType struct {
LOANINTYTD string `xml:"LOANINTYTD"`
LOANINTLTD string `xml:"LOANINTLTD"`
LOANINTPRJ string `xml:"LOANINTPRJ"`
DTASOF string `xml:"DTASOF"`
}
// LoanRateType is The OFX element "LOANRATE" is of type "LoanRateType"
type LoanRateType struct {
LOANINTRATE string `xml:"LOANINTRATE"`
RATETYPE string `xml:"RATETYPE"`
DTASOF string `xml:"DTASOF"`
}
// LoanPaymentAmount is The OFX element "LOANPMT" is of type "LoanPaymentAmount"
type LoanPaymentAmount struct {
PMTAMT string `xml:"PMTAMT"`
DTPMTDUE string `xml:"DTPMTDUE"`
LATEFEEAMT string `xml:"LATEFEEAMT"`
ESCRWAMT *EscrowAmount `xml:"ESCRWAMT"`
LOANPMTTYPE string `xml:"LOANPMTTYPE"`
}
// LoanFrequencyEnum is The OFX element "LOANFREQ" is of type "LoanFrequencyEnum"
type LoanFrequencyEnum string
// LoanPaymentEnum is The OFX element "LOANPMTTYPE" is of type "LoanPaymentEnum"
type LoanPaymentEnum string
// LoanRateEnum is The OFX element "LOANFREQ" is of type "LoanFrequencyEnum"
type LoanRateEnum string
// LoanAccountInfo is The OFX element "LOANACCTINFO" is of type "LoanAccountInfo"
type LoanAccountInfo struct {
LOANACCTFROM *LoanAccount `xml:"LOANACCTFROM"`
OTHERACCTINFO *OtherAccountInfo `xml:"OTHERACCTINFO"`
LOANTYPE string `xml:"LOANTYPE"`
LOANINITNUMPMTS string `xml:"LOANINITNUMPMTS"`
LOANINITBAL string `xml:"LOANINITBAL"`
LOANFREQ string `xml:"LOANFREQ"`
DTLOANSTART string `xml:"DTLOANSTART"`
DTLOANMATURITY string `xml:"DTLOANMATURITY"`
PRINBAL *PrincipalBalanceType `xml:"PRINBAL"`
BALLOONAMT string `xml:"BALLOONAMT"`
LOANINT *LoanInterestType `xml:"LOANINT"`
LOANIRATE *LoanRateType `xml:"LOANIRATE"`
LOANPMT *LoanPaymentAmount `xml:"LOANPMT"`
LOANRMNPMTS string `xml:"LOANRMNPMTS"`
SUPTXDL string `xml:"SUPTXDL"`
XFERSRC string `xml:"XFERSRC"`
XFERDEST string `xml:"XFERDEST"`
ACCTCLASSIFICATION string `xml:"ACCTCLASSIFICATION"`
SVCSTATUS string `xml:"SVCSTATUS"`
*AbstractAccountInfo
}
// LoanAccount is The OFX elements LOANACCTFROM and LOANACCTTO are of type "LoanAccount"
type LoanAccount struct {
LOANACCTID string `xml:"LOANACCTID"`
LOANACCTTYPE string `xml:"LOANACCTTYPE"`
*AbstractAccount
}
// LoanTransactionAmount is The OFX element LOANTRNAMT is of type "LoanTransactionAmount"
type LoanTransactionAmount struct {
PRINAMT string `xml:"PRINAMT"`
INTAMT string `xml:"INTAMT"`
ESCRWAMT *EscrowAmount `xml:"ESCRWAMT"`
INSURANCE string `xml:"INSURANCE"`
}
// EscrowAmount is The OFX element ESCRWAMT is of type "EscrowAmount"
type EscrowAmount struct {
ESCRWTOTAL string `xml:"ESCRWTOTAL"`
ESCRWTAX string `xml:"ESCRWTAX"`
ESCRWINS string `xml:"ESCRWINS"`
ESCRWPMI string `xml:"ESCRWPMI"`
ESCRWFEES string `xml:"ESCRWFEES"`
ESCRWOTHER string `xml:"ESCRWOTHER"`
}
// ImageData is The OFX element "IMAGEDATA" is of type "ImageData"
type ImageData struct {
IMAGETYPE string `xml:"IMAGETYPE"`
IMAGEREF string `xml:"IMAGEREF"`
IMAGEREFTYPE string `xml:"IMAGEREFTYPE"`
IMAGEDELAY string `xml:"IMAGEDELAY"`
DTIMAGEAVAIL string `xml:"DTIMAGEAVAIL"`
IMAGETTL string `xml:"IMAGETTL"`
CHECKSUP string `xml:"CHECKSUP"`
}
// ImageTypeEnum is The OFX element "IMAGETYPE" is of type "ImageTypeEnum"
type ImageTypeEnum string
// ImageRefType is The OFX element "IMAGEREF" is of type "ImageRefype"
type ImageRefType string
// ImageRefTypeEnum is The OFX element "IMAGEREFTYPE" is of type "ImageTypeEnum"
type ImageRefTypeEnum string
// ImageDelayType is The OFX element "IMAGEDELAYTYPE" is of type "ImageDelayType"
type ImageDelayType string
// ImageTotalType is The OFX element "DFLTIMAGETTL" is of type "ImageTotalType"
type ImageTotalType string
// CheckSupportEnum is The OFX element "CHECKSUP" is of type "CheckSupportEnum"
type CheckSupportEnum string
// AbstractResponse ...
type AbstractResponse struct {
}
// AbstractRequest ...
type AbstractRequest struct {
}
// RewardInfoType is The OFX element "REWARDINFO" is of type "RewardInfoType"
type RewardInfoType struct {
NAME string `xml:"NAME"`
REWARDBAL string `xml:"REWARDBAL"`
REWARDEARNED string `xml:"REWARDEARNED"`
}
// LastPmtInfoType is The OFX element "LASTPMTINFO" is of type "LastPmtInfoType"
type LastPmtInfoType struct {
LASTPMTDATE string `xml:"LASTPMTDATE"`
LASTPMTAMT string `xml:"LASTPMTAMT"`
}
// LoanDetailType is The OFX element "LOANDETAIL" is of type "LoanDetailType"
type LoanDetailType struct {
LOANINITNUMPMTS string `xml:"LOANINITNUMPMTS"`
LOANRMNPMTS string `xml:"LOANRMNPMTS"`
LOANFREQ string `xml:"LOANFREQ"`
ESCROWBAL string `xml:"ESCROWBAL"`
PRINCIPALBAL string `xml:"PRINCIPALBAL"`
DTLOANSTART string `xml:"DTLOANSTART"`
LOANINITBAL string `xml:"LOANINITBAL"`
DTLOANMATURITY string `xml:"DTLOANMATURITY"`
}
// CreditLineInfoType is The OFX element "CREDITLINEINFO" is of type "CreditLineInfoType"
type CreditLineInfoType struct {
CREDITLIMIT string `xml:"CREDITLIMIT"`
DTPMTDUE string `xml:"DTPMTDUE"`
MINPMTDUE string `xml:"MINPMTDUE"`
INTAMT string `xml:"INTAMT"`
PASTDUEAMT string `xml:"PASTDUEAMT"`
LATEFEEAMT string `xml:"LATEFEEAMT"`
AUTOPAY string `xml:"AUTOPAY"`
LASTPMTINFO *LastPmtInfoType `xml:"LASTPMTINFO"`
LOANDETAIL *LoanDetailType `xml:"LOANDETAIL"`
}
// PendingTransaction is The OFX element "STMTTRNP" is of type "PendingTransaction"
type PendingTransaction struct {
TRNTYPE string `xml:"TRNTYPE"`
DTTRAN string `xml:"DTTRAN"`
DTEXPIRE string `xml:"DTEXPIRE"`
TRNAMT string `xml:"TRNAMT"`
REFNUM string `xml:"REFNUM"`
NAME string `xml:"NAME"`
EXTDNAME string `xml:"EXTDNAME"`
MEMO string `xml:"MEMO"`
IMAGEDATA []*ImageData `xml:"IMAGEDATA"`
CURRENCY *Currency `xml:"CURRENCY"`
ORIGCURRENCY *Currency `xml:"ORIGCURRENCY"`
}
// PendingTransactionList is The OFX element "BANKTRANLISTP" is of type "PendingTransactionList"
type PendingTransactionList struct {
DTASOF string `xml:"DTASOF"`
STMTTRNP []*PendingTransaction `xml:"STMTTRNP"`
}
// HolderTypeEnum is The OFX element "HOLDERTYPE" is of type "HolderTypeEnum"
type HolderTypeEnum string
// AccountHolderType is The OFX element "PRIMARYHOLDER" and "SECONDARYHOLDER" is of type "AccountHolderType"
type AccountHolderType struct {
FIRSTNAME string `xml:"FIRSTNAME"`
MIDDLENAME string `xml:"MIDDLENAME"`
LASTNAME string `xml:"LASTNAME"`
ADDR1 string `xml:"ADDR1"`
ADDR2 string `xml:"ADDR2"`
ADDR3 string `xml:"ADDR3"`
CITY string `xml:"CITY"`
STATE string `xml:"STATE"`
POSTALCODE string `xml:"POSTALCODE"`
COUNTRY string `xml:"COUNTRY"`
DAYPHONE string `xml:"DAYPHONE"`
EVEPHONE string `xml:"EVEPHONE"`
EMAIL string `xml:"EMAIL"`
HOLDERTYPE string `xml:"HOLDERTYPE"`
}
// HolderInfoType is The OFX element "HOLDERINFO" is of type "HolderInfoType"
type HolderInfoType struct {
PRIMARYHOLDER *AccountHolderType `xml:"PRIMARYHOLDER"`
SECONDARYHOLDER *AccountHolderType `xml:"SECONDARYHOLDER"`
}
// AccountClassificationEnum is The OFX element "ACCTCLASSIFICATION" is of type "AccountClassificationEnum"
type AccountClassificationEnum string
// LoanPaymentInfo is The OFX element LOANPMTINFO is of type "LoanPaymentInfo"
type LoanPaymentInfo struct {
PRINAMT string `xml:"PRINAMT"`
INTAMT string `xml:"INTAMT"`
ESCRWAMT *EscrowAmount `xml:"ESCRWAMT"`
INSURANCE string `xml:"INSURANCE"`
LATEFEEAMT string `xml:"LATEFEEAMT"`
OTHERAMT string `xml:"OTHERAMT"`
}
// AccountUsageType is The OFX element "ACCTUSAGE" is of type "AccountUsageType".
// By convention, specify 'DEPOSITS' for deposits/credits or 'WITHDRAWALS' for charges/withdrawals/debits or 'BOTH' for all usage possibilities.
type AccountUsageType string
// OtherAccountInfo is The OFX element OTHERACCTINFO is of type "OtherAccountInfo"
type OtherAccountInfo struct {
BANKID string `xml:"BANKID"`
ACCTID string `xml:"ACCTID"`
ACCTUSAGE string `xml:"ACCTUSAGE"`
}
// EncryptedContentA256 is The OFX elements "*PII" are of type "EncryptedContentA256" or "EncryptedContentA512"
type EncryptedContentA256 string
// EncryptedContentA512 is The OFX elements "*PII" are of type "EncryptedContentA256" or "EncryptedContentA512"
type EncryptedContentA512 string
// EncryptionInfoA10000 is The OFX elements "ENCRYPTION" is of type "EncryptionInfoA10000"
type EncryptionInfoA10000 string
// ContactNameType is The OFX element "CONTACTNAME" is of type "ContactNameType" or "ContactNameEncType"
type ContactNameType struct {
FIRSTNAME string `xml:"FIRSTNAME"`
MIDDLENAME string `xml:"MIDDLENAME"`
LASTNAME string `xml:"LASTNAME"`
BUSNAME string `xml:"BUSNAME"`
URL string `xml:"URL"`
SIC string `xml:"SIC"`
}
// ContactNameEncType is The OFX element "CONTACTNAME" is of type "ContactNameType" or "ContactNameEncType"
type ContactNameEncType struct {
FIRSTNAME string `xml:"FIRSTNAME"`
MIDDLENAME string `xml:"MIDDLENAME"`
LASTNAME string `xml:"LASTNAME"`
BUSNAME string `xml:"BUSNAME"`
URL string `xml:"URL"`
SIC string `xml:"SIC"`
}
// ContactNamesType is The OFX element "CONTACTNAMES" is of type "ContactNamesType" or "ContactNamesEncType"
type ContactNamesType struct {
CONTACTNAME []*ContactNameType `xml:"CONTACTNAME"`
}
// ContactNamesEncType is The OFX element "CONTACTNAMES" is of type "ContactNamesType" or "ContactNamesEncType"
type ContactNamesEncType struct {
CONTACTNAME []*ContactNameEncType `xml:"CONTACTNAME"`
}
// UserInfoRequest is The OFX element "USERINFORQ" is of type "UserInfoRequest"
type UserInfoRequest struct {
DTUSERUP string `xml:"DTUSERUP"`
}
// UserInfoResponse is The OFX element "USERINFORS" is of type "UserInfoResponse". When including CONTACTPROFENC or CONTACTPROF,
//
// only one occurrence of CONTACTNAME should be included within CONTACTNAMES.
type UserInfoResponse struct {
DTUSERUP string `xml:"DTUSERUP"`
CONTACTPROFENC *ContactProfileEnc `xml:"CONTACTPROFENC"`
CONTACTPROF *ContactProfile `xml:"CONTACTPROF"`
}
// ContactProfile is The OFX element "CONTACTPROF" is of type "ContactProfile"
type ContactProfile struct {
CONTACTNAMES *ContactNamesType `xml:"CONTACTNAMES"`
ADDR1 string `xml:"ADDR1"`
ADDR2 string `xml:"ADDR2"`
ADDR3 string `xml:"ADDR3"`
CITY string `xml:"CITY"`
STATE string `xml:"STATE"`
POSTALCODE string `xml:"POSTALCODE"`
COUNTRY string `xml:"COUNTRY"`
PHONE string `xml:"PHONE"`
ALTPHONE string `xml:"ALTPHONE"`
EMAIL string `xml:"EMAIL"`
ALTEMAIL string `xml:"ALTEMAIL"`
}
// ContactProfileEnc is The OFX element "CONTACTPROFENC" is of type "ContactProfileEnc"
type ContactProfileEnc struct {
ENCRYPTION string `xml:"ENCRYPTION"`
CONTACTNAMES *ContactNamesEncType `xml:"CONTACTNAMES"`
ADDR1 string `xml:"ADDR1"`
ADDR2 string `xml:"ADDR2"`
ADDR3 string `xml:"ADDR3"`
CITY string `xml:"CITY"`
STATE string `xml:"STATE"`
POSTALCODE string `xml:"POSTALCODE"`
COUNTRY string `xml:"COUNTRY"`
PHONE string `xml:"PHONE"`
ALTPHONE string `xml:"ALTPHONE"`
EMAIL string `xml:"EMAIL"`
ALTEMAIL string `xml:"ALTEMAIL"`
}
// TagTypeType is The OFX element "TAGTYPE" is of type "TagTypeType"
type TagTypeType string
// TagValueType is The OFX element "TAGVALUE" is of type "TagValueType"
type TagValueType string
// OFXElementType is The OFX element "OFXELEMENT" is of type "OFXElementType"
type OFXElementType struct {
TAGNAME string `xml:"TAGNAME"`
NAME string `xml:"NAME"`
TAGTYPE string `xml:"TAGTYPE"`
TAGVALUE string `xml:"TAGVALUE"`
}
// OFXExtensionType is The OFX element "OFXEXTENSION" is of type "OFXExtensionType"
type OFXExtensionType struct {
OFXELEMENT []*OFXElementType `xml:"OFXELEMENT"`
}