/api/v2/server-side-api/vc/transactions/ List virtual currency 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
Filter the history to a single virtual currency code.
Opaque pagination cursor returned as pagination.next_cursor in a previous response. Omit to fetch the first page.
Maximum number of transactions to return per page. Defaults to 50.
Header parameters
The unique ID of the customer in your system. Either adapty-customer-user-id or adapty-profile-id is required.
The unique ID of the profile in your system. Your best option if you are working with anonymous profiles. Either adapty-customer-user-id or adapty-profile-id is required.
Responses
Transaction history returned successfully
Schema
Paginated list of virtual currency transactions for a profile.
Unique ID of the transaction.
The source of the transaction. One of store_purchase, subscription_renewal, trial_start, api_transaction, dashboard_transaction, refund, or expiry.
Per-currency balance changes recorded in this transaction.
The virtual currency code.
The signed change applied to the balance. A positive value is a credit, a negative value is a debit.
The currency balance after this transaction was applied.
Key-value pairs stored with the transaction, if any.
When the transaction was recorded.
Opaque cursor for the next page. Pass it as the cursor query parameter to fetch more results. Null when there are no more pages.
Example
{
"data": [
{
"transaction_id": "0190e8a4-1c2b-7def-8abc-2c1a4b6d8e90",
"transaction_type": "api_transaction",
"items": [
{
"currency_code": "COINS",
"amount": 500,
"balance_after": 12950
}
],
"metadata": {
"reason": "promo_bonus"
},
"created_at": "2026-05-23T10:30:00Z"
},
{
"transaction_id": "0190e7b2-9a44-7c10-bb31-7d2e9f0a1c55",
"transaction_type": "store_purchase",
"items": [
{
"currency_code": "COINS",
"amount": 1000,
"balance_after": 12450
}
],
"created_at": "2026-05-22T18:05:12Z"
},
{
"transaction_id": "0190e5c0-3f18-7b9a-9e6d-44a1c8b27e03",
"transaction_type": "subscription_renewal",
"items": [
{
"currency_code": "GEMS",
"amount": 200,
"balance_after": 3280
}
],
"created_at": "2026-05-20T09:00:00Z"
}
],
"pagination": {
"next_cursor": "MjAyNi0wNS0yMFQwOTowMDowMFowMTkwZTVjMC0zZjE4LTdiOWEtOWU2ZC00NGExYzhiMjdlMDM="
}
} Bad request. The cursor value is invalid (error_code is invalid_cursor).
Schema
Source of the error
Array of error messages
Short error name
HTTP status code
Unauthorized. The API key is missing or invalid.
Schema
Source of the error
Array of error messages
Short error name
HTTP status code
Forbidden. The Server API for virtual currencies is not enabled for this app.
Schema
Source of the error
Array of error messages
Short error name
HTTP status code
Profile not found.
Schema
Source of the error
Array of error messages
Short error name
HTTP status code
Internal server error