Keep a Complete Refund Audit Log in Notion

Refunds are a sensitive financial event. Capture each one in a single Notion audit log with customer, amount, reason, and timestamp. Full traceability, no manual entry.

Trigger

Webhook received

Notis starts this workflow when an external tool or custom backend sends an HTTP request.

Notion logo

Action

Add multiple content blocks (bulk, user-friendly)

Efficiently adds multiple standard content blocks to a notion page in a single api call with automatic markdown parsing. the 'content' field in notionrichtext blocks now automatically detects and parses markdown formatting including headers (# ## ###), bold (**text**), italic (*text*), strikethrough (~~text~~), inline code (`code`), links ([text](url)), and more. ideal for bulk content creation, ai agents, and replacing multiple individual add page content calls. supports automatic text formatting, content splitting, and up to 100 blocks per request.

Why this helps

Refunds are scattered across Stripe notifications and emails. Without a centralized record, you can't easily audit who got money back, why, or when. Compliance reporting becomes a scramble.

  • Complete refund history in one place—audit-ready
  • Timestamp and reason captured automatically for compliance
  • Quick pattern spotting if refunds spike

Setup

Build it in a few focused steps.

  • 1Connect both integrations to Notis.
  • 2Ask Notis: 'Send me a webhook URL for refund events from Stripe, and when refunds come through that webhook, add a detailed entry to my Notion Refunds audit log.'
  • 3Notis will give you a webhook URL to paste into Stripe (or configure via Stripe's event subscriptions).
  • 4Notis will confirm it can add refund details (amount, customer, reason, date) to a Notion page or database.
  • 5Process a test refund in Stripe and confirm it appears in your Notion audit log.

Questions about this workflow

How do we configure Stripe to send refund webhooks?

Notis will give you a webhook URL. In Stripe, go to Webhooks and add it as a listener for refund.created events. Takes 2 minutes.

Does this capture partial refunds?

Yes. Each refund, full or partial, gets logged with the exact amount.

Can we categorize refunds by reason?

If Stripe captures a reason (customer request, fraud, etc.), Notis includes it. You can then filter or segment the log by reason in Notion.

When this happens · Trigger

Do this · Action

Supported Triggers and Actions

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

Stripe logo

Stripe triggers

Notion logo

Notion actions

Charge Failed Trigger

Triggered when a direct charge fails in Stripe's legacy Charges API

TriggerInstant

Add multiple content blocks (bulk, user-friendly)

Efficiently adds multiple standard content blocks to a notion page in a single api call with automatic markdown parsing. the 'content' field in notionrichtext blocks now automatically detects and parses markdown formatting including headers (# ## ###), bold (**text**), italic (*text*), strikethrough (~~text~~), inline code (`code`), links ([text](url)), and more. ideal for bulk content creation, ai agents, and replacing multiple individual add page content calls. supports automatic text formatting, content splitting, and up to 100 blocks per request.

ActionInstant

Checkout Session Completed Trigger

Triggered when a checkout session is completed in Stripe

TriggerInstant

Add content to Notion page

Deprecated: appends a single content block to a notion page or a parent block (must be page, toggle, to-do, bulleted/numbered list, callout, or quote); invoke repeatedly to add multiple blocks.

ActionInstant

Invoice Payment Succeeded Trigger

Triggered when an invoice payment is successful in Stripe

TriggerInstant

Append complex blocks (advanced, full control)

Appends complex blocks with full notion block structure to a parent block or page. use for advanced scenarios requiring precise control: code blocks, tables, embeds, nested children within blocks, or when working with pre-built notion block objects. requires full notion api block schema - use add multiple page content for simpler content creation.

ActionInstant

Payment Intent Failed Trigger

Triggered when a payment intent fails in Stripe

TriggerInstant

Archive Notion Page

Archives (moves to trash) or unarchives (restores from trash) a specified notion page.

ActionInstant

Product Created Trigger

Triggered when a product is created in Stripe

TriggerInstant

Create comment

Adds a comment to a notion page (via `parent page id`) or to an existing discussion thread (via `discussion id`); cannot create new discussion threads on specific blocks (inline comments).

ActionInstant

Subscription Added Trigger

Triggered when a subscription is added in Stripe

TriggerInstant

Create Notion Database

Creates a new notion database as a subpage under a specified parent page with a defined properties schema; use this action exclusively for creating new databases.

ActionInstant

Subscription Deleted Trigger

Triggered when a subscription is deleted in Stripe

TriggerInstant

Create Notion page

Creates a new empty page in a notion workspace.

ActionInstant

Delete a block

Archives a notion block, page, or database using its id, which sets its 'archived' property to true (like moving to "trash" in the ui) and allows it to be restored later.

ActionInstant

Connect any two apps with Notis in the middle.

Not just Stripe and Notion. 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 Notion.