# TalonOne.LoyaltyProgram ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **id** | **Number** | The ID of loyalty program. | **created** | **Date** | The time this entity was created. | **title** | **String** | The display title for the Loyalty Program. | **description** | **String** | Description of our Loyalty Program. | **subscribedApplications** | **[Number]** | A list containing the IDs of all applications that are subscribed to this Loyalty Program. | **defaultValidity** | **String** | The default duration after which new loyalty points should expire. Can be 'unlimited' or a specific time. The time format is a number followed by one letter indicating the time unit, like '30s', '40m', '1h', '5D', '7W', or 10M'. These rounding suffixes are also supported: - '_D' for rounding down. Can be used as a suffix after 'D', and signifies the start of the day. - '_U' for rounding up. Can be used as a suffix after 'D', 'W', and 'M', and signifies the end of the day, week, and month. | **defaultPending** | **String** | The default duration of the pending time after which points should be valid. Accepted values: 'immediate', 'on_action' or a specific time. The time format is a number followed by one letter indicating the time unit, like '30s', '40m', '1h', '5D', '7W', or 10M'. These rounding suffixes are also supported: - '_D' for rounding down. Can be used as a suffix after 'D', and signifies the start of the day. - '_U' for rounding up. Can be used as a suffix after 'D', 'W', and 'M', and signifies the end of the day, week, and month. | **allowSubledger** | **Boolean** | Indicates if this program supports subledgers inside the program. | **usersPerCardLimit** | **Number** | The max amount of user profiles with whom a card can be shared. This can be set to 0 for no limit. This property is only used when `cardBased` is `true`. | [optional] **sandbox** | **Boolean** | Indicates if this program is a live or sandbox program. Programs of a given type can only be connected to Applications of the same type. | **programJoinPolicy** | **String** | The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. | [optional] **tiersExpirationPolicy** | **String** | The policy that defines how tier expiration, used to reevaluate the customer's current tier, is determined. - `tier_start_date`: The tier expiration is relative to when the customer joined the current tier. - `program_join_date`: The tier expiration is relative to when the customer joined the loyalty program. - `customer_attribute`: The tier expiration is determined by a custom customer attribute. - `absolute_expiration`: The tier is reevaluated at the start of each tier cycle. For this policy, it is required to provide a `tierCycleStartDate`. | [optional] **tierCycleStartDate** | **Date** | Timestamp at which the tier cycle starts for all customers in the loyalty program. **Note**: This is only required when the tier expiration policy is set to `absolute_expiration`. | [optional] **tiersExpireIn** | **String** | The amount of time after which the tier expires and is reevaluated. The time format is an **integer** followed by one letter indicating the time unit. Examples: `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. Available units: - `s`: seconds - `m`: minutes - `h`: hours - `D`: days - `W`: weeks - `M`: months - `Y`: years You can round certain units up or down: - `_D` for rounding down days only. Signifies the start of the day. - `_U` for rounding up days, weeks, months and years. Signifies the end of the day, week, month or year. | [optional] **tiersDowngradePolicy** | **String** | 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. | [optional] **cardCodeSettings** | [**CodeGeneratorSettings**](CodeGeneratorSettings.md) | | [optional] **returnPolicy** | **String** | The policy that defines the rollback of points in case of a partially returned, cancelled, or reopened [customer session](https://docs.talon.one/docs/dev/concepts/entities/customer-sessions). - `only_pending`: Only pending points can be rolled back. - `within_balance`: Available active points can be rolled back if there aren't enough pending points. The active balance of the customer cannot be negative. - `unlimited`: Allows negative balance without any limit. | [optional] **accountID** | **Number** | The ID of the Talon.One account that owns this program. | **name** | **String** | The internal name for the Loyalty Program. This is an immutable value. | **tiers** | [**[LoyaltyTier]**](LoyaltyTier.md) | The tiers in this loyalty program. | [optional] **timezone** | **String** | A string containing an IANA timezone descriptor. | **cardBased** | **Boolean** | Defines the type of loyalty program: - `true`: the program is a card-based. - `false`: the program is profile-based. | [default to false] **canUpdateTiers** | **Boolean** | `True` if the tier definitions can be updated. | [optional] [default to false] **canUpdateTierExpirationPolicy** | **Boolean** | `True` if the tier expiration policy can be updated. | [optional] **canUpgradeToAdvancedTiers** | **Boolean** | `True` if the program can be upgraded to use the `tiersExpireIn` and `tiersDowngradePolicy` properties. | [optional] [default to false] **canUpdateSubledgers** | **Boolean** | `True` if the `allowSubledger` property can be updated in the loyalty program. | [optional] [default to false] ## Enum: ProgramJoinPolicyEnum * `not_join` (value: `"not_join"`) * `points_activated` (value: `"points_activated"`) * `points_earned` (value: `"points_earned"`) ## Enum: TiersExpirationPolicyEnum * `tier_start_date` (value: `"tier_start_date"`) * `program_join_date` (value: `"program_join_date"`) * `customer_attribute` (value: `"customer_attribute"`) * `absolute_expiration` (value: `"absolute_expiration"`) ## Enum: TiersDowngradePolicyEnum * `one_down` (value: `"one_down"`) * `balance_based` (value: `"balance_based"`) ## Enum: ReturnPolicyEnum * `only_pending` (value: `"only_pending"`) * `within_balance` (value: `"within_balance"`) * `unlimited` (value: `"unlimited"`)