diff --git a/documentation/build/loyalty-earning-rule.mdx b/documentation/build/loyalty-earning-rule.mdx
new file mode 100644
index 000000000..11a6b6792
--- /dev/null
+++ b/documentation/build/loyalty-earning-rule.mdx
@@ -0,0 +1,495 @@
+---
+title: Earning rule builder
+description: Create and manage rules that control how loyalty points are awarded
+keywords: ['earning rules', 'earning rule builder', 'loyalty earning rules', 'points earning', 'loyalty rules', 'earning conditions']
+---
+
+import MetaConfig from '/snippets/metadata-configuration.mdx'
+
+Earning rules define when customers receive points for selected activities and transactions.
+
+
+
+Time-related settings in earning rule configuration use the time zone configured in project settings. They are not calculated in UTC.
+
+
+
+Go to **Loyalty hub** > **Earning rules**.
+
+From the **Earning rules** view, you can:
+- view all existing earning rules and their status
+- open earning rules to review their configuration and activate or deactivate them
+- search earning rules using the search bar
+- filter earning rules using **Add filter**
+- reload the earning rules list using **Reload**
+- create earning rules using **+ Create earning rule**
+- edit, change status, or delete earning rules using the contextual actions menu (`⋮`)
+
+## Create an earning rule
+
+Earning rules are configured in a multi-step builder. Some settings depend on each other. If something is missing or incompatible, the builder displays an Action required status.
+
+You can also use **Save draft** and complete the configuration later.
+
+Go to **Loyalty hub** > **Earning rules** and use **+ Create earning rule**.
+
+Enter the earning rule name in **Name earning rule**.
+
+
+
+
+
+### Trigger
+
+Define the event that activates the earning rule.
+
+Configure:
+- **Trigger event**: selects the event that activates the rule.
+- **Custom error message**: optional message displayed when the earning rule cannot be applied.
+
+Supported trigger events:
+- **Order paid**: triggers the earning rule after an order is successfully paid.
+- **Custom event**: triggers the earning rule when a selected custom event is sent to Voucherify.
+- **Segment entered**: triggers the earning rule when a customer enters a selected segment.
+
+Additional configuration depends on the selected trigger event.
+
+
+
+
+
+No additional configuration is required.
+
+
+
+
+
+Select the event in **Custom event**.
+
+Use the search field to find existing custom events or use the **+** icon to create a new one directly from the builder.
+
+
+
+
+
+Select the segment in **Segment**.
+
+Use the search field to find existing segments or use the **+** icon to create a new one directly from the builder.
+
+
+
+
+
+
+
+
+
+### Earnings
+
+Define the conditions and effects used to award points.
+
+Use **+ Add earning** to create additional earning configurations within the same earning rule.
+
+Earning configurations are evaluated in the order they appear in the builder. **Earning #1** has the highest priority.
+
+If the customer does not match the first earning configuration, Voucherify checks the next one in order until an earning is fulfilled. If no earning is fulfilled, no points or benefits are awarded.
+
+Each earning configuration contains:
+- **Earning name**: internal name used to identify the earning configuration.
+- **Tier**: loyalty tiers that the earning configuration applies to.
+- **When**: conditions that must be matched.
+- **Then**: effects applied after the conditions are matched.
+
+**Tier**
+
+Use the **Tier** section to select which loyalty tiers the earning configuration applies to.
+
+You can select one or more tiers from different tier structures.
+
+**When**
+
+Use the **When** section to define conditions for the earning configuration.
+
+Use **Add rule** to create conditions and **Add brackets** to group multiple conditions into logical expressions.
+
+Conditions are grouped by category.
+
+
+
+
+
+Audience rules define customer-based conditions.
+
+- **Customer segment**: checks whether the customer belongs to a selected segment.
+- **Customer loyalty tier**: checks whether the customer belongs to a selected loyalty tier.
+
+
+
+
+
+Product rules define conditions related to items in the order.
+
+- **Any order item**: checks whether at least one order item matches the condition.
+- **Every order item**: checks whether all order items match the condition.
+- **None of the order items**: checks whether no order items match the condition.
+- **Most expensive of the order items**: checks the most expensive item in the order.
+- **Cheapest of the order items**: checks the cheapest item in the order.
+
+
+
+
+
+Price and quantity rules define conditions related to order values and quantities.
+
+- **Total amount before discounts**: checks the order value before discounts are applied.
+- **Total amount after discounts**: checks the order value after discounts are applied.
+- **Initial amount**: checks the original order amount.
+- **Items quantity**: checks the number of items in the order.
+- **Price of each item**: checks the price of every item in the order.
+- **Price of any item**: checks the price of at least one item in the order.
+
+
+
+
+
+Customer metadata rules define conditions based on customer metadata values.
+
+Available metadata keys depend on the customer metadata schema configured in your project.
+
+Use **Add to schema** to create a new metadata key directly from the builder.
+
+
+
+
+
+Order metadata rules define conditions based on order metadata values.
+
+Available metadata keys depend on the order metadata schema configured in your project.
+
+Use **Add to schema** to create a new metadata key directly from the builder.
+
+
+
+
+
+> The following actions are available when configuring rules and brackets:
+
+
+
+
+
+After adding a rule, use the three-dot menu next to the rule name to manage rule actions.
+
+Available rule actions:
+- **Error message**: defines a custom validation message for the selected rule.
+- **Edit rule**: updates the selected rule configuration.
+- **Duplicate rule**: creates a copy of the selected rule.
+- **Add next rule**: adds another rule after the selected rule.
+- **Add next brackets**: adds a new bracket group after the selected rule.
+- **Remove rule**: removes the selected rule from the earning configuration.
+- **Surround with brackets**: groups the selected rule inside brackets.
+
+
+
+
+
+Use the three-dot menu on the right side of the bracket group to manage bracket actions.
+
+Available bracket actions:
+- **Add rule**: adds a new rule inside the selected bracket group.
+- **Add next rule**: adds a new rule after the selected bracket group.
+- **Add brackets**: adds a nested bracket group inside the selected bracket group.
+- **Add next brackets**: adds a new bracket group after the selected bracket group.
+- **Remove brackets & rules inside**: removes the selected bracket group together with all rules inside it.
+
+
+
+
+
+**Then**
+
+Use the **Then** section to define the effects applied when the earning conditions are matched.
+
+Each earning can contain multiple effects. Use **+ Add effect** to create additional effects within the same earning.
+
+Choose one of the following effect types:
+- **Fixed points**
+- **Proportional points**
+- **Incentive**
+
+
+
+
+
+Award a fixed number of points to the selected wallet.
+
+Configure the following fields:
+- **Card definition**: selects the wallet that receives the points.
+- **Points**: number of points awarded when the earning rule is triggered.
+
+You can create a new wallet directly from the builder using the **+** icon.
+
+
+
+
+
+Award points proportionally based on order values, quantities, or metadata values.
+
+Configure the following fields:
+- **Calculation type**: defines how the proportional points are calculated.
+- **Card definition**: selects the wallet that receives the points.
+- **Points**: number of points awarded.
+
+Calculation methods are grouped by type.
+
+**Order amount calculations**
+
+Use order amount calculations to award points based on total order values.
+
+- **Pre-discount order amount**: uses the total order amount before discounts are applied. Configure **Amount**.
+- **Post-discount order amount**: uses the total order amount after discounts are applied. Configure **Amount**.
+
+**Order item calculations**
+
+Use order item calculations to award points based on selected order items.
+
+- **Pre-discount order items amount**: uses selected order item values before discounts are applied. Configure **Amount** and **Applicable to**.
+- **Post-discount order items amount**: uses selected order item values after discounts are applied. Configure **Amount** and **Applicable to**.
+- **Order items quantity**: uses the quantity of selected order items. Configure **Quantity** and **Applicable to**.
+
+Use **Applicable to** to select products or product collections included in the calculation. You can select multiple products or collections.
+
+**Metadata calculations**
+
+Use metadata calculations to award points based on metadata values.
+
+- **Customer metadata value**: uses a selected customer metadata property. Configure **Value** and **Metadata property**.
+- **Order metadata value**: uses a selected order metadata property. Configure **Value** and **Metadata property**.
+
+You can create a new metadata property directly from the builder using the **+** icon.
+
+You can create a new wallet directly from the builder using the **+** icon.
+
+
+
+
+
+Award incentives instead of loyalty points.
+
+Configure the following field:
+- **Incentive**: selects the incentive awarded when the earning rule is triggered.
+
+You can create a new incentive directly from the builder using the **+** icon.
+
+
+
+
+
+
+
+
+
+### Trigger limits
+
+Define cooldown and frequency limits for triggering the earning rule.
+
+**Cooldown**
+
+Control how often the earning rule can be triggered for the same customer.
+
+Available options:
+- **No cooldown**: the earning rule can be triggered at any time.
+- **Fixed cooldown**: limits how often the earning rule can be triggered for the same customer.
+
+When **Fixed cooldown** is selected, configure the following fields:
+- **Period**: cooldown duration value.
+- **Period unit**: cooldown duration unit.
+
+Supported period units:
+- **Hour**
+- **Day**
+- **Week**
+- **Month**
+- **Year**
+
+Maximum values depend on the selected period unit.
+
+**Frequency**
+
+Limit how many times the earning rule can be triggered within a selected time period.
+
+Available options:
+- **No limit**: no restriction on how often the earning rule can be triggered.
+- **Limited**: limits the number of eligible triggers within a selected time period.
+
+When **Limited** is selected, configure the following fields:
+- **Max triggers**: maximum number of allowed triggers. The maximum supported value is `10,000`.
+- **Period**: time period used for the frequency limit.
+
+Supported period units:
+- **Day**
+- **Week**
+- **Month**
+- **Quarter**
+- **Year**
+
+
+
+
+
+### Timeframe
+
+Define when the earning rule becomes active and when it expires.
+
+**Start date**
+
+Define when the earning rule becomes active.
+
+Available options:
+- **Creation**: the earning rule becomes active immediately after it is created.
+- **Specific date**: the earning rule becomes active at a selected date and time.
+
+When **Specific date** is selected, configure:
+- **Date**: activation date.
+- **Time**: activation time.
+
+**Expiration**
+
+Define when the earning rule expires.
+
+Available options:
+- **Never**: the earning rule does not expire.
+- **On specific date**: the earning rule expires at a selected date and time.
+
+When **On specific date** is selected, configure:
+- **Date**: expiration date.
+- **Time**: expiration time.
+
+**Valid hours per day**
+
+Limit when the earning rule can be triggered during the week.
+
+By default, the earning rule is applicable all days of the week, all day long.
+
+Use **+ Add valid hours per day** to limit when the earning rule can be triggered during the week.
+
+When configuring valid hours, define:
+- **Start time**: beginning of the valid time range.
+- **Expiration time**: end of the valid time range.
+- **Days of the week**: days when the earning rule is active within the selected time range.
+
+Available days:
+- Sunday
+- Monday
+- Tuesday
+- Wednesday
+- Thursday
+- Friday
+- Saturday
+
+Multiple valid hour ranges can be configured.
+
+
+
+
+
+### Metadata
+
+
+
+
+
+
+
+### Summary
+
+Review the earning rule configuration before saving.
+
+The summary page displays all configured sections:
+- Trigger
+- Earnings
+- Trigger limits
+- Timeframe
+- Metadata
+
+Use **Go to step** to return to a selected section and make changes before saving the earning rule.
+
+After reviewing the configuration:
+- use **Save draft** to save the earning rule without activating it
+- use **Save** to create and activate the earning rule immediately
+
+
+
+
+
+## Manage earning rules in the loyalty designer
+
+Earning rules can be assigned and managed directly from the loyalty campaign designer.
+
+The **Earning rules** section displays all earning rules currently assigned to the campaign.
+
+Earning rules award points to wallets selected in the **Card definition** field.
+
+When assigning an earning rule to a loyalty campaign, the loyalty designer verifies whether all required wallets are already assigned to the campaign.
+
+If required wallets are missing, the loyalty designer displays the **Assign required wallets** dialog.
+
+Select **Assign wallets and rule** to automatically assign the required wallets together with the earning rule.
+
+To assign an earning rule from the loyalty designer:
+1. In the **Earning rules** section, select:
+ - the **+** icon,
+ - or the **No earning rules assigned** field.
+2. In the assignment dialog:
+ - select an existing earning rule from the list,
+ - or select **+ Create new** to open the simplified earning rule builder.
+
+The simplified earning rule builder supports:
+- defining the earning rule name
+- selecting the trigger event
+- configuring earning effects
+- assigning wallets
+- multiple earning effects
+
+Select **Advanced options** to open the full earning rule builder with additional configuration options, including earning conditions and trigger limits.
+
+You can also assign earning rules from the **Building blocks** panel.
+
+The **Building blocks** panel allows you to:
+- browse available wallets, earning rules, bonus rules, and rewards
+- search building blocks by name using the search field
+- filter displayed building block categories using the filter menu
+- filter earning rules by assignment status using the **All**, **Not assigned**, and **Assigned** tabs
+- assign earning rules to campaigns
+- unassign earning rules from campaigns
+- delete earning rules
+- create new earning rules using the **+** icon
+
+Earning rules can be assigned regardless of their current status. Assigning or unassigning earning rules does not change whether the earning rule is active or inactive.
+
+Assigned earning rules can later be:
+- edited from the loyalty designer workspace
+- unassigned from the loyalty campaign
+- deleted from the **Building blocks** panel
+
+Deleting an earning rule removes it from all loyalty campaigns where it is currently assigned.
+
+Selecting the edit icon from the loyalty designer opens the full earning rule builder.
+
+## Related features
+
+
+
+
+
+Learn how to create and manage wallets used in earning rules through the **Card definition** configuration.
+
+
+
+
+
+Learn how to configure loyalty campaigns and manage campaign building blocks.
+
+
+
+
\ No newline at end of file
diff --git a/documentation/docs.json b/documentation/docs.json
index bf0e14c54..a311bd915 100644
--- a/documentation/docs.json
+++ b/documentation/docs.json
@@ -255,7 +255,8 @@
"build/earning-rules",
"build/loyalty-points",
"build/loyalty-tiers",
- "build/loyalty-card-import"
+ "build/loyalty-card-import",
+ "build/loyalty-earning-rule"
]
},
{