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

# API Changelog

> Stay up to date with the latest changes introduced in our API

Polar uses date-based API versions to evolve the API without unexpectedly changing
the contract your integration depends on. Versions use the `YYYY-MM` format, such
as `2026-10`, and apply to API requests, responses, webhook payloads, and SDK types. [Read more](https://polar.sh/docs/api-reference/current/versioning.md)

**2027-01**

**This will become the Current version on January 1, 2027.**

Removed the following obsolete fields, including fields that were already hidden from the API documentation and SDKs. Response field removals also apply to webhook payloads. Earlier API versions retain these fields.

* Fixed discounts: removed `amount` and `currency` from create and update requests, responses, and webhook payloads. Use `amounts` instead; it is required when creating a fixed discount. Removed input fields are ignored.
* Organization onboarding details: removed `about`, `intended_use`, `customer_acquisition`, `future_annual_revenue`, and `previous_annual_revenue` from create/update requests and KYC responses. Removed input fields are ignored. Updating details replaces stored values with the remaining supported fields.
* Orders: `user_id`, `user`, `product_price_id`, `product_price`, `amount` (use `net_amount`), and `from_balance_amount` (use `applied_balance_amount`). Embedded subscriptions also lose `user_id`.
* Subscriptions: `user_id`, `user`, `price_id`, and `price`. Use `customer_id`, `customer`, and `prices` instead.
* Customer state active subscriptions: `price_id`. Use `prices` instead.
* Customer portal orders and subscriptions: `user_id`, order `product_price_id` and `product_price`, and subscription `price_id` and `price`.
* License keys: `user_id` and `user`. Use `customer_id` and `customer` instead.
* Benefit grants: `user_id`. Use `customer_id` instead.
* Checkout links: `product_id`, `product_price_id`, `product`, and `product_price`. Use `products` instead.
* Checkouts: `customer_external_id` (use `external_customer_id`), `customer_billing_address_fields` (use `billing_address_fields`), and `subtotal_amount` (use `net_amount`).
* Organizations: `bio`, `company`, `blog`, `location`, `twitter_username`, `pledge_minimum_amount`, `pledge_badge_show_amount`, `default_upfront_split_to_contributors`, and `notification_settings`.
* Organizations embedded in other resources: `email`, `website`, `socials`, `status`, `details_submitted_at`, `feature_settings`, `subscription_settings`, and `customer_email_settings`.
* Custom and Slack shared channel benefits: `is_tax_applicable`.
* Discord benefit properties: `guild_token`. Use `guild_id` instead.
* GitHub repository benefit properties: `repository_id`. Use `repository_owner` and `repository_name` instead.

Legacy recurring-price fields are unchanged.

**2026-10**

**This will become the Current version on October 1st.**

* Removed the `secret` parameter when [creating](https://polar.sh/docs/api-reference/2026-10/webhooks/create-webhook-endpoint.md) or [updating](https://polar.sh/docs/api-reference/2026-10/webhooks/update-webhook-endpoint.md) webhook endpoints. New endpoint secrets are generated by Polar.
* Added `member_id` and `member` to [license key responses](https://polar.sh/docs/api-reference/2026-10/license_keys/get-license-key.md), identifying the seat member holding the key. Both are `null` for keys granted directly to a customer.

**2026-04**

### Standard Webhooks signing

New webhook endpoints with secrets generated by Polar on or after **September 8,
2026 at 00:00 UTC** use signing compliant with the Standard Webhooks specification.

Endpoints with secrets generated before this cutoff continue to use Polar's
previous signing approach, preserving compatibility with existing integrations.
Endpoints with user-provided secrets also retain the previous approach.
We will continue to support this approach for as long as necessary; there is no
required migration deadline.

To adopt Standard Webhooks signing for an existing endpoint, **regenerate its
secret** and update your webhook handler to use the new secret. When using a
Standard Webhooks library directly, pass the new secret as-is, without
Base64-encoding it first.

See [webhook signature validation](https://polar.sh/docs/integrate/webhooks/delivery.md#custom-validation)
for details on both signing approaches.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.