---
title: "List loyalty program transactions"
method: GET
path: "/v1/loyalty_programs/{loyaltyProgramId}/transactions"
tags: ["Loyalty"]
---

# List loyalty program transactions

`GET /v1/loyalty_programs/{loyaltyProgramId}/transactions`

## Request

- Base URL: `https://yourbaseurl.talon.one`
- URL: `https://yourbaseurl.talon.one/v1/loyalty_programs/{loyaltyProgramId}/transactions`
- Auth: one of:
  - API key in header `Authorization`
  - API key in header `Authorization`
- TypeScript: <https://skmtc.dev/talon/apis/management-api/docs/v1/loyalty_programs/:loyaltyProgramId/transactions/get.ts> (a function with typed inputs; its response is checked against the schema)

> [!note] Management API endpoints are **not** meant to be used in real-time integrations that directly serve your end users. Rate limit: 3 requests per second.

Retrieve loyalty program transaction logs in a given loyalty program with
filtering options applied. Manual and imported transactions are also
included.

> [!note] **Note**
> - If no filters are applied, the last 50 loyalty transactions for the given loyalty program are returned.
> - To get loyalty transaction logs for a given Integration ID in
>   a loyalty program, we recommend using the Integration API's [Get customer's loyalty
>   logs](https://docs.talon.one/integration-api#tag/Loyalty/operation/getLoyaltyProgramProfileTransactions).

## Path parameters

- `loyaltyProgramId` integer, required

## Query parameters

- `loyaltyTransactionType` 'manual' | 'session' | 'import'
- `subledgerId` string
- `customerSessionIDs` string[]
- `transactionUUIDs` string[]
- `startDate` string, date-time
- `endDate` string, date-time
- `pageSize` integer
- `skip` integer
- `awaitsActivation` boolean

## Response `200`

OK

- object
  - `hasMore` boolean, required
  - `data` LoyaltyProgramTransaction[], required
    - `id` integer, required: ID of the loyalty ledger transaction.
    - `transactionUUID` string, required: Unique identifier of the transaction in the UUID format.
    - `programId` integer, required: ID of the loyalty program.
    - `campaignId` integer: ID of the campaign.
    - `created` string, date-time, required: Date and time the loyalty transaction occurred.
    - `type` 'addition' | 'subtraction', required: Type of transaction. Possible values: - `addition`: Signifies added points. - `subtraction`: Signifies deducted points.
    - `amount` number, required: Amount of loyalty points added or deducted in the transaction.
    - `name` string, required: Name or reason for the loyalty ledger transaction.
    - `startDate` string, required: When points become active. Possible values: - `immediate`: Points are immediately active. - `on_action`: Points become active based on the customer's action. - a timestamp value: Points become active at a given date and time.
    - `expiryDate` string, required: When points expire. Possible values: - `unlimited`: Points have no expiration date. - a timestamp value: Points expire at a given date and time.
    - `customerProfileId` string: Customer profile integration ID used in the loyalty program.
    - `cardIdentifier` string: The identifier of the loyalty card, which must match the regular expression `^[A-Za-z0-9._%+@-]+$`.
    - `subledgerId` string, required: ID of the subledger.
    - `customerSessionId` string: ID of the customer session where the transaction occurred.
    - `importId` integer: ID of the import where the transaction occurred.
    - `userId` integer: ID of the user who manually added or deducted points. Applies only to manual transactions.
    - `userEmail` string: The email of the Campaign Manager account that manually added or deducted points. Applies only to manual transactions.
    - `rulesetId` integer: ID of the ruleset containing the rule that triggered the effect. Applies only for transactions that resulted from a customer session.
    - `ruleName` string: Name of the rule that triggered the effect. Applies only for transactions that resulted from a customer session.
    - `flags` LoyaltyLedgerEntryFlags: A map of flags providing additional details about the entry.
      - `createsNegativeBalance` boolean: Set to true if the entry creates negative balance.
    - `validityDuration` string: The duration for which the points remain active, relative to the activation date. **Note**: This only applies to points for which `awaitsActivation` is `true` and `expiryDate` is not set.

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `404`: Not found

---

[API](https://skmtc.dev/talon/apis/management-api.md) - [All operations](https://skmtc.dev/talon/apis/management-api/llms.txt) - [OpenAPI document](https://skmtc.dev/talon/apis/management-api/revisions/7ef1b9504c3a?raw)
