Skip to main content

Validation Rule

All of:
  1. Validation Rule Base
  2. Validation Rule

    AttributesDescription
    idstringUnique validation rule ID.Example:val_eR1c41hu0vUU
    created_atstringTimestamp representing the date and time when the validation rule was created. The value is shown in the ISO 8601 format.Example:2022-03-23T07:44:00.444Z
    updated_atstringTimestamp representing the date and time when the validation rule was updated. The value is shown in the ISO 8601 format.Example:2022-04-26T08:35:54.960Z
    assignments_countintegerThe number of instances the validation rule has been assigned to different types of redeemables.
    objectstringThe type of the object represented by JSON. This object stores information about the validation rule.

Validation Rule Base

AttributesDescription
namestringCustom, unique name for set of validation rules.Example:Business Validation Rule
rulesSee: Validation Rule Rules
bundle_rulesSee: Validation Rule Bundle Rules
errorobjectContains the error message returned from API when validation / redemption fails to meet requirements of defined rules.Attributes Descriptionmessagestring The error message returned from API when validation / redemption fails to meet requirements of defined rules.
applicable_toobjectAttributes Descriptionexcludedarray Defines which items are excluded from a discount. Array of Applicable To includedarray Defines which items are included in a discount. Array of Applicable To included_allboolean Indicates whether all items are included in the discount.
typestringType of validation rule.Available values: expression, basic, advanced, complex
context_typestringValidation rule context type.Context Type Definitionearning_rule.order.paid earning_rule.custom_event earning_rule.customer.segment.entered campaign.discount_coupons campaign.discount_coupons.discount.apply_to_order campaign.discount_coupons.discount.apply_to_items campaign.discount_coupons.discount.apply_to_items_proportionally campaign.discount_coupons.discount.apply_to_items_proportionally_by_quantity campaign.discount_coupons.discount.fixed.apply_to_items campaign.gift_vouchers campaign.gift_vouchers.gift.apply_to_order campaign.gift_vouchers.gift.apply_to_items campaign.referral_program campaign.referral_program.discount.apply_to_order campaign.referral_program.discount.apply_to_items campaign.referral_program.discount.apply_to_items_proportionally campaign.referral_program.discount.apply_to_items_proportionally_by_quantity campaign.referral_program.discount.fixed.apply_to_items campaign.promotion campaign.promotion.discount.apply_to_order campaign.promotion.discount.apply_to_items campaign.promotion.discount.apply_to_items_proportionally campaign.promotion.discount.apply_to_items_proportionally_by_quantity campaign.promotion.discount.fixed.apply_to_items campaign.loyalty_program voucher.discount_voucher voucher.discount_voucher.discount.apply_to_order voucher.discount_voucher.discount.apply_to_items voucher.discount_voucher.discount.apply_to_items_proportionally voucher.discount_voucher.discount.apply_to_items_proportionally_by_quantity voucher.discount_voucher.discount.fixed.apply_to_items voucher.gift_voucher voucher.gift_voucher.gift.apply_to_order voucher.gift_voucher.gift.apply_to_items voucher.loyalty_card distribution.custom_event reward_assignment.pay_with_points globalAvailable values: earning_rule.order.paid, earning_rule.custom_event, earning_rule.customer.segment.entered, earning_rule.customer.tier.joined, earning_rule.customer.tier.left, earning_rule.customer.tier.upgraded, earning_rule.customer.tier.downgraded, earning_rule.customer.tier.prolonged, campaign.discount_coupons, campaign.discount_coupons.discount.apply_to_order, campaign.discount_coupons.discount.apply_to_items, campaign.discount_coupons.discount.apply_to_items_proportionally, campaign.discount_coupons.discount.apply_to_items_proportionally_by_quantity, campaign.discount_coupons.discount.apply_to_items_by_quantity, campaign.discount_coupons.discount.fixed.apply_to_items, campaign.discount_coupons.discount.percent.apply_to_items, campaign.gift_vouchers, campaign.gift_vouchers.gift.apply_to_order, campaign.gift_vouchers.gift.apply_to_items, campaign.referral_program, campaign.referral_program.discount.apply_to_order, campaign.referral_program.discount.apply_to_items, campaign.referral_program.discount.apply_to_items_proportionally, campaign.referral_program.discount.apply_to_items_proportionally_by_quantity, campaign.referral_program.discount.apply_to_items_by_quantity, campaign.referral_program.discount.fixed.apply_to_items, campaign.referral_program.discount.percent.apply_to_items, campaign.promotion, campaign.promotion.discount.apply_to_order, campaign.promotion.discount.apply_to_items, campaign.promotion.discount.apply_to_items_proportionally, campaign.promotion.discount.apply_to_items_proportionally_by_quantity, campaign.promotion.discount.apply_to_items_by_quantity, campaign.promotion.discount.fixed.apply_to_items, campaign.promotion.discount.percent.apply_to_items, campaign.loyalty_program, voucher.discount_voucher, voucher.discount_voucher.discount.apply_to_order, voucher.discount_voucher.discount.apply_to_items, voucher.discount_voucher.discount.apply_to_items_proportionally, voucher.discount_voucher.discount.apply_to_items_proportionally_by_quantity, voucher.discount_voucher.discount.apply_to_items_by_quantity, voucher.discount_voucher.discount.fixed.apply_to_items, voucher.discount_voucher.discount.percent.apply_to_items, voucher.gift_voucher, voucher.gift_voucher.gift.apply_to_order, voucher.gift_voucher.gift.apply_to_items, voucher.loyalty_card, distribution.custom_event, distribution.order.paid, distribution.order.created, distribution.order.canceled, distribution.order.updated, reward_assignment.pay_with_points, global

Validation Rule Rules

AttributesDescription
logicstringDefines the logic between the rules.Example:(1 and 2) and (3)
[propertyName]objectContains the name of the validation rule.Attributes Descriptionnamestring Voucherify’s specific rule name. The list of available names is provided below. Type NameCustomer customer.segmentcustomer.metadata Order order.amountorder.initial_amountorder.items.countorder.items.price_anyorder.items.price_eachorder.items.metadata_anyorder.items.metadata_eachorder.metadata Campaign campaign.orders.amount_discountedcampaign.orders.amountcampaign.redemptions.countcampaign.redemptions.count.dailycampaign.redemptions.count.monthlycampaign.redemptions.customers_countcampaign.redemptions.customers_count.dailycampaign.redemptions.customers_count.monthly Redemption redemption.gift.amountredemption.count.dailyredemption.count.monthlyredemption.count.per_customerredemption.count.per_customer.dailyredemption.count.per_customer.monthlyredemption.api_keyredemption.count.per_api_keyredemption.user.loginredemption.count.per_userredemption.metadataredemption.reward.pay_with_points.points_used Product product.idproduct.priceproduct.quantityproduct.discount_applicableproduct.metadataproduct.metadata.aggregated_quantityproduct.metadata.aggregated_amountproduct.metadata.discount_applicableproduct.metadata.match_all SKU sku.idsku.pricesku.quantitysku.discount_applicable Publication publication.redeemable_by_linked_customer Custom Event custom_event.metadata Order items order.items.everyorder.items.anyorder.items.noneorder.items.cheapestorder.items.most_expensive *Requires the property field to be defined. propertystring, null Custom name for a metadata property associated with the condition to be satisfied. Required if the property name is any of the following:customer_metadatacustom_event_metadataorder_items_metadataorder_metadataproduct_metadataredemption_metadata conditions See: Validation Rule Conditions rules See: Validation Rule Rules errorobject Contains the error message returned from API when validation / redemption fails to meet requirements of defined rule. Attributes Descriptionmessagestring The error message returned from API when validation / redemption fails to meet requirements of defined rule.

Validation Rule Bundle Rules

AttributesDescription
limitinteger, nullDefines how many bundles can be identified in the order and the maximum multiplier of the discount per identified bundle. For example, if the order meets 3 bundles, but limit: 2, the discount will be multiplied by 2.
[propertyName]objectContains the name of the bundle rule.Attributes Descriptionnamestring Voucherify’s specific bundle rule name. Currently, it is only order.items.any. Available values: order.items.any conditionsobject Defines the conditions of the bundle rule. The order items in the customer’s cart must meet the conditions. Because the rule concerns order items, the only permissible condition is is.

Attributes Descriptionisarray Array of: Attributes Descriptionidstring Unique identifier of the product, SKU, or collection assigned by Voucherify. typestring Type of the order item. It can be a product_or_sku or products_collection Available values: product_or_sku, products_collection objectstring Object used in the bundle rule. It can be a products_collection, product, or sku. Available values: products_collection, product, sku rules errorobject CURRENTLY UNSUPPORTED. Contains the error message returned from API when validation / redemption fails to meet requirements of defined rule. Attributes Descriptionmessagestring The error message returned from API when validation / redemption fails to meet requirements of defined rule.

Applicable To

AttributesDescription
objectstringThis object stores information about the resource to which the discount is applicable.Available values: product, sku, products_collection
idstringUnique product collection, product, or SKU identifier assigned by Voucherify.
source_idstringThe source identifier from your inventory system.
product_idstringParent product’s unique ID assigned by Voucherify.
product_source_idstringParent product’s source ID from your inventory system.
pricenumberNew fixed price of an item. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $10 price is written as 1000. In case of the fixed price being calculated by the formula, i.e. the price_formula parameter is present in the fixed price definition, this value becomes the fallback value. Such that in a case where the formula cannot be calculated due to missing metadata, for example, this value will be used as the fixed price.
price_formulanumberFormula used to dynamically calculate the discounted price of an item.
effectDefines how the discount is applied to the customer’s order.Applicable To Effect
quantity_limitintegerThe maximum number of units allowed to be discounted per order line item.
aggregated_quantity_limitintegerThe maximum number of units allowed to be discounted combined across all matched order line items.
amount_limitintegerUpper limit allowed to be applied as a discount per order line item. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $6 maximum discount is written as 600.
aggregated_amount_limitintegerMaximum discount amount per order. Value is multiplied by 100 to precisely represent 2 decimal places. For example, a $6 maximum discount on the entire order is written as 600. This value is definable for the following discount effects:- APPLY_TO_ITEMS (each item subtotal is discounted equally)
  • APPLY_TO_ITEMS_BY_QUANTITY (each unit of matched products has the same discount value) | | order_item_indicesarray | Lists which order lines are (not) covered by the discount. The order in the array is determined by the sequence of applied discounts, while the numbers correspond to the order lines sent in the order object in the request. The first order line is assigned 0, the second order line is assigned 1, and so on. | | order_item_unitsarray | Lists which units within order lines are covered by the discount. The order line items are listed according to sequence of applied discounts while the index corresponds to the order line sent in the order object in the request.Array of:Attributes Descriptionindexinteger Number assigned to the order line item in accordance with the order sent in the request. unitsarray Numbers of units in the order line covered by the discount; e.g. 2, 5, 8 for 10 units with the setting “skip_initially”: 1, “repeat”: 3. The counting of units starts from 1. The maximum quantity of all handled units is 1000. If the quantity of all order items exceeds 1000, this array is not returned, but units_limit_exceeded: true. However, the discount is calculated properly for all relevant units. units_limit_exceededboolean Returned as true only when the sum total of quantity of all order items exceeds 1000. | | repeatinteger | Determines the recurrence of the discount, e.g. "repeat": 3 means that the discount is applied to every third item. | | skip_initiallyinteger | Determines how many items are skipped before the discount is applied. | | targetstring | Determines to which kinds of objects the discount is applicable. ITEM includes products and SKUs. UNIT means particular units within an order line.Available values: ITEM, UNIT |

Validation Rule Conditions

AttributesDescription
$isSee: Any
$is_notSee: Any
$inSee: Any
$not_inSee: Any
$less_thanSee: Any
$less_than_or_equalSee: Any
$more_thanSee: Any
$more_than_or_equalSee: Any
$starts_withSee: Any String
$ends_withSee: Any String
$containsSee: Any String
$timeframeSee: Any String
$timeframe_absoluteSee: Any String
$timeframe_daily_hoursSee: Any String
$dowarray
$countSee: Any Number
$count_moreSee: Any Number
$count_lessSee: Any Number
$not_differSee: Any
$not_intersectSee: Any
$fromSee: Any
$afterSee: Any Date and Date-Time
$beforeSee: Any Date and Date-Time
$more_than_agoSee: Any Number
$less_than_agoSee: Any Number
$is_days_agoSee: Any Number
$more_than_futureSee: Any Number
$less_than_futureSee: Any Number
$is_days_in_futureSee: Any Number

Validation Rule Rules

AttributesDescription
logicstringDefines the logic between the rules.Example:(1 and 2) and (3)
[propertyName]objectContains the name of the validation rule.Attributes Descriptionnamestring Voucherify’s specific rule name. The list of available names is provided below. Type NameCustomer customer.segmentcustomer.metadata Order order.amountorder.initial_amountorder.items.countorder.items.price_anyorder.items.price_eachorder.items.metadata_anyorder.items.metadata_eachorder.metadata Campaign campaign.orders.amount_discountedcampaign.orders.amountcampaign.redemptions.countcampaign.redemptions.count.dailycampaign.redemptions.count.monthlycampaign.redemptions.customers_countcampaign.redemptions.customers_count.dailycampaign.redemptions.customers_count.monthly Redemption redemption.gift.amountredemption.count.dailyredemption.count.monthlyredemption.count.per_customerredemption.count.per_customer.dailyredemption.count.per_customer.monthlyredemption.api_keyredemption.count.per_api_keyredemption.user.loginredemption.count.per_userredemption.metadataredemption.reward.pay_with_points.points_used Product product.idproduct.priceproduct.quantityproduct.discount_applicableproduct.metadataproduct.metadata.aggregated_quantityproduct.metadata.aggregated_amountproduct.metadata.discount_applicableproduct.metadata.match_all SKU sku.idsku.pricesku.quantitysku.discount_applicable Publication publication.redeemable_by_linked_customer Custom Event custom_event.metadata Order items order.items.everyorder.items.anyorder.items.noneorder.items.cheapestorder.items.most_expensive *Requires the property field to be defined. propertystring, null Custom name for a metadata property associated with the condition to be satisfied. Required if the property name is any of the following:customer_metadatacustom_event_metadataorder_items_metadataorder_metadataproduct_metadataredemption_metadata conditions See: Validation Rule Conditions rules See: Validation Rule Rules errorobject Contains the error message returned from API when validation / redemption fails to meet requirements of defined rule. Attributes Descriptionmessagestring The error message returned from API when validation / redemption fails to meet requirements of defined rule.

Applicable To Effect

Available values: APPLY_TO_EVERY, APPLY_TO_CHEAPEST, APPLY_FROM_CHEAPEST, APPLY_TO_MOST_EXPENSIVE, APPLY_FROM_MOST_EXPENSIVE

Any

Array any of: string, string, string, number, object

Any

Array any of: string, string, string, number, object

Any String

Any Number

Any Date and Date-Time

Array any of: string, string

Validation Rule Rules

AttributesDescription
logicstringDefines the logic between the rules.Example:(1 and 2) and (3)
[propertyName]objectContains the name of the validation rule.Attributes Descriptionnamestring Voucherify’s specific rule name. The list of available names is provided below. Type NameCustomer customer.segmentcustomer.metadata Order order.amountorder.initial_amountorder.items.countorder.items.price_anyorder.items.price_eachorder.items.metadata_anyorder.items.metadata_eachorder.metadata Campaign campaign.orders.amount_discountedcampaign.orders.amountcampaign.redemptions.countcampaign.redemptions.count.dailycampaign.redemptions.count.monthlycampaign.redemptions.customers_countcampaign.redemptions.customers_count.dailycampaign.redemptions.customers_count.monthly Redemption redemption.gift.amountredemption.count.dailyredemption.count.monthlyredemption.count.per_customerredemption.count.per_customer.dailyredemption.count.per_customer.monthlyredemption.api_keyredemption.count.per_api_keyredemption.user.loginredemption.count.per_userredemption.metadataredemption.reward.pay_with_points.points_used Product product.idproduct.priceproduct.quantityproduct.discount_applicableproduct.metadataproduct.metadata.aggregated_quantityproduct.metadata.aggregated_amountproduct.metadata.discount_applicableproduct.metadata.match_all SKU sku.idsku.pricesku.quantitysku.discount_applicable Publication publication.redeemable_by_linked_customer Custom Event custom_event.metadata Order items order.items.everyorder.items.anyorder.items.noneorder.items.cheapestorder.items.most_expensive *Requires the property field to be defined. propertystring, null Custom name for a metadata property associated with the condition to be satisfied. Required if the property name is any of the following:customer_metadatacustom_event_metadataorder_items_metadataorder_metadataproduct_metadataredemption_metadata conditions See: Validation Rule Conditions rules See: Validation Rule Rules errorobject Contains the error message returned from API when validation / redemption fails to meet requirements of defined rule. Attributes Descriptionmessagestring The error message returned from API when validation / redemption fails to meet requirements of defined rule.

Validation Rule Rules

AttributesDescription
logicstringDefines the logic between the rules.Example:(1 and 2) and (3)
[propertyName]objectContains the name of the validation rule.Attributes Descriptionnamestring Voucherify’s specific rule name. The list of available names is provided below. Type NameCustomer customer.segmentcustomer.metadata Order order.amountorder.initial_amountorder.items.countorder.items.price_anyorder.items.price_eachorder.items.metadata_anyorder.items.metadata_eachorder.metadata Campaign campaign.orders.amount_discountedcampaign.orders.amountcampaign.redemptions.countcampaign.redemptions.count.dailycampaign.redemptions.count.monthlycampaign.redemptions.customers_countcampaign.redemptions.customers_count.dailycampaign.redemptions.customers_count.monthly Redemption redemption.gift.amountredemption.count.dailyredemption.count.monthlyredemption.count.per_customerredemption.count.per_customer.dailyredemption.count.per_customer.monthlyredemption.api_keyredemption.count.per_api_keyredemption.user.loginredemption.count.per_userredemption.metadataredemption.reward.pay_with_points.points_used Product product.idproduct.priceproduct.quantityproduct.discount_applicableproduct.metadataproduct.metadata.aggregated_quantityproduct.metadata.aggregated_amountproduct.metadata.discount_applicableproduct.metadata.match_all SKU sku.idsku.pricesku.quantitysku.discount_applicable Publication publication.redeemable_by_linked_customer Custom Event custom_event.metadata Order items order.items.everyorder.items.anyorder.items.noneorder.items.cheapestorder.items.most_expensive *Requires the property field to be defined. propertystring, null Custom name for a metadata property associated with the condition to be satisfied. Required if the property name is any of the following:customer_metadatacustom_event_metadataorder_items_metadataorder_metadataproduct_metadataredemption_metadata conditions See: Validation Rule Conditions rulesobject Another set of validation rules. If you need to create complex rules with more nested rules, use the validation rule builder in the dashboard. errorobject Contains the error message returned from API when validation / redemption fails to meet requirements of defined rule. Attributes Descriptionmessagestring The error message returned from API when validation / redemption fails to meet requirements of defined rule.
I