diff --git a/docs.json b/docs.json
index 2f5ef084..64803625 100644
--- a/docs.json
+++ b/docs.json
@@ -1,7 +1,7 @@
{
"$schema": "https://mintlify.com/docs.json",
- "theme": "mint",
- "name": "Mint Starter Kit",
+ "theme": "willow",
+ "name": "Voucherify test documentation",
"colors": {
"primary": "#122460",
"light": "#07C983",
@@ -35,7 +35,8 @@
"guides/development/API-Endpoints",
"guides/development/API-Optimization",
"guides/development/API-Reference",
- "guides/development/API-Version-Upgrades"
+ "guides/development/API-Version-Upgrades",
+ "guides/development/Distributions"
]
},
{
diff --git a/guides/campaign_recipes/Locking-Validation-Session.mdx b/guides/campaign_recipes/Locking-Validation-Session.mdx
index db001a7a..d9222c70 100644
--- a/guides/campaign_recipes/Locking-Validation-Session.mdx
+++ b/guides/campaign_recipes/Locking-Validation-Session.mdx
@@ -1,22 +1,21 @@
---
title: "Locking Validation Session"
description: "Temporary lock the voucher's usage until redemption is successful."
-
-
---
The validation and redemption mechanisms always work in a transactional way. As a result, the voucher's usage is registered permanently once redemption is successful. By using the session feature, you can temporarily record (lock) the voucher usage after the voucher has been validated.
The established session is released when one of the following events happens:
-* Expiration time passes
-* Redemption is being registered for the session
-* Manual release using a dedicated API endpoint (for vouchers only: [Release Validation Session](ref:release-validation-session))
-* Manual release using the [Validations Manager in the Dashboard](https://support.voucherify.io/article/16-dashboard-sections#validations) to unlock sessions.
+- Expiration time passes
+- Redemption is being registered for the session
+- Manual release using a dedicated API endpoint (for vouchers only: [Release Validation Session](ref:release-validation-session))
+- Manual release using the [Validations Manager in the Dashboard](https://support.voucherify.io/article/16-dashboard-sections#validations) to unlock sessions.
Once the session is established, the API returns a unique session key. The key must be used with each of the following validation or redemption requests to clearly identify the session. Multiple requests with the same key will always override existing session values.
By default, the number of available validation sessions is equal to the Code redemption limit set in the campaign manager. For example:
+
- If the code redemption limit is set to `4`, Voucherify will be able to lock up to four sessions. Next sessions will result in the `quantity_exceeded` error.
- If the code redemption limit is set to `unlimited`, Voucherify will allow any number of sessions.
@@ -26,12 +25,12 @@ By default, the number of available validation sessions is equal to the Code red
You can establish the locking session while validating the code. Put the `session` object in your request by following the session object reference.
-| **Parameter** | **Description** | **Example** |
-| :-------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------ |
-| session.type `string` **required** | Type of the session. Required to establish a new session. Supported session types are listed in the table at the end of this guide. | "session":`{"type": "LOCK"}` |
-| session.key `string` **optional** | Unique session identifier. | "session": `{"key": "ssn_yQGMTeKBSw8OOuFPwlBEjzGy8d8VA9Ts","type": "LOCK"}` |
-| session.ttl_unit `string` **optional** Default value for session is 7 days | Defines the type of unit for session time. Allowed values: `DAYS`, `HOURS`, `MICROSECONDS`, `MILLISECONDS`, `MINUTES`, `NANOSECONDS`, `SECONDS` | "session": `{"type": "LOCK","ttl": 7,"ttl_unit": "DAYS"}` |
-| session.ttl `number`**optional** Default value for session is 7 days | Value for the period of time that the session is active. Units for this paremter are defines by session.ttl_unit | "session": `{"type": "LOCK","ttl": 7,"ttl_unit": "DAYS"}` |
+| **Parameter** | **Description** | **Example** |
+| :------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------- |
+| session.type `string` **required** | Type of the session. Required to establish a new session. Supported session types are listed in the table at the end of this guide. | "session":`{"type": "LOCK"}` |
+| session.key `string` **optional** | Unique session identifier. | "session": `{"key": "ssn_yQGMTeKBSw8OOuFPwlBEjzGy8d8VA9Ts","type": "LOCK"}` |
+| session.ttl_unit `string` **optional** Default value for session is 7 days | Defines the type of unit for session time. Allowed values: `DAYS`, `HOURS`, `MICROSECONDS`, `MILLISECONDS`, `MINUTES`, `NANOSECONDS`, `SECONDS` | "session": `{"type": "LOCK","ttl": 7,"ttl_unit": "DAYS"}` |
+| session.ttl `number`**optional** Default value for session is 7 days | Value for the period of time that the session is active. Units for this paremter are defines by session.ttl_unit | "session": `{"type": "LOCK","ttl": 7,"ttl_unit": "DAYS"}` |
To link a request with the given session, always use the same session key for session-related validation and redemption requests. You can use your own session key or the system will generate one for you once the session option is enabled with the request.
@@ -71,6 +70,7 @@ To link a request with the given session, always use the same session key for se
}
}
```
+
```json Response
{
"valid": true,
@@ -133,7 +133,7 @@ To link a request with the given session, always use the same session key for se
```
> 📘 Default session time
->
+>
> If you do not establish a session timeframe by passing the `session.ttl` and `session.ttl_unit`, it will be active for 7 days.
### Step 2: Redeem the code with the session key
@@ -166,6 +166,7 @@ When redeeming the code, the session object needs to define `session.type` and `
}
}
```
+
```json Response
{
"redemptions": [
@@ -245,27 +246,25 @@ When redeeming the code, the session object needs to define `session.type` and `
### Step 3: Track redemption
-If the redemption request includes a proper `session.key` value, the request is validated and the redemption is executed. When Voucherify registers a new redemption for the locked resource, the session is automatically released.
-
-
+If the redemption request includes a proper `session.key` value, the request is validated and the redemption is executed. When Voucherify registers a new redemption for the locked resource, the session is automatically released.
If you need to remove an established session manually, use the [Release Validation Session](ref:release-validation-session) endpoint.
> 👍 Locking Session in Short
->
+>
> Registering a session will record a temporary usage for the specified timeframe. This means it will influence other incoming validation and redemption requests until the session is released.
->
+>
> Once redemption is successful the session is removed automatically.
## Session Keys
The following table presents the type of sessions that can be established.
-| **Session Type** | **Behaviour** |
-| :--------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| **Session Type** | **Behaviour** |
+| :--------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| LOCK | Locks the following parameters within the session:- redemption quantity by 1 - redemption gift credits specified with the requests - redemption loyalty points specified with the request |
-You can always release established sessions by calling [Release Validation Session](ref:release-validation-session) endpoint.
+You can always release established sessions by calling [Release Validation Session](ref:release-validation-session) endpoint.
> 📘 Postman Collection
>
diff --git a/guides/development/API-Version-Upgrades.mdx b/guides/development/API-Version-Upgrades.mdx
index 0add62f9..7eced3cd 100644
--- a/guides/development/API-Version-Upgrades.mdx
+++ b/guides/development/API-Version-Upgrades.mdx
@@ -8,13 +8,13 @@ hidden: false
order: 200
---
-Your API version controls the API and webhook behavior you see (e.g., what properties you see in responses, what parameters you’re permitted to send in requests, etc.). Your version is set the first time you make an API request. When we change the API in a backwards-incompatible way, we release a new dated version, but to avoid breaking your code, we don’t change your version until you’re ready to upgrade.
+Your API version controls the API and webhook behavior you see (e.g., what properties you see in responses, what parameters you're permitted to send in requests, etc.). Your version is set the first time you make an API request. When we change the API in a backwards-incompatible way, we release a new dated version, but to avoid breaking your code, we don't change your version until you're ready to upgrade.
---
## How can I upgrade my API?
-If you’re running an older version, you’ll want to upgrade to take advantage of the latest API. For changing your API version, go to your Project Settings and click** Upgrade to the latest API version**.
+If you're running an older version, you'll want to upgrade to take advantage of the latest API. For changing your API version, go to your Project Settings and click** Upgrade to the latest API version**.
---
@@ -34,7 +34,7 @@ If you’re running an older version, you’ll want to upgrade to take advantage
| Version | Description |
| :--------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| v2017-04-05 version deprecated | - Responses from the voucher and campaign listing methods were moved to the new object structure. Methods will now render specific properties for a total count and an array of objects.- Introduced validation for listing parameters: `limit` and `page`. A limit can range between 1 and 100 items.- Get voucher/campaign methods render **validation rules** related to the voucher object. They can be inherited from a campaign.- Created an API method for getting a campaign identified by name. |
-| v2017-04-20 version deprecated | Response from the voucher publish method was moved to the new object structure. Returned voucher details are wrapped by transaction object describing publication event:{ "id": "pub_whQzIndYoyZoqiLEKN0s04GK", "object": "publication", "created_at": "2017-04-20T13:18:01Z", "customer_id": "cust_mOjhGypfbqch0v3DpAA9LDXj", "tracking_id": "janusz", "channel": "API", "metadata": { "test":true }, "voucher": {} } |
+| v2017-04-20 version deprecated | Response from the voucher publish method was moved to the new object structure. Returned voucher details are wrapped by transaction object describing publication event:`{ "id": "pub_whQzIndYoyZoqiLEKN0s04GK", "object": "publication", "created_at": "2017-04-20T13:18:01Z", "customer_id": "cust_mOjhGypfbqch0v3DpAA9LDXj", "tracking_id": "janusz", "channel": "API", "metadata": { "test":true }, "voucher": {} } ` |
| v2018-08-01 | This version introduces a new model for building Validation Rules. The extended mechanism gives an advanced configuration for making promo conditions.The modifications in this version affect the following API methods:- `List Promotion Tiers`: replaced an object describing conditions by a list of records describing an association between rule and tier - `validation_rule_assignments`- `List Promotion Tiers for campaign` - as above- `Promotion Tier Object` - as above- `Validation Rule Object` - structure reorganized to handle advanced rules- `Validation Rule Assignment Object` - added object describing a relation between rules and linked promotions- `Validation Rules` - modified data modelThe mechanics and details of Validation Rules builder are described in the Help Center. |
| Webhooks v2024-01-01 | In [v20231205](https://support.voucherify.io/article/23-whats-new-in-voucherify#v20231205) release, a new version of webhooks was introduced. The new webhooks are available for distribution and the events listed in Project settings. There, you can switch from the old v2018-01-01 webhook version to the new one. The accounts created after the v20231205 release can use only the new version. |
diff --git a/guides/development/Examples.mdx b/guides/development/Examples.mdx
deleted file mode 100644
index 131c2d57..00000000
--- a/guides/development/Examples.mdx
+++ /dev/null
@@ -1,124 +0,0 @@
----
-title: Examples
-description: Here are some exemplary integrations and third-party guides for you to learn more about Voucherify.
-categorySlug: development
-slug: examples
-type: basic
-hidden: true
-order: 160
----
-
-## Sample workflows
-
-[block:tutorial-tile]
-{
- "backgroundColor": "#018FF4",
- "emoji": "📗",
- "id": "6374980e181abe0094145ed5",
- "link": "https://docs.voucherify.io/v2018-08-01/recipes/fixed-code-voucher-redeemable-once-per-customer",
- "slug": "fixed-code-voucher-redeemable-once-per-customer",
- "title": "Fixed-code voucher redeemable once per customer"
-}
-[/block]
-[block:tutorial-tile]
-{
- "backgroundColor": "#018FF4",
- "emoji": "📗",
- "id": "6375002bf20a2b00339b3ab0",
- "link": "https://docs.voucherify.io/v2018-08-01/recipes/unique-promo-codes-with-discount-for-specific-product",
- "slug": "unique-promo-codes-with-discount-for-specific-product",
- "title": "Unique promo codes with discount for specific product"
-}
-[/block]
-[block:tutorial-tile]
-{
- "backgroundColor": "#018FF4",
- "emoji": "📗",
- "id": "6374e8000a86e600176d7034",
- "link": "https://docs.voucherify.io/v2018-08-01/recipes/cart-level-promotion-with-tiers-based-on-total-order-value",
- "slug": "cart-level-promotion-with-tiers-based-on-total-order-value",
- "title": "Cart-level promotion with tiers based on total order value"
-}
-[/block]
-[block:tutorial-tile]
-{
- "backgroundColor": "#018FF4",
- "emoji": "📗",
- "id": "637538f067e42a00168fe975",
- "link": "https://docs.voucherify.io/v2018-08-01/recipes/gift-card-campaign-for-vip-customers",
- "slug": "gift-card-campaign-for-vip-customers",
- "title": "Gift card campaign for VIP customers"
-}
-[/block]
-[block:tutorial-tile]
-{
- "backgroundColor": "#018FF4",
- "emoji": "📗",
- "id": "63753be05ea05e000fd42ade",
- "link": "https://docs.voucherify.io/v2018-08-01/recipes/retrieving-applicable-vouchers",
- "slug": "retrieving-applicable-vouchers",
- "title": "Retrieving applicable vouchers"
-}
-[/block]
-[block:tutorial-tile]
-{
- "backgroundColor": "#018FF4",
- "emoji": "📗",
- "id": "63753c39476278001de69b83",
- "link": "https://docs.voucherify.io/v2018-08-01/recipes/multi-tiered-referral-program",
- "slug": "multi-tiered-referral-program",
- "title": "Multi-tiered referral program"
-}
-[/block]
-[block:tutorial-tile]
-{
- "backgroundColor": "#018FF4",
- "emoji": "📗",
- "id": "63754562f9ffcc0017e3d584",
- "link": "https://docs.voucherify.io/v2018-08-01/recipes/multi-tiered-loyalty-program",
- "slug": "multi-tiered-loyalty-program",
- "title": "Multi-tiered loyalty program"
-}
-[/block]
-
-## Sample integrations build by our team
-
-🧑💻Voucherify integrated with the checkout view
-* Node.js, Vanilla JS — [Github](https://github.com/voucherifyio/voucherify-examples) | [Replit](https://replit.com/@Voucherify/Voucherify-Starter-UI)
-* Next.js, TypeScript — [Github](https://github.com/voucherifyio/voucherify-examples-next) | [Replit] (https://replit.com/@Voucherify/Voucherify-Starter-UI-with-NEXTjs-and-Typescript)
-
-
-
-
-🧑💻 Voucherify x [commercetools](https://commercetools.com) integration based on [Sunrise SPA (Vue.js)](https://github.com/commercetools/sunrise-spa) frontend — [Github](https://github.com/voucherifyio/sunrise-for-commerce-tools-integration/)
-
-
-
-
-## Postman test cases
-
-The list of API requests examples, it covers simple calls and more complex promo scenarios.
-
-[](https://www.postman.com/voucherify/workspace/voucherify-s-public-workspace/collection/31663208-927de30f-b9ba-4723-a7ad-9984d835d939)
-
-To run it on your account, you should provide your **[sandbox](doc:testing)** application keys in the environment and enable client-side operations in Project Settings (remember to whitelist the requests with `*` in the client-side settings section).
-
-
-
-
-## Voucherify.js
-
-To manage promotional activities on the frontend, consider using Voucherify open source web SDK – [JS](https://github.com/voucherifyio/voucherify-js-sdk). Here is a couple of [examples](https://github.com/voucherifyio/voucherify-js-sdk/tree/main/examples) demonstrating its capabilities:
-
-
-
-
-## Figma Promo UI Kits
-
-Looking for ready designs for the best promotions experience in your e-commerce store? Check out our 100% customizable UI kit with ready-to-use components based on the best practices for usability:
-
-* [Download Coupon & Promotions UI Kit on Figma](https://www.figma.com/community/file/1100356622702326488)
-* [Download Referral UI Kit on Figma](https://www.figma.com/community/file/1039555483777372722)
-
-
-
diff --git a/guides/development/SDKs.mdx b/guides/development/SDKs.mdx
deleted file mode 100644
index a3ca8105..00000000
--- a/guides/development/SDKs.mdx
+++ /dev/null
@@ -1,273 +0,0 @@
----
-title: "SDKs"
-description:
-categorySlug: development
-slug: sdks
-type: basic
-hidden: false
-order: 80
----
-
-## Get your library
-
-
-[block:html]
-{
- "html": "
\n
\n\n
\n \n
\n\n
\n\n
\n\n
\n\n
\n
\n\n"
-}
-[/block]
-
----
-
-> 📘 Contribute
->
-> Voucherify developers constantly improve Voucherify's RESTful API, which you can use to integrate with your systems. The SDKs are open source and are mostly developed with the help of the community of our clients and partners. Please feel free to contribute and provide feedback by submitting a pull request on our [GitHub repository](https://github.com/voucherifyio/).
-
----
-## JS
-
-JS is **the latest** JavaScript and node.js SDK.
-
-```shell Shell
-npm install @voucherify/sdk
-```
-
-
-[block:embed]
-{
- "html": false,
- "url": "https://github.com/voucherifyio/voucherify-js-sdk",
- "title": "voucherifyio/voucherify-js-sdk",
- "favicon": "https://github.com/favicon.ico",
- "image": "https://opengraph.githubassets.com/c2ab0e666480a54ee4fbb8d4486542059e8750fbe31dbdecbdc2b1a7930fb95c/voucherifyio/voucherify-js-sdk"
-}
-[/block]
-
----
-## Java
-
-Grab the SDK via Maven:
-
-```xml XML
-
- pl.rspective.voucherify.client
- voucherify-java-sdk
- 2.4.0
-
-```
-
-or via Gradle:
-
-`compile 'pl.rspective.voucherify.client:voucherify-java-sdk:2.4.0'`
-
-
-[block:embed]
-{
- "html": false,
- "url": "https://github.com/voucherifyio/voucherify-java-sdk",
- "title": "voucherifyio/voucherify-java-sdk",
- "favicon": "https://github.com/favicon.ico",
- "image": "https://avatars3.githubusercontent.com/u/19346225?s=400&v=4"
-}
-[/block]
-
----
-## Ruby
-
-```shell Shell
-gem install voucherify
-```
-
-
-[block:embed]
-{
- "html": false,
- "url": "https://github.com/voucherifyio/voucherify-ruby-sdk",
- "title": "voucherifyio/voucherify-ruby-sdk",
- "favicon": "https://github.com/favicon.ico",
- "image": "https://avatars3.githubusercontent.com/u/19346225?s=400&v=4"
-}
-[/block]
-
----
-## PHP
-
-Include Voucherify PHP SDK (rspective/voucherify) in your PHP composer.json file as required module i.e:
-
-```php
-"require": {
- "rspective/voucherify": "dev-master"
-}
-```
-
-You can check available versions at [Packagist](https://packagist.org/packages/rspective/voucherify).
-
-
-[block:embed]
-{
- "html": false,
- "url": "https://github.com/voucherifyio/voucherify-php-sdk",
- "title": "voucherifyio/voucherify-php-sdk",
- "favicon": "https://github.com/favicon.ico",
- "image": "https://avatars3.githubusercontent.com/u/19346225?s=400&v=4"
-}
-[/block]
-
----
-## Python
-
-```shell Shell
-pip install voucherify
-```
-
-[block:embed]
-{
- "html": false,
- "url": "https://github.com/voucherifyio/voucherify-python-sdk",
- "title": "voucherifyio/voucherify-python-sdk",
- "favicon": "https://github.com/favicon.ico",
- "image": "https://avatars3.githubusercontent.com/u/19346225?s=400&v=4"
-}
-[/block]
-
----
-## .NET
-
-### Client Side Library
-
-```shell Shell
-Install-Package Voucherify.Client
-```
-
-### Server Side Library
-
-```shell Shell
-Install-Package Voucherify
-```
-
-Or simple use libraries from lib/{target-framework} folder.
-
-
-[block:embed]
-{
- "html": false,
- "url": "https://github.com/voucherifyio/voucherify-dotNET-sdk",
- "title": "voucherifyio/voucherify-dotNET-sdk",
- "favicon": "https://github.com/favicon.ico",
- "image": "https://avatars3.githubusercontent.com/u/19346225?s=400&v=4"
-}
-[/block]
-
----
-
-## Node.js
-
-> 🚧 Deprecated SDK
->
-> Node.js is a deprecated version. Go to [JS](https://docs.voucherify.io/docs/sdks#js) to use the latest Node.js SDK.
-
-```shell Shell
-npm install voucherify
-```
-
-
-[block:embed]
-{
- "html": false,
- "url": "https://github.com/voucherifyio/voucherify-nodejs-sdk",
- "title": "voucherifyio/voucherify-nodejs-sdk",
- "favicon": "https://github.com/favicon.ico",
- "image": "https://avatars3.githubusercontent.com/u/19346225?s=400&v=4"
-}
-[/block]
-
----
-
-## Voucherify.js
-
-> 🚧 Deprecated SDK
->
-> Voucherify.js is a deprecated version. Go to [JS](https://docs.voucherify.io/docs/sdks#js) to use the latest SDK.
-
-From CDN:
-
-[http://www.jsdelivr.com/projects/voucherify.js](http://www.jsdelivr.com/projects/voucherify.js)
-
-
-[block:embed]
-{
- "html": false,
- "url": "https://github.com/rspective/voucherify.js",
- "title": "rspective/voucherify.js",
- "favicon": "https://github.com/favicon.ico",
- "image": "https://avatars1.githubusercontent.com/u/3333318?s=400&v=4"
-}
-[/block]
-
----
-## Android
-
-> 🚧 Deprecated SDK
->
-> Voucherify developers currently don't develop this SDK.
-
-Using Gradle:
-
-```groovy Groovy
-dependencies {
- compile 'pl.rspective.voucherify.android.client:voucherify-android-sdk:0.6.0'
-}
-```
-
-Using Maven:
-
-```xml XML
-
- pl.rspective.voucherify.android.client
- voucherify-android-sdk
- 0.6.0
-
-```
-
-> 📘 Prerequisite
->
-> The SDK requires at least Java 6 or Android 2.3.3 (API 10)
-
-
-[block:embed]
-{
- "html": false,
- "url": "https://github.com/voucherifyio/voucherify-android-sdk",
- "title": "voucherifyio/voucherify-android-sdk",
- "favicon": "https://github.com/favicon.ico",
- "image": "https://avatars3.githubusercontent.com/u/19346225?s=400&v=4"
-}
-[/block]
-
----
-## iOS(Swift)
-
-> 🚧 Deprecated SDK
->
-> Voucherify developers currently don't develop this SDK.
-
-Using CocoaPods simply add the following line to your Podfile:
-
-```shell Shell
-pod "VoucherifySwiftSdk"
-```
-
-> 📘 Prerequisite
->
-> The SDK requires Swift 2.2 and therefore Xcode 7.3
-
-
-[block:embed]
-{
- "html": false,
- "url": "https://github.com/voucherifyio/voucherify-ios-sdk",
- "title": "voucherifyio/voucherify-ios-sdk",
- "favicon": "https://github.com/favicon.ico",
- "image": "https://avatars3.githubusercontent.com/u/19346225?s=400&v=4"
-}
-[/block]
diff --git a/guides/discounts_recipes/Stackable-Discounts-API.mdx b/guides/discounts_recipes/Stackable-Discounts-API.mdx
index cf34cb54..8611f432 100644
--- a/guides/discounts_recipes/Stackable-Discounts-API.mdx
+++ b/guides/discounts_recipes/Stackable-Discounts-API.mdx
@@ -31,18 +31,18 @@ Redeemables array can gather up to 30 objects. Each element represents an object
| Redeemable type | Payload | Reference |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| Coupon code (discount voucher) | {"object": "voucher","id": "VOUCHER_CODE"} | object (string) requiredid (string) required is a voucher code or a unique internal identifier of a voucher code,example "id":- when using voucher code: blackFriday20- when using voucher id: v_Vt0mOlx2OWBmFe9f3e3ElgWSbYsEPTbJ |
-| Gift card (gift voucher) | {"object": "voucher","id": "GIFT_VOUCHER_CODE","gift": {"credits": 2000}} | object (string) requiredid (string) required is a gift card code or unique internal identifier of a voucher code,example "id":- when using voucher code: gift-87lta6- when using voucher id: v_Vt0mOlx2OWBmFe9f3e3ElgWSbYsEPTbJgift (object) requiredgift.credits (integer) define the amount that will be deducted from the card balance and applied to the order. You need to multiply the credits amount by 100 in the payload (for example $20 is 2000 in the gift.credits value). |
-| Promotion tier | {"object": "promotion_tier","id": "PROMOTION_TIER_ID"} | object (string) requiredid (string) required is a unique internal identifier of a promotion tier,example "id": promo_DkBL24GWmNZ1A75bhEiBTNWO |
-| Promotion stack**Important!**Note that you can pass only one promotion stack in a single validation/redemption call. Each stack can include up to 30 promotion tiers. | {"object": "promotion_stack","id": "STACK_ID"} | object (string) requiredid (string) required is a unique internal identifier of a promotion stack,example "id": stack_3Q4EJpZqg3DI5IRwgBYfsb37 |
-| Loyalty cardThis endpoint allows you to redeem loyalty **pay with points reward** and pay for the order using loyalty credits. For redeeming other loyalty rewards call Redeem Reward endpoint. | {"object": "voucher","id": "LOYALTY_CARD_CODE","reward": {"id": "REWARD_ID","points": 200}} | object (string) requiredid (string) required is a loyalty card code or a unique internal identifier of a loyalty card, example:- when using voucher code: card-87lta6- when using voucher id: v_Vt0mOlx2OWBmFe9f3e3ElgWSbYsEPTbJreward (object) required is required to redeem loyalty card.reward.id (string) required is a unique reward identifier.reward.points (intiger) defines how many points will be used to pay for the order (required for redeeming pay with points reward). |
-| Referral code | {"object": "voucher","id": "REFERRAL_CODE"} | object (string) requiredid (string) required is a referral code or a unique internal identifier of a referral code,example "id":- when using voucher code: card-87lta6- when using voucher id: v_Vt0mOlx2OWBmFe9f3e3ElgWSbYsEPTbJ |
+| Coupon code (discount voucher) | `{"object": "voucher","id": "VOUCHER_CODE"}` | object (string) requiredid (string) required is a voucher code or a unique internal identifier of a voucher code,example "id":- when using voucher code: blackFriday20- when using voucher id: v_Vt0mOlx2OWBmFe9f3e3ElgWSbYsEPTbJ |
+| Gift card (gift voucher) | `{"object": "voucher","id": "GIFT_VOUCHER_CODE","gift": {"credits": 2000}}` | object (string) requiredid (string) required is a gift card code or unique internal identifier of a voucher code,example "id":- when using voucher code: gift-87lta6- when using voucher id: v_Vt0mOlx2OWBmFe9f3e3ElgWSbYsEPTbJgift (object) requiredgift.credits (integer) define the amount that will be deducted from the card balance and applied to the order. You need to multiply the credits amount by 100 in the payload (for example $20 is 2000 in the gift.credits value). |
+| Promotion tier | `{"object": "promotion_tier","id": "PROMOTION_TIER_ID"}` | object (string) requiredid (string) required is a unique internal identifier of a promotion tier,example "id": promo_DkBL24GWmNZ1A75bhEiBTNWO |
+| Promotion stack**Important!**Note that you can pass only one promotion stack in a single validation/redemption call. Each stack can include up to 30 promotion tiers. | `{"object": "promotion_stack","id": "STACK_ID"}` | object (string) requiredid (string) required is a unique internal identifier of a promotion stack,example "id": stack_3Q4EJpZqg3DI5IRwgBYfsb37 |
+| Loyalty cardThis endpoint allows you to redeem loyalty **pay with points reward** and pay for the order using loyalty credits. For redeeming other loyalty rewards call Redeem Reward endpoint. | `{"object": "voucher","id": "LOYALTY_CARD_CODE","reward": {"id": "REWARD_ID","points": 200}}` | object (string) requiredid (string) required is a loyalty card code or a unique internal identifier of a loyalty card, example:- when using voucher code: card-87lta6- when using voucher id: v_Vt0mOlx2OWBmFe9f3e3ElgWSbYsEPTbJreward (object) required is required to redeem loyalty card.reward.id (string) required is a unique reward identifier.reward.points (intiger) defines how many points will be used to pay for the order (required for redeeming pay with points reward). |
+| Referral code | `{"object": "voucher","id": "REFERRAL_CODE"}` | object (string) requiredid (string) required is a referral code or a unique internal identifier of a referral code,example "id":- when using voucher code: card-87lta6- when using voucher id: v_Vt0mOlx2OWBmFe9f3e3ElgWSbYsEPTbJ |
As a result, the API returns the parent redemption id and child redemptions ids. `parent_redemption` refers to the redemption of all redeemables, whereas `child_redemption` represents the redemption of a single redeemable.
## Validation
-Validation checks which redeemables provided in the request can be applied in the given context, i.e. checks customer and order details against validation rules and other applied limits.
+Validation checks which redeemables provided in the request can be applied in the given context, i.e. checks customer and order details against validation rules and other applied limits.
POST `https://URL/v1/validations`
diff --git a/guides/distributions_recipes/Messaging-Automation.mdx b/guides/distributions_recipes/Messaging-Automation.mdx
index ed912ee9..5cd2aa40 100644
--- a/guides/distributions_recipes/Messaging-Automation.mdx
+++ b/guides/distributions_recipes/Messaging-Automation.mdx
@@ -5,7 +5,7 @@ categorySlug: distributions-recipes
slug: automatic-delivery
---
-In this tutorial, you will learn how to set up an automatic promo code distribution. Imagine the following scenario – your marketing team wants to have the ability to define `who`, `when`, and by `which channel` gets a specific promo code.
+In this tutorial, you will learn how to set up an automatic promo code distribution. Imagine the following scenario - your marketing team wants to have the ability to define `who`, `when`, and by `which channel` gets a specific promo code.
> 🚧 Dashboard-only feature
>
@@ -27,7 +27,7 @@ Before you make an import, you might sit together with the marketing team to fig
### Segments
-There are two types of segments – manual and automatic. Manual segments always consist of the same customers. On the other hand, the size of a dynamic segment will constantly change – when you [update a customer](ref:update-customer), all segments are automatically rebuilt.
+There are two types of segments - manual and automatic. Manual segments always consist of the same customers. On the other hand, the size of a dynamic segment will constantly change - when you [update a customer](ref:update-customer), all segments are automatically rebuilt.
The marketing team can create segments in the Customers view, but you can do it through API as well (see [the segment object](ref:get-segment)). Once the first segment is created, you can test it by modifying the field the segment is built on. Again, you can do this through the UI and through [the update customer](ref:update-customer) API method.
@@ -56,9 +56,9 @@ Creating a distribution in the Distribution Manager is a 4-step process:
You can choose between the following distribution purposes:
- * Notify customers about promotion – share details of the particular in-cart promotion (promotion tier).
- * Send and publish unique codes from the campaign – each receiver gets a unique code from the chosen campaign assigned (published) automatically to their profile.
- * Send a plain message to customers – plain message with no promo codes included.
+ * Notify customers about promotion - share details of the particular in-cart promotion (promotion tier).
+ * Send and publish unique codes from the campaign - each receiver gets a unique code from the chosen campaign assigned (published) automatically to their profile.
+ * Send a plain message to customers - plain message with no promo codes included.
### Audience
@@ -149,7 +149,7 @@ Automatic distribution can trigger a message in response to one of the following
* Order has been paid
* Order canceled
-4. Successful code publication – the message is sent once the code from a campaign is assigned to a customer.
+4. Successful code publication - the message is sent once the code from a campaign is assigned to a customer.
After choosing the trigger, the Manager directs you to the Distribution Conditions. You can name distribution, choose the message purpose and audience.
diff --git a/guides/getting_started/key-concepts.mdx b/guides/getting_started/key-concepts.mdx
index d8d533ca..bddff3c6 100644
--- a/guides/getting_started/key-concepts.mdx
+++ b/guides/getting_started/key-concepts.mdx
@@ -1,5 +1,5 @@
---
-title: "Key concepts"
+title: "Crucial concepts"
description: "Learn the key concepts to help you implement loyalty and promotional campaigns and integrate Voucherify with your stack"
---
diff --git a/guides/getting_started/welcome-to-voucherify.mdx b/guides/getting_started/welcome-to-voucherify.mdx
index ce1d02b5..1594fa32 100644
--- a/guides/getting_started/welcome-to-voucherify.mdx
+++ b/guides/getting_started/welcome-to-voucherify.mdx
@@ -6,19 +6,16 @@ description: "Learn about Voucherify and its possibilities"
## What is Voucherify?
Voucherify is an API-first promotions and loyalty engine. This means you can integrate your platform with a solution that runs personalized campaigns covering:
-- coupons – offer your customers code coupons with different discount options,
-- auto-applied promotions – apply discounts automatically to customer orders depending on specific conditions,
-- gift cards – offer gift cards with defined amounts that can be topped up,
-- loyalty programs – create extensive loyalty programs to keep your customer base come back to earn points and get rewards,
-- referral programs – engage your customers in referring their friends and family.
-
+- **coupons** – offer your customers code coupons with different discount options,
+- **auto-applied promotions** – apply discounts automatically to customer orders depending on specific conditions,
+- **gift cards** – offer gift cards with defined amounts that can be topped up,
+- **loyalty programs** – create extensive loyalty programs to keep your customer base come back to earn points and get rewards,
+- **referral programs** – engage your customers in referring their friends and family.
If you're a marketer and you want to learn more, explore [Voucherify possibilities in general](https://www.voucherify.io/).
-
-
-
+
## Who uses Voucherify, why, and how?
@@ -26,13 +23,14 @@ Voucherify can be successfully adopted across industries in B2C and B2B contexts
Applying targeted promotions at every stage of the customer lifecycle can help you maximize engagement. This way, you can acquire customers through social media promotion, convert them with a welcome offer, grow them as customers with referrals, and ultimately, build better retention tactics with loyalty campaigns and re-engage them with incentives that match their profiles. This ideal scenario is possible with proper integration.
-
+
At its core, the integration of Voucherify with your system relies on passing relevant context to the Voucherify API, which validates and redeems incentives and rewards in accordance with the rules you set up with the Rules Engine. For more about integrating with Voucherify, explore [Integration overview](ref:integration-overview).
-
+
+
+As a [MACH-certified vendor](https://machalliance.org/), Voucherify follows the principles of composability, giving you flexibility and decreasing the time needed for [integration with different tools](https://www.voucherify.io/integrations). This way, you can more easily combine Voucherify with your existing tech-stack that may include:
-As a [MACH-certified vendor](https://machalliance.org/), Voucherify follows the principles of composability, giving you flexibility and decreasing the time needed for [integration with different tools](https://www.voucherify.io/integrations "Powerful integrations with Voucherify"). This way, you can more easily combine Voucherify with your existing tech-stack that may include:
- Customer Data Platform (CDP)
- Customer Engagement Platform (CEP)
- Customer Relationship Management (CRM) solutions
@@ -43,6 +41,7 @@ As a [MACH-certified vendor](https://machalliance.org/), Voucherify follows the
## What problems does Voucherify solve?
Thanks to Voucherify, you can solve the following problems:
+
- Integrating promotions with external tools and dynamic customer touchpoints.
- Paying too much for promotion maintenance and real-time monitoring of all digital offers.
- Generating unsatisfactory ROI caused by generic offers, simplistic loyalty programs, and promotional fraud.
@@ -50,8 +49,7 @@ Thanks to Voucherify, you can solve the following problems:
- Wasting development time to write extra code to keep multiple promotion and loyalty platforms in sync across applications, brands, and teams.
- Struggling to build branded customer-facing UIs using legacy and monolithic services.
- Failing to effectively manage traffic spikes and priority changes.
-- [Many different promotion cases and issues](https://www.voucherify.io/promotion-examples "Voucherify recipes").
-
+- [Many different promotion cases and issues](https://www.voucherify.io/promotion-examples).
You can achieve this thanks to Voucherify's promotion and loyalty **REST API endpoints** and **a visual Dashboard** to help you with configuration.
@@ -63,12 +61,10 @@ As the Voucherify API is unopinionated, you can pick whatever you need and build
Additionally, you can use webhooks to track customer activity or even how your promotional campaigns are managed.
-
-
## Visual dashboard
You can manage your promotional campaigns with a visual dashboard. There, you can set up your marketing and development team, configure projects, run campaigns, define rules, and more.
Developers use Voucherify dashboard to get API keys, manage integrations with other platforms, check logs, and configure integration-sensitive details, like metadata schemas. Marketers, on the other hand, use the dashboard to create and manage promotional campaigns.
-If you want to learn more about the Voucherify dashboard, visit [the support documentation](https://support.voucherify.io/ "Voucherify support documentation").
\ No newline at end of file
+If you want to learn more about the Voucherify dashboard, visit [the support documentation](https://support.voucherify.io/).
\ No newline at end of file
diff --git a/guides/integration_blueprint/Distributions.mdx b/guides/integration_blueprint/Distributions.mdx
index 2afdb172..18961168 100644
--- a/guides/integration_blueprint/Distributions.mdx
+++ b/guides/integration_blueprint/Distributions.mdx
@@ -17,8 +17,8 @@ description: "Distribute incentives through preferred channels"
Evaluate your customer journey and **think of places and times the information about the deal should be displayed**: website, product pages, emails, SMS, push, print, partners, or social media. Think of how you want to remind customers about the deals they’re eligible to use. Voucherify offers **two distribution modes**
-* **Pull** – you can use API to get promotions in front of customers (e.g., list all active coupons for John Doe).
-* **Push** – an integral distribution mechanism that you can use to define a trigger for the message send-out (e.g., if John Doe signs up for a newsletter, send him a 10% off promo code).
+* **Pull** - you can use API to get promotions in front of customers (e.g., list all active coupons for John Doe).
+* **Push** - an integral distribution mechanism that you can use to define a trigger for the message send-out (e.g., if John Doe signs up for a newsletter, send him a 10% off promo code).
Both push and pull modes can be used with third party platforms:
- [Braze](https://support.voucherify.io/article/588-braze-integration "Voucherify and Braze integration article")