List Transactions
curl --request GET \
--url https://api.viarosandbox.com/v1/transactions \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.viarosandbox.com/v1/transactions"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.viarosandbox.com/v1/transactions', 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://api.viarosandbox.com/v1/transactions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://api.viarosandbox.com/v1/transactions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.viarosandbox.com/v1/transactions")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.viarosandbox.com/v1/transactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_bodyPayments API
List Transactions
Returns a list of transactions that have been processed by your business.
GET
/
transactions
List Transactions
curl --request GET \
--url https://api.viarosandbox.com/v1/transactions \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.viarosandbox.com/v1/transactions"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.viarosandbox.com/v1/transactions', 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://api.viarosandbox.com/v1/transactions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://api.viarosandbox.com/v1/transactions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.viarosandbox.com/v1/transactions")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.viarosandbox.com/v1/transactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_bodyReturns a paginated list of transactions. Transactions are returned in reverse chronological order, with the most recent transactions first.
Query Parameters
string
Filter transactions by your custom order ID or reference string (e.g.
inv_ref_104, ord_8932).string
Filter transactions by gateway payment reference (e.g.
pay_fe0f4aa967bf).integer
default:"10"
A limit on the number of objects to be returned. Limit can range between
1 and 100.string
Filter transactions by status:
successful, pending, failed, or requires_action.string
Filter transactions by three-letter ISO currency code (
XAF, XOF, GHS, KES, etc.).string
Filter transactions belonging to a specific customer ID.
string
A cursor for pagination. An object ID defining your place in the list.
Code Examples
curl -G https://api.viarosandbox.com/v1/transactions \
-u sk_test_uLsofsae3tB9Izwgeuy0Mxbh4JIxUPSG: \
-d merchant_reference=inv_ref_104 \
-d limit=10
import requests
url = "https://api.viarosandbox.com/v1/transactions"
auth = ("sk_test_uLsofsae3tB9Izwgeuy0Mxbh4JIxUPSG", "")
params = {"merchant_reference": "inv_ref_104", "limit": 10}
response = requests.get(url, auth=auth, params=params)
print(response.json())
const axios = require('axios');
async function listTransactions() {
const response = await axios.get('https://api.viarosandbox.com/v1/transactions', {
auth: {
username: 'sk_test_uLsofsae3tB9Izwgeuy0Mxbh4JIxUPSG',
password: ''
},
params: {
merchant_reference: 'inv_ref_104',
limit: 10
}
});
console.log(response.data);
}
listTransactions();
Response
{
"object": "list",
"data": [
{
"id": "tx_4a1b2c3d4e5f",
"object": "transaction",
"amount": "25000",
"currency": "XAF",
"status": "successful",
"payment_method": "mobile_money",
"phone": "+237671234567",
"customer_name": "Amara Diallo",
"customer_email": "[email protected]",
"description": "Invoice #104 Premium License",
"merchant_reference": "inv_ref_104",
"fee": 500,
"net_amount": 24500,
"created_at": "2026-11-06T11:30:00Z"
}
],
"has_more": false
}

