> ## Documentation Index
> Fetch the complete documentation index at: https://docs.voucherify.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Project settings webhooks

> Use webhooks to get notified about project events in Voucherify

Project-level webhooks in Voucherify are notifications sent automatically to your application whenever certain actions happen in your project. Examples include when a voucher is redeemed, a customer profile changes, or an order is created.

To use these webhooks, provide Voucherify with an endpoint URL where notifications should be sent.

## Configuring webhooks

Follow these steps to configure webhooks:

1. In Voucherify dashboard, go to Project settings.

2. Scroll down to the Webhooks section.

3. Click the plus button – Add new webhook.

4. Choose v2024-01-01 webhook version.

5. Provide the following details:

   1. Enter the target URL.
   2. Tick the Is active? checkbox.
   3. Select the [events](#webhooks-available-in-project-settings "Project setting webhooks") you want to receive. If you want to receive all the events, choose Send me all events option.
   4. Provide additional custom HTTP header (optional).
   5. Click Send test webhook to test your configuration (optional).
   6. Click Create endpoint.

6. If necessary for authentication reasons, enter the Secret key in your system to receive webhooks from Voucherify.

You can add multiple webhooks to your projects following the steps above.

To update webhook details, click the Pencil button – edit. Enter your changes and click Update endpoint.

To delete a webhook, click the trash button and click Delete.

## Re-Enabling a Webhook

To re-enable a disabled webhook:

1. In the Project settings, go to the General tab.
2. Scroll down to the Webhooks section.
3. Edit the specific Webhook.
4. Click Is active.
5. Click Update endpoint.

## Webhooks available in Project settings

These webhooks are triggered by the events listed in the Project settings.

<Warning>
  Documentation of some of the events is still in progress.
</Warning>

The following events can send a webhook:

* Redemption events:

  * [Redemption succeeded](/api-reference/redemption/succeeded "Redemption succeeded event documentation")
  * [Redemption failed](/api-reference/redemption/failed "Redemption failed event documentation")
  * [Redemption rollback succeeded](/api-reference/redemption/rollback-succeeded "Redemption rollback succeeded event documentation")
  * [Redemption rollback failed](/api-reference/redemption/rollback-failed "Redemption rollback failed event documentation")

* Publication event:
  * [Publication succeeded](/api-reference/publication/succeeded "Publication succeeded event documentation")

* Customer events:

  * [Customer created](/api-reference/customer/created "Customer created event documentation")
  * [Customer updated](/api-reference/customer/updated "Customer updated event documentation")
  * [Customer deleted](/api-reference/customer/deleted "Customer deleted event documentation")
  * [Customer rewarded](/api-reference/customer/rewarded "Customer rewarded event documentation")
  * [Customer rewarded loyalty points](/api-reference/customer/rewarded-loyalty-points "Customer rewarded loyalty points event documentation")
  * Customer confirmed

* Voucher events:

  * [Voucher created](/api-reference/voucher/created "Voucher created event documentation")
  * [Voucher disabled](/api-reference/voucher/disabled "Voucher disabled event documentation")
  * [Voucher enabled](/api-reference/voucher/enabled "Voucher enabled event documentation")
  * [Voucher updated](/api-reference/voucher/updated "Voucher updated event documentation")
  * [Voucher published](/api-reference/voucher/published "Voucher published event documentation")
  * [Voucher loyalty card pending points activated](/api-reference/voucher/loyalty-card-pending-points-activated "Voucher loyalty card pending points activated event documentation")
  * [Voucher loyalty card pending points added](/api-reference/voucher/loyalty-card-pending-points-added "Voucher loyalty card pending points added event documentation")
  * [Voucher loyalty card pending points canceled](/api-reference/voucher/loyalty-card-pending-points-canceled "Voucher loyalty card pending points canceled event documentation")
  * [Voucher loyalty card pending points updated](/api-reference/voucher/loyalty-card-pending-points-updated "Voucher loyalty card pending points update event documentation")
  * [Voucher loyalty card points added](/api-reference/voucher/loyalty-card-points-added "Voucher loyalty card points added event documentation")
  * [Voucher loyalty card points expired](/api-reference/voucher/loyalty-card-points-expired "Voucher loyalty card points expired event documentation")
  * [Voucher loyalty card transaction created](/api-reference/voucher/loyalty-card-transaction-created "Voucher loyalty card transaction created event documentation")
  * [Voucher gift transaction created](/api-reference/voucher/gift-transaction-created "Voucher gift transaction created event documentation")
  * [Voucher gift balance added](/api-reference/voucher/gift-balance-added "Voucher gift balance added event documentation")
  * [Voucher deleted](/api-reference/voucher/deleted "Voucher deleted event documentation")

* Campaign events:

  * [Campaign created](/api-reference/campaign/created "Campaign created event documentation")
  * [Campaign voucher generation completed](/api-reference/campaign/vouchers-generation-completed "Campaign voucher generation completed event documentation")
  * [Campaign disabled](/api-reference/campaign/disabled "Campaign disabled event documentation")
  * [Campaign enabled](/api-reference/campaign/enabled "Campaign enabled event documentation")
  * [Campaign updated](/api-reference/campaign/updated "Campaign updated event documentation")
  * [Campaign deleted](/api-reference/campaign/deleted "Campaign deleted event documentation")
  * Campaign vouchers added

* Promotion tier events:

  * [Promotion tier created](/api-reference/campaign/promotion-tier-created "Promotion tier created event documentation")
  * [Promotion tier disabled](/api-reference/campaign/promotion-tier-disabled "Promotion tier disabled event documentation")
  * [Promotion tier enabled](/api-reference/campaign/promotion-tier-enabled "Promotion tier enabled event documentation")
  * [Promotion tier updated](/api-reference/campaign/promotion-tier-updated "Promotion tier updated event documentation")
  * [Promotion tier deleted](/api-reference/campaign/promotion-tier-deleted "Promotion tier deleted event documentation")

* Business validation rule events:

  * [Business validation rule created](/api-reference/validation-rules/created "Validation rule created event documentation")
  * [Business validation rule updated](/api-reference/validation-rules/updated "Validation rule updated event documentation")
  * [Business validation rule assignment created](/api-reference/validation-rules/assignment-created "Validation rule assignment created event documentation")
  * [Business validation rule assignment deleted](/api-reference/validation-rules/assignment-deleted "Validation rule assignment deleted event documentation")
  * [Business validation rule deleted](/api-reference/validation-rules/deleted "Validation rule deleted event documentation")

* Earning rule events:

  * Earning rule assigned
  * Earning rule deleted
  * Earning rule disabled
  * Earning rule enabled
  * Earning rule updated

* Loyalty tier related events:

  * [Loyalty tier created](/api-reference/campaign/loyalty-tier-created "Campaign loyalty tier created documentation")
  * [Loyalty tier deleted](/api-reference/campaign/loyalty-tier-deleted "Campaign loyalty tier deleted documentation")
  * [Loyalty tier updated](/api-reference/campaign/loyalty-tier-updated "Campaign loyalty tier updated documentation")

* Promotion stack events:

  * Promotion stack created
  * Promotion stack updated

* Referral tier related events:

  * Referral tier created
  * Referral tier deleted
  * Referral tier updated

* Reward assignment events:

  * Reward assignment created
  * Reward assignment deleted
  * Reward assignment updated

* Voucher generation events:

  * Voucher generation failed
  * Voucher generation started

### Project setting webhook payload

The list shows a general structure of a webhook payload set in Project settings. Indented bullet points mean that an object contains further properties or objects.

* `id` (`string`): Unique identifier of the send out for this webhook. **Example:** `whs_0e16e42bc6e0c65b57`
* `project_id` (`string`): Unique identifier of the Voucherify project. **Example:** `proj_5T4Rpl4T1nuM`
* `created_at` (`string`): The exact moment when the webhook was created. **Example:** `2024-01-01T11:11:11.111Z`
* `type` (`string`): Name of the event that triggered the webhook send out. Available values: `business_validation_rule.assignment.created`, `business_validation_rule.assignment.deleted`, `business_validation_rule.created`, `business_validation_rule.deleted`, `business_validation_rule.updated`, `campaign.created`, `campaign.deleted`, `campaign.disabled`, `campaign.enabled`, `campaign.earning_rule.assigned`, `campaign.earning_rule.deleted`, `campaign.earning_rule.disabled`, `campaign.earning_rule.enabled`, `campaign.earning_rule.updated`, `campaign.loyalty_tier.created`, `campaign.loyalty_tier.deleted`, `campaign.loyalty_tier.updated`, `campaign.promotion_stack.created`, `campaign.promotion_stack.updated`, `campaign.promotion_tier.created`, `campaign.promotion_tier.deleted`, `campaign.promotion_tier.disabled`, `campaign.promotion_tier.enabled`, `campaign.promotion_tier.updated`, `campaign.referral_tier.created`, `campaign.referral_tier.deleted`, `campaign.referral_tier.updated`, `campaign.reward.assignment.created`, `campaign.reward.assignment.deleted`, `campaign.reward.assignment.updated`, `campaign.updated`, `campaign.vouchers.added`, `campaign.vouchers.generation.completed`, `campaign.vouchers.generation.failed`, `campaign.vouchers.generation.started`, `customer.confirmed`, `customer.created`, `customer.updated`, `customer.deleted`, `customer.rewarded`, `customer.rewarded.loyalty_points`, `publication.succeeded`, `redemption.failed`, `redemption.rollback.failed`, `redemption.rollback.succeeded`, `redemption.succeeded`, `voucher.created`, `voucher.deleted`, `voucher.disabled`, `voucher.enabled`, `voucher.gift.balance_added`, `voucher.gift.transaction.created`, `voucher.loyalty_card.pending_points.activated`, `voucher.loyalty_card.pending_points.added`, `voucher.loyalty_card.pending_points.canceled`, `voucher.loyalty_card.pending_points.updated`, `voucher.loyalty_card.points_added`, `voucher.loyalty_card.points_expired`, `voucher.loyalty_card.transaction.created`, `voucher.published`, `voucher.updated`
* `data` (`object`): Payload depends on the event that triggered the webhook send out. Project settings cover the following events:
  * [business\_validation\_rule.assignment.created](/api-reference/validation-rules/assignment-created)
  * [business\_validation\_rule.assignment.deleted](/api-reference/validation-rules/assignment-deleted)
  * [business\_validation\_rule.created](/api-reference/validation-rules/created)
  * [business\_validation\_rule.deleted](/api-reference/validation-rules/deleted)
  * [business\_validation\_rule.updated](/api-reference/validation-rules/updated)
  * [campaign.created](/api-reference/campaign/created)
  * [campaign.deleted](/api-reference/campaign/deleted)
  * [campaign.disabled](/api-reference/campaign/disabled)
  * [campaign.enabled](/api-reference/campaign/enabled)
  * [campaign.updated](/api-reference/campaign/updated)
  * campaign.earning\_rule.assigned
  * campaign.earning\_rule.deleted
  * campaign.earning\_rule.disabled
  * campaign.earning\_rule.enabled
  * campaign.earning\_rule.updated
  * [campaign.loyalty\_tier.created](/api-reference/campaign/loyalty-tier-created)
  * [campaign.loyalty\_tier.deleted](/api-reference/campaign/loyalty-tier-deleted)
  * [campaign.loyalty\_tier.updated](/api-reference/campaign/loyalty-tier-updated)
  * [campaign.promotion\_tier.created](/api-reference/campaign/promotion-tier-created)
  * [campaign.promotion\_tier.deleted](/api-reference/campaign/promotion-tier-deleted)
  * [campaign.promotion\_tier.disabled](/api-reference/campaign/promotion-tier-disabled)
  * [campaign.promotion\_tier.enabled](/api-reference/campaign/promotion-tier-enabled)
  * [campaign.promotion\_tier.updated](/api-reference/campaign/promotion-tier-updated)
  * campaign.promotion\_stack.created
  * campaign.promotion\_stack.updated
  * campaign.referral\_tier.created
  * campaign.referral\_tier.deleted
  * campaign.referral\_tier.updated
  * campaign.reward.assignment.created
  * campaign.reward.assignment.deleted
  * campaign.reward.assignment.updated
  * [campaign.vouchers.generation.completed](/api-reference/campaign/vouchers-generation-completed)
  * campaign.vouchers.generation.failed
  * campaign.vouchers.generation.started
  * campaign.vouchers.added
  * [customer.created](/api-reference/customer/created)
  * [customer.updated](/api-reference/customer/updated)
  * [customer.deleted](/api-reference/customer/deleted)
  * customer.confirmed
  * [customer.rewarded](/api-reference/customer/rewarded)
  * [customer.rewarded.loyalty\_points](/api-reference/customer/rewarded-loyalty-points)
  * [publication.succeeded](/api-reference/publication/succeeded)
  * [redemption.failed](/api-reference/redemption/failed)
  * [redemption.rollback.failed](/api-reference/redemption/rollback-failed)
  * [redemption.rollback.succeeded](/api-reference/redemption/rollback-succeeded)
  * [redemption.succeeded](/api-reference/redemption/succeeded)
  * [voucher.created](/api-reference/voucher/created)
  * [voucher.deleted](/api-reference/voucher/deleted)
  * [voucher.disabled](/api-reference/voucher/disabled)
  * [voucher.enabled](/api-reference/voucher/enabled)
  * [voucher.gift.balance\_added](/api-reference/voucher/gift-balance-added)
  * [voucher.gift.transaction.created](/api-reference/voucher/gift-transaction-created)
  * [voucher.loyalty\_card.pending\_points.activated](/api-reference/voucher/loyalty_card-pending-points-activated)
  * [voucher.loyalty\_card.pending\_points.added](/api-reference/voucher/loyalty_card-pending-points-added)
  * [voucher.loyalty\_card.pending\_points.canceled](/api-reference/voucher/loyalty_card-pending-points-canceled)
  * [voucher.loyalty\_card.pending\_points.updated](/api-reference/voucher/loyalty_card-pending-points-updated)
  * [voucher.loyalty\_card.points\_added](/api-reference/voucher/loyalty_card-points-added)
  * [voucher.loyalty\_card.points\_expired](/api-reference/voucher/loyalty_card-points_expired)
  * [voucher.loyalty\_card.transaction.created](/api-reference/voucher/loyalty_card-transaction-created)
  * [voucher.published](/api-reference/voucher/published)
  * [voucher.updated](/api-reference/voucher/updated)
* `source` (`object`): Contains details about the source of the webhook send out. Properties:
  * `id` (`string`): ID number of the webhook. **Example:** `wh_j56Vfy47Vx9YOX7QYD1fzHnc`
  * `object` (`string`): Determines the type of the object. Available values: `webhook` **Example:** `webhook`
  * `target_url` (`string`): The address where the webhook will be sent.
* `event` (`object`): Contains other data of the event that triggered the send out.
  * `id` (`string`): Unique identifier of the event that triggered the send out. **Example:** `evred_1f3611301g3127begb`
  * `type` (`string`): Determines the type of the event. **Example:** `redemption.succeeded`
  * `created_at` (`string`): The exact moment when the event was created. **Example:** `2024-01-01T11:11:11.111Z`
  * `entity_id` (`string`): Unique identifier of the entity that triggered the send out. **Example:** `r_1f3611302bf107befb`
  * `group_id` (`string`): Unique identifier of the request that triggered the event. **Example:** `v-1f36113948e50fc4ge`
  * `event_source` (`object`): Contains the source of the object that triggered the send out. Properties:
    * `channel` (`string`): Determines the channel that triggered the send out. Available values: `USER_PORTAL`, `API`, `CLIENT_API`, `INTERNAL` **Example:** `API`
    * `user` (`object`): Defines the user who triggered the event.
      * `id` (`string`): ID of the user who triggered the event.
    * `api_key` (`object`): Determines the API key used to initiate the send out. Properties:
      * `name` (`string`): Channel name in the application keys.
      * `app_id` (`string`): Contains the application ID from the Voucherify API key pair. **Example:** `1XXXX5XX-0XXX-XXXb-X7XX-XX2XXaXXX6XX`

```JSON Voucher published payload example theme={null}
{
  "id": "whs_ID",
  "project_id": "proj_ID",
  "created_at": "2025-10-16T16:03:23.071Z",
  "type": "voucher.published",
  "data": {
    "customer": {
      "id": "cust_ID",
      "name": "Alex Doe",
      "email": "alex.doe@doe.alex.io",
      "source_id": "4lx-d03",
      "metadata": {
        "acquisition_channel": "Website"
      },
      "object": "customer"
    },
    "campaign": {
      "id": "camp_ID",
      "name": "Autumn-2025",
      "campaign_type": "DISCOUNT_COUPONS",
      "type": "STANDALONE",
      "is_referral_code": false,
      "voucher": {
        "type": "DISCOUNT_VOUCHER",
        "discount": {
          "type": "AMOUNT",
          "amount_off": 100,
          "units": null,
          "effect": "APPLY_TO_ITEMS"
        },
        "gift": null,
        "loyalty_card": null,
        "redemption": {
          "quantity": null,
          "redeemed_quantity": 0
        },
        "code_config": {
          "pattern": "########",
          "length": 8,
          "charset": "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
          "prefix": "",
          "postfix": "",
          "min_desired": 1
        }
      },
      "auto_join": false,
      "join_once": false,
      "active": true,
      "category_id": null,
      "category": null,
      "metadata": {},
      "start_date": null,
      "expiration_date": null,
      "description": null,
      "created_at": "2025-10-14T08:45:08.857Z",
      "updated_at": "2025-10-14T12:39:52.798Z",
      "object": "campaign"
    },
    "publication": {
      "id": "pub_ID",
      "object": "publication",
      "created_at": "2025-10-16T16:03:23.065Z",
      "customer_id": "cust_ID",
      "tracking_id": "4lx-d03",
      "metadata": {},
      "channel": "voucherify-web-ui",
      "source_id": "manual-publication-2020-02-02-v01",
      "result": "SUCCESS",
      "customer": {
        "id": "cust_ID",
        "source_id": "4lx-d03",
        "name": "Alex Doe",
        "email": "alex.doe@doe.alex.io",
        "address": null,
        "summary": null,
        "loyalty": null,
        "referrals": null,
        "metadata": {
          "acquisition_channel": "Website"
        },
        "object": "customer"
      },
      "vouchers_id": [
        "v_ID"
      ]
    },
    "voucher": {
      "id": "v_ID",
      "code": "kUs7oM-cOD3",
      "discount": {
        "type": "AMOUNT",
        "amount_off": 100,
        "effect": "APPLY_TO_ITEMS"
      },
      "type": "DISCOUNT_VOUCHER",
      "campaign": "Autumn2025",
      "campaign_id": "camp_ID",
      "is_referral_code": false,
      "holder_id": "cust_ID",
      "category_id": null,
      "active": true,
      "created_at": "2025-10-16T16:02:41.255Z",
      "updated_at": "2025-10-16T16:03:23.070Z",
      "redemption": {
        "quantity": null,
        "redeemed_quantity": 0
      },
      "start_date": null,
      "expiration_date": null,
      "metadata": {},
      "object": "voucher",
      "categories": []
    },
    "created_at": "2025-10-16T16:03:23.071Z"
  },
  "source": {
    "id": "wh_ID",
    "object": "webhook",
    "target_url": "https:/your.url.io"
  },
  "event": {
    "id": "evvou_ID",
    "type": "voucher.published",
    "created_at": "2025-10-16T16:03:23.071Z",
    "entity_id": "v_ID",
    "group_id": "v-ID",
    "event_source": {
      "channel": "USER_PORTAL",
      "user": {
        "id": "user_ID"
      }
    }
  }
}
```
