---
title: Track transactions - React Native (classic)
description: Track transactions with the Contentsquare bridge for React Native
lastUpdated: 07 April 2026
source_url:
  html: https://docs.contentsquare.com/en/react-native/track-transactions/
  md: https://docs.contentsquare.com/en/react-native/track-transactions/index.md
---

> Documentation index: https://docs.contentsquare.com/llms.txt
> Use this file to discover all available pages before exploring further.

The latest CSQ SDK is here! Learn how to [upgrade your app](https://docs.contentsquare.com/en/csq-sdk-react-native/experience-analytics/upgrade-from-cs-sdk/).

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)

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


// numeric currency: Contentsquare.sendTransaction(number, Currency, string?)
Contentsquare.sendTransaction(10.99, Currency.USD);
Contentsquare.sendTransaction(200.99, Currency.EUR, "my_transaction_1");


// alphanumeric currency: Contentsquare.sendTransaction(number, string, string?)
Contentsquare.sendTransaction(10.99, "USD");
Contentsquare.sendTransaction(200.99, "eur", "my_transaction_2");
```

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 is conforming to the [ISO 4217 ↗](https://en.wikipedia.org/wiki/ISO_4217#List_of_ISO_4217_currency_codes) standard. Although the currency can be passed either as "alphanumeric code" or "numeric code", you should always prefer using the bridge's Currency object values. If you have to pass the ISO code as a string, capitalization is not a factor (`Currency.USD`, `"USD"`, `"Usd"` or `"usd"` will all be treated as the US Dollar).

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

## Migrating from version 4.X.X to 5.X.X

If you are migrating from a previous version of the Contentsquare React Native SDK, the `sendTransactionWithStringCurrency` method has been removed, and replaced by `sendTransaction`:

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


Contentsquare.sendTransactionWithStringCurrencysendTransaction(10.99, "USD");
Contentsquare.sendTransactionWithStringCurrencysendTransaction(200.99, "eur", "my_transaction_2");
```
