Database Schema and Data Field Change Announcements
Upcoming Changes - 30 August 2026
| What is changing? | Change Details | Purpose | Effective Date | Operational Impact | Customer Action(s) |
|---|---|---|---|---|---|
| Data Pipeline: Table name - see the list below |
Column modified - the data type for several columns is being updated from 'int' to 'bigint' | Planned database maintenance | 30 August 2026 | Modified column datatypes may impact downstream processes, such as data pipe ETL scripts, reporting tools, and applications interfacing with this data | Modify your ETL process to accommodate the below schema changes |
Expand for the full details about the August 30, 2026, change
| Table Name | Column Name | Current Data Type | New Data Type |
|---|---|---|---|
| segment_definitions | id | int | bigint |
| versions | id | int | bigint |
2026 Change Log
| What is changing? | Change Details | Purpose | Effective Date | Operational Impact | Customer Action(s) |
|---|---|---|---|---|---|
| Data Pipeline: Table name - see the list below |
Column modified - the data type for several columns is being updated from 'int' to 'bigint' or 'date' to 'timestamp.' See the complete list below for details. | Planned database maintenance | 07 August 2026 | Modified column datatypes may impact downstream processes, such as data pipe ETL scripts, reporting tools, and applications interfacing with this data | Modify your ETL process to accommodate the below schema changes |
Expand for the full details about the August 07, 2026, change
| Table Name | Column Name | Current Data Type | New Data Type |
|---|---|---|---|
| checkin_allocations | redemption_id | int | bigint |
| checkins | gifted_by_id | int | bigint |
| checkins | redemption_id | int | bigint |
| feedbacks | redemption_id | int | bigint |
| fraud_suspects | event_id | int | bigint |
| location_visits | redemption_id | int | bigint |
| redemption_logs | id | int | bigint |
| redemption_logs | redemption_code_id | int | bigint |
| redemptions | id | int | bigint |
| redemptions | redemption_code_id | int | bigint |
| referrals | referral_source_id | int | bigint |
| reward_archives | redemption_id | int | bigint |
| reward_credits | rewarded_for_id | int | bigint |
| reward_debits | redemption_id | int | bigint |
| rewards | redemption_id | int | bigint |
| redemption_codes | id | int | bigint |
| checkin_credits | receipt_amount | float | double |
| checkin_credits | redemption_id | int | bigint |
| coupons | id | int | bigint |
| redemptions | expired_at | date | timestamp |
| reward_archives | gifted_for_id | int | bigint |
| rewards | gifted_for_id | int | bigint |
| session_visits | redemption_id | int | bigint |
| user_coupon_redemptions | coupon_id | int | bigint |
| user_notifications | id | int | bigint |
| What is changing? | Change Details | Purpose | Effective Date | Operational Impact | Customer Action(s) |
|---|---|---|---|---|---|
| Data Pipeline: Table name - see the list below |
Column modified - the data type for several columns is being updated from 'int' to 'bigint.'' See the complete list below for details. | Planned database maintenance | 31 March 2026 | Modified column datatypes may impact downstream processes, such as data pipe ETL scripts, reporting tools, and applications interfacing with this data | Modify your ETL process to accommodate the below schema changes |
Expand for the full details about the March 31, 2026, change
| Table Name | Column Name | Current Data Type | New Data Type |
|---|---|---|---|
| checkin_credits | redemption_id | int | bigint |
| feedbacks | redemption_id | int | bigint |
| fuel_debits | redemption_id | int | bigint |
| location_visits | redemption_id | int | bigint |
| session_visits | redemption_id | int | bigint |
| reward_credits | rewarded_by_id | int | bigint |
| reward_credits | rewarded_for_id | int | bigint |
| What is changing? | Change Details | Purpose | Effective Date | Operational Impact | Customer Action(s) |
|---|---|---|---|---|---|
| Data Pipeline: Table name - see the list below |
Column modified - the data type for several columns is being updated from 'int' to 'bigint.'' See the complete list below for details. | Planned database maintenance | 09 February 2026 | Modified column datatypes may impact downstream processes, such as data pipe ETL scripts, reporting tools, and applications interfacing with this data | Modify your ETL process to accommodate the below schema changes |
Expand for the full details about the February 09, 2026, change
| Table Name | Column Name | Current Data Type | New Data Type |
|---|---|---|---|
| redemption_codes | id | int | bigint |
| redemption_logs | redemption_code_id | int | bigint |
| redemptions | id | int | bigint |
| redemptions | redemption_code_id | int | bigint |
| reward_archives | redemption_id | int | bigint |
| reward_debits | redemption_id | int | bigint |
| rewards | redemption_id | int | bigint |
| checkins | redemption_id | int | bigint |
| checkin_allocations | redemption_id | int | bigint |
| redemption_voids | redemption_id | int | bigint |
| redemption_voids | redemption_code_id | int | bigint |
2025 Change Log
| What is changing? | Change Details | Purpose | Effective Date | Operational Impact | Customer Action(s) |
|---|---|---|---|---|---|
| Data Pipeline Table name - redemptions |
Column added - 'redemption_state' (type = integer) | New column 'redemption_state' added to the 'redemption' table to track the life-cycle status of a redemption. | 16 December 2025 | The new column ‘redemption' will store the current status of redemption. | Modify your ETL process to include the new column -as necessary |
| Data Pipeline Table name - qualification_criteria |
Column added - 'preferences' (type = text) | New column 'preferences' added to the 'qualification_criteria' table to store additional customized settings associated with the qualification criteria. | 16 December 2025 | The new column ‘preferences' will store additional data or settings associated with the qualification criteria. | Modify your ETL process to include the new column -as necessary |
| New table - state_subscription_taxes | Table added - 'state_subscription_taxes' Columns:
|
New table added for brands with the Punchh Subscription module to add taxation data to their subscription plans | 04 November 2025 | The new table 'state_subscription_taxes' will store the state-level taxes configured by a brand | Modify your ETL process to include the new table - as necessary |
| Data Pipeline Table name - locations |
Column added - 'tax_rate' (type = decimal) | New column 'tax_rate' added to the 'locations' table for brands with the Punchh Subscription module to add taxation data to their subscription plans | 04 November 2025 | The new column ‘tax_rate' will store location-wise taxes configured by a brand | Modify your ETL process to include the new column - as necessary |
| Data Pipeline Table name - user_subscriptions |
Columns added - 'location_id' (type = integer), 'discount_value' (type = decimal), 'tax_value' (type = decimal) | New columns 'location_id', 'discount_value', 'tax_value' added to the 'user_subscriptions' table for brands with the Punchh Subscription module to add taxation data to their subscription plans | 04 November 2025 | The three new columns in this table will store the taxation information applied when user purchased the plan | Modify your ETL process to include the new column - as necessary |
| Table name - bulk_guest_activities | Column added -'franchisee_id' (type =int) | New column ‘franchise_id' added to the 'bulk_guest_activities’ table to store information regarding the franchisee admin who performed any bulk uploads in the platform. | 30 September 2025 | The new column ‘franchise_id' will store the franchisee ID of the admin performing the bulk guest uploads. | Modify your ETL process to include the new column - ‘franchise_id’ as necessary |
| Data Pipeline: Table name - accounts |
Column added -'unified_debits' (type =int) | New column ‘unified_debits' added to the 'accounts’ table in support of the new 'One Loyalty - Program Restructure’ approach for balance unification of currency business. | 5 August 2025 | The new column ‘unified_debits' will store the ‘points spent’ value for each user. This value will be used to calculate the current points balance for the ‘currency' type programs only. | Modify your ETL process to include the new column - ‘unified_debits’ as necessary |
| Data Pipeline: Table name - accounts |
Column added -'additional_details' (type = JSON) | New column 'additional_details' added to the 'accounts' table to store information regarding how many points have been consumed for rewarding in the current year | 27 May 2025 | The new column 'additional_details' will be used to determine a user’s current operative membership level, especially in scenarios where multiple rewards are granted within a single earning | Modify your ETL process to include the new column - ‘additional_details', as necessary |
| Data Export: Redemption Date Export |
|
Improved clarity and alignment with receipt terminology | 27 May 2025 | The removal of a column will shift the remaining columns to the left in the CSV export file. | Adjust your data ingestion processes accordingly. |
| Data Pipeline: Table name - see the list below |
Column modified - the data type for several columns is being updated from 'int' to 'bigint.' See the complete list below for details. | Planned database maintenance | 30 April 2025 | Modified column datatypes may impact downstream processes, such as data pipe ETL scripts, reporting tools, and applications interfacing with this data | Modify your ETL process to accommodate below schema changes |
Expand for the full details about the April 30, 2025 change
| Table Name | Column Name | Current Data Type | New Data Type |
|---|---|---|---|
| badges | source_id | int | bigint |
| campaign_devices | id | int | bigint |
| challenge_milestones | event_id | int | bigint |
| checkin_allocations | checkin_id | int | bigint |
| checkin_credits | checkin_id | int | bigint |
| checkins | gifted_for_id | int | bigint |
| checkins | id | int | bigint |
| earnings | checkin_id | int | bigint |
| earnings | id | int | bigint |
| earnings | receipt_detail_id | int | bigint |
| feedback_replies | gifted_item_id | int | bigint |
| feedbacks | checkin_id | int | bigint |
| location_visits | checkin_id | int | bigint |
| location_visits | id | int | bigint |
| menu_item_consumers | checkin_id | int | bigint |
| menu_item_consumers | id | int | bigint |
| menu_item_consumers | receipt_detail_id | int | bigint |
| post_checkin_user_campaigns | event_id | int | bigint |
| post_checkin_user_campaigns | id | int | bigint |
| receipt_details | checkin_id | int | bigint |
| receipt_details | id | int | bigint |
| receipt_images | checkin_id | int | bigint |
| receipt_taggings | checkin_id | int | bigint |
| receipt_taggings | receipt_detail_id | int | bigint |
| reward_archives | checkin_id | int | bigint |
| reward_debits | debited_for_id | int | bigint |
| rewards | checkin_id | int | bigint |
| scratch_plays | checkin_id | int | bigint |
| session_visits | checkin_id | int | bigint |
| tips | checkin_id | int | bigint |
| user_campaigns | event_id | int | bigint |
| user_surveys | event_id | int | bigint |
| verifications | checkin_id | int | bigint |
| What is changing? | Change Details | Purpose | Effective Date | Operational Impact | Customer Action(s) |
|---|---|---|---|---|---|
| Webhooks: Redeemable Event |
Two attribute fields added in redeemable serialiser
|
|
22 April 2025 | None, no updates are needed as the fields are optional and do not affect existing adapters | None |
| Data Pipeline: Table name - mass_giftings |
Column added -'split_percentage' (type =decimal(5,2)) | New column ‘split_percentage'' added to the 'mass_giftings’ table in support of an upcoming split testing campaign feature release | 22 April 2025 | The new column ‘split_percentage' will be used to configure and support split testing campaigns. This value will be ‘null’ for campaigns not utilizing the split testing feature | Modify your ETL process to include the new column - ‘split_percentage’ as necessary |
| Data Pipeline: Table name - user_campaigns |
Column added- campaign_type_code(type= char(1)) | New column ‘campaign_type_code’ added to the ‘user_campaigns’ table to capture the campaign type. | 18 March 2025 | The new column ‘campaign_type_code', will store values ‘Z’, ‘C’ and 'F’ to indicate campaign types - Mass Gifting Campaigns, Campaigns, and Free Punchh Campaigns, respectively |
Modify your ETL process to include the new column - ‘campaign_type_code', as necessary |
| Data Pipeline: Table name - tags |
Column added -archived_at (type =datetime) | New column ‘archived_at’ added to ‘tags’ table to store Location Group status. | 11 February 2025 | The new column 'archived_at' will be used to manage and control the display of archived Location Groups on the platform UI. | Modify your ETL process to include the new column - ‘archived_at’ as necessary |
2024 and Earlier Change Log
Expand
| What is changing? | Change Details | Purpose | Effective Date | Operational Impact | Customer Action(s) |
|---|---|---|---|---|---|
| Data Pipeline: Table name - mass_giftings |
Columns added- users_with_variable_points_file_name(type = string) users_with_variable_points_content_type(type=string) users_with_variable_points_file_size(type= int) |
3 new columns added users_with_variable_points_file_name, users_with_variable_points_content_type, and users_with_variable_points_file_size to mass_giftings table to support new features while uploading CSV. |
12 November 2024 | The new columns 'users_with_variable_points_file_name', 'users_with_variable_points_content_type', and 'users_with_variable_points_file_size' will be used to store data to support and streamline the data loading process using CVS uploads, for mass gifting campaigns. |
Modify your ETL process to include the new columns - ‘users_with_variable_points_file_name', 'users_with_variable_points_content_type' and 'users_with_variable_points_file_size' as necessary |
| Data Pipeline: Table name - segment_definitions |
Columns added - updated_by (type = string), created_by (type = string), creator_id (type =int), updator_id (type = int), is_deleted (type =boolean) | 5 new columns added updated_by , created_by , creator_id , updator_id ,and is_deleted to segment_definitions table for new segment homepage. | 12 November 2024 | The new columns 'updated_by' , 'created_by' , 'creator_id' ,' updator_id' ,and 'is_deleted' on segment_definitions table will be used to track segment definitions changes . These columns will only be visible on the new segment homepage. | Modify your ETL process to include the new columns - updated_by , created_by , creator_id , updator_id ,and is_deleted as necessary. |
| Data Pipeline: Table - sms_events |
Column added - ‘body’ (type = text) | A new column ‘body’ has been added to store the body of the SMS. | 23 July 2024 | The new column ‘body’ will be used to store the body of the SMS message sent. | Modify your ETL process to include the new column - ‘body’ as necessary. |
| Data Pipeline: Tables - line_item_selectors, qualification_criteria |
Column added - ‘external_id’ (type = string) | A new column ‘external_id’ has been added to tables - ‘line_item_selectors’ and ‘qualification_criteria’ to store unique user IDs as external identifiers for external systems. | 21 July 2024 | The new column ‘external_id’ will be used to store UUID as external identifiers for external systems. Existing records will be updated to populate ‘external_id’ column with random uuid value. | Modify your ETL process to include the new column ‘external_id’ as necessary. |
| Data Pipeline: Tables - campaigns, mass_giftings, free_punchh_campaigns |
Column dropped - ‘archived’ (type = boolean) | Recently added column ‘archived’ has been dropped from tables - ‘campaigns’ , ‘mass_giftings’, and ‘free_punchh_campaigns’ due to a change in design. Campaign archival status on the new campaign homepage will be tracked using new parameters "archived_at" and "unarchived_at" in the preferences column instead. | 28 May 2024 | The column ‘archived’ will be removed from tables - ‘campaigns’ , ‘mass_giftings’, ‘free_punchh_campaigns’. New parameters "archived_at" and "unarchived_at" will be included in the preferences column to track campaign archival status. This will impact those using the new campaign management tool only. | Modify your ETL to remove column ‘archived’ and process additional parameters within preferences settings as necessary. |
| Data Pipeline: Table - workflow_assessments |
Columns added - ‘pending_approval_at’ (type = datetime) and ‘disapproved_at’ (type = datetime) | 2 new columns ‘pending_approval_at’ and 'disapproved_at' have been added to ‘workflow_assessments’ table to track the timeline states of a campaign. | 28 May 2024 | New columns ‘pending_approval_at’ and 'disapproved_at' on ‘workflow_assessments’ table will store campaign archival timelines | Modify your ETL process to include the new columns - ‘pending_approval_at’ and ‘disapproved_at’ as necessary. |
| Data Pipeline: Table - locations |
Column added - ‘ncr_bsl_store_id’ | A new column ‘ncr_bsl_store_id’ has been added to ‘locations’ table to support the new version of NCR BSR - Aloha integration. | 28 May 2024 | The new column ‘ncr_bsl_store_id’ will be used to store 'enterprise unit id’ when NCR BSL integration is enabled | Modify your ETL process to include the new column - ‘ncr_bsl_store_id’ as necessary |
| Data Pipeline: Tables - campaigns, mass_giftings, free_punchh_campaigns |
New column added - ‘archived’ (type = boolean) | Adding a new column ‘archived’ on 3 tables - ‘campaigns’ , ‘mass_giftings’, ‘free_punchh_campaigns’ in support of the new campaigns archiving feature on the new campaigns homepage. | 2 April 2024 | The new column ‘archived’ on ‘campaigns’ , ‘mass_giftings’, ‘free_punchh_campaigns’ tables will store true/false values indicating whether or not a campaign is archived. This will be available for those using the new campaign management tool only. | Modify your ETL process to include the new column ‘archived’ as necessary. |
| Data Pipeline: Table - user_notes |
New column added - ‘reactivation_allowed’ (type = boolean) | Adding a new column 'reactivation_allowed' on user_notes table to support a new feature - reactivation request from guests. | 2 April 2024 | The new column ‘reactivation_allowed’ on ‘user_notes’ table will store a true/false value that indicates if a guest’s (user) request for reactivation can be honored or not based on admin’s decision to allow reactivation at the time of deactivation. This column will be retroactively updated with historical values. | Modify your ETL process to include the new column ‘reactivation_allowed’ as necessary. |
| Data Pipeline: Table - free_punchh_campaigns |
New column added - ‘deactivated_at’ (type = timestamp) | The column ‘deacativated_at’ has been added to ‘free_punchh_campaigns’ table to track the campaign deactivation date for a post-checkin campaign. | 2 April 2024 | The new column ‘deactivated_at’ on ‘free_punchh_campaigns’ table will store the date timestamp of campaign deactivation in case of a post-checkin campaign. | Modify your ETL process to include the new column ‘deactivated_at’ as necessary. |
| Data Pipeline: Table - accounts |
Column repurposed - ‘initial_visits’ (type = int) | The column ‘initial_visits’ on ‘accounts’ table which has not been used in the last couple years, been repurposed to reflect the threshold at which the last banking happened. | 5 March 2024 | The column ‘initial_visits’ on ‘accounts’ table, may or may not have had any value stored historically. Going forward, this column will store the last redemption mark for the guest. This value will be populated for businesses that are ‘Points to Rewards’ program type. | Modify your ETL process to include the new column ‘initial_visits’ to fetch the last redemption mark for a guest. |
This has been removed. |
|||||
| Data Pipeline: Table - 'redeemable' |
Added new columns - ‘second_expiry_warning’ (type = int) and ‘final_expiry_warning’ (type = int) | New columns ‘second_expiry_warning’ and ‘final_expiry_warning’ have been added to the 'redeemable’ table for internal tracking purposes. | Yet to be deployed |
The new columns ‘second_expiry_warning’ and ‘final_expiry_warning’ are for Punchh internal use and are NOT intended for business usage. | No action is necessary. Ignore the new addition. |
| Data Pipeline: All tables delivered by the pipeline |
Added new column - ‘op’ | An operation flag has been introduced in data pipeline feeds to denote the change or type of operation at record level. | 4 April 2023 | The operation flag ('op' column) will be added as a new column on all of the tables delivered via the data pipeline. 'op' indicates the change or the type of operation at record level. The possible values in this column are: 'I' (Insert), 'U' (Update), or 'D' (Delete). | Modify your ETL process to include the new column as necessary. |
| Data Pipeline: Tables - 'games', 'gaming-levels' |
Added new column - 'refresh_game_limit_at_midnight' | A new column 'refresh_game_limit_at_midnight' has been added to define whether or not a game limit is refreshable at midnight. | 4 April 2023 | Pipeline output for ‘games’ and ‘gaming_levels’ will include a new boolean attribute 'refresh_game_limit_at_midnight'. When set to true, this attribute will refresh the game limit at midnight, and the user will be able to resume playing the game again at 00.01 hours. | Modify your ETL process to include the new column ‘refresh_game_limit_at_midnight' on the ‘games’ and 'gaming-levels’ tables. |
| Data Pipeline: Table - 'feedback_replies' |
Added new column - ‘chatgpt_feedback_response’ | A new column ‘chatgpt_feedback_response’ has been added to the ‘feedback_replies’ table as a placeholder for ChatGPT responses following a potential integration. | 21 March 2023 | Pipeline output for the ‘feedback_replies' table will include a new attribute ‘chatgpt_feedback_response’ with NO data in it. In the possible event of integration, this attribute will be used to save results inferred from OpenAI ChatGPT API, and the existing reply column will be used to store the final message that is sent to the customer after any necessary modifications have been made. | No immediate action is necessary. |
| Data Pipeline: Table - 'subscription_plans' |
Added new column - ‘signup_start_date’ | A new column ‘signup_start_date’ has been added to the ‘subscription_plans’ table to store the cut-off date when subscription plans become available to the user for purchase. | 21 March 2023 | Pipeline output for the ‘subscription_plans’ table will include a new attribute ‘signup_start_date’ with the subscription plan availability date in it. | Modify your ETL process to include the new column ‘signup_start_date’ on the ‘subscription_plans’ table. |
| Data Pipeline: Table - 'user_subscriptions' |
Added new column - ‘cancellation_reason_id’ | A new column ‘cancellation_reason_id’ has been added to the ‘user_subscriptions’ table to indicate business subscription cancellation reason. | 9 March 2023 | Pipeline output for the ‘user_subscriptions’ table will include a new attribute ‘cancellation_reason_id’ and its associated value. ‘cancellation_reason_id’ represents a unique code on ‘subscription_cancellation_reasons’ table that stores canned cancellation reasons. | Modify your ETL process to include the new column ‘cancellation_reason_id’ on the ‘user_subscriptions’ table. |
| Data Pipeline: Table - 'redeemable' |
Added new column - ‘preferences’ | Introducing a new column ‘preferences’ to store two POS receipt messages at the redeemable level, 255 max characters in length | 12 January 2023 | Pipeline output for the redeemable table will contain one additional column - 'preferences' and associated value. | Modify your ETL process to include the new column ‘preferences’ on the ‘redeemable’ table. |
| Data Pipeline: Table - 'user_subscriptions' |
Added new column - 'vault_id' | Introducing recurring payment using vault for subscription. Payment details stored in ’vault id’ will be used to determine future payments at the time of subscriptions renewal. | 8 November 2022 | Pipeline output will contain one additional parameter - 'vault_id' and associated value. | Modify your ETL process to include the new column ‘vault_id’ on the ‘user_’subscriptions’ table. |
| Data Pipeline: Table - 'user_subscriptions' |
Added new column - 'renewed_date' of type date time and a new index considering 'end_time', 'business_id', and 'subscription_plan_id'. | Introducing advance renewals for user subscriptions. ‘renewed_date’ allows filtering all renewed subscriptions. Additionally, if the renewal logic is executed again for whatever reason, a value in the 'renewed_date' column rejects the renewal action/request. | 29 November 2022 | Pipeline output will contain one additional parameter - 'renewed_date'. | Modify your ETL process to include the new column ‘renewed_date’ on the ‘user_’subscriptions’ table. |