Source code for djpaystack.api.transfers

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


[docs] class TransferAPI(BaseAPI): """Transfers API"""
[docs] def initiate(self, source: str, amount: int, recipient: str, reason: Optional[str] = None, currency: Optional[str] = None, reference: Optional[str] = None) -> Dict[str, Any]: """Initiate transfer""" data = self._build_query_params( source=source, amount=amount, recipient=recipient, reason=reason, currency=currency, reference=reference ) return self._post('transfer', data=data)
[docs] def finalize(self, transfer_code: str, otp: str) -> Dict[str, Any]: """Finalize transfer""" data = {'transfer_code': transfer_code, 'otp': otp} return self._post('transfer/finalize_transfer', data=data)
[docs] def bulk_transfer(self, source: str, transfers: List[Dict[str, Any]]) -> Dict[str, Any]: """Initiate bulk transfer""" data = {'source': source, 'transfers': transfers} return self._post('transfer/bulk', data=data)
[docs] def list(self, per_page: int = 50, page: Optional[int] = None, customer: Optional[int] = None, status: Optional[str] = None, from_date: Optional[str] = None, to_date: Optional[str] = None) -> Dict[str, Any]: """List transfers""" params = self._build_query_params( customer=customer, status=status, from_date=from_date, to_date=to_date ) return self._paginate('transfer', params=params, per_page=per_page, page=page)
[docs] def fetch(self, id_or_code: str) -> Dict[str, Any]: """Fetch transfer""" return self._get(f'transfer/{id_or_code}')
[docs] def verify(self, reference: str) -> Dict[str, Any]: """Verify transfer""" return self._get(f'transfer/verify/{reference}')