Claude-skill-inception polar-sdk-cancel-subscription
install
source · Clone the upstream repo
git clone https://github.com/strataga/claude-skill-inception
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/strataga/claude-skill-inception "$T" && mkdir -p ~/.claude/skills && cp -r "$T/polar-sdk-cancel-subscription" ~/.claude/skills/strataga-claude-skill-inception-polar-sdk-cancel-subscription && rm -rf "$T"
manifest:
polar-sdk-cancel-subscription/SKILL.mdsource content
Polar SDK Subscription Cancellation
Problem
When trying to cancel a subscription using the Polar SDK, you might try:
await polar.subscriptions.cancel({ id: subscriptionId });
This causes a TypeScript/build error:
Type error: Property 'cancel' does not exist on type 'Subscriptions'.
Context / Trigger Conditions
- TypeScript error about
not existing oncancelSubscriptions - Build failure in code that cancels Polar subscriptions
- Following outdated examples or documentation
Solution
The correct method is
revoke(), not cancel():
// WRONG await polar.subscriptions.cancel({ id: subscriptionId }); // CORRECT await polar.subscriptions.revoke({ id: subscriptionId });
Full Example
import { Polar } from "@polar-sh/sdk"; const polar = new Polar({ accessToken: process.env.POLAR_ACCESS_TOKEN, }); export async function cancelSubscription(subscriptionId: string) { const result = await polar.subscriptions.revoke({ id: subscriptionId, }); return result; }
Verification
- TypeScript compiles without errors
- Subscription is canceled immediately in Polar
- Returns the revoked subscription object
Notes
cancels the subscription immediatelyrevoke()- For canceling at period end, use a different approach (update subscription)
- The Polar SDK also has
for customer-initiated cancellation (different use case)polar.customerPortal.subscriptions.cancel()
References
- Polar JS SDK docs: https://github.com/polarsource/polar-js