List Transactions
Retrieve a paginated list of all transactions for your account with optional filtering and sorting capabilities.Endpoint
GET/transactions
Headers
| Name | Type | Required | Description |
|---|---|---|---|
Authorization | string | Required | Bearer token with your secret API key |
Content-Type | string | Required | Must be application/json |
Query Parameters
Page number for pagination (starts from 1)
Number of transactions per page (maximum 100)
Filter transactions by statusAvailable statuses:
success, failed, pending, abandoned, cancelledFilter transactions by currency code (e.g.,
NGN, USD, GBP)Filter transactions by payment channelAvailable channels:
card, bank, ussd, qr, mobile_money, bank_transferFilter transactions by customer email or customer ID
Filter transactions by exact amount (in smallest currency unit)
Start date for date range filter (ISO 8601 format:
YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ)End date for date range filter (ISO 8601 format:
YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ)Field to sort byAvailable fields:
created_at, amount, status, paid_atSort order -
asc (ascending) or desc (descending)Example Request
Response
Request status indicator -
"success" or "error"Human-readable message describing the result
Array of transaction objects
Pagination metadata
Example Response
Filtering Examples
- By Status
- By Date Range
- By Payment Method
- By Customer
- Complex Filters
Pagination
PayVessel uses page-based pagination for the transactions list endpoint:Navigate Pages
Use
page parameter to navigate through pages:?page=1- First page?page=2- Second page- etc.
Control Page Size
Use
per_page parameter to control results per page:- Default: 50 transactions
- Maximum: 100 transactions
Pagination Example
Sorting Options
By Creation Date (Default)
By Creation Date (Default)
By Amount
By Amount
By Payment Date
By Payment Date
By Status
By Status
Common Use Cases
- Dashboard Analytics
- Customer Statement
- Failed Payment Analysis
- Reconciliation
Best Practices
Efficient Pagination
Use appropriate
per_page values. Start with 50, increase to 100 only when needed to reduce response times.Date Range Limits
Limit date ranges for better performance. Query large date ranges in smaller chunks for faster responses.
Filter Early
Apply filters to reduce the dataset before pagination. This improves performance and reduces bandwidth.
Cache Results
Cache frequently accessed transaction lists (like daily summaries) to improve application performance.
