|
22 | 22 | Account, |
23 | 23 | StatusTransition, |
24 | 24 | TransferMethodConfiguration, |
25 | | - Webhook |
| 25 | + Webhook, |
| 26 | + TransferRefunds |
26 | 27 | ) |
27 | 28 |
|
28 | 29 |
|
@@ -2684,3 +2685,251 @@ def listWebhookNotifications(self, |
2684 | 2685 |
|
2685 | 2686 | def __buildUrl(self, *paths): |
2686 | 2687 | return '/'.join(s.strip('/') for s in paths) |
| 2688 | + |
| 2689 | + def uploadDocumentsForUser(self, |
| 2690 | + userToken=None, |
| 2691 | + data=None, |
| 2692 | + files=None): |
| 2693 | + ''' |
| 2694 | + Upload documents for Users |
| 2695 | +
|
| 2696 | + :param userToken: |
| 2697 | + A token identifying the User. **REQUIRED** |
| 2698 | + :param data: |
| 2699 | + A dictionary containing data for the input documents. **REQUIRED** |
| 2700 | + sample data: |
| 2701 | + jsonData={'data': ['{"documents": [{"type": "DRIVERS_LICENSE", "country": "US", "category": "IDENTIFICATION"}]}']}; |
| 2702 | + :param files: Dictionary of ``'filename': file-like-objects`` |
| 2703 | + for multipart encoding upload. **REQUIRED** |
| 2704 | + sample data: |
| 2705 | + files = { |
| 2706 | + 'drivers_license_front': open('F1.png', 'rb'), |
| 2707 | + 'drivers_license_back': open('F22.png', 'rb') |
| 2708 | + } |
| 2709 | + :returns: |
| 2710 | + A User with documents information |
| 2711 | + ''' |
| 2712 | + |
| 2713 | + if not userToken: |
| 2714 | + raise HyperwalletException('userToken is required') |
| 2715 | + |
| 2716 | + response = self.apiClient.putDocument( |
| 2717 | + self.__buildUrl( |
| 2718 | + 'users', |
| 2719 | + userToken |
| 2720 | + ), |
| 2721 | + data, |
| 2722 | + files |
| 2723 | + ) |
| 2724 | + |
| 2725 | + return User(response) |
| 2726 | + |
| 2727 | + ''' |
| 2728 | +
|
| 2729 | + Transfer Refunds |
| 2730 | +
|
| 2731 | + ''' |
| 2732 | + |
| 2733 | + def createTransferRefund(self, |
| 2734 | + transferToken=None, |
| 2735 | + data=None): |
| 2736 | + ''' |
| 2737 | + Create a Transfer Refund. |
| 2738 | + :param transferToken: |
| 2739 | + A token identifying the Transfer. **REQUIRED** |
| 2740 | + :param data: |
| 2741 | + A dictionary containing Transfer Refund information. **REQUIRED** |
| 2742 | + :returns: |
| 2743 | + A Transfer Refund. |
| 2744 | + ''' |
| 2745 | + |
| 2746 | + if not transferToken: |
| 2747 | + raise HyperwalletException('transferToken is required') |
| 2748 | + |
| 2749 | + if not data: |
| 2750 | + raise HyperwalletException('data is required') |
| 2751 | + |
| 2752 | + response = self.apiClient.doPost( |
| 2753 | + self.__buildUrl( |
| 2754 | + 'transfers', |
| 2755 | + transferToken, |
| 2756 | + 'refunds' |
| 2757 | + ), |
| 2758 | + data |
| 2759 | + ) |
| 2760 | + |
| 2761 | + return TransferRefunds(response) |
| 2762 | + |
| 2763 | + def createTransferSpendBackRefund(self, |
| 2764 | + transferToken=None, |
| 2765 | + sourceToken=None, |
| 2766 | + params=None): |
| 2767 | + ''' |
| 2768 | + Create a Transfer Refund. |
| 2769 | + :param transferToken: |
| 2770 | + A token identifying the Transfer. **REQUIRED** |
| 2771 | + :param data: |
| 2772 | + A dictionary containing Transfer Refund information. **REQUIRED** |
| 2773 | + :returns: |
| 2774 | + A Transfer Refund. |
| 2775 | + ''' |
| 2776 | + |
| 2777 | + if not transferToken: |
| 2778 | + raise HyperwalletException('transferToken is required') |
| 2779 | + |
| 2780 | + if not sourceToken: |
| 2781 | + raise HyperwalletException('sourceToken is required') |
| 2782 | + |
| 2783 | + response = self.apiClient.doGet( |
| 2784 | + self.__buildUrl( |
| 2785 | + 'transfers', |
| 2786 | + transferToken, |
| 2787 | + 'refunds', |
| 2788 | + sourceToken |
| 2789 | + ), |
| 2790 | + params |
| 2791 | + ) |
| 2792 | + |
| 2793 | + return TransferRefunds(response) |
| 2794 | + |
| 2795 | + ''' |
| 2796 | +
|
| 2797 | + Create User Status Transition |
| 2798 | +
|
| 2799 | + ''' |
| 2800 | + |
| 2801 | + def createUserStatusTransition(self, |
| 2802 | + userToken=None, |
| 2803 | + data=None): |
| 2804 | + ''' |
| 2805 | + Create User Status Transition. |
| 2806 | + :param userToken: |
| 2807 | + A token identifying the User Create UserToken. **REQUIRED** |
| 2808 | + :param data: |
| 2809 | + A dictionary containing User Status Create Data information. **REQUIRED** |
| 2810 | + :returns: |
| 2811 | + StatusTransition. |
| 2812 | + ''' |
| 2813 | + if not userToken: |
| 2814 | + raise HyperwalletException('userToken is required') |
| 2815 | + if not data: |
| 2816 | + raise HyperwalletException('data is required') |
| 2817 | + response = self.apiClient.doPost( |
| 2818 | + self.__buildUrl( |
| 2819 | + 'users', |
| 2820 | + userToken, |
| 2821 | + 'status-transitions' |
| 2822 | + ), |
| 2823 | + data |
| 2824 | + ) |
| 2825 | + |
| 2826 | + return StatusTransition(response) |
| 2827 | + |
| 2828 | + def activateUser(self, |
| 2829 | + userToken=None): |
| 2830 | + |
| 2831 | + ''' |
| 2832 | + Create User Activate Status Transition. |
| 2833 | + :param userToken: |
| 2834 | + A token identifying the User Create UserToken. **REQUIRED** |
| 2835 | + :returns: |
| 2836 | + StatusTransition. |
| 2837 | + ''' |
| 2838 | + if not userToken: |
| 2839 | + raise HyperwalletException('userToken is required') |
| 2840 | + |
| 2841 | + data = { |
| 2842 | + 'transition': 'ACTIVATED' |
| 2843 | + } |
| 2844 | + |
| 2845 | + return self.createUserStatusTransition( |
| 2846 | + userToken, |
| 2847 | + data |
| 2848 | + ) |
| 2849 | + |
| 2850 | + def deactivateUser(self, |
| 2851 | + userToken=None): |
| 2852 | + |
| 2853 | + ''' |
| 2854 | + Create User DeActivate Status Transition. |
| 2855 | + :param userToken: |
| 2856 | + A token identifying the User Create UserToken. **REQUIRED** |
| 2857 | + :returns: |
| 2858 | + StatusTransition. |
| 2859 | + ''' |
| 2860 | + if not userToken: |
| 2861 | + raise HyperwalletException('userToken is required') |
| 2862 | + |
| 2863 | + data = { |
| 2864 | + 'transition': 'DE_ACTIVATED' |
| 2865 | + } |
| 2866 | + |
| 2867 | + return self.createUserStatusTransition( |
| 2868 | + userToken, |
| 2869 | + data |
| 2870 | + ) |
| 2871 | + |
| 2872 | + def preactivateUser(self, |
| 2873 | + userToken=None): |
| 2874 | + |
| 2875 | + ''' |
| 2876 | + Create User Pre Activate Status Transition. |
| 2877 | + :param userToken: |
| 2878 | + A token identifying the User Create UserToken. **REQUIRED** |
| 2879 | + :returns: |
| 2880 | + StatusTransition. |
| 2881 | + ''' |
| 2882 | + if not userToken: |
| 2883 | + raise HyperwalletException('userToken is required') |
| 2884 | + data = { |
| 2885 | + 'transition': 'PRE-ACTIVATED' |
| 2886 | + } |
| 2887 | + |
| 2888 | + return self.createUserStatusTransition( |
| 2889 | + userToken, |
| 2890 | + data |
| 2891 | + ) |
| 2892 | + |
| 2893 | + def freezeUser(self, |
| 2894 | + userToken=None): |
| 2895 | + |
| 2896 | + ''' |
| 2897 | + Create User Freeze Status Transition. |
| 2898 | + :param userToken: |
| 2899 | + A token identifying the User Create UserToken. **REQUIRED** |
| 2900 | + :returns: |
| 2901 | + StatusTransition. |
| 2902 | + ''' |
| 2903 | + if not userToken: |
| 2904 | + raise HyperwalletException('userToken is required') |
| 2905 | + |
| 2906 | + data = { |
| 2907 | + 'transition': 'FROZEN' |
| 2908 | + } |
| 2909 | + |
| 2910 | + return self.createUserStatusTransition( |
| 2911 | + userToken, |
| 2912 | + data |
| 2913 | + ) |
| 2914 | + |
| 2915 | + def lockUser(self, |
| 2916 | + userToken=None): |
| 2917 | + |
| 2918 | + ''' |
| 2919 | + Create User Lock Status Transition. |
| 2920 | + :param userToken: |
| 2921 | + A token identifying the User Create UserToken. **REQUIRED** |
| 2922 | + :returns: |
| 2923 | + StatusTransition. |
| 2924 | + ''' |
| 2925 | + if not userToken: |
| 2926 | + raise HyperwalletException('userToken is required') |
| 2927 | + |
| 2928 | + data = { |
| 2929 | + 'transition': 'LOCKED' |
| 2930 | + } |
| 2931 | + |
| 2932 | + return self.createUserStatusTransition( |
| 2933 | + userToken, |
| 2934 | + data |
| 2935 | + ) |
0 commit comments