Client Wallet Balances & Transactions
1. Overview
Customer Wallet Balances & Transactions is an API for obtaining a complete financial picture of a merchant's customer. The API returns a single JSON object containing information about all customer wallets (including old and blocked ones), their current balances, USD equivalents, and transaction history with AML data.
Key Features:
- Retrieve balances of all customer wallets (across all currencies and networks)
- Current balance + USD equivalent at the current exchange rate
- Transaction history with filtering by period
- Historical USD amounts at the time of each transaction
- AML score and status for each transaction
- Pagination support for large data volumes
- Inclusion of blocked and old wallets
2. Business Context
Why This Feature Is Needed
Problem:
Merchants and their customers need a centralized way to obtain complete financial history for a customer:
- A customer may have multiple wallets (different currencies, networks)
- Old wallets after AML blocking remain in the system
- Transactions are scattered across different wallets
- There is no single place to view all balances and history
Solution:
A single API endpoint that aggregates:
- All customer wallets (OPEN, LOCKED, BLOCKED)
- Current balances in native currency + USD
- Transaction history with AML data
- Ability to filter by period for reporting
Use Cases
- Financial report for customer — show the customer all their balances and transactions
- Audit and compliance — merchant can review customer's transaction history
- Customer support — quickly find customer information to resolve issues
- Analytics — data aggregation for merchant's internal reports
3. API Endpoints
GET /api/v2/merchants/wallets/info?clientId=&dateFrom=dateTo=
4. API Specification
Request
HTTP Method: GET
Endpoint:
/api/v2/merchants/wallets/info?clientId=<clientId>&dateFrom=<dateFrom>&dateTo=<dateTo>
Query Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
clientId | string | Yes | Unique customer identifier (Client ID from Client ID feature) | "perfectclient" |
dateFrom | string (Unix) | No | Start of period for transactions | 1706733375 |
dateTo | string (Unix) | No | End of period for transactions | 1706733375 |
limit | integer | No | Number of transactions per page (default: 100, max: 1000) | 100 |
sort | string | No | Sort transactions by date or amount (asc or desc, default: desc) | desc |
blocked | boolean | No | Include blocked wallets (default: true) | true |
zeroBalance | boolean | No | Include wallets with zero balance (default: true) | true |
assetShort | string | No | Return wallets for a specific coin | USDT |
assetNetwork | string | No | Return wallets for a specific network | tron |
Query Parameter Details
dateFrom / dateTo:
- Format: Unix timestamp
- Optional: if not specified — all transactions are returned
- If
dateFromis specified butdateTois missing → ignore - If
dateTois specified butdateFromis missing → ignore - Period affects only the transaction list, not balances
page:
- Used for pagination
pageSize:
- Used for page size
limit:
- Number of transactions per request
- Default: 100
- Max: 1000
- Pagination triggers when transactions exceed limit
sort:
desc(default) — from newest to oldest (bycreatedAt)asc— from oldest to newest
blocked (locked wallets are also included in response by default):
true(default) — includes blocked wallets (after AML_CHECK_DANGER)false— only active wallets
zeroBalance:
true(default) — includes wallets with balance = 0false— only wallets with balance > 0
Response
HTTP Status: 200 OK
Response Body:
{
"clientId": "client-12345",
"createdAt": "2025-12-22T10:30:45Z",
"wallets": [
{
"address": "TXyz123ABCdefGHIjklMNOpqrSTUvwx",
"assetShort": "USDT",
"assetNetwork": "tron",
"status": "ACTIVE",
"isBlocked": false,
"balance": {
"amount": "1000.50",
"amountUsd": "1000.50",
"updatedAt": "2025-12-22T10:30:00Z"
},
"payments": [
{
"id": "d4c87981-92c2-403e-b91b-a4f02a323a48",
"totalReceivedAmount": "500.00",
"totalReceivedAmountUsd": "500.00",
"confirmsNeeded": 30,
"checkoutUrl": "",
"status": "EXPIRED",
"displayStatus": "COMPLETED",
"customerId": 0,
"customerName": "Unknown",
"customerEmail": "unknown",
"invoice": "INVOICEid",
"createdAt": "2025-09-01T15:02:20.382627+03:00",
"type": "api",
"fixedFee": "0",
"fixedFeeUsd": "0",
"transactions": [
{
"txnId": "0x1234abcd...",
"amount": "500.00",
"createdAt": "2025-12-15T14:25:30Z",
"aml": {
"riskScore": 15,
"isDanger": false,
"checkedAt": "2025-12-15T14:26:00Z",
"amlPriceUsd": "0.50"
},
"fees": {
"networkFee": {
"amount": "0.5",
"amountUsd": "0.15"
},
"percentFee": {
"amount": "0.5",
"amountUsd": "0.15"
}
}
}
]
}
]
}
],
"pagination": {
"page": 1,
"pageSize": 100,
"hasNext": true,
"hasPrev": false,
"total": 156
}
}
5. Response Fields Specification
Top-Level Fields
| Field | Type | Description |
|---|---|---|
clientId | string | Customer's Client ID |
createdAt | string (UNIX) | Date of customer wallet creation |
assetShort | string | Currency of aggregated amounts (always "USD") |
wallets | array<Wallet> | Array of customer wallets |
pagination | Pagination | Pagination data |
Wallet Object
| Field | Type | Description |
|---|---|---|
address | string | Wallet address |
assetShort | string | Short asset name (USDT, USDC, etc.) |
assetNetwork | string | Asset network (tron, eth, btc, etc.) |
status | string | Wallet status: ACTIVE / LOCKED / BLOCKED |
isBlocked | boolean | Wallet blocking indicator |
balance | Balance | Wallet balance |
transactions | Transactions | Wallet transactions |
Balance Object
| Field | Type | Description |
|---|---|---|
amount | string | Balance in asset currency |
amountUsd | string | Balance converted to USD |
updatedAt | string (UNIX) | Date of last balance update |
Payment Object
| Field | Type | Description |
|---|---|---|
id | string | Unique payment identifier (paymentId) |
totalReceivedAmount | string | Total amount received in this payment in wallet currency |
totalReceivedAmountUsd | string | Total amount in USD at the time of payment completion |
confirmsNeeded | number | Required number of blockchain confirmations for the payment |
checkoutUrl | string | Payment page URL (if checkout was created) |
status | string | Technical payment status (OPEN, COMPLETED, EXPIRED, etc.) |
displayStatus | string | Business status for frontend (OPEN, COMPLETED, AML_CHECK_DANGER) |
customerId | number | Internal customer ID in ALPPay (may be 0 if none) |
customerName | string | Customer name (if provided by merchant) |
customerEmail | string | Customer email (if provided by merchant) |
invoice | string | Merchant's invoice identifier/number |
createdAt | string (ISO 8601) | Payment creation date |
type | string | Creation type (api, dashboard, etc.) |
fixedFee | string | Fixed fee for this payment in asset currency |
fixedFeeUsd | string | Fixed fee for this payment in USD |
assetLogoUrl | string | (optional) Asset logo URL |
transactions | array<Transaction> | Array of blockchain transactions associated with this payment |
Transaction Object
| Field | Type | Description |
|---|---|---|
txnId | string | Unique transaction identifier |
amount | string | Transaction amount in asset currency |
createdAt | string (UNIX) | Transaction creation date |
aml | AML | AML check results |
fees | Fees | Transaction fees |
AML Object
| Field | Type | Description |
|---|---|---|
riskScore | number | Risk level (0–100) |
isDanger | boolean | Dangerous transaction indicator |
checkedAt | string (ISO 8601) | AML check date |
amlPriceUsd | string | AML check cost in USD |
Fees Object
| Field | Type | Description |
|---|---|---|
fixedFee | Fee | Fixed fee |
networkFee | Fee | Network fee |
percentFee | Fee | Percentage fee |
Fee Object
| Field | Type | Description |
|---|---|---|
amount | string | Fee amount in asset currency |
amountUsd | string | Fee amount in USD |
Pagination Object
| Field | Type | Description |
|---|---|---|
page | number | Current page |
pageSize | number | Number of items per page |
hasNext | boolean | Whether there is a next page |
hasPrev | boolean | Whether there is a previous page |
total | number | Total number of records |