def test_get_call_get_method(default_params): api_key, base_url, section, http_client, url, custom_headers = default_params responses.add_callback(method="GET", url=url, callback=substitute_callback) _APIRequestor.get( section, api_key=api_key, base_url=base_url, http_client=http_client, )
def get( *, id, for_user_id=None, x_api_version=None, **kwargs, ): """Get payout (API Reference: Payout/Get Payout) Args: - id (str) - **for_user_id (str) (XenPlatform only) - **x_api_version (str) Returns Payout Raises XenditError """ url = f"/payouts/{id}" headers, _ = _extract_params( locals(), func_object=Payout.get, headers_params=["for_user_id", "x_api_version"], ignore_params=["id"], ) kwargs["headers"] = headers resp = _APIRequestor.get(url, **kwargs) if resp.status_code >= 200 and resp.status_code < 300: return Payout(**resp.body) else: raise XenditError(resp)
def get_fixed_payment_code(*, fixed_payment_code_id, for_user_id=None, x_api_version=None, **kwargs): """Get the detail of given Fixed Payment Code (API Reference: Retail Outlets/Get Fixed Payment Code) Args: - fixed_payment_code_id (str) - **for_user_id (str) (XenPlatforms only) - **x_api_version (str): API Version that will be used. If not provided will default to the latest Returns: RetailOutlet Raises: XenditError """ url = f"/fixed_payment_code/{fixed_payment_code_id}" headers, _ = _extract_params( locals(), func_object=RetailOutlet.update_fixed_payment_code, headers_params=["for_user_id", "x_api_version"], ) kwargs["headers"] = headers resp = _APIRequestor.get(url, **kwargs) if resp.status_code >= 200 and resp.status_code < 300: return RetailOutlet(**resp.body) else: raise XenditError(resp)
def get_by_ext_id(*, external_id, for_user_id=None, x_api_version=None, **kwargs): """Get Disbursement detail by external ID (API Reference: Disbursement/Get Disbursement by External ID) Args: - external_id (str) - **for_user_id (str) - **x_api_version (str): API Version that will be used. If not provided will default to the latest Returns: Disbursement Raises: XenditError """ url = f"/disbursements?external_id={external_id}" headers, _ = _extract_params( locals(), func_object=Disbursement.get_by_ext_id, headers_params=["for_user_id", "x_api_version"], ignore_params=["external_id"], ) kwargs["headers"] = headers resp = _APIRequestor.get(url, **kwargs) if resp.status_code >= 200 and resp.status_code < 300: disbursements = [] for disbursement in resp.body: disbursements.append(Disbursement(**disbursement)) return disbursements else: raise XenditError(resp)
def get_available_banks(*, for_user_id=None, x_api_version=None, **kwargs): """Get Available Banks (API Reference: Disbursement/Get Available Banks) Args: - **for_user_id (str) - **x_api_version (str): API Version that will be used. If not provided will default to the latest Returns: List of DisbursementBank Raises: XenditError """ url = "/available_disbursements_banks" headers, _ = _extract_params( locals(), func_object=Disbursement.get_available_banks, headers_params=["for_user_id", "x_api_version"], ) kwargs["headers"] = headers resp = _APIRequestor.get(url, **kwargs) if resp.status_code >= 200 and resp.status_code < 300: disbursement_banks = [] for bank in resp.body: disbursement_banks.append(DisbursementBank(**bank)) return disbursement_banks else: raise XenditError(resp)
def get_by_ext_id( *, external_id, for_user_id=None, x_idempotency_key=None, x_api_version=None, **kwargs, ): """Get QR Codes by external_id (API Reference: QR Code/Get QR Code by External ID) Args: - external_id (str) - **for_user_id (str) (XenPlatforms only) - **x_api_version (str): API Version that will be used. If not provided will default to the latest Returns: QRCode Raises: XenditError """ url = f"/qr_codes/{external_id}" headers, _ = _extract_params( locals(), func_object=QRCode.get_by_ext_id, headers_params=["for_user_id", "x_api_version"], ) kwargs["headers"] = headers resp = _APIRequestor.get(url, **kwargs) if resp.status_code >= 200 and resp.status_code < 300: return QRCode(**resp.body) else: raise XenditError(resp)
def get_charge( *, credit_card_charge_id, for_user_id=None, x_api_version=None, **kwargs, ): """Get Detail of Credit Card Charge (API Reference: Credit Card/Get Charge) Args: - credit_card_charge_id (str) - **for_user_id (str) - **x_api_version (str) Returns: CreditCardCharge Raises: XenditError """ url = f"/credit_card_charges/{credit_card_charge_id}" headers, _ = _extract_params( locals(), func_object=CreditCard.get_charge, headers_params=["for_user_id", "x_idempotency_key", "x_api_version"], ignore_params=["credit_card_charge_id"], ) kwargs["headers"] = headers resp = _APIRequestor.get(url, **kwargs) if resp.status_code >= 200 and resp.status_code < 300: return CreditCardCharge(**resp.body) else: raise XenditError(resp)
def get_payment(*, payment_id, for_user_id=None, x_api_version=None, **kwargs): """Get payment from virtual account (API Reference: Virtual Account/Get Virtual Account Payment Args: - payment_id (str) Returns: VirtualAccountPayment Raises: XenditError """ url = f"/callback_virtual_account_payments/payment_id={payment_id}" headers, _ = _extract_params( locals(), func_object=VirtualAccount.get_payment, headers_params=["for_user_id", "x_api_version"], ignore_params=["payment_id"], ) kwargs["headers"] = headers resp = _APIRequestor.get(url, **kwargs) if resp.status_code >= 200 and resp.status_code < 300: return VirtualAccountPayment(**resp.body) else: raise XenditError(resp)
def get(*, id, for_user_id=None, x_api_version=None, **kwargs): """Get the detail of Virtual Account (API Reference: Virtual Account/Get Virtual Account Args: - id (str) - **for_user_id (str) (XenPlatforms only) - **x_api_version (str): API Version that will be used. If not provided will default to the latest Returns: VirtualAccount Raises: XenditError """ url = f"/callback_virtual_accounts/{id}" headers, _ = _extract_params( locals(), func_object=VirtualAccount.get, headers_params=["for_user_id", "x_api_version"], ignore_params=["id"], ) kwargs["headers"] = headers resp = _APIRequestor.get(url, **kwargs) if resp.status_code >= 200 and resp.status_code < 300: return VirtualAccount(**resp.body) else: raise XenditError(resp)
def get( *, account_type=BalanceAccountType.CASH, for_user_id=None, x_api_version=None, **kwargs, ): """Send GET request to retrieve balance (API Reference: Balance/Get Balance) Args: - account_type (BalanceAccountType) - **for_user_id (str) (XenPlatform only) - **x_api_version (str): API Version that will be used. If not provided will default to the latest Returns Balance Raises XenditError """ headers, _ = _extract_params( locals(), func_object=Balance.get, headers_params=["for_user_id", "x_api_version"], ) kwargs["headers"] = headers account_type = Balance._parse_value(account_type) url = f"/balance?account_type={account_type}" resp = _APIRequestor.get(url, **kwargs) if resp.status_code >= 200 and resp.status_code < 300: return Balance(**resp.body) else: raise XenditError(resp)
def get_banks(*, for_user_id=None, x_api_version=None, **kwargs): """Get available banks (API Reference: Virtual Account/Get Virtual Account Banks) Args: - **for_user_id (str) (XenPlatforms only) - **x_api_version (str): API Version that will be used. If not provided will default to the latest Returns: List of VirtualAccountBank Raises: XenditError """ url = "/available_virtual_account_banks" headers, _ = _extract_params( locals(), func_object=VirtualAccount.get_banks, headers_params=["for_user_id", "x_api_version"], ignore_params=["id"], ) kwargs["headers"] = headers resp = _APIRequestor.get(url, **kwargs) if resp.status_code >= 200 and resp.status_code < 300: virtual_account_banks = [] for bank in resp.body: virtual_account_banks.append(VirtualAccountBank(**bank)) return virtual_account_banks else: raise XenditError(resp)
def get( *, invoice_id, for_user_id=None, x_api_version=None, **kwargs, ): """Get Invoice (API Reference: Invoice/Get Invoice) Args: - invoice_id (str) - **for_user_id (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"/v2/invoices/{invoice_id}" headers, _ = _extract_params( locals(), func_object=Invoice.get, headers_params=["for_user_id", "x_api_version"], ignore_params=["invoice_id"], ) kwargs["headers"] = headers resp = _APIRequestor.get(url, **kwargs) if resp.status_code >= 200 and resp.status_code < 300: return Invoice(**resp.body) else: raise XenditError(resp)
def get_ewallet_charge_status( *, charge_id: str, for_user_id: str = None, **kwargs, ): """Get ewallet charge status of given charge id (API Reference: eWallets/Get E-Wallet Charge Status) Args: - charge_id (str) - **for_user_id (str) (XenPlatforms only) Returns: - EWalletCharge Raises: XenditError """ url = f"/ewallets/charges/{charge_id}" headers, body = _extract_params( locals(), func_object=EWallet.get_ewallet_charge_status, headers_params=["for_user_id"], ) kwargs["headers"] = headers resp = _APIRequestor.get(url, **kwargs) if resp.status_code >= 200 and resp.status_code < 300: return EWalletCharge(**resp.body) else: raise XenditError(resp)
def get( *, id, for_user_id=None, x_api_version=None, **kwargs, ): """Get Recurring Payment by ID (API Reference: Recurring Payment/Get Recurring Payment) Args: - id (str) - **for_user_id (str) - **x_api_version (str) Returns: RecurringPayment Raises: XenditError """ url = f"/recurring_payments/{id}" headers, _ = _extract_params( locals(), func_object=RecurringPayment.get, headers_params=["for_user_id", "x_api_version"], ) kwargs["headers"] = headers resp = _APIRequestor.get(url, **kwargs) if resp.status_code >= 200 and resp.status_code < 300: return RecurringPayment(**resp.body) else: raise XenditError(resp)
def get_payment_status(*, external_id, ewallet_type, for_user_id=None, x_api_version=None, **kwargs): """Get payment status of given external id (API Reference: eWallets/Get Payment Status) Args: - external_id (str) - ewallet_type (EWalletType) - **for_user_id (str) (XenPlatforms only) - **x_api_version (str) Returns: - OVOPaymentStatus (For EWalletType.OVO) - DANAPaymentStatus (For EWalletType.DANA) - LinkAjaPaymentStatus (For EWalletType.LINKAJA) Raises: XenditError """ parsed_ewallet_type = EWallet._parse_ewallet_type(ewallet_type) url = f"/ewallets?external_id={external_id}&ewallet_type={parsed_ewallet_type}" headers, _ = _extract_params( locals(), func_object=EWallet.create_linkaja_payment, headers_params=["for_user_id", "x_api_version"], ) kwargs["headers"] = headers resp = _APIRequestor.get(url, **kwargs) if resp.status_code >= 200 and resp.status_code < 300: if ewallet_type == EWalletType.OVO: return OVOPaymentStatus(**resp.body) elif ewallet_type == EWalletType.DANA: return DANAPaymentStatus(**resp.body) elif ewallet_type == EWalletType.LINKAJA: return LinkAjaPaymentStatus(**resp.body) else: raise XenditError(resp)
def get_accessible_accounts_by_token( *, linked_account_token_id, for_user_id=None, x_api_version=None, **kwargs, ): """Get list of bank accounts accessible by the linked account token (API Reference: Direct Debit/Retrieve Accessible Accounts by Linked Account Token) Args: - linked_account_token_id (str) - **for_user_id (str) - **x_api_version (str) Returns: DirectDebitAccessibleAccount[] Raises: XenditError """ url = f"/linked_account_tokens/{linked_account_token_id}/accounts" headers, _ = _extract_params( locals(), func_object=DirectDebit.get_accessible_accounts_by_token, headers_params=["for_user_id", "x_api_version"], ignore_params=["linked_account_token_id"], ) kwargs["headers"] = headers resp = _APIRequestor.get(url, **kwargs) if resp.status_code >= 200 and resp.status_code < 300: accessible_accounts = [] for accessible_account in resp.body: accessible_accounts.append( DirectDebitAccessibleAccount(**accessible_account)) return accessible_accounts else: raise XenditError(resp)
def get_payment_methods_by_customer_id( *, customer_id, for_user_id=None, x_api_version=None, **kwargs, ): """Get payment methods by Customer ID (API Reference: Direct Debit/Get Payment Methods by Customer ID) Args: - customer_id (str) - **for_user_id (str) - **x_api_version (str) Returns: DirectDebitPaymentMethod[] Raises: XenditError """ url = f"/payment_methods?customer_id={customer_id}" headers, body = _extract_params( locals(), func_object=DirectDebit.get_payment_methods_by_customer_id, headers_params=["for_user_id", "x_api_version"], ignore_params=["customer_id"], ) kwargs["headers"] = headers resp = _APIRequestor.get(url, **kwargs) if resp.status_code >= 200 and resp.status_code < 300: payment_methods = [] for payment_method in resp.body: payment_methods.append( DirectDebitPaymentMethod(**payment_method)) return payment_methods else: raise XenditError(resp)
def get_payment_status_by_ref_id( *, reference_id, for_user_id=None, x_api_version=None, **kwargs, ): """Get the details of a direct debit payment (API Reference: Direct Debit/Get Direct Debit Payment Status by Reference ID) Args: - reference_id (str) - **for_user_id (str) - **x_api_version (str) Returns: DirectDebitPayment[] Raises: XenditError """ url = f"/direct_debits?reference_id={reference_id}" headers, _ = _extract_params( locals(), func_object=DirectDebit.get_payment_status, headers_params=["for_user_id", "x_api_version"], ignore_params=["reference_id"], ) kwargs["headers"] = headers resp = _APIRequestor.get(url, **kwargs) if resp.status_code >= 200 and resp.status_code < 300: payments = [] for payment in resp.body: payments.append(DirectDebitPayment(**payment)) return payments else: raise XenditError(resp)
def get_customer_by_ref_id( *, reference_id, for_user_id=None, x_api_version=None, **kwargs, ): """Get Customer by Reference ID (API Reference: Direct Debit/Get Customer by Reference ID) Args: - reference_id (str) - **for_user_id (str) - **x_api_version (str) Returns: DirectDebitCustomer Raises: XenditError """ url = f"/customers?reference_id={reference_id}" headers, _ = _extract_params( locals(), func_object=DirectDebit.get_customer_by_ref_id, headers_params=["for_user_id", "x_api_version"], ignore_params=["reference_id"], ) kwargs["headers"] = headers resp = _APIRequestor.get(url, **kwargs) if resp.status_code >= 200 and resp.status_code < 300: customers = [] for customer in resp.body: customers.append(DirectDebitCustomer(**customer)) return customers else: raise XenditError(resp)
def get_payment_status( *, direct_debit_id, for_user_id=None, x_api_version=None, **kwargs, ): """Get the details of a direct debit payment (API Reference: Direct Debit/Get Direct Debit Payment Status by ID) Args: - direct_debit_id (str) - **for_user_id (str) - **x_api_version (str) Returns: DirectDebitPayment Raises: XenditError """ url = f"/direct_debits/{direct_debit_id}/" headers, _ = _extract_params( locals(), func_object=DirectDebit.get_payment_status, headers_params=["for_user_id", "x_api_version"], ignore_params=["direct_debit_id"], ) kwargs["headers"] = headers resp = _APIRequestor.get(url, **kwargs) if resp.status_code >= 200 and resp.status_code < 300: return DirectDebitPayment(**resp.body) else: raise XenditError(resp)
def list_all( *, statuses=None, limit=None, created_after=None, created_before=None, paid_after=None, paid_before=None, expired_after=None, expired_before=None, last_invoice_id=None, client_types=None, payment_channels=None, on_demand_link=None, recurring_payment_id=None, for_user_id=None, x_api_version=None, **kwargs, ): """List all Invoice based on filter (API Reference: Invoice/List All Invoice) Args: - statuses (str[]) - limit (int) - created_after (str) - created_before (str) - paid_after (str) - paid_before (str) - expired_after (str) - expired_before (str) - last_invoice_id (str) - client_types (str[]) - payment_channels (str[]) - on_demand_link (str) - recurring_payment_id (str) - **for_user_id (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, params = _extract_params( locals(), func_object=Invoice.list_all, headers_params=["for_user_id", "x_api_version"], ignore_params=[], ) kwargs["headers"] = headers kwargs["params"] = params resp = _APIRequestor.get(url, **kwargs) if resp.status_code >= 200 and resp.status_code < 300: invoices = [] for invoice in resp.body: invoices.append(Invoice(**invoice)) return invoices else: raise XenditError(resp)