---
title: "List virtual currency transactions"
method: GET
path: "/api/v2/server-side-api/vc/transactions/"
tags: ["Virtual Currency"]
---

# List virtual currency transactions

`GET /api/v2/server-side-api/vc/transactions/`

Returns the virtual currency transaction history for a profile, newest first. Results use cursor pagination: when the response includes a non-null `pagination.next_cursor`, pass it back as the `cursor` query parameter to fetch the next page.

## Query parameters

- `currency_code` string
- `cursor` string
- `limit` integer

## Headers

- `adapty-customer-user-id` string
- `adapty-profile-id` string

## Response `200`

Transaction history returned successfully

- VirtualCurrencyTransactionsHistoryResponse — Paginated list of virtual currency transactions for a profile.
  - `data` VirtualCurrencyTransactionsHistoryItem[], required
    - `transaction_id` string, uuid, required — Unique ID of the transaction.
    - `transaction_type` string, required — The source of the transaction. One of `store_purchase`, `subscription_renewal`, `trial_start`, `api_transaction`, `dashboard_transaction`, `refund`, or `expiry`.
    - `items` VirtualCurrencyBalanceChange[], required — Per-currency balance changes recorded in this transaction.
      - `currency_code` string, required — The virtual currency code.
      - `amount` integer, required — The signed change applied to the balance. A positive value is a credit, a negative value is a debit.
      - `balance_after` integer, required — The currency balance after this transaction was applied.
    - `metadata` object, nullable — Key-value pairs stored with the transaction, if any.
    - `created_at` string, date-time, required — When the transaction was recorded.
  - `pagination` VirtualCurrencyHistoryPagination, required
    - `next_cursor` string, nullable, required — Opaque cursor for the next page. Pass it as the `cursor` query parameter to fetch more results. Null when there are no more pages.

## Other responses

- `400` — Bad request. The `cursor` value is invalid (`error_code` is `invalid_cursor`).
- `401` — Unauthorized. The API key is missing or invalid.
- `403` — Forbidden. The Server API for virtual currencies is not enabled for this app.
- `404` — Profile not found.
- `500` — Internal server error

---

[API](https://skmtc.dev/adapty/apis/adapty-server-side-api.md) · [All operations](https://skmtc.dev/adapty/apis/adapty-server-side-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/adapty/adapty-server-side-api/revisions/abdc1c773a17/schema)
