Stop billing when projects are declined

When a client declines a project or you kill an initiative in Linear, you still have to remember to cancel the Stripe subscription. Notis handles it: issue marked declined, subscription cancels automatically.

Trigger

Issue Updated Trigger

Triggered when an issue is updated. For example labels are changed, issue status is changed, etc.

Stripe logo

Action

Cancel subscription

Cancels a customer's active stripe subscription at the end of the current billing period, with options to invoice immediately for metered usage and prorate charges for unused time.

Why this helps

Declined projects linger as active subscriptions in Stripe, burning money until you remember to cancel—a cognitive tax that leads to wasted revenue.

  • Subscriptions cancel instantly when projects are declined—no lingering charges
  • No manual Stripe navigation to cancel subscriptions
  • Billing stops automatically; less money wasted on dead projects
  • One clear action (marking as declined) triggers everything else

Setup

Build it in a few focused steps.

  • 1Connect Linear and Stripe to Notis.
  • 2Create automation: 'When a Linear issue is marked declined or cancelled, cancel the associated subscription in Stripe.'
  • 3Tell Notis which Linear statuses indicate a project is truly dead (e.g., 'status=declined' or 'label=cancelled').
  • 4Set your notification channel so Notis confirms each subscription cancellation.
  • 5Test by marking a Linear issue as declined and verifying the Stripe subscription cancels.

Questions about this workflow

How does Notis know which Stripe subscription to cancel?

Notis links the Linear issue to the subscription via customer name, email, or a subscription ID you include in the issue. That link ensures the right subscription is cancelled.

Can I prorate charges for partial billing periods?

Yes. Tell Notis to cancel with proration enabled, and Stripe will credit unused time back to the customer.

What if I want to pause instead of cancel?

You can configure Notis to mark the subscription as 'paused' (via a custom status in Stripe) instead of fully cancelling. You define what 'declined' means for your workflow.

When this happens · Trigger

Do this · Action

Supported Triggers and Actions

Notis builds workflows that link Linear to Stripe. A trigger fires from one place; an action lands in another.

Linear logo

Linear triggers

Stripe logo

Stripe actions

Comment Received Trigger

Triggered when a comment is received.

TriggerInstant

Cancel subscription

Cancels a customer's active stripe subscription at the end of the current billing period, with options to invoice immediately for metered usage and prorate charges for unused time.

ActionInstant

Issue Created Trigger

Triggered when a new issue is created.

TriggerInstant

Confirm payment intent

Confirms a stripe paymentintent to finalize a payment; a `return url` is necessary if the payment method requires customer redirection.

ActionInstant

Issue Updated Trigger

Triggered when an issue is updated. For example labels are changed, issue status is changed, etc.

TriggerInstant

Create Customer

Creates a new customer in stripe, required for creating charges or subscriptions; an email is highly recommended for customer communications.

ActionInstant

Private Team Comment Created

Fires when a new comment is posted on an issue in a private Linear team (polled with the connected user's token).

TriggerPolling

Create an invoice

Creates a new draft stripe invoice for a customer; use to revise an existing invoice, bill for a specific subscription (which must belong to the customer), or apply detailed customizations.

ActionInstant

Private Team Issue Created

Fires when a new issue appears in a private Linear team (polled with the connected user's token).

TriggerPolling

Create payment intent

Creates a stripe paymentintent to initiate and process a customer's payment; using `application fee amount` for a connected account requires the `stripe-account` header.

ActionInstant

Private Team Issue Properties Updated

Fires when properties on an issue change in a private Linear team (polled with the connected user's token).

TriggerPolling

Create a price

Creates a new stripe price for a product, defining its charges (one-time or recurring) and billing scheme; requires either an existing `product` id or `product data`.

ActionInstant

Project Created

Fires when a new Linear project is created. Covers projects in both public and private teams — polls with the connected user's token, so visibility matches what the connected user can see in Linear.

TriggerPolling

Create product

Creates a new product in stripe, encoding the request as `application/x-www-form-urlencoded` by flattening nested structures.

ActionInstant

Project Properties Updated

Fires when properties on a Linear project change (status, lead, target date, priority, etc.). Covers projects in both public and private teams — polls with the connected user's token.

TriggerPolling

Create Refund

Creates a full or partial refund in stripe, targeting either a specific charge id or a payment intent id.

ActionInstant

Connect any two apps with Notis in the middle.

Not just Linear and Stripe. Any combination from 985+ integrations.

When this happens · Trigger

Do this · Action

Save your first hour today.

7 days free trial with 20$ free usage included.
No card. Works with personal or business Stripe.