diff --git a/documentation/build/point-wallet-builder.mdx b/documentation/build/point-wallet-builder.mdx
new file mode 100644
index 000000000..497687881
--- /dev/null
+++ b/documentation/build/point-wallet-builder.mdx
@@ -0,0 +1,474 @@
+---
+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']
+---
+
+import MetaConfig from '/snippets/metadata-configuration.mdx'
+
+Point wallets control how points are earned, stored, spent, and expire.
+
+Go to **Loyalty hub** > **Wallets** to **Create wallet**.
+
+## Create a wallet
+
+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.
+
+
+
+
+
+### General settings
+
+Define the basic behavior of the wallet:
+- **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.
+
+
+
+
+
+
+
+### 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.
+- **#**: 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.
+
+
+
+
+
+
+
+### 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**: 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** 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**: how long points remain valid without activity.
+- **Period unit**: day (max 90), month (max 12), year (max 1).
+
+Activity types:
+- **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.
+
+
+
+
+
+
+
+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.
+
+
+
+
+
+
+
+### 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** and **Day of the month** to **Add date**.
+
+Add at least one date. You can define up to 20 activation dates.
+
+
+
+
+
+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** 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'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.
+
+
+
+
+
+
+
+### Earning limits
+
+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.
+
+
+
+
+
+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.
+
+
+
+
+
+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.
+
+
+
+
+
+
+
+
+
+### 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.
+
+- **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.
+
+
+
+
+
+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.
+
+
+
+
+
+
+
+
+
+### 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). 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.
+
+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**
+
+Use numeric values or functions such as `ORDER_METADATA("property")` to create dynamic conversion rules.
+
+
+
+
+
+### Refunds
+
+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**: spent points can be returned after a refund.
+
+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.
+
+
+
+
+
+Defines whether points earned from a transaction are kept or revoked after a refund.
+
+- **Keep points**: earned points remain unchanged after the refund.
+
+- **Revoke points**: earned points are removed after the refund.
+
+When **Revoke points** is selected, configure the revocation source:
+
+- **From balance**: revokes points from the active balance.
+
+- **From pending**: revokes points only from pending points.
+
+When **From balance** is selected, configure the revocation behavior:
+
+ **Stop at zero**: points are revoked until the balance reaches zero.
+
+ **Allow negative**: points are revoked even if the balance becomes negative.
+
+
+
+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**.
+
+
+
+
+
+
+
+
+
+
+
+### Metadata
+
+
+
+
+
+
+
+### 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.
+
+
+
+
+
+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 draft status and can be completed later.
+
+## Wallets in loyalty programs
+
+You can create and manage wallets directly while working on a loyalty program in the Designer.
+
+### Create a wallet in a loyalty program
+
+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.
+
+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, 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, 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.
+
+Use the **three-dot menu (⋮)** to:
+- 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.
+
+
+
+
\ 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",