From 504ddad976aa4b7b80f5e62eaa0bf1eb8d047e23 Mon Sep 17 00:00:00 2001 From: MaciekVoucherify <130568368+MaciekVoucherify@users.noreply.github.com> Date: Fri, 17 Apr 2026 14:14:11 +0200 Subject: [PATCH 1/6] Point wallet builder --- documentation/build/point-wallet-builder.mdx | 435 +++++++++++++++++++ documentation/docs.json | 1 + 2 files changed, 436 insertions(+) create mode 100644 documentation/build/point-wallet-builder.mdx diff --git a/documentation/build/point-wallet-builder.mdx b/documentation/build/point-wallet-builder.mdx new file mode 100644 index 000000000..a25acb637 --- /dev/null +++ b/documentation/build/point-wallet-builder.mdx @@ -0,0 +1,435 @@ +--- +title: Point wallet builder +description: Configure and manage point wallets +keywords: ['point wallet', 'wallet builder', 'pending points', 'point expiration', 'pay with points', 'earning limits', 'spending limits'] +--- + +Point wallets control how points are earned, stored, spent, and expire. + +Go to **Loyalty hub → Wallets** and select **Create wallet**. + +## Create a wallet + +The wallet builder walks you through several steps. Each step controls a specific part of the points logic. + +The panel on the left shows your progress and a summary of selected settings for each step. + +Some settings depend on each other. If something is incompatible, you will see an **Action required** message. + +You can also **save a wallet as a draft** and finish the setup later. + + + + + +## General settings + +Define the basic behavior of the wallet. + + + + +- **Individual**: points are assigned per customer + + + +- Allows customers to go below zero balance + + +This setting affects refunds and points expiration. + +Some options, such as revoking points below zero or expiration rules, depend on it. + + + + + + + + + + +## Code config + +Define how wallet-related codes are generated. + + + + +Choose a predefined set, for example alphanumeric, or define your own. + + + +Defines how many random characters the code contains. + + + +- Create a custom structure using placeholders +- `#` is replaced with a random character from the selected charset +- Overrides the code length + + + +Optional values added at the beginning or end of the code. + + + +Shows an example of a generated code. + + + + + + +The number of possible unique codes depends on the selected charset and code length. + + + + + + + +## Points expiration + +Define when points expire. + + + + +Points never expire. No additional setup is required. + + + +Points expire after a defined period from when they are earned. + +- **Expiration period**: how long points stay valid after earning +- **Period unit**: Day (max 90), Month (max 12), Year (max 5) +- **Expiration rounding**: No rounding, End of month, End of quarter, End of half-year, End of year, End of particular month + + + +Points expire on selected dates each year. + +- Select **Month** +- Select **Day of the month** +- Use **Add date** + +Add at least one date. You can define multiple expiration dates. + + + +Points expire after a period of inactivity. + +- **Inactivity period**: how long points remain valid without activity +- **Period unit**: Day (max 90), Month (max 12), Year (max 1) + +Activity types: +- **Earning activity** +- **Spending activity** +- **Custom activity**: add one or more custom events + +Select at least one activity type. Only selected activities reset the inactivity timer. + + + + + + + +Points expiration is available only when **Allow card balance to go below zero** is disabled. + +If negative balance is enabled, only **No expiration – points never expire** is available. + + + + + + + +## Pending points + +Define when earned points become available. + + + + +Points activate immediately after earning. + + + +Points activate after a defined time from when they are earned. + +- **Waiting period**: how long points remain pending before activation +- **Period unit**: Day (max 90), Month (max 12), Year (max 1) + + + + +Points activate on selected calendar dates. + +- Select **Month** +- Select **Day of the month** +- Use **Add date** + +Add at least one date. You can define multiple activation dates. + + + +Points activate after selected events occur. + +- **Cancellation period**: how long the system waits for the selected event before canceling activation +- **Period unit**: Day (max 90), Month (max 12), Year (max 1) + +Activation: +- Select at least one event type +- Use **Add activity** to add it + + + + + +Pending points are not spendable until they activate. Activation moves points from pending to active balance. + + + +If pending points are set to **Immediate**, you cannot use **From pending** in **Refunds → Earned points refunds**, because points are activated right away. + +Choose a different pending points type if you need to revoke points before activation. + + + + + + + +## Earning limits + +Control how customers earn points. + + + + +Defines the overall limit on points a customer can earn. + +Options: +- **No limit** +- **Limited** + - **Balance-based**: limits the maximum number of points a customer can have at any time + - **Time-based**: limits how many points a customer can earn within a defined period + + + +Defines how many points can be earned per transaction. + +Options: +- **No limit** +- **Limited** + - Configure **Max points earned per transaction** + - Configure **Min amount spent per transaction** + + + + +Global earning limits set overall constraints on how many points a customer can earn, based on the selected limit type. + +Transaction limits define how many points can be earned from a single transaction. + +Both limits can apply at the same time, and the more restrictive condition applies. + + + + + +## Spending limits + +Control how customers spend points. + + + + +Defines the overall limit on how many points a customer can spend. + +Options: +- **No limit** +- **Limited** + - **Spending-based**: limits the total number of points a customer can spend across all transactions + - **Time-based**: limits how many points a customer can spend within a defined period + + + +Defines how many points can be spent in a single transaction. + +Options: +- **No limit** +- **Limited** + - Configure **Max points to spend per transaction** + + + + +Global spending limits set overall constraints on how many points a customer can spend, based on the selected limit type. + +Transaction limits define how many points can be spent in a single transaction. + +Both limits can apply at the same time, and the more restrictive condition applies. + + + + + +## Refunds + +Define how refunds affect points. + + + + +Defines whether points used in a transaction are returned after a refund. + +Options: +- **No refund**: spent points are not returned +- **Refundable**: + - **Refund all**: all spent points are refunded + - **Refund by item**: points related to returned items are refunded + - **Refund by amount**: points are returned based on the refunded amount + + + +Defines whether points earned from a transaction are kept or revoked after a refund. + +Options: +- **Keep points**: earned points are not affected +- **Revoke points**: + - **From balance**: points are revoked from active balance + - **Stop at zero**: points are revoked until balance reaches zero + - **Allow negative**: points are revoked even if it results in a negative balance + - **From pending**: points are revoked from pending points only + + + + +Spent and earned refund rules are applied separately. + + + +Allowing negative balance requires enabling **Allow card balance to go below zero**. + +If this setting is disabled, **Allow negative** is not available. + +Revoking from pending requires pending points not set to **Immediate**. + + + + + + + +## Summary + +Use this step to review your configuration before saving. + +- If everything is valid, **Save** becomes available +- If something is incompatible, you will see **Action required** +- Use **Go to step** to return to any section and make changes +- You can also save the wallet as a draft + + + + + +## Create a wallet in a program + +You can also create a wallet while configuring a program in the Designer. + +In the **Building Blocks** panel, use **+** next to **Wallets**. + +This opens the same wallet builder used in the Wallets section. + + + + +- The wallet is created while you are working inside a program +- You can assign it to the program immediately +- The wallet is still saved globally and can be reused + + + +- The configuration steps are the same as in the Wallets section +- The same dependencies between settings apply (you may see **Action required** if something is incompatible) + + + + + +## Use wallets in a program + +In the program Designer, you can assign and manage wallets directly in the program view. + + + + +- View all available wallets and their status +- Assign a wallet to the program +- Create a new wallet using **+** +- Open a wallet to view its full configuration and manage its status + + + +- View wallets assigned to the program +- Edit or unassign a wallet +- Assign an existing wallet or create a new one using **+** +- When creating a wallet, you can enter a name and **Save as Draft**, or use **Advanced options** to open the full wallet builder +- Assign a tier structure to a wallet + + + + + + +Wallets are global objects, so assigning them to a program does not create a copy. + +Changes to a wallet apply everywhere it is used. + +Unassigning a wallet removes it from the program but does not delete it. + + + +## Managing wallets + +Go to **Loyalty hub → Wallets**. + +After you create a wallet, it appears in the **Wallets** section. + + + + +- View all wallets with their: + - Status + - Name + - Type + - Points expiration + - Pending period + - Created date +- Search wallets by name using the search bar +- Use **Add filter** to narrow results +- Use the **three-dot menu (⋮)** to: + - Activate or deactivate a wallet + - Edit the wallet + - Delete the wallet + + Available options depend on the wallet status. + + + + +- Select a wallet by clicking its name +- View the full configuration summary +- Use available actions: + - **Edit** + - **Activate / Deactivate** + +Inactive wallets can be reactivated at any time. + + + + \ No newline at end of file diff --git a/documentation/docs.json b/documentation/docs.json index 297bb9205..6a3b407f7 100644 --- a/documentation/docs.json +++ b/documentation/docs.json @@ -242,6 +242,7 @@ "root": "build/loyalty-campaign-overview", "pages": [ "build/create-loyalty-campaign", + "build/point-wallet-builder", "build/earning-rules", "build/loyalty-points", "build/loyalty-tiers", From 994d73620a1a612964babd7a51c4474c45d76afe Mon Sep 17 00:00:00 2001 From: MaciekVoucherify <130568368+MaciekVoucherify@users.noreply.github.com> Date: Mon, 20 Apr 2026 13:26:26 +0200 Subject: [PATCH 2/6] Update point-wallet-builder.mdx --- documentation/build/point-wallet-builder.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/documentation/build/point-wallet-builder.mdx b/documentation/build/point-wallet-builder.mdx index a25acb637..b4ddd9210 100644 --- a/documentation/build/point-wallet-builder.mdx +++ b/documentation/build/point-wallet-builder.mdx @@ -175,9 +175,9 @@ Add at least one date. You can define multiple activation dates. -Points activate after selected events occur. +Points activate after selected events occur and a defined cancellation period passes, allowing time to cancel or validate the event. -- **Cancellation period**: how long the system waits for the selected event before canceling activation +- **Cancellation period**: how long points remain pending after the selected event occurs; during this time, points can be canceled (for example, if the related transaction is reversed) before they become active - **Period unit**: Day (max 90), Month (max 12), Year (max 1) Activation: From 491acc616bdbd79e6dd4860b43dd903023d94aec Mon Sep 17 00:00:00 2001 From: p-woznikowski Date: Tue, 28 Apr 2026 15:15:29 +0200 Subject: [PATCH 3/6] Point wallet edit --- documentation/build/point-wallet-builder.mdx | 415 +++++++------------ 1 file changed, 153 insertions(+), 262 deletions(-) diff --git a/documentation/build/point-wallet-builder.mdx b/documentation/build/point-wallet-builder.mdx index b4ddd9210..f10405cd2 100644 --- a/documentation/build/point-wallet-builder.mdx +++ b/documentation/build/point-wallet-builder.mdx @@ -6,78 +6,46 @@ keywords: ['point wallet', 'wallet builder', 'pending points', 'point expiration Point wallets control how points are earned, stored, spent, and expire. -Go to **Loyalty hub → Wallets** and select **Create wallet**. +Go to **Loyalty hub** > **Wallets** to **Create wallet**. ## Create a wallet The wallet builder walks you through several steps. Each step controls a specific part of the points logic. -The panel on the left shows your progress and a summary of selected settings for each step. - Some settings depend on each other. If something is incompatible, you will see an **Action required** message. -You can also **save a wallet as a draft** and finish the setup later. +You can also **Save draft** and finish the wallet setup later. -## General settings - -Define the basic behavior of the wallet. - - - - -- **Individual**: points are assigned per customer - - - -- Allows customers to go below zero balance - - -This setting affects refunds and points expiration. +### General settings -Some options, such as revoking points below zero or expiration rules, depend on it. - +Define the basic behavior of the wallet: +- **Type** - **Individual**: points are assigned per individual customers. +- **Allow card balance to go below zero**: Customers' point balance can go below zero. - + + This setting affects refunds and points expiration. - + Some options, such as revoking points below zero or expiration rules, depend on it. + -## Code config - -Define how wallet-related codes are generated. - - - - -Choose a predefined set, for example alphanumeric, or define your own. - - - -Defines how many random characters the code contains. - - - -- Create a custom structure using placeholders -- `#` is replaced with a random character from the selected charset -- Overrides the code length - - - -Optional values added at the beginning or end of the code. - +### Code config - -Shows an example of a generated code. - +Define how wallet-related codes are generated: +- **Charset**: Choose a predefined set, for example alphanumeric, or define your own. +- **Code length**: Defines how many random characters the code contains. +- **Pattern**: Create a custom structure using placeholders. +- **#** is replaced with a random character from the selected charset. Overrides the code length. +- **Prefix** and **Postfix**: Optional values added at the beginning or end of the code. - +**Code preview** shows an example of a generated code. @@ -89,50 +57,45 @@ The number of possible unique codes depends on the selected charset and code len -## Points expiration +### Points expiration Define when points expire. - + + + Points never expire. No additional setup is required. + - -Points never expire. No additional setup is required. - + + Points expire after a defined period from when they are earned. - -Points expire after a defined period from when they are earned. + - **Expiration period**: How long points stay valid after earning. + - **Period unit**: Day (max 90), Month (max 12), Year (max 5). + - **Expiration rounding**: Round the expiration to the nearest period. Possible settings – **No rounding**, **End of month**, **End of quarter**, **End of half-year**, **End of year**, **End of particular month**. + -- **Expiration period**: how long points stay valid after earning -- **Period unit**: Day (max 90), Month (max 12), Year (max 5) -- **Expiration rounding**: No rounding, End of month, End of quarter, End of half-year, End of year, End of particular month - + + Points expire on selected dates each year. - -Points expire on selected dates each year. + Select **Month** and **Day of the month** to **Add date** -- Select **Month** -- Select **Day of the month** -- Use **Add date** + Add at least one date. You can define up to 20 expiration dates. + -Add at least one date. You can define multiple expiration dates. - + + Points expire after a period of inactivity. - -Points expire after a period of inactivity. + - **Inactivity period**: How long points remain valid without activity. + - **Period unit**: Day (max 90), Month (max 12), Year (max 1). -- **Inactivity period**: how long points remain valid without activity -- **Period unit**: Day (max 90), Month (max 12), Year (max 1) + Activity types: + - **Earning activity** + - **Spending activity** + - **Custom activity**: add one or more custom events (up to 20). -Activity types: -- **Earning activity** -- **Spending activity** -- **Custom activity**: add one or more custom events - -Select at least one activity type. Only selected activities reset the inactivity timer. - - - - + Select at least one activity type. Only the selected activities reset the inactivity timer. + + @@ -146,49 +109,41 @@ If negative balance is enabled, only **No expiration – points never expire** i -## Pending points +### Pending points Define when earned points become available. - - - -Points activate immediately after earning. - - - -Points activate after a defined time from when they are earned. - -- **Waiting period**: how long points remain pending before activation -- **Period unit**: Day (max 90), Month (max 12), Year (max 1) - - + + + Points activate immediately after earning. + - -Points activate on selected calendar dates. + + Points activate after a defined time from when they are earned: + - **Waiting period**: How long points remain pending before activation. + - **Period unit**: Day (max 90), Month (max 12), Year (max 1). + -- Select **Month** -- Select **Day of the month** -- Use **Add date** + + Points activate on selected calendar dates. + + Select **Month** and **Day of the month** to **Add date** -Add at least one date. You can define multiple activation dates. - + Add at least one date. You can define up to 20 activation dates. + - -Points activate after selected events occur and a defined cancellation period passes, allowing time to cancel or validate the event. + + Points activate after selected events occur and a defined cancellation period passes, allowing time to cancel or validate the event: + - **Cancellation period**: Defines how long points remain pending before the activation is finalized in the event-based flow. + - **Period unit**: Day (max 90), Month (max 12), Year (max 1) -- **Cancellation period**: how long points remain pending after the selected event occurs; during this time, points can be canceled (for example, if the related transaction is reversed) before they become active -- **Period unit**: Day (max 90), Month (max 12), Year (max 1) + Select **Custom event** and **Add activity**. -Activation: -- Select at least one event type -- Use **Add activity** to add it + Add at least one custom event. You can define up to 20 custom events. + + - - - - -Pending points are not spendable until they activate. Activation moves points from pending to active balance. +Pending points can't be spent until they're activated. Activation moves points from pending to the active balance. @@ -202,113 +157,90 @@ Choose a different pending points type if you need to revoke points before activ -## Earning limits +### Earning limits Control how customers earn points. - - - -Defines the overall limit on points a customer can earn. - -Options: -- **No limit** -- **Limited** - - **Balance-based**: limits the maximum number of points a customer can have at any time - - **Time-based**: limits how many points a customer can earn within a defined period - - - -Defines how many points can be earned per transaction. - -Options: -- **No limit** -- **Limited** - - Configure **Max points earned per transaction** - - Configure **Min amount spent per transaction** - +Both **Global earning limit** and **Transactions earning limit** can apply at the same time, and the more restrictive condition applies. - + -Global earning limits set overall constraints on how many points a customer can earn, based on the selected limit type. + +Defines the overall limit on points a customer can earn: +- **No limit**: Customers can earn an unlimited number of points. +- **Limited**: Customers can't earn more than a defined number. + - **Balance-based**: Limits the maximum number of points a customer can have at any time. + - **Time-based**: Limits how many points a customer can earn within a defined period (day, week, month, quarter, year). + -Transaction limits define how many points can be earned from a single transaction. + +Defines how many points can be earned in a transaction: +- **No limit**: Customers can earn an unlimited number of points in one transaction. +- **Limited**: + - **Max points earned per transaction**: Customers can't earn more than a defined number. + - **Min amount spent per transaction**: Customers have to spend minimum the defined amount to earn points. + -Both limits can apply at the same time, and the more restrictive condition applies. + -## Spending limits +### Spending limits Control how customers spend points. - +Both **Global spending limit** and **Transactions spending limit** can apply at the same time, and the more restrictive condition applies. - -Defines the overall limit on how many points a customer can spend. + -Options: -- **No limit** + +Defines the overall limit on how many points a customer can spend: +- **No limit**: Customers can spend an unlimited number of points in a transaction. - **Limited** - - **Spending-based**: limits the total number of points a customer can spend across all transactions - - **Time-based**: limits how many points a customer can spend within a defined period - - - -Defines how many points can be spent in a single transaction. + - **Spending-based**: Limits the total number of points a customer can spend across all transactions. + - **Time-based**: Limits how many points a customer can spend within a defined period (day, week, month, quarter, year). + -Options: + +Defines how many points can be spent in a single transaction: - **No limit** - **Limited** - Configure **Max points to spend per transaction** - - - + -Global spending limits set overall constraints on how many points a customer can spend, based on the selected limit type. - -Transaction limits define how many points can be spent in a single transaction. - -Both limits can apply at the same time, and the more restrictive condition applies. + -## Refunds +### Refunds Define how refunds affect points. - +**Spent points refunds** and **Earned points refunds** are applied separately. - -Defines whether points used in a transaction are returned after a refund. + -Options: -- **No refund**: spent points are not returned + +Defines whether points used in a transaction are returned after a refund: +- **No refund**: spent points are not returned. - **Refundable**: - - **Refund all**: all spent points are refunded - - **Refund by item**: points related to returned items are refunded - - **Refund by amount**: points are returned based on the refunded amount - - - -Defines whether points earned from a transaction are kept or revoked after a refund. - -Options: -- **Keep points**: earned points are not affected + - **Refund all**: All spent points are refunded. + - **Refund by item**: Points related to returned items are refunded. + - **Refund by amount**: Points are returned based on the refunded amount. + + + +Defines whether points earned from a transaction are kept or revoked after a refund: +- **Keep points**: Earned points are not affected. - **Revoke points**: - - **From balance**: points are revoked from active balance - - **Stop at zero**: points are revoked until balance reaches zero - - **Allow negative**: points are revoked even if it results in a negative balance - - **From pending**: points are revoked from pending points only - - - - -Spent and earned refund rules are applied separately. + - **From balance**: Points are revoked from the active balance. + - **Stop at zero**: Points are revoked until the balance reaches zero. + - **Allow negative**: Points are revoked even if it results in a negative balance. + - **From pending**: Points are revoked from pending points only. @@ -316,73 +248,59 @@ Allowing negative balance requires enabling **Allow card balance to go below zer If this setting is disabled, **Allow negative** is not available. -Revoking from pending requires pending points not set to **Immediate**. +Revoking from pending requires **Pending points** not set to **Immediate**. + + + + -## Summary +### Summary -Use this step to review your configuration before saving. +Review your configuration before saving. -- If everything is valid, **Save** becomes available -- If something is incompatible, you will see **Action required** -- Use **Go to step** to return to any section and make changes -- You can also save the wallet as a draft +- If everything is valid, **Save** becomes available. +- If something is incompatible, you will see **Action required**. +- Use **Go to step** to return to any section and make changes. +- You can also **Save draft** of the wallet. -## Create a wallet in a program - -You can also create a wallet while configuring a program in the Designer. - -In the **Building Blocks** panel, use **+** next to **Wallets**. +Once saved, the wallet is created and it can be used in loyalty programs. -This opens the same wallet builder used in the Wallets section. +## Create a wallet in a loyalty program - +You can also create a wallet while configuring a loyalty program in the Designer. - -- The wallet is created while you are working inside a program -- You can assign it to the program immediately -- The wallet is still saved globally and can be reused - - - -- The configuration steps are the same as in the Wallets section -- The same dependencies between settings apply (you may see **Action required** if something is incompatible) - +In the **Building Blocks** panel, use **+** next to **Wallets**. - +This opens the same wallet builder used in the **Wallets** section. +The wallet is created while you are working inside a program. You can assign it to the program immediately. The wallet is still saved globally and can be reused. ## Use wallets in a program In the program Designer, you can assign and manage wallets directly in the program view. - - - -- View all available wallets and their status -- Assign a wallet to the program -- Create a new wallet using **+** -- Open a wallet to view its full configuration and manage its status - +Building blocks panel: +- View all available wallets and their status. +- Assign a wallet to the program. +- Create a new wallet using **+**. +- Open a wallet to view its full configuration and manage its status. - -- View wallets assigned to the program -- Edit or unassign a wallet -- Assign an existing wallet or create a new one using **+** -- When creating a wallet, you can enter a name and **Save as Draft**, or use **Advanced options** to open the full wallet builder -- Assign a tier structure to a wallet - - - +**Wallets** section: +- View wallets assigned to the program. +- Edit or unassign a wallet. +- Assign an existing wallet or create a new one using **+**. +- When creating a wallet, you can enter a name and **Save as Draft**, or use **Advanced options** to open the full wallet builder. +- Assign a tier structure to a wallet. @@ -390,46 +308,19 @@ Wallets are global objects, so assigning them to a program does not create a cop Changes to a wallet apply everywhere it is used. -Unassigning a wallet removes it from the program but does not delete it. +Unassigning a wallet removes it from the program but it does not delete it. ## Managing wallets -Go to **Loyalty hub → Wallets**. - -After you create a wallet, it appears in the **Wallets** section. +Go to **Loyalty hub** > **Wallets**. - +After you create a wallet, it appears in the **Wallets** sectio. - -- View all wallets with their: - - Status - - Name - - Type - - Points expiration - - Pending period - - Created date -- Search wallets by name using the search bar -- Use **Add filter** to narrow results -- Use the **three-dot menu (⋮)** to: +Use the **three-dot menu (⋮)** to: - Activate or deactivate a wallet - Edit the wallet - - Delete the wallet - - Available options depend on the wallet status. - - - - -- Select a wallet by clicking its name -- View the full configuration summary -- Use available actions: - - **Edit** - - **Activate / Deactivate** - -Inactive wallets can be reactivated at any time. - - + - Delete the wallet - \ No newline at end of file +Click on a wallet to check its configuration details. From 148a95787de77ff7475e7c67f52c236b8304cf03 Mon Sep 17 00:00:00 2001 From: MaciekVoucherify <130568368+MaciekVoucherify@users.noreply.github.com> Date: Tue, 28 Apr 2026 17:24:55 +0200 Subject: [PATCH 4/6] Update point-wallet-builder.mdx --- documentation/build/point-wallet-builder.mdx | 340 +++++++++++-------- 1 file changed, 206 insertions(+), 134 deletions(-) diff --git a/documentation/build/point-wallet-builder.mdx b/documentation/build/point-wallet-builder.mdx index f10405cd2..9cec12493 100644 --- a/documentation/build/point-wallet-builder.mdx +++ b/documentation/build/point-wallet-builder.mdx @@ -6,7 +6,7 @@ keywords: ['point wallet', 'wallet builder', 'pending points', 'point expiration Point wallets control how points are earned, stored, spent, and expire. -Go to **Loyalty hub** > **Wallets** to **Create wallet**. +Go to **Loyalty hub** > **Wallets** and use **Create wallet**. ## Create a wallet @@ -14,7 +14,7 @@ The wallet builder walks you through several steps. Each step controls a specifi Some settings depend on each other. If something is incompatible, you will see an **Action required** message. -You can also **Save draft** and finish the wallet setup later. +You can also use **Save draft** and finish the wallet setup later. @@ -23,14 +23,14 @@ You can also **Save draft** and finish the wallet setup later. ### General settings Define the basic behavior of the wallet: -- **Type** - **Individual**: points are assigned per individual customers. -- **Allow card balance to go below zero**: Customers' point balance can go below zero. +- **Type** - **Individual**: points are assigned to individual customers +- **Allow card balance to go below zero**: allows customers' point balance to go below zero - - This setting affects refunds and points expiration. + +This setting affects refunds and points expiration. - Some options, such as revoking points below zero or expiration rules, depend on it. - +Some options, such as revoking points below zero or expiration rules, depend on it. + @@ -39,18 +39,16 @@ Define the basic behavior of the wallet: ### Code config Define how wallet-related codes are generated: -- **Charset**: Choose a predefined set, for example alphanumeric, or define your own. -- **Code length**: Defines how many random characters the code contains. -- **Pattern**: Create a custom structure using placeholders. -- **#** is replaced with a random character from the selected charset. Overrides the code length. -- **Prefix** and **Postfix**: Optional values added at the beginning or end of the code. +- **Charset**: select a predefined set or define your own +- **Code length**: defines how many random characters the code contains +- **Pattern**: create a custom structure using placeholders +- **#** is replaced with a random character from the selected charset and overrides code length +- **Prefix** and **Postfix**: optional values added at the beginning or end of the code **Code preview** shows an example of a generated code. - The number of possible unique codes depends on the selected charset and code length. - @@ -62,47 +60,47 @@ The number of possible unique codes depends on the selected charset and code len Define when points expire. - - Points never expire. No additional setup is required. - - - Points expire after a defined period from when they are earned. + +Points never expire. No additional setup is required. + - - **Expiration period**: How long points stay valid after earning. - - **Period unit**: Day (max 90), Month (max 12), Year (max 5). - - **Expiration rounding**: Round the expiration to the nearest period. Possible settings – **No rounding**, **End of month**, **End of quarter**, **End of half-year**, **End of year**, **End of particular month**. - + +Points expire after a defined period from when they are earned. - - Points expire on selected dates each year. +- **Expiration period** +- **Period unit**: Day (max 90), Month (max 12), Year (max 5) +- **Expiration rounding**: No rounding, End of month, End of quarter, End of half-year, End of year, End of particular month + + + +Points expire on selected dates each year. - Select **Month** and **Day of the month** to **Add date** +Select **Month** and **Day of the month** and use **Add date**. - Add at least one date. You can define up to 20 expiration dates. - +Add at least one date. You can define up to 20 expiration dates. + - - Points expire after a period of inactivity. + +Points expire after a period of inactivity. - - **Inactivity period**: How long points remain valid without activity. - - **Period unit**: Day (max 90), Month (max 12), Year (max 1). +- **Inactivity period** +- **Period unit**: Day (max 90), Month (max 12), Year (max 1) - Activity types: - - **Earning activity** - - **Spending activity** - - **Custom activity**: add one or more custom events (up to 20). +Activity types: +- **Earning activity** +- **Spending activity** +- **Custom activity**: add up to 20 custom events + +Select at least one activity type. Only selected activities reset the inactivity timer. + - Select at least one activity type. Only the selected activities reset the inactivity timer. - - Points expiration is available only when **Allow card balance to go below zero** is disabled. -If negative balance is enabled, only **No expiration – points never expire** is available. - +If negative balance is enabled, only **No expiration** is available. @@ -114,43 +112,45 @@ If negative balance is enabled, only **No expiration – points never expire** i Define when earned points become available. - - Points activate immediately after earning. - - - Points activate after a defined time from when they are earned: - - **Waiting period**: How long points remain pending before activation. - - **Period unit**: Day (max 90), Month (max 12), Year (max 1). - + +Points activate immediately after earning. + + + +Points activate after a defined time from when they are earned. + +- **Waiting period** +- **Period unit**: Day (max 90), Month (max 12), Year (max 1) + + + +Points activate on selected calendar dates. - - Points activate on selected calendar dates. - - Select **Month** and **Day of the month** to **Add date** +Select **Month** and **Day of the month** and use **Add date**. - Add at least one date. You can define up to 20 activation dates. - +Add at least one date. You can define up to 20 activation dates. + + + +Points activate after selected events occur and the defined period passes. - - Points activate after selected events occur and a defined cancellation period passes, allowing time to cancel or validate the event: - - **Cancellation period**: Defines how long points remain pending before the activation is finalized in the event-based flow. - - **Period unit**: Day (max 90), Month (max 12), Year (max 1) +- **Cancellation period** +- **Period unit**: Day (max 90), Month (max 12), Year (max 1) - Select **Custom event** and **Add activity**. +Select **Custom event** and use **Add activity**. + +Add at least one custom event. You can define up to 20 custom events. + - Add at least one custom event. You can define up to 20 custom events. - -Pending points can't be spent until they're activated. Activation moves points from pending to the active balance. +Pending points can't be spent until they are activated. Activation moves points from pending to the active balance. - If pending points are set to **Immediate**, you cannot use **From pending** in **Refunds → Earned points refunds**, because points are activated right away. Choose a different pending points type if you need to revoke points before activation. - @@ -161,24 +161,22 @@ Choose a different pending points type if you need to revoke points before activ Control how customers earn points. -Both **Global earning limit** and **Transactions earning limit** can apply at the same time, and the more restrictive condition applies. +Both **Global earning limit** and **Transactions earning limit** can apply at the same time. The more restrictive condition applies. -Defines the overall limit on points a customer can earn: -- **No limit**: Customers can earn an unlimited number of points. -- **Limited**: Customers can't earn more than a defined number. - - **Balance-based**: Limits the maximum number of points a customer can have at any time. - - **Time-based**: Limits how many points a customer can earn within a defined period (day, week, month, quarter, year). +- **No limit** +- **Limited** + - **Balance-based** + - **Time-based** -Defines how many points can be earned in a transaction: -- **No limit**: Customers can earn an unlimited number of points in one transaction. -- **Limited**: - - **Max points earned per transaction**: Customers can't earn more than a defined number. - - **Min amount spent per transaction**: Customers have to spend minimum the defined amount to earn points. +- **No limit** +- **Limited** + - **Max points earned per transaction** + - **Min amount spent per transaction** @@ -191,23 +189,21 @@ Defines how many points can be earned in a transaction: Control how customers spend points. -Both **Global spending limit** and **Transactions spending limit** can apply at the same time, and the more restrictive condition applies. +Both **Global spending limit** and **Transactions spending limit** can apply at the same time. The more restrictive condition applies. -Defines the overall limit on how many points a customer can spend: -- **No limit**: Customers can spend an unlimited number of points in a transaction. -- **Limited** - - **Spending-based**: Limits the total number of points a customer can spend across all transactions. - - **Time-based**: Limits how many points a customer can spend within a defined period (day, week, month, quarter, year). +- **No limit** +- **Limited** + - **Spending-based** + - **Time-based** -Defines how many points can be spent in a single transaction: -- **No limit** -- **Limited** - - Configure **Max points to spend per transaction** +- **No limit** +- **Limited** + - **Max points to spend per transaction** @@ -216,40 +212,67 @@ Defines how many points can be spent in a single transaction: +### Pay with points + +Configure how customers can use points to pay for orders. + +- **Enable pay with points** to allow payments using points + +When enabled, define the conversion formula: + +- **Amount unit**: fixed base unit (1 minor currency unit, for example 1 cent) +- **Points needed**: number of points required to pay for that unit + +The formula result defines how many points are needed to pay for 1 amount unit. + +Example: +- `111` means 111 points pay for 1 unit (for example, 1 cent in USD) + +You can: +- enter a formula manually +- use **Build formula** to create it using the formula builder +- reuse an existing expression in **Expression output** + +Use numeric values or functions such as `ORDER_METADATA("property")` to create dynamic conversion rules. + + +If **Enable pay with points** is selected, the formula is required. + + + + + + ### Refunds -Define how refunds affect points. +Control how refunds affect points. **Spent points refunds** and **Earned points refunds** are applied separately. -Defines whether points used in a transaction are returned after a refund: -- **No refund**: spent points are not returned. -- **Refundable**: - - **Refund all**: All spent points are refunded. - - **Refund by item**: Points related to returned items are refunded. - - **Refund by amount**: Points are returned based on the refunded amount. +- **No refund** +- **Refundable** + - **Refund all** + - **Refund by item** + - **Refund by amount** -Defines whether points earned from a transaction are kept or revoked after a refund: -- **Keep points**: Earned points are not affected. -- **Revoke points**: - - **From balance**: Points are revoked from the active balance. - - **Stop at zero**: Points are revoked until the balance reaches zero. - - **Allow negative**: Points are revoked even if it results in a negative balance. - - **From pending**: Points are revoked from pending points only. +- **Keep points** +- **Revoke points** + - **From balance** + - **Stop at zero** + - **Allow negative** + - **From pending** - Allowing negative balance requires enabling **Allow card balance to go below zero**. If this setting is disabled, **Allow negative** is not available. Revoking from pending requires **Pending points** not set to **Immediate**. - @@ -260,67 +283,116 @@ Revoking from pending requires **Pending points** not set to **Immediate**. +### Metadata + +Define additional properties for the wallet. + +The metadata structure must match the schema defined in **Project settings**. + +The main view displays existing metadata keys and their types. + +- Use **Reload schema** to refresh the list of available properties + +There are two ways to work with metadata: + +- **Add unknown property** + Adds a metadata entry directly in the wallet. + Enter the **property name (key)** and select the **value type**. + The property appears in the list as **unknown** until it is added to the schema. + +- **Add to schema** + Creates a new metadata definition. + This opens the metadata builder, where you define: + - whether the property is **required** or **optional** + - whether it contains **single** or **multiple** values + - the **type** (for example: String, Number, Date, Datetime, Flag, Image URL, Object) + - optional validation rules (for example: length or allowed values) + + After saving, the property: + - is added to the **project metadata schema** + - becomes available in the wallet metadata list + - is stored as a reusable definition + + + +Metadata definitions are managed in **Project settings**. + +You cannot remove metadata from a single wallet. +To remove or edit a property, update the metadata schema in Project settings. + +Changes apply to all wallets using that schema. + + + + + + + ### Summary Review your configuration before saving. -- If everything is valid, **Save** becomes available. -- If something is incompatible, you will see **Action required**. -- Use **Go to step** to return to any section and make changes. -- You can also **Save draft** of the wallet. +- If everything is valid, **Save** becomes available +- If something is incompatible, you will see **Action required** +- Use **Go to step** to return to a section and fix issues +- You can also use **Save draft** -Once saved, the wallet is created and it can be used in loyalty programs. +Once saved, the wallet is created in an **active** state and can be used in loyalty programs. + +If you use **Save draft**, the wallet is saved in a **draft** state and can be completed later. + +## Wallets in loyalty programs -## Create a wallet in a loyalty program +You can create and manage wallets directly while working on a loyalty program in the Designer. -You can also create a wallet while configuring a loyalty program in the Designer. +### Create a wallet in a loyalty program + +To create a wallet within a program, use the **Building Blocks** panel. In the **Building Blocks** panel, use **+** next to **Wallets**. This opens the same wallet builder used in the **Wallets** section. -The wallet is created while you are working inside a program. You can assign it to the program immediately. The wallet is still saved globally and can be reused. +The wallet is created within the program and can be assigned immediately. It is still saved globally and can be reused. -## Use wallets in a program +### Use wallets in a program -In the program Designer, you can assign and manage wallets directly in the program view. +Once a wallet is created or assigned, you can manage it directly in the program view. -Building blocks panel: -- View all available wallets and their status. -- Assign a wallet to the program. -- Create a new wallet using **+**. -- Open a wallet to view its full configuration and manage its status. +In the program Designer, you can: +- view available wallets +- assign a wallet to the program +- create a new wallet using **+** +- open a wallet to view its configuration -**Wallets** section: -- View wallets assigned to the program. -- Edit or unassign a wallet. -- Assign an existing wallet or create a new one using **+**. -- When creating a wallet, you can enter a name and **Save as Draft**, or use **Advanced options** to open the full wallet builder. -- Assign a tier structure to a wallet. +In the **Wallets** section: +- view assigned wallets +- edit or unassign a wallet +- assign an existing wallet or create a new one +Wallets are global objects. Assigning them to a program does not create a copy. -Wallets are global objects, so assigning them to a program does not create a copy. - -Changes to a wallet apply everywhere it is used. - -Unassigning a wallet removes it from the program but it does not delete it. +Changes apply everywhere the wallet is used. +Unassigning a wallet removes it from the program but does not delete it. ## Managing wallets Go to **Loyalty hub** > **Wallets**. -After you create a wallet, it appears in the **Wallets** sectio. +After you create a wallet, it appears in the **Wallets** section. Use the **three-dot menu (⋮)** to: - - Activate or deactivate a wallet - - Edit the wallet - - Delete the wallet +- activate or deactivate a wallet +- edit the wallet +- delete the wallet + +Active wallets can be used in loyalty programs. Deactivated wallets remain available but cannot be used until reactivated. -Click on a wallet to check its configuration details. +Click a wallet to view its configuration details. \ No newline at end of file From 823d9dd1c4772eb7b2ab5b2f3ab11e6faf1c94fa Mon Sep 17 00:00:00 2001 From: MaciekVoucherify <130568368+MaciekVoucherify@users.noreply.github.com> Date: Wed, 6 May 2026 16:48:50 +0200 Subject: [PATCH 5/6] Update point-wallet-builder.mdx --- documentation/build/point-wallet-builder.mdx | 354 +++++++++++-------- 1 file changed, 214 insertions(+), 140 deletions(-) diff --git a/documentation/build/point-wallet-builder.mdx b/documentation/build/point-wallet-builder.mdx index 9cec12493..6f3f5a718 100644 --- a/documentation/build/point-wallet-builder.mdx +++ b/documentation/build/point-wallet-builder.mdx @@ -4,17 +4,17 @@ description: Configure and manage point wallets keywords: ['point wallet', 'wallet builder', 'pending points', 'point expiration', 'pay with points', 'earning limits', 'spending limits'] --- +import MetaConfig from '/snippets/metadata-configuration.mdx' + Point wallets control how points are earned, stored, spent, and expire. -Go to **Loyalty hub** > **Wallets** and use **Create wallet**. +Go to **Loyalty hub** > **Wallets** to **Create wallet**. ## Create a wallet -The wallet builder walks you through several steps. Each step controls a specific part of the points logic. - -Some settings depend on each other. If something is incompatible, you will see an **Action required** message. +Some settings depend on each other. If something is incompatible, you will see an Action required message. -You can also use **Save draft** and finish the wallet setup later. +You can also **Save draft** and finish the wallet setup later. @@ -23,13 +23,13 @@ You can also use **Save draft** and finish the wallet setup later. ### General settings Define the basic behavior of the wallet: -- **Type** - **Individual**: points are assigned to individual customers -- **Allow card balance to go below zero**: allows customers' point balance to go below zero +- **Type** - **Individual**: points are assigned to individual customers. +- **Allow card balance to go below zero**: customers' point balance can go below zero. -This setting affects refunds and points expiration. -Some options, such as revoking points below zero or expiration rules, depend on it. +This setting affects refunds and points expiration. Some options, such as revoking points below zero or expiration rules, depend on it. + @@ -39,16 +39,18 @@ Some options, such as revoking points below zero or expiration rules, depend on ### Code config Define how wallet-related codes are generated: -- **Charset**: select a predefined set or define your own -- **Code length**: defines how many random characters the code contains -- **Pattern**: create a custom structure using placeholders -- **#** is replaced with a random character from the selected charset and overrides code length -- **Prefix** and **Postfix**: optional values added at the beginning or end of the code +- **Charset**: choose a predefined set, for example alphanumeric, or define your own. +- **Code length**: defines how many random characters the code contains. +- **Pattern**: create a custom structure using placeholders. +- **#**: replace with a random character from the selected charset. Overrides the code length. +- **Prefix** and **Postfix**: optional values added at the beginning or end of the code. **Code preview** shows an example of a generated code. + The number of possible unique codes depends on the selected charset and code length. + @@ -62,45 +64,53 @@ Define when points expire. + Points never expire. No additional setup is required. + + Points expire after a defined period from when they are earned. -- **Expiration period** -- **Period unit**: Day (max 90), Month (max 12), Year (max 5) -- **Expiration rounding**: No rounding, End of month, End of quarter, End of half-year, End of year, End of particular month +- **Expiration period**: how long points stay valid after earning. +- **Period unit**: day (max 90), month (max 12), year (max 5). +- **Expiration rounding**: round the expiration to the nearest period. Possible settings – **No rounding**, **End of month**, **End of quarter**, **End of half-year**, **End of year**, **End of particular month**. + + Points expire on selected dates each year. -Select **Month** and **Day of the month** and use **Add date**. +Select **Month** and **Day of the month** to **Add date**. Add at least one date. You can define up to 20 expiration dates. + + Points expire after a period of inactivity. -- **Inactivity period** -- **Period unit**: Day (max 90), Month (max 12), Year (max 1) +- **Inactivity period**: how long points remain valid without activity. +- **Period unit**: day (max 90), month (max 12), year (max 1). Activity types: -- **Earning activity** -- **Spending activity** -- **Custom activity**: add up to 20 custom events +- **Earning activity**: resets the inactivity timer when customers earn points. +- **Spending activity**: resets the inactivity timer when customers spend points. +- **Custom activity**: resets the inactivity timer based on selected custom events. You can add up to 20 custom events. + +Select at least one activity type. Only the selected activities reset the inactivity timer. -Select at least one activity type. Only selected activities reset the inactivity timer. -Points expiration is available only when **Allow card balance to go below zero** is disabled. -If negative balance is enabled, only **No expiration** is available. +Points expiration is available only when **Allow card balance to go below zero** is disabled. If negative balance is enabled, only **No expiration – points never expire** is available. + @@ -114,43 +124,51 @@ Define when earned points become available. + Points activate immediately after earning. + + Points activate after a defined time from when they are earned. -- **Waiting period** -- **Period unit**: Day (max 90), Month (max 12), Year (max 1) +- **Waiting period**: how long points remain pending before activation. +- **Period unit**: day (max 90), month (max 12), year (max 1). + + Points activate on selected calendar dates. -Select **Month** and **Day of the month** and use **Add date**. +Select **Month** and **Day of the month** to **Add date**. Add at least one date. You can define up to 20 activation dates. + -Points activate after selected events occur and the defined period passes. -- **Cancellation period** -- **Period unit**: Day (max 90), Month (max 12), Year (max 1) +Points remain pending after selected events occur and activate after the defined cancellation period passes. + +- **Cancellation period**: defines how long points remain pending before activation is finalized. +- **Period unit**: day (max 90), month (max 12), year (max 1). -Select **Custom event** and use **Add activity**. +Select **Custom event** and use **Add activity** to define which custom events trigger point activation. Add at least one custom event. You can define up to 20 custom events. + -Pending points can't be spent until they are activated. Activation moves points from pending to the active balance. +Pending points can't be spent until they're activated. Activation moves points from pending to the active balance. -If pending points are set to **Immediate**, you cannot use **From pending** in **Refunds → Earned points refunds**, because points are activated right away. -Choose a different pending points type if you need to revoke points before activation. +If pending points are set to **Immediate**, you cannot use **From pending** in **Refunds → Earned points refunds**, because points are activated right away. Choose a different pending points type if you need to revoke points before activation. + @@ -161,22 +179,46 @@ Choose a different pending points type if you need to revoke points before activ Control how customers earn points. -Both **Global earning limit** and **Transactions earning limit** can apply at the same time. The more restrictive condition applies. +Both **Global earning limit** and **Transactions earning limit** can apply at the same time, and the more restrictive condition applies. -- **No limit** -- **Limited** - - **Balance-based** - - **Time-based** + +Defines the overall limit on points a customer can earn. + +- **No limit**: customers can earn an unlimited number of points. + +- **Limited**: customers can earn points only within the configured limits. + +When **Limited** is selected, configure the limit type: + +- **Balance-based**: limits the maximum number of points a customer can have at any time. + + **Max balance**: defines the maximum active point balance a customer can reach. + +- **Time-based**: limits how many points a customer can earn within a selected time period. + + **Period unit**: defines the earning period (day, week, month, quarter, year). + + **Max points per period**: defines the maximum number of points a customer can earn during the selected period. + -- **No limit** -- **Limited** - - **Max points earned per transaction** - - **Min amount spent per transaction** + +Defines how many points can be earned in a transaction. + +- **No limit**: customers can earn an unlimited number of points in one transaction. + +- **Limited**: customers can't earn more than the configured transaction limits. + +When **Limited** is selected, configure: + +**Max points earned per transaction**: defines the maximum number of points a customer can earn in a single transaction. + +**Min amount spent per transaction**: defines the minimum transaction amount required to earn points. + @@ -189,21 +231,44 @@ Both **Global earning limit** and **Transactions earning limit** can apply at th Control how customers spend points. -Both **Global spending limit** and **Transactions spending limit** can apply at the same time. The more restrictive condition applies. +Both **Global spending limit** and **Transactions spending limit** can apply at the same time, and the more restrictive condition applies. -- **No limit** -- **Limited** - - **Spending-based** - - **Time-based** + +Defines the overall limit on how many points a customer can spend. + +- **No limit**: customers can spend an unlimited number of points. + +- **Limited**: customers can spend points only within the configured limits. + +When **Limited** is selected, configure the limit type: + +- **Spending-based**: limits the total number of points a customer can spend across all transactions. + + **Max lifetime spending**: defines the maximum total number of points a customer can spend. + +- **Time-based**: limits how many points a customer can spend within a selected time period. + + **Period unit**: defines the spending period (day, week, month, quarter, year). + + **Max points per period**: defines the maximum number of points a customer can spend during the selected period. + -- **No limit** -- **Limited** - - **Max points to spend per transaction** + +Defines how many points can be spent in a single transaction. + +- **No limit**: customers can spend an unlimited number of points in a single transaction. + +- **Limited**: customers can spend points only within the configured transaction limit. + +When **Limited** is selected, configure: + +**Max points to spend per transaction**: defines the maximum number of points a customer can spend in a single transaction. + @@ -216,29 +281,24 @@ Both **Global spending limit** and **Transactions spending limit** can apply at Configure how customers can use points to pay for orders. -- **Enable pay with points** to allow payments using points +**Enable pay with points** to allow payments using points. When enabled, define the conversion formula: -- **Amount unit**: fixed base unit (1 minor currency unit, for example 1 cent) -- **Points needed**: number of points required to pay for that unit +- **Amount unit**: fixed base unit (1 minor currency unit, for example 1 cent). This value cannot be edited. +- **Points needed**: number of points required to pay for that unit. The formula result defines how many points are needed to pay for 1 amount unit. -Example: -- `111` means 111 points pay for 1 unit (for example, 1 cent in USD) +For example, `111` means 111 points pay for 1 unit (for example, 1 cent in USD). You can: -- enter a formula manually -- use **Build formula** to create it using the formula builder -- reuse an existing expression in **Expression output** +- enter a formula manually +- use **Build formula** to create it using the formula builder +- reuse an existing expression in **Expression output** Use numeric values or functions such as `ORDER_METADATA("property")` to create dynamic conversion rules. - -If **Enable pay with points** is selected, the formula is required. - - @@ -252,77 +312,60 @@ Control how refunds affect points. -- **No refund** -- **Refundable** - - **Refund all** - - **Refund by item** - - **Refund by amount** - - -- **Keep points** -- **Revoke points** - - **From balance** - - **Stop at zero** - - **Allow negative** - - **From pending** +Defines whether points used in a transaction are returned after a refund. - -Allowing negative balance requires enabling **Allow card balance to go below zero**. +- **No refund**: spent points are not returned. -If this setting is disabled, **Allow negative** is not available. +- **Refundable**: spent points can be returned after a refund. -Revoking from pending requires **Pending points** not set to **Immediate**. - +When **Refundable** is selected, configure the refund type: - +**Refund all**: returns all spent points. - +**Refund by item**: returns points related only to refunded items. - +**Refund by amount**: returns points proportionally to the refunded amount. - + -### Metadata + + +Defines whether points earned from a transaction are kept or revoked after a refund. -Define additional properties for the wallet. +- **Keep points**: earned points remain unchanged after the refund. -The metadata structure must match the schema defined in **Project settings**. +- **Revoke points**: earned points are removed after the refund. -The main view displays existing metadata keys and their types. +When **Revoke points** is selected, configure the revocation source: -- Use **Reload schema** to refresh the list of available properties +- **From balance**: revokes points from the active balance. -There are two ways to work with metadata: +- **From pending**: revokes points only from pending points. -- **Add unknown property** - Adds a metadata entry directly in the wallet. - Enter the **property name (key)** and select the **value type**. - The property appears in the list as **unknown** until it is added to the schema. +When **From balance** is selected, configure the revocation behavior: -- **Add to schema** - Creates a new metadata definition. - This opens the metadata builder, where you define: - - whether the property is **required** or **optional** - - whether it contains **single** or **multiple** values - - the **type** (for example: String, Number, Date, Datetime, Flag, Image URL, Object) - - optional validation rules (for example: length or allowed values) + **Stop at zero**: points are revoked until the balance reaches zero. - After saving, the property: - - is added to the **project metadata schema** - - becomes available in the wallet metadata list - - is stored as a reusable definition + **Allow negative**: points are revoked even if the balance becomes negative. -Metadata definitions are managed in **Project settings**. +Allowing negative balance requires enabling **Allow card balance to go below zero**. If this setting is disabled, **Allow negative** is not available. Revoking from pending requires **Pending points** not set to **Immediate**. -You cannot remove metadata from a single wallet. -To remove or edit a property, update the metadata schema in Project settings. + -Changes apply to all wallets using that schema. + - + + + + + + +### Metadata + + @@ -332,18 +375,18 @@ Changes apply to all wallets using that schema. Review your configuration before saving. -- If everything is valid, **Save** becomes available -- If something is incompatible, you will see **Action required** -- Use **Go to step** to return to a section and fix issues -- You can also use **Save draft** +- If everything is valid, **Save** becomes available. +- If something is incompatible, you will see Action required. +- Use **Go to step** to return to any section and make changes. +- You can also **Save draft** of the wallet. -Once saved, the wallet is created in an **active** state and can be used in loyalty programs. +Once saved, the wallet is created in an active state and can be used in loyalty programs. -If you use **Save draft**, the wallet is saved in a **draft** state and can be completed later. +If you use **Save draft**, the wallet is saved in draft status and can be completed later. ## Wallets in loyalty programs @@ -351,35 +394,32 @@ You can create and manage wallets directly while working on a loyalty program in ### Create a wallet in a loyalty program -To create a wallet within a program, use the **Building Blocks** panel. - In the **Building Blocks** panel, use **+** next to **Wallets**. This opens the same wallet builder used in the **Wallets** section. -The wallet is created within the program and can be assigned immediately. It is still saved globally and can be reused. +The wallet is created while you are working inside a program. You can assign it to the program immediately. The wallet is still saved globally and can be reused. ### Use wallets in a program -Once a wallet is created or assigned, you can manage it directly in the program view. +In the program Designer, you can assign and manage wallets directly in the program view. -In the program Designer, you can: -- view available wallets -- assign a wallet to the program -- create a new wallet using **+** -- open a wallet to view its configuration +In the **Building Blocks** panel, you can: +- view all available wallets and their status +- assign a wallet to the program +- create a new wallet using **+** +- open a wallet to view its full configuration and manage its status -In the **Wallets** section: -- view assigned wallets -- edit or unassign a wallet -- assign an existing wallet or create a new one +In the **Wallets** section, you can: +- view wallets assigned to the program +- edit or unassign a wallet +- assign an existing wallet or create a new one +- assign a tier structure to a wallet -Wallets are global objects. Assigning them to a program does not create a copy. -Changes apply everywhere the wallet is used. +Wallets are global objects, so assigning them to a program does not create a copy. Changes to a wallet apply everywhere it is used. Unassigning a wallet removes it from the program but does not delete it. -Unassigning a wallet removes it from the program but does not delete it. ## Managing wallets @@ -389,10 +429,44 @@ Go to **Loyalty hub** > **Wallets**. After you create a wallet, it appears in the **Wallets** section. Use the **three-dot menu (⋮)** to: -- activate or deactivate a wallet -- edit the wallet -- delete the wallet +- activate or deactivate a wallet +- edit the wallet +- delete the wallet + +Active wallets can be used in loyalty programs. + +Deactivated wallets remain available but cannot be used until reactivated. + +Click on a wallet to check its configuration details. + +## Related features + +Wallets can be combined with the following features to build more advanced loyalty program flows. + + + + + +You can use [custom events](/prepare/custom-events#custom-events) to trigger Voucherify logic based on events defined in your integration. + +Custom events can be used for segmentation, validation rules, distributions, loyalty automation, and selected event-based configurations. + + + + + +Wallets can be assigned directly to loyalty programs in the [Designer](placeholder). + +The same wallet can be reused across multiple programs. + + + + + +You can assign a [tier structure](placeholder) to a wallet from the program view. + +Tier structures can be used together with wallets to build tier-based loyalty programs. -Active wallets can be used in loyalty programs. Deactivated wallets remain available but cannot be used until reactivated. + -Click a wallet to view its configuration details. \ No newline at end of file + \ No newline at end of file From b2da343374f92693e7a13755c3e5830bd7bcc7a2 Mon Sep 17 00:00:00 2001 From: MaciekVoucherify <130568368+MaciekVoucherify@users.noreply.github.com> Date: Mon, 15 Jun 2026 14:13:22 +0200 Subject: [PATCH 6/6] Update point-wallet-builder.mdx --- documentation/build/point-wallet-builder.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/documentation/build/point-wallet-builder.mdx b/documentation/build/point-wallet-builder.mdx index 6f3f5a718..497687881 100644 --- a/documentation/build/point-wallet-builder.mdx +++ b/documentation/build/point-wallet-builder.mdx @@ -111,6 +111,8 @@ Select at least one activity type. Only the selected activities reset the inacti Points expiration is available only when **Allow card balance to go below zero** is disabled. If negative balance is enabled, only **No expiration – points never expire** is available. +Time-related settings in wallet configuration use the time zone configured in project settings. They are not calculated in UTC. +