---
title: Track transactions - Flutter (classic)
description: Track transactions with the Contentsquare Flutter SDK
lastUpdated: 09 October 2025
source_url:
  html: https://docs.contentsquare.com/en/flutter/track-transactions/
  md: https://docs.contentsquare.com/en/flutter/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-flutter/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. Each transaction requires the following information:

* `price` (`double`, required)
* `currency` (`String`, required)
* `transactionId` (`String`, optional)

```dart
Contentsquare().sendTransaction(430, 'EUR', "testId");
```

You can also use the `Currency` helper to get the list of ISO 4217 currencies.

```dart
Contentsquare().sendTransaction(430, Currency.EUR.toStr());
```

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

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.
