MisarMisar Docs
MisarMailMisar.BlogMisarReachMisarPostMisar.DevMisarSEOMisar PlatformMisar SSO
Wallet

List Transactions

GET /io/wallet/transactions — paginated credit ledger history for a user.

Returns a paginated list of ledger entries (top-ups and deductions) for a user, newest first.

GET https://api.misar.io/io/wallet/transactions

Authentication

Either mode is accepted:

  • SSO bearer (self): Authorization: Bearer <token> — history is for the token's user; omit user_id.
  • Service key: x-wallet-service-key: <key> plus ?user_id=<id>.

Query parameters

user_idstringquery

The Misar SSO user id. Required with the service key; derived from the token with an SSO bearer.

limitnumberquery

Maximum number of items to return in this page.

cursorstringquery

Opaque pagination cursor. Pass the nextCursor from the previous response to fetch the next page.

Request

curl "https://api.misar.io/io/wallet/transactions?user_id=usr_123&limit=20" \
  -H "x-wallet-service-key: $WALLET_SERVICE_KEY"

Response

{
  "items": [
    {
      "id": "txn_456",
      "type": "deduct",
      "feature": "blog.article.generate",
      "credits": -1,
      "balance_after": 41,
      "receipt_url": null,
      "created_at": "2026-06-02T10:15:00Z"
    },
    {
      "id": "txn_123",
      "type": "topup",
      "credits": 25,
      "balance_after": 42,
      "stripe_session_id": "cs_live_...",
      "receipt_url": "https://invoice.stripe.com/i/acct_.../live_...",
      "created_at": "2026-06-01T09:00:00Z"
    }
  ],
  "nextCursor": "eyJpZCI6InR4bl8xMjMifQ"
}
itemsobject[]

Ledger entries, newest first. Each entry includes the signed credits delta and the resulting balance_after.

receipt_urlstring | null

Hosted Stripe invoice/receipt URL for top-ups. null for deductions and for top-ups made before invoice generation was enabled. Link this in billing UIs so users can download their invoice.

nextCursorstring | null

Cursor for the next page, or null when there are no more pages.

Rate limit

200 reads/user/60 s. Exceeding the limit returns 429 with a Retry-After header.

Paginating

Keep calling with the returned nextCursor until it is null:

# page 2
curl "https://api.misar.io/io/wallet/transactions?user_id=usr_123&cursor=eyJpZCI6InR4bl8xMjMifQ" \
  -H "x-wallet-service-key: $WALLET_SERVICE_KEY"