Search all guides

Reference · Tools

Gumroad trigger

Receives webhook notifications from Gumroad when sales, refunds, disputes, or cancellations occur for your digital products.

Webhook trigger Sales v1

The Gumroad Trigger fires when Gumroad reports a transaction event — a sale, refund, dispute, dispute won, or subscription cancellation — and passes the full payload through, including product details, buyer email, price, currency and subscription metadata. A typical build is granting access to a course on sale and revoking it on refund or cancellation.

Works as
Webhook trigger
Tool name
gumroad_trigger
Parameters
1
Outputs
Output
Credentials
Gumroad
Official docs
Gumroad docs gumroad.com

What you can build with Gumroad

  • Start a workflow when a digital product is sold on Gumroad.
  • Trigger a license key delivery email when a Gumroad sale occurs.
  • When automate refund processing when a Gumroad refund is issued.
  • When track subscriber churn when a Gumroad subscription is cancelled.
  • When alert on payment disputes from Gumroad customers.

Overview

Receives webhook notifications from Gumroad when commerce events occur on your digital products. Supports five resource subscription types: sale (new purchase), refund (purchase refunded), dispute (chargeback filed), dispute_won (chargeback resolved in seller favor), and cancellation (subscriber cancelled). Gumroad sends webhook payloads as application/x-www-form-urlencoded POST requests containing detailed transaction data including product info, buyer email, price, currency, card details, and subscription metadata. No signature verification is available from Gumroad. Useful for automating order fulfillment, license key delivery, refund processing, churn tracking, and sales analytics workflows.

Node Type

Trigger — webhook (receives incoming HTTP callbacks)

Input / Output

DirectionPort(s)
InputNone (trigger node)
OutputOutput

Credentials

This tool requires Gumroad credentials. See the Credentials Guide for setup instructions.

Resources

ResourceValue
Cancellationcancellation
Disputedispute
Dispute Wondispute_won
Refundrefund
Salesale

Parameters

ParameterTypeRequiredDefaultDescription
ResourceoptionsYes—The resource type that will fire the webhook event. Each type creates a separate subscription on Gumroad.
Options: cancellation (a subscriber cancelled), dispute (a chargeback was raised against a sale), dispute_won (a sale dispute was won), refund (a sale was refunded), sale (a new purchase)

To listen for more than one resource, add one Gumroad Trigger node per resource type.

Output Data

Each delivery produces one output item. The Gumroad payload fields are placed directly on the item alongside three metadata fields:

{
  "_trigger": "gumroad_webhook",
  "_timestamp": "2026-01-01T00:00:00.000Z",
  "_webhookEvent": "sale",
  "seller_id": "",
  "product_id": "",
  "product_name": "Example Product",
  "permalink": "example",
  "product_permalink": "https://gumroad.com/l/example",
  "email": "buyer@example.com",
  "price": 999,
  "gumroad_fee": 100,
  "currency": "usd",
  "quantity": 1,
  "order_number": 1,
  "sale_id": "",
  "sale_timestamp": "2026-01-01T00:00:00.000Z",
  "purchaser_id": "",
  "subscription_id": "",
  "card": {
    "visual": "**** **** **** 4242",
    "type": "visa",
    "expiry_month": 12,
    "expiry_year": 2027
  },
  "offer_code": "",
  "license_key": "",
  "ip_country": "US",
  "custom_fields": {},
  "variants": {},
  "url_params": {},
  "shipping_information": {},
  "is_recurring_charge": false,
  "test": true,
  "refunded": false,
  "disputed": false,
  "dispute_won": false
}
  • _trigger — always gumroad_webhook.
  • _timestamp — ISO 8601 timestamp of when the delivery arrived.
  • _webhookEvent — the resource that fired: taken from the payload’s resource_name when Gumroad supplies it, otherwise derived from the cancelled, dispute_won, disputed and refunded flags, defaulting to sale.
  • price is in the currency’s smallest unit (for example cents), and test is true for test purchases.

Field availability depends on the product and the event — subscription fields such as subscription_id and is_recurring_charge only appear for membership products, and license_key only appears when the product issues licences. Reference values downstream by expression, for example {{ $json.email }} or {{ $json.product_name }}.

Example Configuration

Fire on every new sale:

{
  "type": "gumroad_trigger",
  "parameters": {
    "resource": "sale"
  }
}

Fire when a purchase is refunded:

{
  "type": "gumroad_trigger",
  "parameters": {
    "resource": "refund"
  }
}

Track subscription churn:

{
  "type": "gumroad_trigger",
  "parameters": {
    "resource": "cancellation"
  }
}

Alert on chargebacks:

{
  "type": "gumroad_trigger",
  "parameters": {
    "resource": "dispute"
  }
}

Trigger Behavior

  • Activation: When the workflow is activated, a webhook endpoint is registered with the service.
  • Deactivation: The webhook is automatically unregistered when the workflow is deactivated.
  • Payload: The incoming webhook payload is parsed and output as workflow items.
  • Verification: Supports signature verification where applicable.

Tips

This tool receives Gumroad commerce events via webhooks, such as sales, refunds, or cancellations. It is the right tool when you need to start a workflow based on specific Gumroad transaction types. It produces detailed transaction data including product information, buyer email, and price.

Frequently asked questions

Can one trigger listen for several event types?

Each resource type creates its own webhook subscription on Gumroad, so a trigger listens for the resource you select. Use a separate trigger per event type you need to handle.

Which events are available?

Sale for a new purchase, Refund for a reversed one, Dispute when a chargeback is filed, Dispute Won when it is resolved in your favour, and Cancellation when a subscription ends.

What is in the payload?

Detailed transaction data — product information, buyer email, price, currency and subscription metadata — so most fulfilment logic needs no follow-up API call.

Do I need to handle refunds and disputes separately?

They are distinct events, so yes if you want distinct behaviour. Refund and Dispute often warrant different responses: one is usually a customer request, the other a bank-initiated chargeback.

Build with Gumroad

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Gumroad credentials first.

Open BusyBot

Last reviewed . Spotted something wrong? Tell us.