Transfers API

Transfer Recipients

class djpaystack.api.transfer_recipients.TransferRecipientAPI(client)[source]

Bases: BaseAPI

Transfer Recipients API

create(type: str, name: str, account_number: str, bank_code: str, description: str | None = None, currency: str | None = None, authorization_code: str | None = None, metadata: Dict | None = None) Dict[str, Any][source]

Create transfer recipient

bulk_create(batch: List[Dict[str, Any]]) Dict[str, Any][source]

Create multiple transfer recipients

list(per_page: int = 50, page: int | None = None, from_date: str | None = None, to_date: str | None = None) Dict[str, Any][source]

List transfer recipients

fetch(id_or_code: str) Dict[str, Any][source]

Fetch transfer recipient

update(id_or_code: str, name: str | None = None, email: str | None = None) Dict[str, Any][source]

Update transfer recipient

delete(id_or_code: str) Dict[str, Any][source]

Delete transfer recipient

Transfers

class djpaystack.api.transfers.TransferAPI(client)[source]

Bases: BaseAPI

Transfers API

initiate(source: str, amount: int, recipient: str, reason: str | None = None, currency: str | None = None, reference: str | None = None) Dict[str, Any][source]

Initiate transfer

finalize(transfer_code: str, otp: str) Dict[str, Any][source]

Finalize transfer

bulk_transfer(source: str, transfers: List[Dict[str, Any]]) Dict[str, Any][source]

Initiate bulk transfer

list(per_page: int = 50, page: int | None = None, customer: int | None = None, status: str | None = None, from_date: str | None = None, to_date: str | None = None) Dict[str, Any][source]

List transfers

fetch(id_or_code: str) Dict[str, Any][source]

Fetch transfer

verify(reference: str) Dict[str, Any][source]

Verify transfer

Transfer Control

class djpaystack.api.transfer_control.TransferControlAPI(client)[source]

Bases: BaseAPI

Transfers Control API

check_balance() Dict[str, Any][source]

Check balance

fetch_balance_ledger() Dict[str, Any][source]

Fetch balance ledger

resend_otp(transfer_code: str, reason: str) Dict[str, Any][source]

Resend OTP for transfer

disable_otp() Dict[str, Any][source]

Disable OTP requirement for transfers

finalize_disable_otp(otp: str) Dict[str, Any][source]

Finalize OTP disable

enable_otp() Dict[str, Any][source]

Enable OTP requirement for transfers

Quick Reference

from djpaystack import PaystackClient
client = PaystackClient()

# Create recipient
client.transfer_recipients.create(
    type='nuban', name='John Doe',
    account_number='0123456789', bank_code='058',
)

# Initiate transfer
client.transfers.initiate(
    source='balance', amount=100000,
    recipient='RCP_xxxxx', reason='Payout',
)

# Finalize (if OTP required)
client.transfers.finalize(transfer_code='TRF_xxxxx', otp='123456')

# Bulk transfer
client.transfers.bulk(
    source='balance',
    transfers=[
        {'amount': 50000, 'recipient': 'RCP_xxx', 'reference': 'ref-1'},
        {'amount': 75000, 'recipient': 'RCP_yyy', 'reference': 'ref-2'},
    ],
)

# Transfer control
client.transfer_control.check_balance()
client.transfer_control.enable_otp()
client.transfer_control.disable_otp()
client.transfer_control.resend_otp(transfer_code=..., reason=...)