Merchant Ledger
curl --request GET \
--url https://api.example.com/api/v1/management/merchants/{id}/transactions \
--header 'x-api-key: <x-api-key>'import requests
url = "https://api.example.com/api/v1/management/merchants/{id}/transactions"
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/management/merchants/{id}/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.example.com/api/v1/management/merchants/{id}/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 => [
"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/management/merchants/{id}/transactions"
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/management/merchants/{id}/transactions")
.header("x-api-key", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/management/merchants/{id}/transactions")
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{
"merchant_id": "<string>",
"merchant_name": "<string>",
"total_count": 123,
"transactions": [
{
"id": "<string>",
"type": "<string>",
"amount": "<string>",
"balance_before": "<string>",
"balance_after": "<string>",
"payment_id": "<string>",
"status": "<string>",
"description": "<string>",
"created_at": "<string>"
}
]
}Merchants
Merchant Ledger
Retrieve the complete financial history for a specific merchant, including atomic balance snapshots for every transaction.
GET
/
api
/
v1
/
management
/
merchants
/
{id}
/
transactions
Merchant Ledger
curl --request GET \
--url https://api.example.com/api/v1/management/merchants/{id}/transactions \
--header 'x-api-key: <x-api-key>'import requests
url = "https://api.example.com/api/v1/management/merchants/{id}/transactions"
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/management/merchants/{id}/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.example.com/api/v1/management/merchants/{id}/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 => [
"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/management/merchants/{id}/transactions"
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/management/merchants/{id}/transactions")
.header("x-api-key", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/management/merchants/{id}/transactions")
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{
"merchant_id": "<string>",
"merchant_name": "<string>",
"total_count": 123,
"transactions": [
{
"id": "<string>",
"type": "<string>",
"amount": "<string>",
"balance_before": "<string>",
"balance_after": "<string>",
"payment_id": "<string>",
"status": "<string>",
"description": "<string>",
"created_at": "<string>"
}
]
}Headers
string
required
Your test or live SDK Secret Key (
sk_test_... or sk_live_...).Path Parameters
string
required
Unique identifier for the merchant (e.g.,
mch_xyz789).Query Parameters
number
Number of transaction records to return (default
50, max 100).Response Fields
string
Unique merchant identifier.
string
Merchant display name.
number
Total number of transaction records found.
array
Show Transaction Item
Show Transaction Item
string
Unique transaction log ID.
string
Type of ledger entry (e.g.,
PAYMENT, DEPOSIT, WITHDRAWAL).string
Transaction amount in USDC.
string
Merchant USDC balance before this transaction.
string
Merchant USDC balance after this transaction.
string
Associated payment ID.
string
Status of transaction (
COMPLETED, PENDING, FAILED).string
Human-readable transaction description.
string
ISO 8601 timestamp of transaction.
Response Example
{
"merchant_id": "mch_xyz789",
"merchant_name": "Urban Eats",
"total_count": 1,
"transactions": [
{
"id": "tx_abc123",
"type": "PAYMENT",
"amount": "5.00",
"balance_before": "100.00",
"balance_after": "105.00",
"payment_id": "pay_987654",
"status": "COMPLETED",
"description": "NFC Payment Received",
"created_at": "2026-04-03T12:00:00Z"
}
]
}
⌘I

