api-key header)
Scope: LEDGER_READ
What the list contains:
- Fundings: deposits, withdrawals, refunds and internal transfers.
- Admin credits and debits made to your wallet, as
ADMIN_CREDITandADMIN_DEBITrows. - Trade settlements are not included. Use trade webhooks or
GET /secure/tradesfor those. INITIATEDfundings older than 24 hours are hidden, since they were never paid.
Request
GET https://api.assetpay.gg/v1/ledger/transactions?type=WITHDRAWAL&startDate=2026-09-01&limit=50&offset=0
api-key: ap_...
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
type | string | - | DEPOSIT, WITHDRAWAL, REFUND or INTERNAL_TRANSFER. Filtering by DEPOSIT or WITHDRAWAL also leaves out admin rows; REFUND and INTERNAL_TRANSFER still return them. |
status | string | - | INITIATED, PENDING, PENDING_ADMIN, APPROVED, REJECTED, COMPLETED, FAILED, CANCELLED, REFUNDED or EXPIRED. Applies to fundings only; admin rows are not filtered by it. |
startDate | string | - | ISO 8601 date or date-time. Only rows created at or after it. |
endDate | string | - | ISO 8601 date or date-time. Only rows created at or before it. A date-only value means midnight UTC at the start of that day, so pass a date-time to include the day itself. |
limit | number | 50 | Rows per page, 1 to 100 |
offset | number | 0 | Rows to skip |
Response
{
"requestId": "...",
"success": true,
"data": {
"items": [
{
"id": "5f0c2a4e-7b1d-4c39-9a8e-2d6f1b3c4e5a",
"type": "WITHDRAWAL",
"status": "COMPLETED",
"amount": {
"usd": 500.00,
"crypto": "499.000000",
"token": "USDT",
"chain": "TRX"
},
"fee": 1.00,
"address": "TXYZ...",
"txnHash": "a1b2c3...",
"timestamps": {
"created": "2026-09-10T14:02:11.000Z",
"completed": "2026-09-10T14:20:45.000Z",
"updated": "2026-09-10T14:20:45.000Z"
}
},
{
"id": "b7e1d9c2-3a4f-4e6b-8c1d-9f2a7e5b3c10",
"type": "ADMIN_CREDIT",
"status": "POSTED",
"amount": {
"usd": 25.00,
"crypto": "0",
"token": null,
"chain": null
},
"fee": 0,
"address": null,
"txnHash": null,
"timestamps": {
"created": "2026-09-08T09:30:00.000Z",
"completed": "2026-09-08T09:30:00.000Z",
"updated": "2026-09-08T09:30:00.000Z"
}
}
],
"pagination": {
"page": 1,
"limit": 50,
"total": 2,
"totalPages": 1
}
}
}
| Field | Type | Description |
|---|---|---|
id | string | Funding id, or the ledger transaction id for admin rows. Only funding ids work with Get Wallet Transaction. |
type | string | A funding type from the type filter, or ADMIN_CREDIT / ADMIN_DEBIT |
status | string | A funding status from the status filter. Admin rows are always POSTED. |
amount.usd | number | Amount in USD |
amount.crypto | string | Token amount with 6 decimals. "0" on admin rows. |
amount.token | string | null | Token symbol, null on admin rows |
amount.chain | string | null | Network, null on admin rows |
fee | number | Fee in USD |
address | string | null | On-chain address the funding was sent to or from |
txnHash | string | null | On-chain transaction hash, once known |
timestamps.created | string | When the row was created |
timestamps.completed | string | null | When the funding completed |
timestamps.updated | string | Last change |
pagination.page | number | Current page, derived from offset and limit |
pagination.total | number | Rows matching the filters across all pages |
Rate Limits
| Merchant Status | Limit |
|---|---|
| Verified | 100 requests / 5 min |
| Unverified | 10 requests / min |
Errors
| Code | Key | When |
|---|---|---|
| 1001 | VALIDATION_FAILED | A parameter is invalid: an unknown type or status, a date that does not parse, or limit out of range. HTTP 400, with an error.fields map. |
| 1100 | UNAUTHORIZED | Neither an api-key header nor a Bearer Authorization header was sent (HTTP 401) |
| 1300 | MERCHANT_API_KEY_REQUIRED | An admin API key was used; this route needs a merchant key (HTTP 403) |
| 1301 | ACCOUNT_DISABLED | The account that owns the API key is not active (HTTP 403) |
| 1901 | INVALID_API_KEY | The key does not exist or was revoked |
| 1904 | API_KEY_IP_DENIED | The request IP is not in the key’s whitelist |
| 1908 | INSUFFICIENT_SCOPE | The key does not have the LEDGER_READ scope |
| 1005 | RATE_LIMITED | Rate limit exceeded |
| 1006 | SERVER_ERROR | The history could not be loaded. Sent with HTTP 400. Retry shortly. |