---
title: Track transactions - Flutter
description: Track transactions with the CSQ Flutter SDK
lastUpdated: 05 December 2025
source_url:
  html: https://docs.contentsquare.com/en/csq-sdk-flutter/experience-analytics/track-transactions/
  md: https://docs.contentsquare.com/en/csq-sdk-flutter/experience-analytics/track-transactions/index.md
---

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

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

```dart
import 'package:contentsquare/csq.dart';


final transaction = CustomerTransaction(
  price: 430.99,                  // required
  currency: Currency.EUR,         // required
  transactionId: "order_12345",   // optional
);
CSQ().trackTransaction(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.


```json
{"@context":"https://schema.org","@type":"TechArticle","headline":"Track transactions","description":"Track transactions with the CSQ Flutter SDK","url":"https://docs.contentsquare.com/en/csq-sdk-flutter/experience-analytics/track-transactions/","inLanguage":"en","dateModified":"2025-12-05T17:32:03+01:00","publisher":{"@type":"Organization","name":"Contentsquare","url":"https://www.contentsquare.com/"},"isPartOf":{"@type":"WebSite","@id":"https://docs.contentsquare.com/#website","name":"Contentsquare Technical Documentation","url":"https://docs.contentsquare.com/"}}
```