Version
DESTRUCTIVE

cancel_subscription

Queue a subscription cancellation. Provider-side cancellation and local state mutation run asynchronously on the webhooks queue.

Cancel a subscription. Delegates to an Action which queues a job — provider-side cancellation (Stripe / PayPal / Razorpay / Paystack), local state mutation, and the subscription.cancelled event all fire on the webhooks queue. Already-cancelled subscriptions return SUBSCRIPTION_ALREADY_ACTIVE instead of silently succeeding.

The token behind the MCP session must hold it, or the call is refused with TOKEN_MISSING_ABILITY.

The REST endpoint and this tool share one action, so validation, permissions and events are identical.

Fires one event

Delivered to every endpoint subscribed to it once the change is made.

Annotations

DestructiveIdempotentOpen world

A client that honours annotations asks a person before running it. Sending the same arguments twice changes nothing the second time. It reaches beyond Subscriby: a connector, a provider or a member.

Arguments

subscription_id*string

UUID of the subscription to cancel.

What it returns

{  "data": {    "subscription_id": "5b7e2d40-1a86-4c39-97f2-e83d0b16c5a4",    "status": "cancellation_queued"  }}

How it fails

RESOURCE_NOT_FOUND

unknown subscription_id, or the subscription belongs to a team outside the token's scope.

SUBSCRIPTION_ALREADY_ACTIVE

subscription already cancelled.

TOKEN_MISSING_ABILITY

token lacks project-subscription:update.

How is this guide?

Last updated on