List transactions
/v1/transactionsReturns a paginated list of transactions, newest first. Combine the date range, status, channel, and amount filters to narrow results.
Default page size is 25, max 100. Use page and per_page to walk the result set.
Query parameters
fromstringoptionalISO-8601 date or timestamp. Inclusive lower bound on created_at.
tostringoptionalISO-8601 date or timestamp. Inclusive upper bound on created_at.
statusenum<'success' | 'failed' | 'pending'>optionalFilter by final transaction status.
Allowed: 'success''failed''pending'
channelenum<'card' | 'bank_transfer' | 'ussd'>optionalFilter by the payment channel used by the customer.
Allowed: 'card''bank_transfer''ussd'
customer_emailstringoptionalFilter by the email supplied at charge creation. Exact match.
min_amountintegeroptionalMinimum amount in kobo (inclusive).
max_amountintegeroptionalMaximum amount in kobo (inclusive).
pageintegeroptional1-indexed page number. Defaults to 1.
per_pageintegeroptionalResults per page. Defaults to 25, max 100.
Response
200dataarray<Transaction>List of transactions, newest first.
idstringTransaction ID (`txn_…`).
referencestringCharge reference this transaction was created from.
amountintegerAmount in kobo.
statusenum<'success' | 'failed' | 'pending'>Final status.
channelstringChannel used: `card`, `bank_transfer`, or `ussd`.
created_atstringISO-8601 timestamp the transaction was opened.
paid_atstring | nullISO-8601 timestamp the transaction succeeded, or `null`.
customerobjectCustomer details captured at charge time.
emailstringCustomer email.
metaobjectPagination metadata.
totalintegerTotal matching transactions.
pageintegerCurrent page number.
per_pageintegerPage size used for this response.
Errors
INVALID_DATE_RANGE400`from` must be before `to` and both must be valid ISO-8601.UNAUTHORIZED401API key missing or invalid.