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, )
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)