Source code for djpaystack.api.subaccounts

from typing import Dict, Any, Optional
from .base import BaseAPI


[docs] class SubaccountAPI(BaseAPI): """Subaccounts API"""
[docs] def create(self, business_name: str, settlement_bank: str, account_number: str, percentage_charge: float, description: Optional[str] = None, primary_contact_email: Optional[str] = None, primary_contact_name: Optional[str] = None, primary_contact_phone: Optional[str] = None, metadata: Optional[Dict] = None) -> Dict[str, Any]: """Create subaccount""" data = self._build_query_params( business_name=business_name, settlement_bank=settlement_bank, account_number=account_number, percentage_charge=percentage_charge, description=description, primary_contact_email=primary_contact_email, primary_contact_name=primary_contact_name, primary_contact_phone=primary_contact_phone, metadata=metadata ) return self._post('subaccount', data=data)
[docs] def list(self, per_page: int = 50, page: Optional[int] = None, from_date: Optional[str] = None, to_date: Optional[str] = None) -> Dict[str, Any]: """List subaccounts""" params = self._build_query_params(from_date=from_date, to_date=to_date) return self._paginate('subaccount', params=params, per_page=per_page, page=page)
[docs] def fetch(self, id_or_code: str) -> Dict[str, Any]: """Fetch subaccount""" return self._get(f'subaccount/{id_or_code}')
[docs] def update(self, id_or_code: str, business_name: Optional[str] = None, settlement_bank: Optional[str] = None, account_number: Optional[str] = None, percentage_charge: Optional[float] = None, description: Optional[str] = None, primary_contact_email: Optional[str] = None, primary_contact_name: Optional[str] = None, primary_contact_phone: Optional[str] = None, settlement_schedule: Optional[str] = None, active: Optional[bool] = None, metadata: Optional[Dict] = None) -> Dict[str, Any]: """Update subaccount""" data = self._build_query_params( business_name=business_name, settlement_bank=settlement_bank, account_number=account_number, percentage_charge=percentage_charge, description=description, primary_contact_email=primary_contact_email, primary_contact_name=primary_contact_name, primary_contact_phone=primary_contact_phone, settlement_schedule=settlement_schedule, active=active, metadata=metadata ) return self._put(f'subaccount/{id_or_code}', data=data)