Skip to main content

Fetch Transactions

This endpoint retrieves a paginated list of transactions for a merchant.
You can filter results by date range, payment type, customer email, transaction status, reference, and environment.

Endpoint

GET Report/GetMerchantTransactions

Headers

Authorization: Bearer

To authorize this API request, you need to include your apiKey as a bearer token. This is done by setting the Authorization header in your request. The header should have the format:

Authorization: "Bearer your_api_key"

Note: Get your API key from Settings > API Keys in your dashboard.

Query Parameters

The following query parameters are supported:

ParameterTypeRequiredDescription
pageSizenumberYesNumber of records to return per page.
lastIdnumberNoID of the last record from the previous page (used for cursor-based pagination).
skipPagesnumberNoNumber of pages to skip (for page-based pagination).
startDatestringYesStart date for filtering transactions. Format: YYYY-MM-DD.
endDatestringYesEnd date for filtering transactions. Format: YYYY-MM-DD.
paymentTypestringNoFilters by payment type (e.g. Card, Transfer, USSD).
customerEmailstringNoFilters transactions by the customer's email address.
statusstringNoFilters by transaction status (e.g. success, failed, pending).
transactionReferencestringNoFilters by a specific transaction reference.
isLivebooleanYestrue for live transactions, false for test/sandbox transactions.
Sample Request
GET {{baseUrl}}/Report/GetMerchantTransactions?pageSize=5&lastId=57345&skipPages=2&startDate=2025-12-01&endDate=2025-12-01&paymentType=Card&customerEmail=ejeiokekeemmanuel@gmail.com&status=success&transactionReference=PP66639001881004184194&isLive=false

Response

The response returns a paginated list of transactions along with summary metadata. Use nextLastId from the response to fetch the next page by passing it as the lastId parameter in subsequent requests.

FieldTypeDescription
responseCodestringResponse code. "00" indicates a successful request.
responseMessagestringDescription of the response.
dataobjectContains the list of transactions and pagination info.
data.totalCountnumberTotal number of transactions matching the filters.
data.nextLastIdnumberID of the last transaction in the current page. Use this as lastId for the next page.
data.transactionsarrayArray of transaction records.
data.transactions[].idnumberUnique transaction identifier.
data.transactions[].firstnamestring | nullCustomer's first name (if available).
data.transactions[].lastnamestring | nullCustomer's last name (if available).
data.transactions[].accountNumberstringGenerated account number for the transaction.
data.transactions[].accountNamestringAccount name associated with the transaction.
data.transactions[].amountnumberTransaction amount.
data.transactions[].paymentTypestringPayment method used (e.g. Card, Transfer, USSD).
data.transactions[].dateCreatedstringISO 8601 timestamp when the transaction was created.
data.transactions[].dateUpdatedstringISO 8601 timestamp when the transaction was last updated.
data.transactions[].emailstring | nullCustomer's email address (if available).
data.transactions[].currencystringCurrency code (e.g. NGN).
data.transactions[].transactionReferencestringUnique transaction reference.
data.transactions[].countrystringCountry where the transaction was processed.
data.transactions[].phoneNumberstring | nullCustomer's phone number (if available).
data.transactions[].narrationstring | nullTransaction narration (if available).
data.transactions[].processorstringPayment processor used (e.g. Wema, Stanbic).
data.transactions[].paymentResponseCodestringResponse code from the payment processor. "00" indicates success.
data.transactions[].paymentResponseMessagestringResponse message from the payment processor.
Sample Response (200)
{
"responseCode": "00",
"responseMessage": "Report fetched successfully",
"data": {
"totalCount": 154,
"transactions": [
{
"id": 58618,
"firstname": "Echezona",
"lastname": "Digital Gateway Ltd",
"accountNumber": "6513958689",
"accountName": "Echezona/Emino Sin Amor",
"amount": 27.84,
"paymentType": "Transfer",
"dateCreated": "2025-12-08T09:42:29.217933Z",
"dateUpdated": "2025-12-08T09:42:29.366013Z",
"email": "ejeiokekeemmanuel@gmail.com",
"currency": "NGN",
"transactionReference": "PP18639007836993495961",
"country": "Nigeria",
"phoneNumber": "",
"narration": null,
"processor": "Wema",
"paymentResponseCode": "00",
"paymentResponseMessage": "Transaction Successful"
},
{
"id": 57345,
"firstname": null,
"lastname": null,
"accountNumber": "6515275642",
"accountName": "Echezona/Emino Sin Amor",
"amount": 20.00,
"paymentType": "Transfer",
"dateCreated": "2025-12-04T12:35:37.710575Z",
"dateUpdated": "2025-12-04T12:35:37.710575Z",
"email": null,
"currency": "NGN",
"transactionReference": "648517355982",
"country": "Nigeria",
"phoneNumber": null,
"narration": null,
"processor": "Wema",
"paymentResponseCode": "00",
"paymentResponseMessage": "Transaction Successful"
}
],
"nextLastId": 56046
}
}

Pagination

This endpoint supports two pagination methods:

Cursor-based pagination (recommended):

  • Use the lastId parameter to fetch the next page
  • On the first request, omit lastId to start from the beginning
  • After each response, use the nextLastId value from the response as the lastId parameter in your next request
  • Example: If the response contains "nextLastId": 56046, your next request should include lastId=56046

Page-based pagination:

  • Use the skipPages parameter to skip a specific number of pages
  • Set skipPages=0 for the first page, skipPages=1 for the second page, and so on
  • Calculate the number of pages to skip based on your pageSize: skipPages = (desiredPageNumber - 1)

Example pagination flow:

  1. First request: pageSize=5&startDate=2025-12-01&endDate=2025-12-01&isLive=false
  2. Response includes nextLastId: 56046
  3. Next request: pageSize=5&lastId=56046&startDate=2025-12-01&endDate=2025-12-01&isLive=false
  4. Continue using the new nextLastId from each response for subsequent pages