Skip to main content
POST
/
v1
/
webhooks
/
endpoints
Typescript (SDK)
import { Polar } from "@polar-sh/sdk";

const polar = new Polar({
  accessToken: process.env["POLAR_ACCESS_TOKEN"] ?? "",
});

async function run() {
  const result = await polar.webhooks.createWebhookEndpoint({
    url: "https://webhook.site/cb791d80-f26e-4f8c-be88-6e56054192b0",
    format: "slack",
    events: [
      "subscription.uncanceled",
    ],
    organizationId: "1dbfc517-0bbf-4301-9ba8-555ca42b9737",
  });

  console.log(result);
}

run();
{
  "created_at": "2023-11-07T05:31:56Z",
  "modified_at": "2023-11-07T05:31:56Z",
  "id": "<string>",
  "url": "<string>",
  "secret": "<string>",
  "organization_id": "<string>",
  "events": [],
  "enabled": true,
  "name": "<string>"
}

Authorizations

Authorization
string
header
required

You can generate an Organization Access Token from your organization's settings.

Body

application/json

Schema to create a webhook endpoint.

url
string<uri>
required

The URL where the webhook events will be sent.

Required string length: 1 - 2083
Example:

"https://webhook.site/cb791d80-f26e-4f8c-be88-6e56054192b0"

format
enum<string>
required

The format of the webhook payload.

Available options:
raw,
discord,
slack
events
enum<string>[]
required

The events that will trigger the webhook.

Available options:
checkout.created,
checkout.updated,
checkout.expired,
customer.created,
customer.updated,
customer.deleted,
customer.state_changed,
customer_seat.assigned,
customer_seat.claimed,
customer_seat.revoked,
member.created,
member.updated,
member.deleted,
order.created,
order.updated,
order.paid,
order.refunded,
subscription.created,
subscription.updated,
subscription.active,
subscription.canceled,
subscription.uncanceled,
subscription.revoked,
subscription.past_due,
refund.created,
refund.updated,
product.created,
product.updated,
benefit.created,
benefit.updated,
benefit_grant.created,
benefit_grant.cycled,
benefit_grant.updated,
benefit_grant.revoked,
organization.updated
name
string | null

An optional name for the webhook endpoint to help organize and identify it.

organization_id
string<uuid4> | null

The organization ID.

Example:

"1dbfc517-0bbf-4301-9ba8-555ca42b9737"

Response

Webhook endpoint created.

A webhook endpoint.

created_at
string<date-time>
required

Creation timestamp of the object.

modified_at
string<date-time> | null
required

Last modification timestamp of the object.

id
string<uuid4>
required

The ID of the object.

url
string
required

The URL where the webhook events will be sent.

Example:

"https://webhook.site/cb791d80-f26e-4f8c-be88-6e56054192b0"

format
enum<string>
required

The format of the webhook payload.

Available options:
raw,
discord,
slack
secret
string
required

The secret used to sign the webhook events.

Example:

"polar_whs_ovyN6cPrTv56AApvzCaJno08SSmGJmgbWilb33N2JuK"

organization_id
string<uuid4>
required

The organization ID associated with the webhook endpoint.

events
enum<string>[]
required

The events that will trigger the webhook.

Available options:
checkout.created,
checkout.updated,
checkout.expired,
customer.created,
customer.updated,
customer.deleted,
customer.state_changed,
customer_seat.assigned,
customer_seat.claimed,
customer_seat.revoked,
member.created,
member.updated,
member.deleted,
order.created,
order.updated,
order.paid,
order.refunded,
subscription.created,
subscription.updated,
subscription.active,
subscription.canceled,
subscription.uncanceled,
subscription.revoked,
subscription.past_due,
refund.created,
refund.updated,
product.created,
product.updated,
benefit.created,
benefit.updated,
benefit_grant.created,
benefit_grant.cycled,
benefit_grant.updated,
benefit_grant.revoked,
organization.updated
enabled
boolean
required

Whether the webhook endpoint is enabled and will receive events.

name
string | null

An optional name for the webhook endpoint to help organize and identify it.