Refund Sale

gumroad.refund_sale
ActionBusiness appsconnection required

Calls the Gumroad API with the connection's credentials.

Refund a sale in full, or in part by naming an amount in the sale's own listed currency. Gumroad refuses a sale that is already refunded.

Connection

Required
Yes — the node will not save without one
Auth type
Bearer token
Providers
Gumroad
Secret shape
the Gumroad access token, or {"access_token": "…"}
Config it needs
base_url
Resolved by
config.connection_id, else node.connection_id

Configuration

2 fields, 1 required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.

FieldTypeRequiredDefaultConstraintsExample
sale_id
The sale's Gumroad id, as returned by Gumroad: List Sales.
stringYes——EDPE-vlA1PmBmClJb-Ppcg==
amount_cents
How much to refund, in the smallest unit of the sale's listed currency. Leave blank to refund the whole sale.
numberNo—≥ 1—

Example configuration

Every value below is the contract’s own example or default — nothing invented.

{
  "sale_id": "EDPE-vlA1PmBmClJb-Ppcg=="
}

Output

One shape.

result

FieldTypeExample
id
The sale's Gumroad id.
string—
email
The buyer's email address.
string—
purchase_email
The address the purchase itself was made with.
string—
full_name
The buyer's name, when they gave one.
string—
seller_id
The seller's Gumroad id.
string—
created_at
ISO-8601 time the sale was made.
string—
timestamp
How long ago the sale was made, in words.
string—
product_id
The product's Gumroad id.
string—
product_name
The product's name.
string—
product_permalink
The product's short permalink.
string—
price
What the buyer paid, in the smallest currency unit.
number—
gumroad_fee
Gumroad's fee on the sale, in the same unit.
number—
currency
ISO code of the currency the sale is listed in.
string—
formatted_total_price
The total as Gumroad displays it.
string—
amount_refundable_in_currency
How much of the sale can still be refunded.
string—
order_id
The numeric order id, which also filters the sales list.
number—
quantity
How many units the sale covers.
number—
refunded
True once the sale has been refunded in full.
boolean—
partially_refunded
True when only part of the sale was refunded.
boolean—
disputed
True while a chargeback is open on the sale.
boolean—
dispute_won
True when a chargeback was reversed in the seller's favour.
boolean—
chargedback
True when the sale was charged back and not reversed.
boolean—
license_key
The licence key issued for the sale, when the product has one.
string—
is_recurring_billing
True when the product is a membership.
boolean—
subscription_id
The subscription the sale belongs to, for memberships.
string—
variants
The variant names the buyer chose, by category.
object—
custom_fields
The custom checkout fields the buyer filled in.
object—
country
The buyer's country.
string—
referrer
Where the buyer came from.
string—
{
  "amount_refundable_in_currency": "",
  "chargedback": false,
  "country": "",
  "created_at": "",
  "currency": "",
  "custom_fields": {},
  "dispute_won": false,
  "disputed": false,
  "email": "",
  "formatted_total_price": "",
  "full_name": "",
  "gumroad_fee": 0,
  "id": "",
  "is_recurring_billing": false,
  "license_key": "",
  "order_id": 0,
  "partially_refunded": false,
  "price": 0,
  "product_id": "",
  "product_name": "",
  "product_permalink": "",
  "purchase_email": "",
  "quantity": 0,
  "referrer": "",
  "refunded": false,
  "seller_id": "",
  "subscription_id": "",
  "timestamp": "",
  "variants": {}
}

See Refund Sale run in a workflow.

In a technical demo we add the Gumroad connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.