---
title: "Wallet ledger"
method: GET
path: "/wallet/transactions"
tags: ["Wallet"]
---

# Wallet ledger

`GET /wallet/transactions`

## Request

- Base URL: `https://esahayak.io/api/v1`
- URL: `https://esahayak.io/api/v1/wallet/transactions`
- Auth: HTTP bearer

## Query parameters

- `wallet` 'STAMP_DUTY' | 'SERVICE_FEE'

## Response `200`

Paged results.

- WalletTransactionList
  - `data` WalletTransaction[], required
    - `id` string, uuid
    - `type` 'CREDIT' | 'DEBIT' | 'RESERVE' | 'RELEASE' | 'REFUND'
    - `amount` number
    - `bulkOrderId` string, nullable
    - `partnerBatchId` string, nullable
    - `externalRef` string, nullable: NEFT UTR for CREDIT; idempotency anchor.
    - `createdAt` string, date-time
  - `limit` integer, required
  - `offset` integer, required
  - `total` integer, required: Unfiltered count for the same query.
  - `hasMore` boolean, required: True when more rows exist beyond this page.

## Other responses

- `401`: Missing / invalid / expired / revoked key
- `429`: Rate limit exceeded. Limits are per API key: a burst of **120 requests** with a sustained refill of **20 requests/second**. The `Retry-After` header tells you how many seconds to wait before retrying. Limits are enforced per compute instance (pilot-grade), so real-world throughput may be higher.

---

[API](https://skmtc.dev/esahayak/apis/esahayak-stamp-api.md) - [All operations](https://skmtc.dev/esahayak/apis/esahayak-stamp-api/llms.txt) - [OpenAPI document](https://skmtc.dev/esahayak/apis/esahayak-stamp-api/revisions/cca124862a3e?raw)
