コード例 #1
0
def test_post_call_post_method(default_params):
    api_key, base_url, section, http_client, url, custom_headers = default_params
    responses.add_callback(method="POST",
                           url=url,
                           callback=substitute_callback)

    _APIRequestor.post(
        section,
        api_key=api_key,
        base_url=base_url,
        http_client=http_client,
    )
コード例 #2
0
    def resume(
        *, id, x_idempotency_key=None, for_user_id=None, x_api_version=None, **kwargs,
    ):
        """Pause Recurring Payment (API Reference: Recurring Payment/Pause Recurring Payment)

        Args:
          - id (str)
          - **x_idempotency_key (str)
          - **for_user_id (str)
          - **x_api_version (str)

        Returns:
          RecurringPayment

        Raises:
          XenditError

        """
        url = f"/recurring_payments/{id}/resume!"
        headers, body = _extract_params(
            locals(),
            func_object=RecurringPayment.stop,
            headers_params=["for_user_id", "x_idempotency_key", "x_api_version"],
            ignore_params=["id"],
        )
        kwargs["headers"] = headers
        kwargs["body"] = body

        resp = _APIRequestor.post(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return RecurringPayment(**resp.body)
        else:
            raise XenditError(resp)
コード例 #3
0
    def create_promotion(
        *,
        reference_id,
        description,
        start_time,
        end_time,
        promo_code=None,
        bin_list=None,
        channel_code=None,
        discount_percent=None,
        discount_amount=None,
        currency=None,
        max_discount_amount=None,
        min_original_amount=None,
        x_idempotency_key=None,
        for_user_id=None,
        x_api_version=None,
        **kwargs,
    ):
        """Send POST Request to create new Promotion (API Reference: Credit Card/Create Promotion)

        Args:
          - reference_id (str)
          - description (str)
          - start_time (str)
          - end_time (str)
          - **promo_code (str)
          - **bin_list (str[])
          - **channel_code (str)
          - **discount_percent (float)
          - **discount_amount (float)
          - **max_discount_amount (float)
          - **min_original_amount (float)
          - **currency (str)
          - **x_idempotency_key (str)
          - **for_user_id (str)
          - **x_api_version (str)

        Returns:
          CreditCardPromotion

        Raises:
          XenditError

        """
        url = "/promotions"
        headers, body = _extract_params(
            locals(),
            func_object=CreditCard.create_promotion,
            headers_params=["for_user_id", "x_idempotency_key", "x_api_version"],
        )
        kwargs["headers"] = headers
        kwargs["body"] = body

        resp = _APIRequestor.post(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return CreditCardPromotion(**resp.body)
        else:
            raise XenditError(resp)
コード例 #4
0
    def create_charge(
        *,
        token_id,
        external_id,
        amount,
        capture=True,
        authentication_id=None,
        card_cvn=None,
        descriptor=None,
        currency=None,
        mid_label=None,
        billing_details=None,
        promotion=None,
        installment=None,
        x_idempotency_key=None,
        for_user_id=None,
        x_api_version=None,
        **kwargs,
    ):
        """Send POST Request to create Credit Card Charge (API Reference: Credit Card/Create Charge)

        Args:
          - token_id (str)
          - external_id (str)
          - amount (float)
          - authentication_id (str)
          - card_cvn (str)
          - **capture (bool)
          - **descriptor (str)
          - **currency (str)
          - **mid_label (str)
          - **billing_details (CreditCardCharge.BillingDetails.Query)
          - **promotion (CreditCardCharge.Promotion.Query)
          - **installment (CreditCardCharge.Installment.Query)
          - **x_idempotency_key (str)
          - **for_user_id (str)
          - **x_api_version (str)

        Returns:
          CreditCardCharge

        Raises:
          XenditError

        """
        url = "/credit_card_charges"
        headers, body = _extract_params(
            locals(),
            func_object=CreditCard.create_charge,
            headers_params=["for_user_id", "x_idempotency_key", "x_api_version"],
        )
        kwargs["headers"] = headers
        kwargs["body"] = body

        resp = _APIRequestor.post(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return CreditCardCharge(**resp.body)
        else:
            raise XenditError(resp)
コード例 #5
0
    def create_payment(
        *,
        cardless_credit_type,
        external_id,
        amount,
        payment_type,
        items,
        customer_details,
        shipping_address,
        redirect_url,
        callback_url,
        x_idempotency_key=None,
        for_user_id=None,
        x_api_version=None,
        **kwargs,
    ):
        """Create a cardless credit payment (API Reference: Cardless Credit/Create Payment or Generate Checkout URL)

        Args:
          - cardless_credit_type (CardlessCreditType)
          - external_id (str)
          - amount (int)
          - payment_type (str)
          - items (CardlessCreditItem[])
          - customer_details (CardlessCreditCustomerDetails)
          - shipping_address (CardlessCreditShippingAddress)
          - redirect_url (str)
          - callback_url (str)
          - **for_user_id (str) (XenPlatform only)
          - **x_idempotency_key (str)
          - **x_api_version (str)

        Returns
          CardlessCredit

        Raises
          XenditError

        """
        cardless_credit_type = CardlessCredit._parse_cardless_credit_type(
            cardless_credit_type)
        url = "/cardless-credit"
        headers, body = _extract_params(
            locals(),
            func_object=CardlessCredit.create_payment,
            headers_params=[
                "for_user_id", "x_idempotency_key", "x_api_version"
            ],
        )
        kwargs["headers"] = headers
        kwargs["body"] = body

        resp = _APIRequestor.post(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return CardlessCreditPayment(**resp.body)
        else:
            raise XenditError(resp)
コード例 #6
0
    def create(
        *,
        external_id,
        bank_code,
        name,
        virtual_account_number=None,
        suggested_amount=None,
        is_closed=None,
        expected_amount=None,
        expiration_date=None,
        is_single_use=None,
        description=None,
        for_user_id=None,
        x_idempotency_key=None,
        x_api_version=None,
        **kwargs,
    ):
        """Send POST Request to create VirtualAccount (API Reference: Virtual Account/Create Virtual Account)

        Args:
          - external_id (str)
          - bank_code (str)
          - name (str)
          - **virtual_account_number (str)
          - **suggested_amount (int)
          - **is_closed (bool)
          - **expected_amount (int)
          - **expiration_date (str) (ISO 8601 Date)
          - **is_single_use (bool)
          - **description (str)
          - **for_user_id (str) (XenPlatforms only)
          - **x_idempotency_key (str)
          - **x_api_version (str): API Version that will be used. If not provided will default to the latest

        Returns:
          VirtualAccount

        Raises:
          XenditError

        """
        url = "/callback_virtual_accounts"
        headers, body = _extract_params(
            locals(),
            func_object=VirtualAccount.create,
            headers_params=[
                "for_user_id", "x_idempotency_key", "x_api_version"
            ],
        )
        kwargs["headers"] = headers
        kwargs["body"] = body

        resp = _APIRequestor.post(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return VirtualAccount(**resp.body)
        else:
            raise XenditError(resp)
コード例 #7
0
ファイル: direct_debit.py プロジェクト: xendit/xendit-python
    def create_payment(
        *,
        reference_id,
        payment_method_id,
        currency,
        amount,
        callback_url,
        idempotency_key,
        enable_otp=None,
        description=None,
        basket=None,
        metadata=None,
        for_user_id=None,
        x_api_version=None,
        **kwargs,
    ):
        """Create a debit to pull funds from the end customer's account
        (API Reference: Direct Debit/Create Direct Debit Payment)

        Args:
          - reference_id (str)
          - payment_method_id (str)
          - currency (str)
          - amount (int)
          - callback_url (str)
          - idempotency_key (str)
          - **enable_otp (bool)
          - **description (str)
          - **basket (DirectDebitBasket[])
          - **metadata (dict)
          - **for_user_id (str)
          - **x_api_version (str)

        Returns:
          DirectDebitPayment

        Raises:
          XenditError

        """
        url = "/direct_debits"
        headers, body = _extract_params(
            locals(),
            func_object=DirectDebit.create_payment,
            headers_params=["for_user_id", "idempotency_key", "x_api_version"],
        )
        kwargs["headers"] = headers
        kwargs["body"] = body

        resp = _APIRequestor.post(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return DirectDebitPayment(**resp.body)
        else:
            raise XenditError(resp)
コード例 #8
0
    def create(
        *,
        external_id,
        bank_code,
        account_holder_name,
        account_number,
        description,
        amount,
        email_to=[],
        email_cc=[],
        email_bcc=[],
        x_idempotency_key=None,
        for_user_id=None,
        x_api_version=None,
        **kwargs,
    ):
        """Send POST Request to create Disbursement (API Reference: Disbursement/Create Disbursement)

        Args:
          - external_id (str)
          - bank_code (str)
          - account_holder_name (str)
          - account_number (str)
          - description (str)
          - amount (int)
          - **email_to (str[])
          - **email_cc (str[])
          - **email_bcc (str[])
          - **for_user_id (str)
          - **x_idempotency_key (str)
          - **x_api_version (str): API Version that will be used. If not provided will default to the latest

        Returns:
          Disbursement

        Raises:
          XenditError

        """
        url = "/disbursements"
        headers, body = _extract_params(
            locals(),
            func_object=Disbursement.create,
            headers_params=["for_user_id", "x_idempotency_key", "x_api_version"],
        )
        kwargs["headers"] = headers
        kwargs["body"] = body

        resp = _APIRequestor.post(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return Disbursement(**resp.body)
        else:
            raise XenditError(resp)
コード例 #9
0
ファイル: retail_outlet.py プロジェクト: xendit/xendit-python
    def create_fixed_payment_code(
        *,
        external_id,
        retail_outlet_name,
        name,
        expected_amount,
        payment_code=None,
        expiration_date=None,
        is_single_use=None,
        for_user_id=None,
        x_idempotency_key=None,
        x_api_version=None,
        **kwargs,
    ):
        """Send POST Request to create fixed payment code (API Reference: Retail Outlets/Create Fixed Payment Code)

        Args:
          - external_id (str)
          - retail_outlet_name (str)
          - name (str)
          - expected_amount (int)
          - **payment_code (str)
          - **expiration_date (str) (ISO 8601 Date)
          - **is_single_use (bool)
          - **for_user_id (str)
          - **x_idempotency_key (str)
          - **x_api_version (str): API Version that will be used. If not provided will default to the latest

        Returns:
          RetailOutlet

        Raises:
          XenditError

        """
        url = "/fixed_payment_code"
        headers, body = _extract_params(
            locals(),
            func_object=RetailOutlet.create_fixed_payment_code,
            headers_params=[
                "for_user_id", "x_idempotency_key", "x_api_version"
            ],
        )
        kwargs["headers"] = headers
        kwargs["body"] = body

        resp = _APIRequestor.post(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return RetailOutlet(**resp.body)
        else:
            raise XenditError(resp)
コード例 #10
0
ファイル: ewallet.py プロジェクト: xendit/xendit-python
    def create_ewallet_charge(
        *,
        reference_id: str,
        currency: str,
        amount: int,
        checkout_method: str,
        channel_code: str = None,
        channel_properties: dict = None,
        customer_id: str = None,
        basket: list = None,
        metadata: dict = None,
        for_user_id: str = None,
        with_fee_rule: str = None,
        **kwargs,
    ):
        """Send POST Request to create EWallet Charge (API Reference: eWallets/Create E-Wallet Charge)

        Args:
          - reference_id (str)
          - currency (str)
          - amount (int)
          - checkout_method (str)
          - channel_code (str)
          - channel_properties (dict)
          - customer_id (str)
          - basket (list)
          - metadata (dict)
          - **for_user_id (str) (XenPlatforms only)
          - **with_fee_rule (str) (XenPlatforms only)

        Returns:
          EWalletCharge

        Raises:
          XenditError

        """
        url = "/ewallets/charges"
        headers, body = _extract_params(
            locals(),
            func_object=EWallet.create_ewallet_charge,
            headers_params=["for_user_id", "with_fee_rule"],
        )
        kwargs["headers"] = headers
        kwargs["body"] = body

        resp = _APIRequestor.post(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return EWalletCharge(**resp.body)
        else:
            raise XenditError(resp)
コード例 #11
0
ファイル: ewallet.py プロジェクト: xendit/xendit-python
    def create_linkaja_payment(
        *,
        external_id,
        phone,
        amount,
        items,
        callback_url,
        redirect_url,
        for_user_id=None,
        x_idempotency_key=None,
        x_api_version=None,
        **kwargs,
    ):
        """Send POST Request to create LinkAja Payment (API Reference: eWallets/Create Payment)

        Args:
          - external_id (str)
          - phone (str)
          - amount (int)
          - items (LinkAjaItem.Query[])
          - callback_url (str)
          - redirect_url (str)
          - **for_user_id (str) (XenPlatforms only)
          - **x_idempotency_key (str)
          - **x_api_version (str)

        Returns:
          LinkAjaPayment

        Raises:
          XenditError

        """
        url = "/ewallets"
        headers, body = _extract_params(
            locals(),
            func_object=EWallet.create_linkaja_payment,
            headers_params=[
                "for_user_id", "x_idempotency_key", "x_api_version"
            ],
        )
        body["ewallet_type"] = "LINKAJA"
        kwargs["headers"] = headers
        kwargs["body"] = body

        resp = _APIRequestor.post(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return LinkAjaPayment(**resp.body)
        else:
            raise XenditError(resp)
コード例 #12
0
ファイル: direct_debit.py プロジェクト: xendit/xendit-python
    def create_payment_method(
        *,
        customer_id,
        type,
        properties,
        metadata=None,
        x_idempotency_key=None,
        for_user_id=None,
        x_api_version=None,
        **kwargs,
    ):
        """Create payment method for making payment
        (API Reference: Direct Debit/Create Payment Method)

        Args:
          - customer_id (str)
          - type (DirectDebitPaymentMethodType)
          - properties (DirectDebitPaymentMethodProperties.Query)
          - **metadata (dict)
          - **x_idempotency_key (str)
          - **for_user_id (str)
          - **x_api_version (str)

        Returns:
          DirectDebitPaymentMethod

        Raises:
          XenditError

        """
        type = DirectDebit._parse_payment_method_type(type)
        url = "/payment_methods"
        headers, body = _extract_params(
            locals(),
            func_object=DirectDebit.create_payment_method,
            headers_params=[
                "for_user_id", "x_idempotency_key", "x_api_version"
            ],
        )
        kwargs["headers"] = headers
        kwargs["body"] = body

        resp = _APIRequestor.post(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return DirectDebitPaymentMethod(**resp.body)
        else:
            raise XenditError(resp)
コード例 #13
0
    def calculate_payment_type(
        *,
        cardless_credit_type,
        amount,
        items,
        x_idempotency_key=None,
        for_user_id=None,
        x_api_version=None,
        **kwargs,
    ):
        """Calculate Payment Types feature helps merchants to get an accurate value of the installment offered to end customers by the cardless credit provider
        (API Reference: Cardless Credit/Calculate Payment Types)

        Args:
          - cardless_credit_type (str)
          - amount (int)
          - items (CardlessCreditItem[])
          - **for_user_id (str) (XenPlatform only)
          - **x_idempotency_key (str)
          - **x_api_version (str)

        Returns
          CardlessCreditPaymentType

        Raises
          XenditError

        """
        cardless_credit_type = CardlessCredit._parse_cardless_credit_type(
            cardless_credit_type)
        url = "/cardless-credit/payment-types"
        headers, body = _extract_params(
            locals(),
            func_object=CardlessCredit.calculate_payment_type,
            headers_params=[
                "for_user_id", "x_idempotency_key", "x_api_version"
            ],
        )
        kwargs["headers"] = headers
        kwargs["body"] = body

        resp = _APIRequestor.post(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return CardlessCreditPaymentTypeCalculation(**resp.body)
        else:
            raise XenditError(resp)
コード例 #14
0
ファイル: direct_debit.py プロジェクト: xendit/xendit-python
    def initialize_tokenization(
        *,
        customer_id,
        channel_code,
        properties=None,
        metadata=None,
        x_idempotency_key=None,
        for_user_id=None,
        x_api_version=None,
        **kwargs,
    ):
        """Initialize Authorization Process and Account Token Creation
        (API Reference: Direct Debit/Initialize Linked Account Tokenization)

        Args:
          - customer_id (str)
          - channel_code (str)
          - **properties (DirectDebitCardLinking.Query or DirectDebitOnlineBanking.Query)
          - **metadata (dict)
          - **x_idempotency_key (str)
          - **for_user_id (str)
          - **x_api_version (str)

        Returns:
          DirectDebitToken

        Raises:
          XenditError

        """
        url = "/linked_account_tokens/auth"
        headers, body = _extract_params(
            locals(),
            func_object=DirectDebit.initialize_tokenization,
            headers_params=[
                "for_user_id", "x_idempotency_key", "x_api_version"
            ],
        )
        kwargs["headers"] = headers
        kwargs["body"] = body

        resp = _APIRequestor.post(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return DirectDebitToken(**resp.body)
        else:
            raise XenditError(resp)
コード例 #15
0
    def transfers(
        *,
        reference,
        amount,
        source_user_id,
        destination_user_id,
        x_idempotency_key=None,
        for_user_id=None,
        x_api_version=None,
        **kwargs,
    ):
        """Transfers balance from sub-account to main account and vice versa (API Reference: xenPlatform/Transfers)

        Args:
          - reference (str)
          - amount (int)
          - source_user_id (str)
          - destination_user_id (str)
          - **x_idempotency_key (str)
          - **for_user_id (str)
          - **x_api_version (str)

        Returns
          XenPlatformTransfers

        Raises
          XenditError

        """
        url = "/transfers"
        headers, body = _extract_params(
            locals(),
            func_object=XenPlatform.transfers,
            headers_params=[
                "x_idempotency_key", "for_user_id", "x_api_version"
            ],
        )
        kwargs["headers"] = headers
        kwargs["body"] = body

        resp = _APIRequestor.post(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return XenPlatformTransfers(**resp.body)
        else:
            raise XenditError(resp)
コード例 #16
0
    def create(
        *,
        external_id,
        type,
        callback_url,
        amount=None,
        for_user_id=None,
        x_idempotency_key=None,
        x_api_version=None,
        **kwargs,
    ):
        """Send POST Request to create QR Codes (API Reference: QR Code/Create QR Code)

        Args:
          - external_id (str)
          - type (str)
          - callback_url (str)
          - amount (int)
          - **for_user_id (str) (XenPlatforms only)
          - **x_idempotency_key (str)
          - **x_api_version (str): API Version that will be used. If not provided will default to the latest

        Returns:
          QRCode

        Raises:
          XenditError

        """
        type = QRCode._parse_qrcode_type(type)
        url = "/qr_codes"
        headers, body = _extract_params(
            locals(),
            func_object=QRCode.create,
            headers_params=["for_user_id", "x_idempotency_key", "x_api_version"],
        )
        kwargs["headers"] = headers
        kwargs["body"] = body

        resp = _APIRequestor.post(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return QRCode(**resp.body)
        else:
            raise XenditError(resp)
コード例 #17
0
    def create_refund(
        *,
        credit_card_charge_id,
        amount,
        external_id,
        x_idempotency_key=None,
        for_user_id=None,
        x_api_version=None,
        **kwargs,
    ):
        """Send POST Request to create refund for Credit Card (API Reference: Credit Card/Create Refund)

        Args:
          - credit_card_charge_id (str)
          - amount (str)
          - external_id (str)
          - **x_idempotency_key (str)
          - **for_user_id (str)
          - **x_api_version (str)

        Returns:
          CreditCardRefund

        Raises:
          XenditError

        """
        url = f"/credit_card_charges/{credit_card_charge_id}/refunds"
        headers, body = _extract_params(
            locals(),
            func_object=CreditCard.create_refund,
            headers_params=[
                "for_user_id", "x_idempotency_key", "x_api_version"
            ],
            ignore_params=["credit_card_charge_id"],
        )
        kwargs["headers"] = headers
        kwargs["body"] = body

        resp = _APIRequestor.post(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return CreditCardRefund(**resp.body)
        else:
            raise XenditError(resp)
コード例 #18
0
ファイル: direct_debit.py プロジェクト: xendit/xendit-python
    def validate_payment_otp(
        *,
        direct_debit_id,
        otp_code,
        x_idempotency_key=None,
        for_user_id=None,
        x_api_version=None,
        **kwargs,
    ):
        """Validate OTP provided by end customer
        (API Reference: Direct Debit/Validate OTP for Direct Debit Payment)

        Args:
          - direct_debit_id (str)
          - otp_code (str)
          - **x_idempotency_key (str)
          - **for_user_id (str)
          - **x_api_version (str)

        Returns:
          DirectDebitPayment

        Raises:
          XenditError

        """
        url = f"/direct_debits/{direct_debit_id}/validate_otp/"
        headers, body = _extract_params(
            locals(),
            func_object=DirectDebit.validate_payment_otp,
            headers_params=[
                "for_user_id", "x_idempotency_key", "x_api_version"
            ],
            ignore_params=["direct_debit_id"],
        )
        kwargs["headers"] = headers
        kwargs["body"] = body

        resp = _APIRequestor.post(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return DirectDebitPayment(**resp.body)
        else:
            raise XenditError(resp)
コード例 #19
0
    def create(
        *,
        external_id,
        amount,
        email,
        x_idempotency_key=None,
        for_user_id=None,
        x_api_version=None,
        **kwargs,
    ):
        """Create a payout (API Reference: Payout/Create Payout)

        Args:
          - external_id (str)
          - amount (int)
          - email (str)
          - **for_user_id (str) (XenPlatform only)
          - **x_idempotency_key (str)
          - **x_api_version (str)

        Returns
          Payout

        Raises
          XenditError

        """
        url = "/payouts"
        headers, body = _extract_params(
            locals(),
            func_object=Payout.create,
            headers_params=[
                "for_user_id", "x_idempotency_key", "x_api_version"
            ],
        )
        kwargs["headers"] = headers
        kwargs["body"] = body

        resp = _APIRequestor.post(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return Payout(**resp.body)
        else:
            raise XenditError(resp)
コード例 #20
0
ファイル: direct_debit.py プロジェクト: xendit/xendit-python
    def validate_token_otp(
        *,
        linked_account_token_id,
        otp_code,
        x_idempotency_key=None,
        for_user_id=None,
        x_api_version=None,
        **kwargs,
    ):
        """Validates the Linked Account Token OTP
        (API Reference: Direct Debit/Validate OTP for Linked Account Token)

        Args:
          - linked_account_token_id (str)
          - otp_code (str)
          - **x_idempotency_key (str)
          - **for_user_id (str)
          - **x_api_version (str)

        Returns:
          DirectDebitToken

        Raises:
          XenditError

        """
        url = f"/linked_account_tokens/{linked_account_token_id}/validate_otp"
        headers, body = _extract_params(
            locals(),
            func_object=DirectDebit.validate_token_otp,
            headers_params=[
                "for_user_id", "x_idempotency_key", "x_api_version"
            ],
            ignore_params=["linked_account_token_id"],
        )
        kwargs["headers"] = headers
        kwargs["body"] = body

        resp = _APIRequestor.post(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return DirectDebitToken(**resp.body)
        else:
            raise XenditError(resp)
コード例 #21
0
    def set_callback_url(
        *,
        type,
        url,
        x_idempotency_key=None,
        for_user_id=None,
        x_api_version=None,
        **kwargs,
    ):
        """Set a callback URL (API Reference: xenPlatform/Set Callback URLs)

        Args:
          - type (XenPlatformURLType)
          - url (str)
          - **x_idempotency_key (str)
          - **for_user_id (str)
          - **x_api_version (str)

        Returns
          XenPlatformCallbackURL

        Raises
          XenditError

        """
        type = XenPlatform._parse_type(type)
        headers, body = _extract_params(
            locals(),
            func_object=XenPlatform.set_callback_url,
            headers_params=[
                "x_idempotency_key", "for_user_id", "x_api_version"
            ],
            ignore_params=["type"],
        )
        kwargs["headers"] = headers
        kwargs["body"] = body
        url = f"/callback_urls/{type}"

        resp = _APIRequestor.post(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return XenPlatformCallbackURL(**resp.body)
        else:
            raise XenditError(resp)
コード例 #22
0
    def reverse_authorization(
        *,
        credit_card_charge_id,
        external_id,
        x_idempotency_key=None,
        for_user_id=None,
        x_api_version=None,
        **kwargs,
    ):
        """Send POST Request to reverse Credit Card Authorization (API Reference: Credit Card/Reverse Authorization)

        Args:
          - credit_card_charge_id (str)
          - external_id (str)
          - **x_idempotency_key (str)
          - **for_user_id (str)
          - **x_api_version

        Returns:
          CreditCardReverseAuthorization

        Raises:
          XenditError

        """
        url = f"/credit_card_charges/{credit_card_charge_id}/auth_reversal"
        headers, body = _extract_params(
            locals(),
            func_object=CreditCard.reverse_authorization,
            headers_params=[
                "for_user_id", "x_idempotency_key", "x_api_version"
            ],
            ignore_params=["credit_card_charge_id"],
        )
        kwargs["headers"] = headers
        kwargs["body"] = body

        resp = _APIRequestor.post(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return CreditCardReverseAuthorization(**resp.body)
        else:
            raise XenditError(resp)
コード例 #23
0
    def create(
        *,
        reference,
        disbursements,
        x_idempotency_key=None,
        for_user_id=None,
        x_api_version=None,
        **kwargs,
    ):
        """Create a batch disbursements (API Reference: Batch Disbursement/Create Batch Disbursement)

        Args:
          - reference (str)
          - disbursements (BatchDisbursementItem.Query)
          - **for_user_id (str) (XenPlatform only)
          - **x_idempotency_key (str)
          - **x_api_version (str)

        Returns
          BatchDisbursement

        Raises
          XenditError

        """
        url = "/batch_disbursements"
        headers, body = _extract_params(
            locals(),
            func_object=BatchDisbursement.create,
            headers_params=[
                "for_user_id", "x_idempotency_key", "x_api_version"
            ],
        )
        kwargs["headers"] = headers
        kwargs["body"] = body

        resp = _APIRequestor.post(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return BatchDisbursement(**resp.body)
        else:
            raise XenditError(resp)
コード例 #24
0
    def void(
        *,
        id,
        x_idempotency_key=None,
        for_user_id=None,
        x_api_version=None,
        **kwargs,
    ):
        """Void a payout (API Reference: Payout/Void a Payout)

        Args:
          - id (str)
          - **for_user_id (str) (XenPlatform only)
          - **x_idempotency_key (str)
          - **x_api_version (str)

        Returns
          Payout

        Raises
          XenditError

        """
        url = f"/payouts/{id}/void"
        headers, body = _extract_params(
            locals(),
            func_object=Payout.void,
            headers_params=[
                "for_user_id", "x_idempotency_key", "x_api_version"
            ],
            ignore_params=["id"],
        )
        kwargs["headers"] = headers
        kwargs["body"] = body

        resp = _APIRequestor.post(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return Payout(**resp.body)
        else:
            raise XenditError(resp)
コード例 #25
0
    def create_account(
        *,
        account_email,
        type,
        business_profile=None,
        x_idempotency_key=None,
        x_api_version=None,
        **kwargs,
    ):
        """Create a subaccount (API Reference: xenPlatform/Create Account)

        Args:
          - account_email (str)
          - type (XenPlatformAccountType)
          - **business_profile (XenPlatformBusinessType) (Required if type == OWNED)
          - **x_idempotency_key (str)
          - **x_api_version (str)

        Returns
          XenPlatformAccount

        Raises
          XenditError

        """
        type = XenPlatform._parse_type(type)
        url = "/accounts"
        headers, body = _extract_params(
            locals(),
            func_object=XenPlatform.create_account,
            headers_params=["x_idempotency_key", "x_api_version"],
        )
        kwargs["headers"] = headers
        kwargs["body"] = body

        resp = _APIRequestor.post(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return XenPlatformAccount(**resp.body)
        else:
            raise XenditError(resp)
コード例 #26
0
    def expire(
        *,
        invoice_id,
        for_user_id=None,
        x_idempotency_key=None,
        x_api_version=None,
        **kwargs,
    ):
        """Cancel an already created invoice (API Reference: Invoice/Expire Invoice)

        Args:
          - invoice_id (str)
          - **for_user_id (str)
          - **x_idempotency_key (str)
          - **x_api_version (str): API Version that will be used. If not provided will default to the latest

        Returns:
          Invoice

        Raises:
          XenditError

        """
        url = f"/invoices/{invoice_id}/expire!"
        headers, body = _extract_params(
            locals(),
            func_object=Invoice.expire,
            headers_params=["for_user_id", "x_idempotency_key", "x_api_version"],
            ignore_params=["invoice_id"],
        )
        kwargs["headers"] = headers
        kwargs["body"] = body

        resp = _APIRequestor.post(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return Invoice(**resp.body)
        else:
            raise XenditError(resp)
コード例 #27
0
    def create(
        *,
        external_id,
        payer_email,
        description,
        amount,
        should_send_email=None,
        callback_virtual_account_id=None,
        invoice_duration=None,
        success_redirect_url=None,
        failure_redirect_url=None,
        payment_methods=None,
        mid_label=None,
        currency=None,
        fixed_va=None,
        reminder_time=None,
        for_user_id=None,
        x_idempotency_key=None,
        x_api_version=None,
        **kwargs,
    ):
        """Send POST Request to create Invoice (API Reference: Invoice/Create Invoice)

        Args:
          - external_id (str)
          - payer_email (str)
          - description (str)
          - amount (int)
          - **should_send_email (bool)
          - **callback_virtual_account_id (str)
          - **invoice_duration (int)
          - **success_redirect_url (str)
          - **failure_redirect_url (str)
          - **payment_methods (str[])
          - **mid_label (str)
          - **currency (str)
          - **fixed_va (bool)
          - **reminder_time (int)
          - **for_user_id (str) (XenPlatforms only)
          - **x_idempotency_key (str)
          - **x_api_version (str): API Version that will be used. If not provided will default to the latest

        Returns:
          Invoice

        Raises:
          XenditError

        """
        url = "/v2/invoices"
        headers, body = _extract_params(
            locals(),
            func_object=Invoice.create,
            headers_params=["for_user_id", "x_idempotency_key", "x_api_version"],
        )
        kwargs["headers"] = headers
        kwargs["body"] = body

        resp = _APIRequestor.post(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return Invoice(**resp.body)
        else:
            raise XenditError(resp)
コード例 #28
0
    def create(
        *,
        external_id,
        payer_email,
        description,
        amount,
        interval,
        interval_count,
        total_recurrence=None,
        invoice_duration=None,
        should_send_email=None,
        missed_payment_action=None,
        credit_card_token=None,
        start_date=None,
        success_redirect_url=None,
        failure_redirect_url=None,
        recharge=None,
        charge_immediately=None,
        payment_method_id=None,
        currency=None,
        x_idempotency_key=None,
        for_user_id=None,
        x_api_version=None,
        **kwargs,
    ):
        """Send POST Request to create refund for Credit Card (API Reference: Credit Card/Create Refund)

        Args:
          - external_id (str)
          - payer_email (str)
          - description (str)
          - amount (float)
          - interval (str)
          - interval_count (int)
          - **total_recurrence (int)
          - **invoice_duration (int)
          - **should_send_email (int)
          - **missed_payment_action (str)
          - **credit_card_token (str)
          - **start_date (str)
          - **success_redirect_url (str)
          - **failure_redirect_url (str)
          - **recharge (bool)
          - **charge_immediately (bool)
          - **payment_method_id (str)
          - **currency (str)
          - **x_idempotency_key (str)
          - **for_user_id (str)
          - **x_api_version (str)

        Returns:
          RecurringPayment

        Raises:
          XenditError

        """
        url = "/recurring_payments"
        headers, body = _extract_params(
            locals(),
            func_object=RecurringPayment.create,
            headers_params=["for_user_id", "x_idempotency_key", "x_api_version"],
        )
        kwargs["headers"] = headers
        kwargs["body"] = body

        resp = _APIRequestor.post(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return RecurringPayment(**resp.body)
        else:
            raise XenditError(resp)
コード例 #29
0
ファイル: direct_debit.py プロジェクト: xendit/xendit-python
    def create_customer(
        *,
        reference_id,
        given_names,
        mobile_number=None,
        email=None,
        middle_name=None,
        surname=None,
        description=None,
        phone_number=None,
        nationality=None,
        addresses=None,
        date_of_birth=None,
        metadata=None,
        x_idempotency_key=None,
        for_user_id=None,
        x_api_version=None,
        **kwargs,
    ):
        """Send POST Request to create Customer (API Reference: Direct Debit/Create Customer)

        Args:
          - reference_id (str)
          - given_names (str)
          - **mobile_number (str) (Either mobile_number or email must be present)
          - **email (Either mobile_number or email must be present)
          - **middle_name (str)
          - **surname (str)
          - **description (str)
          - **phone_number (str)
          - **nationality (str)
          - **addresses (DirectDebitCustomerAddress[])
          - **date_of_birth (str)
          - **metadata (dict)
          - **for_user_id (str)
          - **x_idempotency_key (str)
          - **x_api_version (str)

        Returns:
          DirectDebitCustomer

        Raises:
          XenditError

        """
        url = "/customers"
        headers, body = _extract_params(
            locals(),
            func_object=DirectDebit.create_customer,
            headers_params=[
                "for_user_id", "x_idempotency_key", "x_api_version"
            ],
        )
        kwargs["headers"] = headers
        kwargs["body"] = body

        resp = _APIRequestor.post(url, **kwargs)
        if resp.status_code >= 200 and resp.status_code < 300:
            return DirectDebitCustomer(**resp.body)
        else:
            raise XenditError(resp)