1: <?php
2: namespace Hyperwallet\Model;
3:
4: /**
5: * Represents a V4 Bank Account
6: *
7: * @property string $token The bank account token
8: * @property string $type The transfer method type
9: *
10: * @property string $status The bank account status
11: * @property \DateTime $createdOn The bank account creation date
12: *
13: * @property string $transferMethodCountry The transfer method country
14: * @property string $transferMethodCurrency The transfer method currency
15: *
16: * @property string $bankName The bank name
17: * @property string $bankId The bank id
18: * @property string $branchName The branch name
19: * @property string $branchId The branch id
20: * @property string $bankAccountId The bank account id
21: * @property string $bankAccountPurpose The bank account purpose
22: *
23: * @property string $branchAddressLine1 The branch address line 1
24: * @property string $branchAddressLine2 The branch address line 2
25: * @property string $branchCity The branch city
26: * @property string $branchStateProvince The branch state or province
27: * @property string $branchCountry The branch country
28: * @property string $branchPostalCode The branch postal code
29: *
30: * @property string $wireInstructions The wire instructions
31: *
32: * @property string $intermediaryBankId The intermediary bank id
33: * @property string $intermediaryBankName The intermediary bank name
34: * @property string $intermediaryBankAccountId The intermediary bank account id
35: *
36: * @property string $intermediaryAddressLine1 The intermediary address line 1
37: * @property string $intermediaryAddressLine2 The intermediary address line 2
38: * @property string $intermediaryCity The intermediary city
39: * @property string $intermediaryStateProvince The intermediary state or province
40: * @property string $intermediaryCountry The intermediary country
41: * @property string $intermediaryPostalCode The intermediary postal code
42: *
43: * @property string $profileType The profile type
44: *
45: * @property string $businessName The business name
46: * @property string $businessOperatingName The business operating name
47: * @property string $businessRegistrationId The business registration id
48: * @property string $businessRegistrationCountry The business registration country
49: *
50: * @property string $firstName The first name
51: * @property string $middleName The middle name
52: * @property string $lastName The last name
53: * @property \DateTime $dateOfBirth The date of birth
54: * @property string $countryOfBirth The country of birth
55: * @property string $countryOfNationality The country of nationality
56: * @property string $phoneNumber The phone number
57: * @property string $mobileNumber The mobile number
58: *
59: * @property string $governmentId The government id
60: *
61: * @property string $addressLine1 The address line 1
62: * @property string $city The city
63: * @property string $stateProvince The state or province
64: * @property string $country The country
65: * @property string $postalCode The postal code
66: * @property bool $isDefaultTransferMethod The flag to denote default account
67: *
68: * @package Hyperwallet\Model
69: */
70: class BankAccount extends BaseModel {
71:
72: /**
73: * @internal
74: *
75: * Read only fields
76: *
77: * @var string[]
78: */
79: private static $READ_ONLY_FIELDS = array('token', 'status', 'createdOn');
80:
81: const TYPE_BANK_ACCOUNT = 'BANK_ACCOUNT';
82: const TYPE_WIRE_ACCOUNT = 'WIRE_ACCOUNT';
83:
84: const STATUS_ACTIVATED = 'ACTIVATED';
85: const STATUS_INVALID = 'INVALID';
86: const STATUS_DE_ACTIVATED = 'DE_ACTIVATED';
87:
88: const PROFILE_TYPE_INDIVIDUAL = 'INDIVIDUAL';
89: const PROFILE_TYPE_BUSINESS = 'BUSINESS';
90:
91: public static function FILTERS_ARRAY() {
92: return array('type','status', 'createdBefore', 'createdAfter', 'sortBy', 'limit');
93: }
94:
95:
96: /**
97: * Creates a instance of BankAccount
98: *
99: * @param string[] $properties The default properties
100: */
101: public function __construct(array $properties = array()) {
102: parent::__construct(self::$READ_ONLY_FIELDS, $properties);
103: }
104:
105: /**
106: * Get the bank account token
107: *
108: * @return string
109: */
110: public function getToken() {
111: return $this->token;
112: }
113:
114: /**
115: * Set the bank account token
116: *
117: * @param string $token
118: * @return BankAccount
119: */
120: public function setToken($token) {
121: $this->token = $token;
122: return $this;
123: }
124:
125: /**
126: * Get the bank account id
127: *
128: * @return string
129: */
130: public function getBankAccountId() {
131: return $this->bankAccountId;
132: }
133:
134: /**
135: * Set the bank account id
136: *
137: * @param string $bankAccountId
138: * @return BankAccount
139: */
140: public function setBankAccountId($bankAccountId) {
141: $this->bankAccountId = $bankAccountId;
142: return $this;
143: }
144:
145: /**
146: * Get the transfer method type
147: *
148: * @return string
149: */
150: public function getType() {
151: return $this->type;
152: }
153:
154: /**
155: * Set the transfer method type
156: *
157: * @param string $type
158: * @return BankAccount
159: */
160: public function setType($type) {
161: $this->type = $type;
162: return $this;
163: }
164:
165: /**
166: * Get the transfer method country
167: *
168: * @return string
169: */
170: public function getTransferMethodCountry() {
171: return $this->transferMethodCountry;
172: }
173:
174: /**
175: * Set the transfer method country
176: *
177: * @param string $transferMethodCountry
178: * @return BankAccount
179: */
180: public function setTransferMethodCountry($transferMethodCountry) {
181: $this->transferMethodCountry = $transferMethodCountry;
182: return $this;
183: }
184:
185: /**
186: * Get the transfer method currency
187: *
188: * @return string
189: */
190: public function getTransferMethodCurrency() {
191: return $this->transferMethodCurrency;
192: }
193:
194: /**
195: * Set the transfer method currency
196: *
197: * @param string $transferMethodCurrency
198: * @return BankAccount
199: */
200: public function setTransferMethodCurrency($transferMethodCurrency) {
201: $this->transferMethodCurrency = $transferMethodCurrency;
202: return $this;
203: }
204:
205: /**
206: * Get the bank name
207: *
208: * @return string
209: */
210: public function getBankName() {
211: return $this->bankName;
212: }
213:
214: /**
215: * Set the bank name
216: *
217: * @param string $bankName
218: * @return BankAccount
219: */
220: public function setBankName($bankName) {
221: $this->bankName = $bankName;
222: return $this;
223: }
224:
225: /**
226: * Get the bank id
227: *
228: * @return string
229: */
230: public function getBankId() {
231: return $this->bankId;
232: }
233:
234: /**
235: * Set the bank id
236: *
237: * @param string $bankId
238: * @return BankAccount
239: */
240: public function setBankId($bankId) {
241: $this->bankId = $bankId;
242: return $this;
243: }
244:
245: /**
246: * Get the branch name
247: *
248: * @return string
249: */
250: public function getBranchName() {
251: return $this->branchName;
252: }
253:
254: /**
255: * Set the branch name
256: *
257: * @param string $branchName
258: * @return BankAccount
259: */
260: public function setBranchName($branchName) {
261: $this->branchName = $branchName;
262: return $this;
263: }
264:
265: /**
266: * Get the branch id
267: *
268: * @return string
269: */
270: public function getBranchId() {
271: return $this->branchId;
272: }
273:
274: /**
275: * Set the branch id
276: *
277: * @param string $branchId
278: * @return BankAccount
279: */
280: public function setBranchId($branchId) {
281: $this->branchId = $branchId;
282: return $this;
283: }
284:
285: /**
286: * Get the bank account status
287: *
288: * @return string
289: */
290: public function getStatus() {
291: return $this->status;
292: }
293:
294: /**
295: * Get the bank account creation date
296: * @return \DateTime
297: */
298: public function getCreatedOn() {
299: return $this->createdOn ? new \DateTime($this->createdOn) : null;
300: }
301:
302: /**
303: * Get the bank account purpose
304: *
305: * @return string
306: */
307: public function getBankAccountPurpose() {
308: return $this->bankAccountPurpose;
309: }
310:
311: /**
312: * Set the bank account purpose
313: *
314: * @param string $bankAccountPurpose
315: * @return BankAccount
316: */
317: public function setBankAccountPurpose($bankAccountPurpose) {
318: $this->bankAccountPurpose = $bankAccountPurpose;
319: return $this;
320: }
321:
322: /**
323: * Get the branch address line 1
324: *
325: * @return string
326: */
327: public function getBranchAddressLine1() {
328: return $this->branchAddressLine1;
329: }
330:
331: /**
332: * Set the branch address line 1
333: *
334: * @param string $branchAddressLine1
335: * @return BankAccount
336: */
337: public function setBranchAddressLine1($branchAddressLine1) {
338: $this->branchAddressLine1 = $branchAddressLine1;
339: return $this;
340: }
341:
342: /**
343: * Get the branch address line 2
344: *
345: * @return string
346: */
347: public function getBranchAddressLine2() {
348: return $this->branchAddressLine2;
349: }
350:
351: /**
352: * Set the branch address line 2
353: *
354: * @param string $branchAddressLine2
355: * @return BankAccount
356: */
357: public function setBranchAddressLine2($branchAddressLine2) {
358: $this->branchAddressLine2 = $branchAddressLine2;
359: return $this;
360: }
361:
362: /**
363: * Get the branch city
364: *
365: * @return string
366: */
367: public function getBranchCity() {
368: return $this->branchCity;
369: }
370:
371: /**
372: * Set the branch city
373: *
374: * @param string $branchCity
375: * @return BankAccount
376: */
377: public function setBranchCity($branchCity) {
378: $this->branchCity = $branchCity;
379: return $this;
380: }
381:
382: /**
383: * Get the branch state or province
384: *
385: * @return string
386: */
387: public function getBranchStateProvince() {
388: return $this->branchStateProvince;
389: }
390:
391: /**
392: * Set the branch state or province
393: *
394: * @param string $branchStateProvince
395: * @return BankAccount
396: */
397: public function setBranchStateProvince($branchStateProvince) {
398: $this->branchStateProvince = $branchStateProvince;
399: return $this;
400: }
401:
402: /**
403: * Get the branch country
404: *
405: * @return string
406: */
407: public function getBranchCountry() {
408: return $this->branchCountry;
409: }
410:
411: /**
412: * Set the branch country
413: *
414: * @param string $branchCountry
415: * @return BankAccount
416: */
417: public function setBranchCountry($branchCountry) {
418: $this->branchCountry = $branchCountry;
419: return $this;
420: }
421:
422: /**
423: * Get the branch postal code
424: *
425: * @return string
426: */
427: public function getBranchPostalCode() {
428: return $this->branchPostalCode;
429: }
430:
431: /**
432: * Set the branch postal code
433: *
434: * @param string $branchPostalCode
435: * @return BankAccount
436: */
437: public function setBranchPostalCode($branchPostalCode) {
438: $this->branchPostalCode = $branchPostalCode;
439: return $this;
440: }
441:
442: /**
443: * Get the wire instructions
444: *
445: * @return string
446: */
447: public function getWireInstructions() {
448: return $this->wireInstructions;
449: }
450:
451: /**
452: * Set the wire instructions
453: *
454: * @param string $wireInstructions
455: * @return BankAccount
456: */
457: public function setWireInstructions($wireInstructions) {
458: $this->wireInstructions = $wireInstructions;
459: return $this;
460: }
461:
462: /**
463: * Get the intermediary bank id
464: *
465: * @return string
466: */
467: public function getIntermediaryBankId() {
468: return $this->intermediaryBankId;
469: }
470:
471: /**
472: * Set the intermediary bank id
473: *
474: * @param string $intermediaryBankId
475: * @return BankAccount
476: */
477: public function setIntermediaryBankId($intermediaryBankId) {
478: $this->intermediaryBankId = $intermediaryBankId;
479: return $this;
480: }
481:
482: /**
483: * Get the intermediary bank name
484: *
485: * @return string
486: */
487: public function getIntermediaryBankName() {
488: return $this->intermediaryBankName;
489: }
490:
491: /**
492: * Set the intermediary bank name
493: *
494: * @param string $intermediaryBankName
495: * @return BankAccount
496: */
497: public function setIntermediaryBankName($intermediaryBankName) {
498: $this->intermediaryBankName = $intermediaryBankName;
499: return $this;
500: }
501:
502: /**
503: * Get the intermediary bank account id
504: *
505: * @return string
506: */
507: public function getIntermediaryBankAccountId() {
508: return $this->intermediaryBankAccountId;
509: }
510:
511: /**
512: * Set the intermediary bank account id
513: *
514: * @param string $intermediaryBankAccountId
515: * @return BankAccount
516: */
517: public function setIntermediaryBankAccountId($intermediaryBankAccountId) {
518: $this->intermediaryBankAccountId = $intermediaryBankAccountId;
519: return $this;
520: }
521:
522: /**
523: * Get the intermediary address line 1
524: *
525: * @return string
526: */
527: public function getIntermediaryAddressLine1() {
528: return $this->intermediaryAddressLine1;
529: }
530:
531: /**
532: * Set the intermediary address line 1
533: *
534: * @param string $intermediaryAddressLine1
535: * @return BankAccount
536: */
537: public function setIntermediaryAddressLine1($intermediaryAddressLine1) {
538: $this->intermediaryAddressLine1 = $intermediaryAddressLine1;
539: return $this;
540: }
541:
542: /**
543: * Get the intermediary address line 2
544: *
545: * @return string
546: */
547: public function getIntermediaryAddressLine2() {
548: return $this->intermediaryAddressLine2;
549: }
550:
551: /**
552: * Set the intermediary address line 2
553: *
554: * @param string $intermediaryAddressLine2
555: * @return BankAccount
556: */
557: public function setIntermediaryAddressLine2($intermediaryAddressLine2) {
558: $this->intermediaryAddressLine2 = $intermediaryAddressLine2;
559: return $this;
560: }
561:
562: /**
563: * Get the intermediary city
564: *
565: * @return string
566: */
567: public function getIntermediaryCity() {
568: return $this->intermediaryCity;
569: }
570:
571: /**
572: * Set the intermediary city
573: *
574: * @param string $intermediaryCity
575: * @return BankAccount
576: */
577: public function setIntermediaryCity($intermediaryCity) {
578: $this->intermediaryCity = $intermediaryCity;
579: return $this;
580: }
581:
582: /**
583: * Get the intermediary state or province
584: *
585: * @return string
586: */
587: public function getIntermediaryStateProvince() {
588: return $this->intermediaryStateProvince;
589: }
590:
591: /**
592: * Set the intermediary state or province
593: *
594: * @param string $intermediaryStateProvince
595: * @return BankAccount
596: */
597: public function setIntermediaryStateProvince($intermediaryStateProvince) {
598: $this->intermediaryStateProvince = $intermediaryStateProvince;
599: return $this;
600: }
601:
602: /**
603: * Get the intermediary country
604: *
605: * @return string
606: */
607: public function getIntermediaryCountry() {
608: return $this->intermediaryCountry;
609: }
610:
611: /**
612: * Set the intermediary country
613: *
614: * @param string $intermediaryCountry
615: * @return BankAccount
616: */
617: public function setIntermediaryCountry($intermediaryCountry) {
618: $this->intermediaryCountry = $intermediaryCountry;
619: return $this;
620: }
621:
622: /**
623: * Get the intermediary postal code
624: *
625: * @return string
626: */
627: public function getIntermediaryPostalCode() {
628: return $this->intermediaryPostalCode;
629: }
630:
631: /**
632: * Set the intermediary postal code
633: *
634: * @param string $intermediaryPostalCode
635: * @return BankAccount
636: */
637: public function setIntermediaryPostalCode($intermediaryPostalCode) {
638: $this->intermediaryPostalCode = $intermediaryPostalCode;
639: return $this;
640: }
641:
642: /**
643: * Get the profile type
644: *
645: * @return string
646: */
647: public function getProfileType() {
648: return $this->profileType;
649: }
650:
651: /**
652: * Set the profile type
653: *
654: * @param string $profileType
655: * @return BankAccount
656: */
657: public function setProfileType($profileType) {
658: $this->profileType = $profileType;
659: return $this;
660: }
661:
662: /**
663: * Get the business name
664: *
665: * @return string
666: */
667: public function getBusinessName() {
668: return $this->businessName;
669: }
670:
671: /**
672: * Set the business name
673: *
674: * @param string $businessName
675: * @return BankAccount
676: */
677: public function setBusinessName($businessName) {
678: $this->businessName = $businessName;
679: return $this;
680: }
681:
682: /**
683: * Get the business operating name
684: *
685: * @return string
686: */
687: public function getBusinessOperatingName()
688: {
689: return $this->businessOperatingName;
690: }
691:
692: /**
693: * Set the business operating name
694: *
695: * @param string $businessOperatingName
696: * @return BankAccount
697: */
698: public function setBusinessOperatingName($businessOperatingName)
699: {
700: $this->businessOperatingName = $businessOperatingName;
701: return $this;
702: }
703:
704: /**
705: * Get the business registration id
706: *
707: * @return string
708: */
709: public function getBusinessRegistrationId() {
710: return $this->businessRegistrationId;
711: }
712:
713: /**
714: * Set the business registration id
715: *
716: * @param string $businessRegistrationId
717: * @return BankAccount
718: */
719: public function setBusinessRegistrationId($businessRegistrationId) {
720: $this->businessRegistrationId = $businessRegistrationId;
721: return $this;
722: }
723:
724: /**
725: * Get the business registration country
726: *
727: * @return string
728: */
729: public function getBusinessRegistrationCountry() {
730: return $this->businessRegistrationCountry;
731: }
732:
733: /**
734: * Set the business registration country
735: *
736: * @param string $businessRegistrationCountry
737: * @return BankAccount
738: */
739: public function setBusinessRegistrationCountry($businessRegistrationCountry) {
740: $this->businessRegistrationCountry = $businessRegistrationCountry;
741: return $this;
742: }
743:
744: /**
745: * Get the first name
746: *
747: * @return string
748: */
749: public function getFirstName() {
750: return $this->firstName;
751: }
752:
753: /**
754: * Set the first name
755: *
756: * @param string $firstName
757: * @return BankAccount
758: */
759: public function setFirstName($firstName) {
760: $this->firstName = $firstName;
761: return $this;
762: }
763:
764: /**
765: * Get the middle name
766: *
767: * @return string
768: */
769: public function getMiddleName() {
770: return $this->middleName;
771: }
772:
773: /**
774: * Set the middle name
775: *
776: * @param string $middleName
777: * @return BankAccount
778: */
779: public function setMiddleName($middleName) {
780: $this->middleName = $middleName;
781: return $this;
782: }
783:
784: /**
785: * Get the last name
786: *
787: * @return string
788: */
789: public function getLastName() {
790: return $this->lastName;
791: }
792:
793: /**
794: * Set the last name
795: *
796: * @param string $lastName
797: * @return BankAccount
798: */
799: public function setLastName($lastName) {
800: $this->lastName = $lastName;
801: return $this;
802: }
803:
804: /**
805: * Get the date of birth
806: *
807: * @return \DateTime|null
808: */
809: public function getDateOfBirth() {
810: return $this->dateOfBirth ? new \DateTime($this->dateOfBirth) : null;
811: }
812:
813: /**
814: * Set the date of birth
815: *
816: * @param \DateTime|null $dateOfBirth
817: * @return BankAccount
818: */
819: public function setDateOfBirth(\DateTime $dateOfBirth = null) {
820: $this->dateOfBirth = $dateOfBirth == null ? null : $dateOfBirth->format('Y-m-d');
821: return $this;
822: }
823:
824: /**
825: * Get the country of birth
826: *
827: * @return string
828: */
829: public function getCountryOfBirth() {
830: return $this->countryOfBirth;
831: }
832:
833: /**
834: * Set the country of birth
835: *
836: * @param string $countryOfBirth
837: * @return BankAccount
838: */
839: public function setCountryOfBirth($countryOfBirth) {
840: $this->countryOfBirth = $countryOfBirth;
841: return $this;
842: }
843:
844: /**
845: * Get the country of nationality
846: *
847: * @return string
848: */
849: public function getCountryOfNationality() {
850: return $this->countryOfNationality;
851: }
852:
853: /**
854: * Set the country of nationality
855: *
856: * @param string $countryOfNationality
857: * @return BankAccount
858: */
859: public function setCountryOfNationality($countryOfNationality) {
860: $this->countryOfNationality = $countryOfNationality;
861: return $this;
862: }
863:
864: /**
865: * Get the phone number
866: *
867: * @return string
868: */
869: public function getPhoneNumber() {
870: return $this->phoneNumber;
871: }
872:
873: /**
874: * Set the phone number
875: *
876: * @param string $phoneNumber
877: * @return BankAccount
878: */
879: public function setPhoneNumber($phoneNumber) {
880: $this->phoneNumber = $phoneNumber;
881: return $this;
882: }
883:
884: /**
885: * Get the mobile number
886: *
887: * @return string
888: */
889: public function getMobileNumber() {
890: return $this->mobileNumber;
891: }
892:
893: /**
894: * Set the mobile number
895: *
896: * @param string $mobileNumber
897: * @return BankAccount
898: */
899: public function setMobileNumber($mobileNumber) {
900: $this->mobileNumber = $mobileNumber;
901: return $this;
902: }
903:
904: /**
905: * Get the government id
906: *
907: * @return string
908: */
909: public function getGovernmentId() {
910: return $this->governmentId;
911: }
912:
913: /**
914: * Set the government id
915: *
916: * @param string $governmentId
917: * @return BankAccount
918: */
919: public function setGovernmentId($governmentId) {
920: $this->governmentId = $governmentId;
921: return $this;
922: }
923:
924: /**
925: * Get the address line 1
926: *
927: * @return string
928: */
929: public function getAddressLine1() {
930: return $this->addressLine1;
931: }
932:
933: /**
934: * Set the address line 1
935: *
936: * @param string $addressLine1
937: * @return BankAccount
938: */
939: public function setAddressLine1($addressLine1) {
940: $this->addressLine1 = $addressLine1;
941: return $this;
942: }
943:
944: /**
945: * Get the city
946: *
947: * @return string
948: */
949: public function getCity() {
950: return $this->city;
951: }
952:
953: /**
954: * Set the city
955: *
956: * @param string $city
957: * @return BankAccount
958: */
959: public function setCity($city) {
960: $this->city = $city;
961: return $this;
962: }
963:
964: /**
965: * Get the state or province
966: *
967: * @return string
968: */
969: public function getStateProvince() {
970: return $this->stateProvince;
971: }
972:
973: /**
974: * Set the state or province
975: *
976: * @param string $stateProvince
977: * @return BankAccount
978: */
979: public function setStateProvince($stateProvince) {
980: $this->stateProvince = $stateProvince;
981: return $this;
982: }
983:
984: /**
985: * Get the country
986: *
987: * @return string
988: */
989: public function getCountry() {
990: return $this->country;
991: }
992:
993: /**
994: * Set the country
995: *
996: * @param string $country
997: * @return BankAccount
998: */
999: public function setCountry($country) {
1000: $this->country = $country;
1001: return $this;
1002: }
1003:
1004: /**
1005: * Get the postal code
1006: *
1007: * @return string
1008: */
1009: public function getPostalCode() {
1010: return $this->postalCode;
1011: }
1012:
1013: /**
1014: * Set the postal code
1015: *
1016: * @param string $postalCode
1017: * @return BankAccount
1018: */
1019: public function setPostalCode($postalCode) {
1020: $this->postalCode = $postalCode;
1021: return $this;
1022: }
1023:
1024: /**
1025: * Get the is default transfer method
1026: *
1027: * @return bool
1028: */
1029: public function getIsDefaultTransferMethod() {
1030: return $this->isDefaultTransferMethod;
1031: }
1032:
1033: /**
1034: * Set the is default transfer method
1035: *
1036: * @param bool $isDefaultTransferMethod
1037: * @return BankAccount
1038: */
1039: public function setIsDefaultTransferMethod($isDefaultTransferMethod) {
1040: $this->isDefaultTransferMethod = $isDefaultTransferMethod;
1041: return $this;
1042: }
1043: }
1044: