Skip to main content
October 16th, 2025
v20251007

Added

Audit log

This version brings new filters and functionalities to Logs. Thanks to these changes, you can quickly find relevant logs for analytics or troubleshooting.

New filters

Users with the Read events and technical logs permission can now find data quicker in the Audit logs thanks to the new filters:
  • Endpoint – Lists all logs for a specific endpoint, e.g. POST_v1_vouchers_import_csv.
  • User – Lists all logs for actions performed by a given organization user. Requires Access to Project’s Users list permission.
  • Server-side API key – Lists all logs performed with a given server-side API key. The filter uses the key name, so the key itself is protected. Requires Access Project Settings permission.
  • Client-side API key – Lists all logs performed with a given client-side API key. The filter uses the key name, so the key itself is protected. Requires Access Project Settings permission.

Export API logs – API endpoint

You can now export API logs in a CSV file using the POST /v1/exports (Create exports) endpoint.
Pass "exported_object": "api_log" in the request body.
You can use the following parameters:
  • fields: "id", "created_at", "status", "request_id", "channel", "method", "endpoint", "url", "user_email", "app_id", "client_app_id", "request_duration", "request_body", "response_body".
  • filters: created_at (with $before and $after conditions), status (with $is and $is_not conditions), channel (with $in, $not_in conditions), app_id and client_app_id (both with $in, $not_in, $is, and $is_not conditions).
  • order: created_at (ascending order), -created_at (descending order).

Improved

Audit logs

  • Logs for imports now include a downloadable file that was used in the import.
  • Audit log now shows the async action ID, if applicable.
  • Async action details now return the corresponding audit log ID.
  • The Channel filter now only shows channels that were used and lists used SDKs as a channel source.

Fixed

  • Campaign builder: Fixed an issue which prevented changing the redemption limit when editing a campaign.
  • Async actions: GET v1/async-actions/{id} endpoint now returns the user and log_id.
  • Product CSV import: Fixed an issue which caused incorrect update of metadata for products in collections.
October 14th, 2025
v20251003

Added

Bundle Multiplication

Bundle Multiplication is now available for all users. It determines how many times a bundle can be applied within a single order, based on the number of complete sets of bundled items a customer adds to their cart.With bundle multiplication, the system automatically checks how many full bundles exist in the order and applies the discount that many times.

What gets multiplied

  • The discount value (for example, a $10 bundle discount becomes $20 if two complete bundles are found).
  • Free items or discounted quantities linked to the bundle.

Example scenarios

  • β€œBuy 2 T-shirts, get 1 hat free.” β†’ The more T-shirts customers buy, the more hats they receive.
  • β€œBuy a laptop and a mouse together for 10% off.” β†’ Discount applies only to eligible products, up to the configured limit.
  • β€œGet 20% off every second coffee mug (max 3 bundles per order).” β†’ Maximum eligible bundles limit the number of discounted sets.
  • β€œBuy 3 skincare products and pay only for 2.” β†’ Item discount limit ensures only one item in each bundle is free.
  • β€œBundle any 4 books and get $10 off the whole order (up to $50 total).” β†’ Discount multiplies with each bundle up to the set cap.

Bundle Multiplication

The Discount Effect can now be multiplied by the number of bundles in the cart.
Each bundle increases either the discount value or the discounted product limit, depending on the configured Discount Effect, up to the maximum eligible bundles limit.

Copy Bundle Button

Added an option to copy bundled items directly to discounted products with a single click.
This feature works for all discount types except selected free product discounts.

Discount Tab

Updated the Discount tab with clearer sections for Bundled Items, Discounted Products, and Excluded Products in a simplified, read-only layout.
A collection badge now indicates when a resource belongs to a product collection.

Bundle Discount Setup

Redesigned the setup flow for bundle discounts, making the configuration process more intuitive and streamlined.

Fixed

Discount wizard validation

Fixed an issue where validation in the Discount Wizard did not persist across steps, which could allow saving incomplete or empty discounts.

Removed

Timeframe

Removed the Timeframe section above Campaign and Voucher details, as this information is already displayed in its own dedicated section.
October 7th, 2025
v20250910

Added

Areas and stores in the Management API

Added new endpoints for managing areas and area stores with the Management API. The endpoints allow you to:
  • List areas in your project: GET /management/v1/projects/{projectId}/areas
  • Get details about a specific area: GET /management/v1/projects/{projectId}/areas/{id}
  • Create a new area: POST /management/v1/projects/{projectId}/areas
  • Update an existing area: PUT /management/v1/projects/{projectId}/areas/{id}
  • Delete an area: DELETE /management/v1/projects/{projectId}/areas/{id}
  • List all area stores: GET /management/v1/projects/{projectId}/areas/{areaId}/stores
  • Get a specific area store: GET /management/v1/projects/{projectId}/areas/{areaId}/stores/{storeId}
  • Create a news area store: POST /management/v1/projects/{projectId}/areas/{areaId}/stores
  • Update an existing area store: PUT /management/v1/projects/{projectId}/areas/{areaId}/stores/{storeId}
  • Delete an existing area store: DELETE /management/v1/projects/{projectId}/areas/{areaId}/stores/{storeId}

Improved

Areas and stores

  • Improved navigation when selecting areas, stores, and all stores.
  • Improved permission checking for Areas & Stores features, ensuring proper access control.
  • Added areas and stores filters to the campaign list.

Fixed

Areas and stores

  • Fixed an issue which failed to copy areas and stores assignments when cloning a campaign.
  • Fixed an issue which failed store assignments to display in area details view.
  • Fixed an issue which allowed the users without required permissions to see areas and stores tabs.
  • Fixed an issue which prevented users from creating promotion campaigns.
  • Fixed an issue which allowed restricted users to add and publish vouchers for campaigns that the restricted users could only view.
October 3rd, 2025
v20250930

Improved

Time picker

The time picker has been updated to use a dropdown menu instead of a clock. The dropdown provides options every 30 minutes, and any valid time can also be entered manually. Some time inputs in metadata definitions are not yet affected by this change and still use the legacy picker.

Fixed

Onboarding

Fixed the issue where the Demoshop onboarding flow stopped at step 5, so it now continues smoothly through all 8 steps.

Metadata

  • Fixed the issue where negative numbers could not be used in customer metadata and filters; negative values are now supported.
  • Fixed the issue where metadata definitions were sorted by name length instead of alphabetically.
September 29th, 2025
v20250924

Added

Payload designer

We have introduced the Payload Designer for webhook integrations. It lets you choose between sending the full webhook payload or designing your own JSON structure with static values, dynamic Voucherify keys, and nested objects. It solves the main limitation of the previous approach by giving you greater control and clarity when shaping webhook data. The mapping will be visible in the data object in the webhook.

Improved

Support widget update

We’ve refreshed the look of the support widget in the Dashboard and introduced a new support link. While the appearance is slightly different, you can continue to reach out to our support team in the same way as before.
September 23rd, 2025
v20250911

Added

Earning rules

Added a message that appears when customers reach the 100-rule limit. To add a new rule, you must first delete the existing one.

Verification

Added org_id field to the general tab in the My profile section. Users can use it for verification when requesting sensitive data.

Improved

Validation rules

Updated the discount campaigns and referral campaigns by renaming the β€œValidation Rules” tab to β€œDiscount” and aligning its UI with the promotion tier. The tab now displays bundles, included and excluded products, and all application rules.

Delete resources

Updated the resource delete dialog with a clearer, simplified design. Users can now choose between moving a resource to the bin or deleting it permanently using a streamlined layout.

Fixed

Vouchers

Fixed the issue where the loader kept spinning when manually adding a voucher to a campaign. The interface now shows a clear message and remains usable without errors.
September 17th, 2025
v20250905

Added

Loyalty

Estimate how many loyalty points your customers will receive with a new endpoint: POST /v1/loyalties/{campaignId}/qualifications.See the sample request and response:
{  
    "customer": {  
        "source_id": "customerSourceID",  
        "metadata": {  
            "reason": "loyaltyQualifications"  
        }  
    },  
    "order": {  
        "id": "ord_113628fa0685537f99",  
        "metadata": {  
            "source": "qualifyPoints"  
        }  
    }
}

Point estimation

This endpoint returns only an estimation, not a precise point value.Also, this estimation works only for the Order paid earning rules. If a campaign includes tiers, mappings, and multiple earning rules, the calculation becomes more complex. During final calculation, a customer may change tiers and earn more or fewer points depending on other factors.

Improved

Voucher import

Added support for start_date and expiration_date when importing vouchers with CSV. You can add the respective columns to a CSV file to import vouchers with these parameters.

Management API

Added limit and page query parameters to GET management/v1/projects//users endpoint. You can set a limit of a maximum of 100 results and paginate them.

Fixed

Product and SKU export

Fixed a bug which prevented a notification from being sent and displayed in the app when a product or SKU export was finished.
September 11th, 2025
v20250828

Added

Export

Export products & SKUs directly from the dashboard! Grab all items or just your filtered view in seconds β€” no API needed. Files are ready in Exports in the Audit log for instant download. This makes sharing data or prepping lists for campaigns faster than ever, right from the dashboard.

Earning rules

Added an option to search earning rules by name directly in the campaign dashboard. The search works across all earning rules, is not case sensitive, and shows only rules that match your text.

Improved

Validation rules

Renamed β€œRedemption by code holder” rule to β€œRedemption only by code holder” to more accurately describe its function.

JSON viewer

Improved how objects are shown in the dashboard. Empty objects and confusing property counts are no longer displayed, making the view clearer and easier to read.

Fixed

Export

Fixed an issue where users without permission to export publication or redemption data could still see export buttons on the corresponding lists.

Loyalty

Fixed an issue where users could not put 0 to β€˜Months after earning activity rule’.
September 3rd, 2025
v20250804

Hotfix

Webhooks

Fixed a bug which caused VOUCHER.GIFT.TRANSACTION.CREATED and VOUCHER.LOYALTY_CARD.PENDING_POINTS.UPDATED not to appear in Project settings and in the filters in Webhook sendouts in the Audit log.
September 2nd, 2025
v20250804

Added

Stacking rules

We’ve added a new limit for Stackable Discounts API: Limits per category. You can now set a limit (up to 10) of stacked incentives for individual categories.For example, if you have a three categories, Bronze, Silver, Gold, you can set up a limit of 2 for Silver, and 1 for Gold, while Bronze is limited by the Maximum count of valid promotions per category to apply in a request. This means that a maximum of 2 incentives from the Silver category and 1 from the Gold category can be validated or redeemed in one stackable API request.

Improved

Segments

Changed the name of Dynamic segments to Active.

Fixed

Audit logs

Fixed an issue which caused incorrect filtering for the API value with the β€œnot in” condition for Channel.

Loyalty programs

Fixed an issue that caused the loyalty balance to reset after changing the timeframe in the loyalty card.
September 1st, 2025
v20250820

Improved

Dynamic discount

Added support for order item quantity, price, and product metadata in the β€œAmount Discount: Apply the full discount to each item unit”.

Fixed

Loyalty programs

Fixed an issue that triggered updates to all earning rules and loyalty tiers (even when no campaign changes were made) while updating a campaign.

Bundle

Fixed an issue where creating a Bundle via API without specifying β€œtype”: β€œproduct_or_sku” caused the product not to be shown in the UI.

Discount value

Fixed an issue that caused [object Object] to be displayed as a discount value in orders.

Log in page

Fixed an issue that caused users to log in automatically after selecting the Read more button in the carousel.
August 21st, 2025
v20250813

Added

New expiration type for campaigns and earning rules

We’ve added support for FIXED_DAY_OF_YEAR expiration type in Earning Rules. This new option gives you more control over loyalty point expiration, because you can set an exact month and day. This is a perfect option for seasonal promotions, loyalty program resets, or end-of-year expirations. For example, you can set an expiration date of 31 December for all loyalty points earned during the Black Friday sales.Also, to improve clarity, expiration descriptions now display with short month names and a clearer date format.

New drawer view for distribution details

Distribution details now open in a drawer view across the app, including when accessed through a direct URL address. The drawer includes complete distribution data, tabs, status controls, and a redesigned actions menu. Access is available to users with Read Distributions and Publications permissions.

Improved

Improved the analytic tab to look consistent with other drawers across the app.

Fixed

Audit log

The filter label for Webhook sendouts has been updated. The field previously shown as ID is now displayed as Sendout ID.

Publications

Fixed an issue where users could view the publication history tab without proper permission.

Stacking rules

Fixed an issue that caused stacking rules to be visible to users without the proper permission.
August 13th, 2025
v20250805

Improved

We rewrote the ResourceLink component to the new Angular version, ensuring resource displays and tooltips are now consistent across the app. We also made detail navigation work smoothlyβ€”opening in drawers or new tabs with our new drawer layouts.

Fixed

Approvals

  • Fixed an issue where voucher details were missing in the approval request preview when multiple vouchers were selected.
  • Fixed an issue which caused the campaign templates not to work correctly with approval requests.

Custom events

Fixed custom event schema filters so they now update correctly when the condition changes.

Distributions

Fixed an issue where changing the trigger for the distribution caused the campaign assignment to reset and allowed saving the distribution without a campaign assigned.

Drawers

Fixed an issue that caused products from static collections to open in the same window instead of a new tab.

Earning rules

Fixed an issue that caused a collection ID to be displayed instead of its name when multiple products or collections were selected.

Referral campaigns

Fixed a bug which caused the criteria in the Custom conversion event to change upon saving.Fixed an issue that caused the validation rule’s name in the resource link not to refresh automatically after editing.

User interface

Adjusted spacing in the campaign view between the tabs and the timeframe.

Loyalty programs

Fixed an issue that triggered updates to all loyalty cards (even when no campaign changes were made) while updating a campaign.
August 7th, 2025
v20250729

Added

Stacking rules

We have added a new setting to Stacking rules: Sorting rule for grouped redeemables. You can now define a general order in which redeemables are applied when stacked discounts (validations or redemptions) include discounts with categories assigned to Joint and Exclusives.This rule has two options:
  • Apply Joint categories last: This is a default setting and the current behavior of the Stacking rules. In this scenario, Exclusive categories are applied first and then the Joint categories.
  • Apply Sorting rule to combined Joint and Exclusive categories: This is a new setting. In this scenario, Stacking rules combine the discounts assigned to Joint and Exclusive categories into one group and apply the discounts according to the Sorting rule setting – request order or hierarchy.
August 5th, 2025
v20250730

Added

Refreshed UI for the Publications history tab inside the discount coupon campaign view

We’ve refreshed the UI for the Publication history tab inside the discount coupons campaign view to match the recent UI changes. The refreshed look provides a compact overview of key details matching our latest UI style for improved usability and a smoother experience.

Fixed

Validation rules

Fixed an issue that did not allow the use of negative values when creating validation rules based on number metadata fields.

UI

Fixed an issue where voucher codes incorrectly appeared as β€˜no code’ in the history tab following bulk publication in discount coupon campaigns.

Filters

Incentive filtering in the Validations has been split into two separate filters for better usability:
  • Number of stacked incentives – allows conditions such as β€˜has exactly’, β€˜has more than’, or β€˜has less than’ to filter based on the number of applied incentives.
  • Incentive name – uses the β€œincludes” condition to filter by specific incentive names.
July 30th, 2025
v20250725

Added

Refreshed UI for Voucher tabs inside the Campaign view

We’ve refreshed the UI for Vouchers, Referral codes, and Loyalty cards tabs inside the Campaign detail view to match the recent UI changes. The new tabs provide a compact overview of key details matching our latest UI style for improved usability and a smoother experience.

Refreshed Drawer Layout for Segments and Collections

We’ve updated the UI for drawers used in Customer Segments and Product Collections, delivering a cleaner and more consistent experience. This update also includes enhancements to breadcrumb navigation links, ensuring better usability and clarity.

Fixed

Approvals

  • Fixed an issue where the non-existent record with draft status briefly appeared before the page loaded the approvals list.
  • Fixed an issue where users with limited permissions could not delete vouchers with an approval request.

Import

Fixed an issue where the redeemed amount property appeared during the field mapping step when importing referral or discount vouchers. The redeemed amount property is not relevant for these voucher types.

UI

Fixed an issue where a segment and collection drawer could not open in a new tab from the segments and collections list view respectively.
July 29th, 2025
v20250704

Added

Discounts - new value limits for products

This feature can be enabled for you on demand. Contact Voucherify support to enable it.
You can now limit the number of discounted item units in discount coupons and promotions. With these new limits, you can build a scenario where each of your customers can get for example only 2 discounted product units in total in a campaign and the whole campaign covers only 200 discounted product units – units sold above this limit will not be discounted.The limits cover the following product discounts:
  • Amount discount: Apply the full discount to each item unit
  • Percent discount: Apply the discount to item subtotal
  • New price: Apply the discount to item subtotal
You can set the limits for products, SKUs, or collections. The new value limits are:
  • Maximum units per customer in campaign: limits the number of discounted item units that one customer can receive in a given campaign. For example, the limit is set to 2 for a T-shirt from the Adventure brand. One customer can only discount 2 units of this T-shirt.
  • Maximum units per campaign: limits the number of discounted item units that all customers can receive in a given campaign. For example, there are 10 Adventure T-shirts that can be discounted. The 10 discounted T-shirts are available to all customers and the customer who buys the 11th T-shirt won’t receive a discount.
  • Maximum units per campaign for a product in a collection: limits the number of discounted item units of a given product in a collection that all customers can receive in a given campaign. For example, the limit is set to 5 for the β€œAdventure-brand” collection consisting of T-shirts, beanies, and posters; this means that maximum 5 T-shirts, 5 beanies, and 5 posters will be discounted. The limit isn’t split between products; each product has its own limit of 5 item units.
  • Maximum units per customer for a product in a collection: limits the number of discounted item units of a given product in a collection that one customer can receive. For example, the limit is set to 5 for the β€œAdventure-brand” collection consisting of T-shirts, beanies, and posters; this means that maximum one customer can get a discount on a maximum of 5 T-shirts, 5 beanies, and 5 posters. The limit isn’t split between products; each product has its own limit of 5 item units.
  • Maximum units per promotion tier: limits the number of discounted item units that all customers can receive in a promotion tier. For example, there are 10 Adventure T-shirts that can be discounted. The 10 discounted T-shirts are available to all customers and the customer who buys the 11th T-shirt won’t receive a discount under a given promotion tier.
  • Maximum units per customer in promotion tier: limits the number of discounted item units that one customer can receive in a given promotion tier. For example, the limit is set to 2 for a T-shirt from the Adventure brand. One customer can only discount 2 units of this T-shirt under a given promotion tier.
  • Maximum units per promotion tier for a product in a collection: limits the number of discounted item units of a given product in a collection that all customers can receive in a given promotion tier. For example, the limit is set to 5 for the β€œAdventure-brand” collection consisting of T-shirts, beanies, and posters; this means that maximum 5 T-shirts, 5 beanies, and 5 posters will be discounted. The limit isn’t split between products; each product has its own limit of 5 item units under a given promotion tier.
  • Maximum units per customer in promotion tier for a product in a collection: limits the number of discounted item units of a given product in a collection that one customer can receive in a given promotion tier. For example, the limit is set to 5 for the β€œAdventure-brand” collection consisting of T-shirts, beanies, and posters; this means that maximum one customer can get a discount on a maximum of 5 T-shirts, 5 beanies, and 5 posters. The limit isn’t split between products; each product has its own limit of 5 item units.
All of the new limits can be combined with dynamic formulas. A dynamic formula determines the number of units that’s covered by the limit.The limits can be configured in the Dashboard and through the API – validation rules.
July 25th, 2025
v20250718

Added

New referral tier builder

We’ve introduced a new referral tier builder in the fifth step of the referral campaign creation process.

Improved

Rewards

Added a dropdown to the reward step in the loyalty campaign creation process.

Fixed

Discount

Fixed an issue with missing fields in the β€˜capped by’ option for:
  • Product discount > Percent discount: Apply the discount to item subtotal
  • Bundle with Product discount > Percent discount: Apply the discount to item subtotal

Metadata

Fixed an issue with the metadata schema update that caused the schema to be cached.

Earning rules

Fixed an issue with overlapping values in the Earning rules.
July 17th, 2025
v20250701

Added

Loyalty campaigns

You can now define multiple products and collections in the following rules in the Order has been paid earning rule, proportional calculation: Pre-discount amount spent on items, Amount spent on items, Quantity of items in the cart.Multiple products and collections are also supported in the API. A new parameter called applicable_to can be added to the following PROPORTIONAL earning rules: ORDER_ITEMS_QUANTITY, ORDER_ITEMS_AMOUNT, ORDER_ITEMS_SUBTOTAL_AMOUNT.The parameter replaces the object and id fields with an array of objects, which contain an id and an object with a type product, sku, or products_collection.You can also define a dynamic formula for earning loyalty points. The configuration works in a similar way to a dynamic discount formula.The dynamic formula is also supported in the API. There’s a new points_formula field that defines the dynamic calculation of loyalty points.
July 16th, 2025
v20250708

Added

Commercetools connector

We’ve introduced a Gift Card connector for Commercetools that allows using Voucherify’s gift cards during checkout. This connector features an enabler module to flexibly embed frontend components and a processor module that integrates Voucherify with checkout and payment flows.

Distributions

  • You can now select which fields Voucherify will send in the webhook distribution channel. All fields are pre-selected by default.
  • You can also map the fields to custom values, for example you can change fields customer.source_id to any keys required by your system, like user.id.
  • Added detailed webhook summaries to the distributions, showing the number of mapped fields, used headers, and the precise target URL.

Improved

Audit logs

Requests and responses are now displayed side by side in the drawer view.

Distributions

For webhook distributions, limited the set of the characters to lowercase letters, numbers, and dashes in the additional HTTP headers.

Filters

Clicking on the background while using filters now closes only one window at a time, instead of the entire filter panel.

Fixed

Loyalty

Fixed a bug which prevented the timeframe for individual loyalty cards from being adjusted through the UI.
July 8th, 2025
v20250702

Deprecated

  • The Magento extension plugin has been deprecated.
  • The Cockpit feature is going to be deprecated – all related links and sections have been removed from the Voucherify dashboard.

Improved

User interface

Drawers now remember the previously selected tab, filters, and page when navigating back.

Fixed

Bundles

  • Fixed an issue where bundle effect discounts were not retained for the draft campaigns.
  • Fixed an issue that caused input validation to prevent saving a discount in specific contexts.

User interface

Fixed an issue where drawers remained open after clicking a resource link.

Validation rules

Fixed the issue which prevented the correct display of unselectable items in nested lists, including geopoint metadata selection in the Validation Rules Builder.
⌘I