Transfers
Send money from your Lenco accounts to bank accounts, mobile money wallets, Lenco Money wallets, merchant tills, or your own accounts.
WARNING
Initiation always returns HTTP 200. The Transfer.status field — "successful", "pending", or "failed" — is the outcome. See Error handling.
Initiate a transfer
Every initiation method takes account_id (your account UUID to debit), amount, and a unique reference, plus either a saved transfer_recipient_id or inline destination details.
# To a bank account
transfer = client.transfers.to_bank_account(
account_id="your-account-uuid",
amount=20.00,
reference="order-1001",
account_number="9130000000000",
bank_id="002",
narration="Invoice 1001", # optional
)
# To mobile money (Zambia: airtel, mtn, zamtel — Malawi: airtel, tnm)
transfer = client.transfers.to_mobile_money(
account_id="your-account-uuid",
amount=20.00,
reference="order-1002",
phone="0977433571",
operator="airtel",
country="zm",
)
# To a Lenco Money wallet
transfer = client.transfers.to_lenco_money(
account_id="your-account-uuid",
amount=20.00,
reference="order-1003",
wallet_number="0000001",
)
# To a Lenco merchant till
transfer = client.transfers.to_lenco_merchant(
account_id="your-account-uuid",
amount=20.00,
reference="order-1004",
till_number="0000001",
)
# Between two of your own accounts
transfer = client.transfers.to_account(
account_id="source-account-uuid",
credit_account_id="destination-account-uuid",
amount=100.00,
reference="sweep-0001",
)| Parameter | Type | Description |
|---|---|---|
account_id | str | Your 36-character account UUID to debit |
amount | float | Amount, decimals allowed (for example 10.75) |
reference | str | Unique reference — -, ., _ and alphanumerics only |
narration | str | Optional narration |
transfer_recipient_id | str | Optional saved recipient UUID |
| destination fields | str | Inline alternative to transfer_recipient_id |
Query transfers
page = client.transfers.list(
status="failed",
type="mobile-money",
from_date="2026-08-01",
to_date="2026-08-25",
)
transfer = client.transfers.get("9525b4c6-502b-45be-90e1-81eb81a3f424")
transfer = client.transfers.get_by_reference("order-1001")get_by_reference is how you recover from a network failure mid-initiation: look up your reference before retrying — see Error handling.
The Transfer object
Notable fields: id, amount, fee, currency, status, reason_for_failure, reference, lenco_reference, initiated_at, completed_at, and credit_account (the destination, with fields populated according to its type).
API details: transfers endpoints.