---
title: Track transactions - React Native
description: Track transactions with the Contentsquare bridge for React Native
lastUpdated: 11 December 2025
source_url:
  html: https://docs.contentsquare.com/en/csq-sdk-react-native/experience-analytics/track-transactions/
  md: https://docs.contentsquare.com/en/csq-sdk-react-native/experience-analytics/track-transactions/index.md
---

To associate a user's session with their potential purchases (and corresponding revenue), you must send the transaction via a dedicated API. For each transaction, we send:

* Price (number, mandatory)
* Currency (Currency or string, mandatory)
* Transaction ID (string, optional)

```typescript
import { CSQ } from "@contentsquare/react-native-bridge";


// String currency: CSQ.trackTransaction(number, string, string?)
CSQ.trackTransaction(10.99, "USD");
CSQ.trackTransaction(200.99, "eur", "my_transaction");
```

Warning

**Each transaction must only be sent once**. A common mistake is to trigger the sending when the confirmation screen is displayed. This leads to triggering the transaction each time the user puts the app in background and then in foreground on the confirmation screen.

## Currency

The `Currency` enum provides a list of all supported currencies, conforming to the [ISO 4217 ↗](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes) standard.

```typescript
import { CSQ, Currency } from "@contentsquare/react-native-bridge";


// Numeric currency (enum-based): CSQ.trackTransaction(number, Currency, string?)
CSQ.trackTransaction(10.99, Currency.USD);
CSQ.trackTransaction(200.99, Currency.EUR, "my_transaction");
```

Note

If the currency passed for conversion doesn't match a supported currencies, the SDK will send a currency value of `-1`. It will be processed as the default currency of the project.
