---
title: "benefit.updated"
method: POST
path: "benefit.updated"
---

# benefit.updated

`POST benefit.updated` (webhook)

Sent when a benefit is updated.

**Discord & Slack support:** Basic

## Payload

- WebhookBenefitUpdatedPayload — Sent when a benefit is updated. **Discord & Slack support:** Basic
  - `type` 'benefit.updated', required
  - `timestamp` string, date-time, required
  - `data` union, required
    - BenefitCustom — A benefit of type `custom`. Use it to grant any kind of benefit that doesn't fit in the other types.
      - `id` string, uuid4, required — The ID of the benefit.
      - `created_at` string, date-time, required — Creation timestamp of the object.
      - `modified_at` string, date-time, nullable, required — Last modification timestamp of the object.
      - `type` 'custom', required
      - `description` string, required — The description of the benefit.
      - `selectable` boolean, required — Whether the benefit is selectable when creating a product.
      - `deletable` boolean, required — Whether the benefit is deletable.
      - `is_deleted` boolean, required — Whether the benefit is deleted.
      - `organization_id` string, uuid4, required — The ID of the organization owning the benefit.
      - `metadata` MetadataOutputType, required
      - `visibility` 'draft' | 'private' | 'public', required
      - `properties` BenefitCustomProperties, required — Properties for a benefit of type `custom`.
        - `note` string, nullable, required
      - `visibility_configurable` boolean, required
    - BenefitDiscord — A benefit of type `discord`. Use it to automatically invite your backers to a Discord server.
      - `id` string, uuid4, required — The ID of the benefit.
      - `created_at` string, date-time, required — Creation timestamp of the object.
      - `modified_at` string, date-time, nullable, required — Last modification timestamp of the object.
      - `type` 'discord', required
      - `description` string, required — The description of the benefit.
      - `selectable` boolean, required — Whether the benefit is selectable when creating a product.
      - `deletable` boolean, required — Whether the benefit is deletable.
      - `is_deleted` boolean, required — Whether the benefit is deleted.
      - `organization_id` string, uuid4, required — The ID of the organization owning the benefit.
      - `metadata` MetadataOutputType, required
      - `visibility` 'draft' | 'private' | 'public', required
      - `properties` BenefitDiscordProperties, required — Properties for a benefit of type `discord`.
        - `guild_id` string, required — The ID of the Discord server.
        - `role_id` string, required — The ID of the Discord role to grant.
        - `kick_member` boolean, required — Whether to kick the member from the Discord server on revocation.
        - `guild_token` string, required
      - `visibility_configurable` boolean, required
    - BenefitGitHubRepository — A benefit of type `github_repository`. Use it to automatically invite your backers to a private GitHub repository.
      - `id` string, uuid4, required — The ID of the benefit.
      - `created_at` string, date-time, required — Creation timestamp of the object.
      - `modified_at` string, date-time, nullable, required — Last modification timestamp of the object.
      - `type` 'github_repository', required
      - `description` string, required — The description of the benefit.
      - `selectable` boolean, required — Whether the benefit is selectable when creating a product.
      - `deletable` boolean, required — Whether the benefit is deletable.
      - `is_deleted` boolean, required — Whether the benefit is deleted.
      - `organization_id` string, uuid4, required — The ID of the organization owning the benefit.
      - `metadata` MetadataOutputType, required
      - `visibility` 'draft' | 'private' | 'public', required
      - `properties` BenefitGitHubRepositoryProperties, required — Properties for a benefit of type `github_repository`.
        - `repository_owner` string, required — The owner of the repository.
        - `repository_name` string, required — The name of the repository.
        - `permission` 'pull' | 'triage' | 'push' | 'maintain' | 'admin', required — The permission level to grant. Read more about roles and their permissions on [GitHub documentation](https://docs.github.com/en/organizations/managing-user-access-to-your-organizations-repositories/managing-repository-roles/repository-roles-for-an-organization#permissions-for-each-role).
      - `visibility_configurable` boolean, required
    - BenefitDownloadables
      - `id` string, uuid4, required — The ID of the benefit.
      - `created_at` string, date-time, required — Creation timestamp of the object.
      - `modified_at` string, date-time, nullable, required — Last modification timestamp of the object.
      - `type` 'downloadables', required
      - `description` string, required — The description of the benefit.
      - `selectable` boolean, required — Whether the benefit is selectable when creating a product.
      - `deletable` boolean, required — Whether the benefit is deletable.
      - `is_deleted` boolean, required — Whether the benefit is deleted.
      - `organization_id` string, uuid4, required — The ID of the organization owning the benefit.
      - `metadata` MetadataOutputType, required
      - `visibility` 'draft' | 'private' | 'public', required
      - `properties` BenefitDownloadablesProperties, required
        - `archived` object, required
        - `files` string[], required
      - `visibility_configurable` boolean, required
    - BenefitLicenseKeys
      - `id` string, uuid4, required — The ID of the benefit.
      - `created_at` string, date-time, required — Creation timestamp of the object.
      - `modified_at` string, date-time, nullable, required — Last modification timestamp of the object.
      - `type` 'license_keys', required
      - `description` string, required — The description of the benefit.
      - `selectable` boolean, required — Whether the benefit is selectable when creating a product.
      - `deletable` boolean, required — Whether the benefit is deletable.
      - `is_deleted` boolean, required — Whether the benefit is deleted.
      - `organization_id` string, uuid4, required — The ID of the organization owning the benefit.
      - `metadata` MetadataOutputType, required
      - `visibility` 'draft' | 'private' | 'public', required
      - `properties` BenefitLicenseKeysProperties, required
        - `prefix` string, nullable, required
        - `expires` BenefitLicenseKeyExpirationProperties, required
          - `ttl` integer, required
          - `timeframe` 'year' | 'month' | 'day', required
        - `activations` BenefitLicenseKeyActivationProperties, required
          - `limit` integer, required
          - `enable_customer_admin` boolean, required
        - `limit_usage` integer, nullable, required
      - `visibility_configurable` boolean, required
    - BenefitMeterCredit — A benefit of type `meter_unit`. Use it to grant a number of units on a specific meter.
      - `id` string, uuid4, required — The ID of the benefit.
      - `created_at` string, date-time, required — Creation timestamp of the object.
      - `modified_at` string, date-time, nullable, required — Last modification timestamp of the object.
      - `type` 'meter_credit', required
      - `description` string, required — The description of the benefit.
      - `selectable` boolean, required — Whether the benefit is selectable when creating a product.
      - `deletable` boolean, required — Whether the benefit is deletable.
      - `is_deleted` boolean, required — Whether the benefit is deleted.
      - `organization_id` string, uuid4, required — The ID of the organization owning the benefit.
      - `metadata` MetadataOutputType, required
      - `visibility` 'draft' | 'private' | 'public', required
      - `properties` BenefitMeterCreditProperties, required — Properties for a benefit of type `meter_unit`.
        - `units` integer, required
        - `rollover` boolean, required
        - `meter_id` string, uuid4, required
      - `visibility_configurable` boolean, required
    - BenefitFeatureFlag — A benefit of type `feature_flag`. Use it to grant feature flags with key-value metadata that can be queried via the API and webhooks.
      - `id` string, uuid4, required — The ID of the benefit.
      - `created_at` string, date-time, required — Creation timestamp of the object.
      - `modified_at` string, date-time, nullable, required — Last modification timestamp of the object.
      - `type` 'feature_flag', required
      - `description` string, required — The description of the benefit.
      - `selectable` boolean, required — Whether the benefit is selectable when creating a product.
      - `deletable` boolean, required — Whether the benefit is deletable.
      - `is_deleted` boolean, required — Whether the benefit is deleted.
      - `organization_id` string, uuid4, required — The ID of the organization owning the benefit.
      - `metadata` MetadataOutputType, required
      - `visibility` 'draft' | 'private' | 'public', required
      - `properties` BenefitFeatureFlagProperties, required — Properties for a benefit of type `feature_flag`.
      - `visibility_configurable` boolean, required
    - BenefitSlackSharedChannel
      - `id` string, uuid4, required — The ID of the benefit.
      - `created_at` string, date-time, required — Creation timestamp of the object.
      - `modified_at` string, date-time, nullable, required — Last modification timestamp of the object.
      - `type` 'slack_shared_channel', required
      - `description` string, required — The description of the benefit.
      - `selectable` boolean, required — Whether the benefit is selectable when creating a product.
      - `deletable` boolean, required — Whether the benefit is deletable.
      - `is_deleted` boolean, required — Whether the benefit is deleted.
      - `organization_id` string, uuid4, required — The ID of the organization owning the benefit.
      - `metadata` MetadataOutputType, required
      - `visibility` 'draft' | 'private' | 'public', required
      - `properties` BenefitSlackSharedChannelProperties, required
        - `slack_integration_id` string, uuid4, required — Polar Slack integration linked to this benefit.
        - `channel_name_template` string, required — Template for the channel name. Supports placeholders: {customer_name}, {customer_email_local}, and {metadata.<key>} for any value stored in customer user metadata.
        - `private` boolean — Create the channel as private (recommended).
        - `welcome_message` string, nullable — Optional message posted to the channel right after creation.
        - `archive_on_revoke` boolean — Archive the channel when the benefit is revoked.
        - `team_invitees` string[] — Slack user IDs from the merchant workspace to invite to every channel created for this benefit.
      - `visibility_configurable` boolean, required

## Acknowledgement `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/polar/apis/polar-api.md) · [All operations](https://skmtc.net/polar/apis/polar-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/polar/polar-api/versions/964f974aceff/schema)
