const response = await afriex.transactions.list({
page: 0,
limit: 20,
status: ["PENDING", "PROCESSING"],
currency: ["USD", "NGN"],
fromDate: "2026-01-01T00:00:00.000Z",
toDate: "2026-01-31T23:59:59.999Z",
});
console.log(response.data); // Transaction[]
curl --request GET \
--url https://sandbox.api.afriex.com/api/v1/transaction \
--header 'x-api-key: <api-key>'import requests
url = "https://sandbox.api.afriex.com/api/v1/transaction"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://sandbox.api.afriex.com/api/v1/transaction', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox.api.afriex.com/api/v1/transaction",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://sandbox.api.afriex.com/api/v1/transaction"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://sandbox.api.afriex.com/api/v1/transaction")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.api.afriex.com/api/v1/transaction")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_bodyList Transactions
Retrieves a paginated list of transactions.
const response = await afriex.transactions.list({
page: 0,
limit: 20,
status: ["PENDING", "PROCESSING"],
currency: ["USD", "NGN"],
fromDate: "2026-01-01T00:00:00.000Z",
toDate: "2026-01-31T23:59:59.999Z",
});
console.log(response.data); // Transaction[]
curl --request GET \
--url https://sandbox.api.afriex.com/api/v1/transaction \
--header 'x-api-key: <api-key>'import requests
url = "https://sandbox.api.afriex.com/api/v1/transaction"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://sandbox.api.afriex.com/api/v1/transaction', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox.api.afriex.com/api/v1/transaction",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://sandbox.api.afriex.com/api/v1/transaction"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://sandbox.api.afriex.com/api/v1/transaction")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.api.afriex.com/api/v1/transaction")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_bodyAuthorizations
Static business API key issued from the dashboard. A business can provision multiple API keys, each scoped to a configurable set of permissions (e.g. read transactions, create deposits, etc). Permissions are chosen per key at creation time in the dashboard and may be revoked by deleting the key. Manage your keys and their permissions under Developer → API keys in the dashboard.
A request whose key does not carry the permission the target
endpoint requires is rejected with 401 Unauthorized, the same
response an unrecognised, malformed, revoked or disabled key
returns. The API does not distinguish the two cases on the wire.
See the Permissions reference for the permission each endpoint requires.
Headers
Signature of the request payload, used for request authentication where payload signing is enabled for your business.
API version in ISO 8601 format. The only supported version is 2026-05-18, which is also the default when the header is omitted. Any other value is rejected with a 400 Bad Request.
Query Parameters
Zero-based page number for pagination.
x >= 0Number of items per page (max 100).
1 <= x <= 100Filter by the Afriex transaction ID (transactionId) returned when the transaction was created, or by the reference you supplied in meta.reference.
Filter by the merchant-supplied reference set in meta.reference at transaction creation.
Filter by one or more transaction statuses. Use a comma-separated list for multiple values (e.g. ?status=PENDING,PROCESSING).
The current status of the transaction.
IN_REVIEW and RFI_REQUESTED are review states: the transaction is still in flight and is waiting on a review, not on you. Treat them as non-terminal and keep polling or listening for TRANSACTION.UPDATED. RFI_REQUESTED may result in someone contacting you for more information about the transfer.
PENDING, PROCESSING, SUCCESS, FAILED, CANCELLED, REFUNDED, RETRY, UNKNOWN, SCHEDULED, CUSTOMER_ACTION_REQUIRED, REJECTED, IN_REVIEW, RFI_REQUESTED, DISPUTED, DISPUTE_RESOLVED, DISPUTE_WON, DISPUTE_LOST, DISPUTE_EVIDENCE_SUBMITTED Filter by one or more transaction types. Use a comma-separated list for multiple values (e.g. ?type=DEPOSIT,WITHDRAW). Besides the types you can create, REVERSAL, SCHEDULED and SEND can appear on transactions your business did not create through this API.
DEPOSIT, WITHDRAW, SWAP, REVERSAL, SCHEDULED, SEND Filter by one or more payment channels (source or destination). Use a comma-separated list for multiple values (e.g. ?channel=BANK_ACCOUNT,MOBILE_MONEY).
BANK_ACCOUNT, MOBILE_MONEY, CARD, CRYPTO, VIRTUAL_BANK_ACCOUNT, POOL_ACCOUNT, ACH_BANK_ACCOUNT, INTERAC, PAYBILL_TILL, RFP, UPI, VIRTUAL_CARD, SWIFT, WE_CHAT, ALIPAY, WALLET, PAYMENT_LINQ, ADMIN Filter by one or more 3-letter ISO 4217 currency codes (source or destination). Use a comma-separated list for multiple values (e.g. ?currency=USD,NGN).
Return only transactions created on or after this ISO 8601 date-time (e.g. 2025-01-01T00:00:00.000Z).
Return only transactions created on or before this ISO 8601 date-time. Must be equal to or later than fromDate.
