Fetch Wallet Single Transaction
curl --request GET \
--url https://api.example.com/api/v1/wallets/fiat/transactions/{transactionId} \
--header 'x-api-key: <x-api-key>'import requests
url = "https://api.example.com/api/v1/wallets/fiat/transactions/{transactionId}"
headers = {"x-api-key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<x-api-key>'}};
fetch('https://api.example.com/api/v1/wallets/fiat/transactions/{transactionId}', 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.example.com/api/v1/wallets/fiat/transactions/{transactionId}",
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: <x-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://api.example.com/api/v1/wallets/fiat/transactions/{transactionId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<x-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://api.example.com/api/v1/wallets/fiat/transactions/{transactionId}")
.header("x-api-key", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/wallets/fiat/transactions/{transactionId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<x-api-key>'
response = http.request(request)
puts response.read_body{
"transactionId": "txn_abc123",
"transactionType": "deposit",
"walletId": "wal_xyz789",
"accountNumber": "1234567890",
"status": "completed",
"amount": 50000,
"fee": 0,
"originator": {
"accountNumber": "0987654321",
"accountName": "JOHN DOE",
"bankName": "GTBank"
},
"narration": "Payment from John Doe",
"reference": "FP-20240115-001",
"createdAt": "2024-01-15T10:30:45Z"
}
{
"transactionId": "txn_def456",
"transactionType": "withdrawal",
"walletId": "wal_xyz789",
"accountNumber": "1234567890",
"status": "completed",
"amount": 75000,
"fee": 50,
"beneficiary": {
"accountNumber": "1122334455",
"accountName": "JANE SMITH",
"bankName": "Zenith Bank"
},
"narration": "Payment to Jane Smith",
"reference": "FP-20240115-002",
"createdAt": "2024-01-15T14:20:30Z"
}
{
"status": false,
"message": "Transaction not found",
"code": "TRANSACTION_NOT_FOUND"
}
Virtual Wallets
Fetch Wallet Single Transaction
Retrieve details of a single wallet transaction
GET
/
api
/
v1
/
wallets
/
fiat
/
transactions
/
{transactionId}
Fetch Wallet Single Transaction
curl --request GET \
--url https://api.example.com/api/v1/wallets/fiat/transactions/{transactionId} \
--header 'x-api-key: <x-api-key>'import requests
url = "https://api.example.com/api/v1/wallets/fiat/transactions/{transactionId}"
headers = {"x-api-key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<x-api-key>'}};
fetch('https://api.example.com/api/v1/wallets/fiat/transactions/{transactionId}', 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.example.com/api/v1/wallets/fiat/transactions/{transactionId}",
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: <x-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://api.example.com/api/v1/wallets/fiat/transactions/{transactionId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<x-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://api.example.com/api/v1/wallets/fiat/transactions/{transactionId}")
.header("x-api-key", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/wallets/fiat/transactions/{transactionId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<x-api-key>'
response = http.request(request)
puts response.read_body{
"transactionId": "txn_abc123",
"transactionType": "deposit",
"walletId": "wal_xyz789",
"accountNumber": "1234567890",
"status": "completed",
"amount": 50000,
"fee": 0,
"originator": {
"accountNumber": "0987654321",
"accountName": "JOHN DOE",
"bankName": "GTBank"
},
"narration": "Payment from John Doe",
"reference": "FP-20240115-001",
"createdAt": "2024-01-15T10:30:45Z"
}
{
"transactionId": "txn_def456",
"transactionType": "withdrawal",
"walletId": "wal_xyz789",
"accountNumber": "1234567890",
"status": "completed",
"amount": 75000,
"fee": 50,
"beneficiary": {
"accountNumber": "1122334455",
"accountName": "JANE SMITH",
"bankName": "Zenith Bank"
},
"narration": "Payment to Jane Smith",
"reference": "FP-20240115-002",
"createdAt": "2024-01-15T14:20:30Z"
}
{
"status": false,
"message": "Transaction not found",
"code": "TRANSACTION_NOT_FOUND"
}
Path Parameters
The unique identifier of the transaction
Request
API Key for authentication
Request Example
curl https://api-production.fossapay.com/api/v1/wallets/fiat/transactions/txn_abc123 \
-H "x-api-key: fp_live_sk_xxxxxxxx"
const response = await fetch('https://api-production.fossapay.com/api/v1/wallets/fiat/transactions/txn_abc123', {
headers: {
'x-api-key': 'fp_live_sk_xxxxxxxx'
}
});
const transaction = await response.json();
import requests
url = "https://api-production.fossapay.com/api/v1/wallets/fiat/transactions/txn_abc123"
headers = {"x-api-key": "fp_live_sk_xxxxxxxx"}
response = requests.get(url, headers=headers)
transaction = response.json()
Response
Unique transaction identifier
Transaction type:
deposit or withdrawalWallet ID (virtual account ID)
Virtual account number
Transaction status
Transaction amount
Transaction fee
Destination wallet account number (for internal transfers)
Transaction narration
Transaction reference
Transaction timestamp
Response Example
{
"transactionId": "txn_abc123",
"transactionType": "deposit",
"walletId": "wal_xyz789",
"accountNumber": "1234567890",
"status": "completed",
"amount": 50000,
"fee": 0,
"originator": {
"accountNumber": "0987654321",
"accountName": "JOHN DOE",
"bankName": "GTBank"
},
"narration": "Payment from John Doe",
"reference": "FP-20240115-001",
"createdAt": "2024-01-15T10:30:45Z"
}
{
"transactionId": "txn_def456",
"transactionType": "withdrawal",
"walletId": "wal_xyz789",
"accountNumber": "1234567890",
"status": "completed",
"amount": 75000,
"fee": 50,
"beneficiary": {
"accountNumber": "1122334455",
"accountName": "JANE SMITH",
"bankName": "Zenith Bank"
},
"narration": "Payment to Jane Smith",
"reference": "FP-20240115-002",
"createdAt": "2024-01-15T14:20:30Z"
}
{
"status": false,
"message": "Transaction not found",
"code": "TRANSACTION_NOT_FOUND"
}
Error Codes
| Code | Description |
|---|---|
TRANSACTION_NOT_FOUND | Transaction with this ID does not exist |
UNAUTHORIZED | Invalid API key or insufficient permissions |
Store transaction details for reconciliation and audit purposes.
Use this endpoint to verify specific transactions when needed.
⌘I

