---
id: "integrations/scheduled-data-exports/in-app-currency"
title: "In-App Currency feed"
description: "This page lists the columns of the In-App Currency feed. For setup, delivery frequency, and file formats, see Scheduled Data Exports."
permalink: "/docs/integrations/scheduled-data-exports/in-app-currency"
slug: "in-app-currency"
version: "current"
original_source: "docs/integrations/scheduled-data-exports/in-app-currency.mdx"
---

> **AI agents:** This is the Markdown version of a RevenueCat documentation page. For the complete documentation index, see [llms.txt](https://www.revenuecat.com/docs/llms.txt).

This page lists the columns of the In-App Currency feed. For setup, delivery frequency, and file formats, see [Scheduled Data Exports](https://www.revenuecat.com/docs/integrations/scheduled-data-exports).

The In-App Currency feed exports your in-app currency ledger, one row per balance adjustment. RevenueCat delivers it to `<base>/virtual_currency/<date>/virtual_currency_<timestamp>.<ext>`. It's a full-snapshot feed: each run re-exports the entire ledger, and incremental delivery isn't supported. To set up in-app currencies in your project before exporting them, see [In-App Currency](https://www.revenuecat.com/docs/offerings/virtual-currency).

## Columns

New integrations start with a default selection of the most commonly used columns; you can adjust the selection from the column catalog in the dashboard. For step-by-step instructions, see [Selecting columns for an export](https://www.revenuecat.com/docs/integrations/scheduled-data-exports/selecting-columns).

Each row records a credit or debit and the running balance after that adjustment. When the adjustment originated from a store purchase, the row also includes the associated purchase fields.

Purchase-related columns (`store`, `is_sandbox`, `store_transaction_id`, `product_identifier`, and price fields) are `null` on non-purchase rows. Refund columns (`refund_amount_usd`, `refund_amount_in_purchased_currency`, `refund_type`) are populated only on `REFUND_REMOVAL` rows with a positive refund delta.

All dates and times are in UTC.

| Header                                 | Description                                                                                                                                             | Type     | Example value                                     | Can be null |
| -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ------------------------------------------------- | ----------- |
| `rc_original_app_user_id`              | The original App User ID for the Customer. Can be used as a unique Customer identifier to find all of a user's in-app currency events.                  | string   | `$RCAnonymousID:87c6049c58069238dce29853916d624c` | Yes         |
| `rc_last_seen_app_user_id_alias`       | The last seen alias for the App User ID. Can be used together with `rc_original_app_user_id` to match events with Customer identifiers in your systems. | string   | `$RCAnonymousID:87c6049c58069238dce29853916d624c` | Yes         |
| `transaction_type`                     | In-app currency event type. One of `PURCHASE`, `DEDUCTION`, `GRANT`, `REFUND_REMOVAL`, `expiration`, or `other`.                                        | string   | `PURCHASE`                                        | Yes         |
| `currency_code`                        | Code of the in-app currency.                                                                                                                            | string   | `coins`                                           | Yes         |
| `adjustment_amount`                    | Signed amount of this balance adjustment. Positive values are credits; negative values are debits.                                                      | integer  | `100`                                             | Yes         |
| `updated_balance`                      | Running balance for this balance ID after this adjustment, floored at 0.                                                                                | integer  | `250`                                             | Yes         |
| `event_timestamp`                      | When the underlying in-app currency transaction occurred.                                                                                               | datetime | `2023-01-01 08:27:06`                             | Yes         |
| `updated_at`                           | When this ledger row was last updated in RevenueCat.                                                                                                    | datetime | `2023-02-20 05:47:55`                             | Yes         |
| `idempotency_key`                      | Idempotency key of the underlying in-app currency transaction. Use this to deduplicate rows if you ingest the same delivery more than once.             | string   | `vc_tx_abc123`                                    | Yes         |
| `store`                                | Store the originating purchase came from (`app_store`, `play_store`, etc.). `null` for non-purchase rows.                                               | string   | `app_store`                                       | Yes         |
| `is_sandbox`                           | Whether the originating purchase was made in a [sandbox environment](https://www.revenuecat.com/docs/test-and-launch/sandbox). `null` for non-purchase rows.                           | boolean  | `false`                                           | Yes         |
| `store_transaction_id`                 | Identifier the store assigned to the originating purchase.                                                                                              | string   | `123456789012345`                                 | Yes         |
| `product_identifier`                   | Identifier of the product purchased.                                                                                                                    | string   | `coins_100_pack`                                  | Yes         |
| `price_in_usd`                         | Price of the purchase in USD, after any refunds.                                                                                                        | float    | `4.99`                                            | Yes         |
| `purchase_price_in_usd`                | Catalog price of the purchase in USD, before discounts and refunds.                                                                                     | float    | `4.99`                                            | Yes         |
| `purchased_currency`                   | Currency the purchase was made in.                                                                                                                      | string   | `USD`                                             | Yes         |
| `price_in_purchased_currency`          | Price of the purchase in its purchased currency, after any refunds.                                                                                     | float    | `4.99`                                            | Yes         |
| `purchase_price_in_purchased_currency` | Catalog price of the purchase in its purchased currency, before discounts and refunds.                                                                  | float    | `4.99`                                            | Yes         |
| `refund_amount_usd`                    | Refunded amount in USD. Populated only on `REFUND_REMOVAL` rows with a positive refund delta.                                                           | float    | `4.99`                                            | Yes         |
| `refund_amount_in_purchased_currency`  | Refunded amount in the purchased currency. Populated only on `REFUND_REMOVAL` rows with a positive refund delta.                                        | float    | `4.99`                                            | Yes         |
| `refund_type`                          | `FULL` or `PARTIAL`. Populated only on `REFUND_REMOVAL` rows with a positive refund delta.                                                              | string   | `FULL`                                            | Yes         |

## Related articles

- [Scheduled Data Exports](https://www.revenuecat.com/docs/integrations/scheduled-data-exports)
- [Selecting columns for an export](https://www.revenuecat.com/docs/integrations/scheduled-data-exports/selecting-columns)
- [In-App Currency](https://www.revenuecat.com/docs/offerings/virtual-currency)
