---
title: "Get customer's full loyalty ledger"
method: GET
path: "/v1/loyalty_programs/{loyaltyProgramId}/profile/{integrationId}"
tags: ["Loyalty"]
deprecated: true
---

# Get customer's full loyalty ledger

`GET /v1/loyalty_programs/{loyaltyProgramId}/profile/{integrationId}`

## Request

- Base URL: `https://yourbaseurl.talon.one`
- URL: `https://yourbaseurl.talon.one/v1/loyalty_programs/{loyaltyProgramId}/profile/{integrationId}`
- 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/profile/:integrationId/get.ts> (a function with typed inputs; its response is checked against the schema)

> **Deprecated.**

> [!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.

Get the loyalty ledger for this profile integration ID.

To get the `integrationId` of the profile from a `sessionId`, use the
[Update customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2) endpoint.

**Important:** 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` string, required
- `integrationId` string, required

## Response `200`

OK

- LoyaltyLedger: Ledger of Balance in Loyalty Program for a Customer.
  - `ledger` LoyaltySubLedger, required: Ledger of Balance in Loyalty Program for a Customer.
    - `total` number, required: **DEPRECATED** Use `totalActivePoints` property instead. Total amount of currently active and available points in the customer's balance.
    - `totalActivePoints` number, required: Total amount of currently active and available points in the customer's balance.
    - `totalPendingPoints` number, required: Total amount of pending points, which are not active yet but will become active in the future.
    - `totalSpentPoints` number, required: Total amount of points already spent by this customer.
    - `totalExpiredPoints` number, required: Total amount of points, that expired without ever being spent.
    - `totalNegativePoints` number, required: Total amount of negative points. This implies that `totalActivePoints` is `0`.
    - `transactions` LoyaltyLedgerEntry[]: List of all events that have happened such as additions, subtractions and expiries.
      - `created` string, date-time, required
      - `programID` integer, required
      - `customerProfileID` string
      - `cardID` integer
      - `customerSessionID` string
      - `eventID` integer
      - `type` string, required: The type of the ledger transaction. Possible values are: - `addition` - `subtraction` - `expire` - `expiring` (for expiring points ledgers)
      - `amount` number, required
      - `startDate` string, date-time
      - `expiryDate` string, date-time
      - `name` string, required: A name referencing the condition or effect that added this entry, or the specific name provided in an API call.
      - `subLedgerID` string, required: This specifies if we are adding loyalty points to the main ledger or a subledger.
      - `userID` integer: This is the ID of the user who created this entry, if the addition or subtraction was done manually.
      - `archived` boolean: Indicates if the entry belongs to the archived 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.
      - `awaitsActivation` boolean: Indicates whether the points have an action-based start date. This property is returned only for point transactions with an action-based start date.
    - `expiringPoints` LoyaltyLedgerEntry[]: List of all points that will expire.
      - `created` string, date-time, required
      - `programID` integer, required
      - `customerProfileID` string
      - `cardID` integer
      - `customerSessionID` string
      - `eventID` integer
      - `type` string, required: The type of the ledger transaction. Possible values are: - `addition` - `subtraction` - `expire` - `expiring` (for expiring points ledgers)
      - `amount` number, required
      - `startDate` string, date-time
      - `expiryDate` string, date-time
      - `name` string, required: A name referencing the condition or effect that added this entry, or the specific name provided in an API call.
      - `subLedgerID` string, required: This specifies if we are adding loyalty points to the main ledger or a subledger.
      - `userID` integer: This is the ID of the user who created this entry, if the addition or subtraction was done manually.
      - `archived` boolean: Indicates if the entry belongs to the archived 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.
      - `awaitsActivation` boolean: Indicates whether the points have an action-based start date. This property is returned only for point transactions with an action-based start date.
    - `activePoints` LoyaltyLedgerEntry[]: List of all currently active points.
      - `created` string, date-time, required
      - `programID` integer, required
      - `customerProfileID` string
      - `cardID` integer
      - `customerSessionID` string
      - `eventID` integer
      - `type` string, required: The type of the ledger transaction. Possible values are: - `addition` - `subtraction` - `expire` - `expiring` (for expiring points ledgers)
      - `amount` number, required
      - `startDate` string, date-time
      - `expiryDate` string, date-time
      - `name` string, required: A name referencing the condition or effect that added this entry, or the specific name provided in an API call.
      - `subLedgerID` string, required: This specifies if we are adding loyalty points to the main ledger or a subledger.
      - `userID` integer: This is the ID of the user who created this entry, if the addition or subtraction was done manually.
      - `archived` boolean: Indicates if the entry belongs to the archived 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.
      - `awaitsActivation` boolean: Indicates whether the points have an action-based start date. This property is returned only for point transactions with an action-based start date.
    - `pendingPoints` LoyaltyLedgerEntry[]: List of all points pending activation.
      - `created` string, date-time, required
      - `programID` integer, required
      - `customerProfileID` string
      - `cardID` integer
      - `customerSessionID` string
      - `eventID` integer
      - `type` string, required: The type of the ledger transaction. Possible values are: - `addition` - `subtraction` - `expire` - `expiring` (for expiring points ledgers)
      - `amount` number, required
      - `startDate` string, date-time
      - `expiryDate` string, date-time
      - `name` string, required: A name referencing the condition or effect that added this entry, or the specific name provided in an API call.
      - `subLedgerID` string, required: This specifies if we are adding loyalty points to the main ledger or a subledger.
      - `userID` integer: This is the ID of the user who created this entry, if the addition or subtraction was done manually.
      - `archived` boolean: Indicates if the entry belongs to the archived 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.
      - `awaitsActivation` boolean: Indicates whether the points have an action-based start date. This property is returned only for point transactions with an action-based start date.
    - `expiredPoints` LoyaltyLedgerEntry[]: List of expired points.
      - `created` string, date-time, required
      - `programID` integer, required
      - `customerProfileID` string
      - `cardID` integer
      - `customerSessionID` string
      - `eventID` integer
      - `type` string, required: The type of the ledger transaction. Possible values are: - `addition` - `subtraction` - `expire` - `expiring` (for expiring points ledgers)
      - `amount` number, required
      - `startDate` string, date-time
      - `expiryDate` string, date-time
      - `name` string, required: A name referencing the condition or effect that added this entry, or the specific name provided in an API call.
      - `subLedgerID` string, required: This specifies if we are adding loyalty points to the main ledger or a subledger.
      - `userID` integer: This is the ID of the user who created this entry, if the addition or subtraction was done manually.
      - `archived` boolean: Indicates if the entry belongs to the archived 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.
      - `awaitsActivation` boolean: Indicates whether the points have an action-based start date. This property is returned only for point transactions with an action-based start date.
    - `currentTier` Tier
      - `id` integer, required: The internal ID of the tier.
      - `name` string, required: The name of the tier.
      - `startDate` string, date-time: Date and time when the customer moved to this tier. This value uses the loyalty program's time zone setting.
      - `expiryDate` string, date-time: Date when tier level expires in the RFC3339 format (in the Loyalty Program's timezone).
      - `downgradePolicy` 'one_down' | 'balance_based': The policy that defines how customer tiers are downgraded in the loyalty program after tier reevaluation. - `one_down`: If the customer doesn't have enough points to stay in the current tier, they are downgraded by one tier. - `balance_based`: The customer's tier is reevaluated based on the amount of active points they have at the moment.
      - `source` 'boost' | 'points': Indicates whether the customer's current tier was determined based on their points balance or a temporary boost. - `points`: The tier reflects the customer's current point balance. - `boost`: A temporary tier boost is in effect where the customer is in a higher tier than their points-based tier. The boost expires after a set duration and the customer returns to their points-based tier.
      - `reason` string: The reason for the tier assignment.
  - `subLedgers` object: A map containing a list of all loyalty subledger balances.

## Changes

- **2026-11-07** `7ef1b9504c3a`: 14 info
  - added the optional property `ledger/activePoints/items/awaitsActivation` to the response with the `200` status
  - added the optional property `ledger/currentTier/reason` to the response with the `200` status
  - added the optional property `ledger/currentTier/source` to the response with the `200` status
  - added the optional property `ledger/expiredPoints/items/awaitsActivation` to the response with the `200` status
  - …10 more

[Operation history](https://skmtc.dev/talon/apis/management-api/changes/v1/loyalty_programs/:loyaltyProgramId/profile/:integrationId/get.md)

---

[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)
