Create Refund

stripe.create_refund
ActionBusiness appsconnection required

Calls the Stripe API with the connection's secret key.

Refund a Stripe charge or PaymentIntent, in full or in part.

Connection

Required
Yes — the node will not save without one
Auth type
API key
Providers
Stripe
Secret shape
the Stripe secret key (sk_...)
Resolved by
config.connection_id, else node.connection_id

Configuration

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

FieldTypeRequiredDefaultConstraintsExample
charge
The charge to refund (ch_...). Give this or 'payment_intent'.
stringNo——ch_3MmlLrLkdIwHu7ix0snN0B15
payment_intent
The PaymentIntent to refund (pi_...). Give this or 'charge'.
stringNo——pi_3MtwBwLkdIwHu7ix28a3tqPa
amount
How much to refund, in the currency's minor unit (2000 = 20.00 USD). Leave blank to refund the whole remaining amount.
numberNo—≥ 1—
reason
Why the money is going back. Choosing 'fraudulent' also adds the card and email to your Radar block lists.
stringNo—one of "duplicate", "fraudulent", "requested_by_customer"—
metadata
Key/value pairs stored on the refund and returned on every read.
objectNo———
idempotency_key
Overrides the key this node derives from the step. Set it to a business identifier (an order id, say) when the same write must not repeat across runs; leave it blank and a retry of this step reuses the step's own key.
stringNo—≤ 255 characters—
  • At least one of charge, payment_intent must be set.

Example configuration

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

{
  "charge": "ch_3MmlLrLkdIwHu7ix0snN0B15",
  "payment_intent": "pi_3MtwBwLkdIwHu7ix28a3tqPa"
}

Output

One shape.

result

FieldTypeExample
id
The refund id (re_...).
string—
amount
Amount refunded, in the currency's minor unit.
number—
currency
Three-letter lowercase ISO currency code.
string—
charge
The charge that was refunded, or null.
string—
payment_intent
The PaymentIntent that was refunded, or null.
string—
reason
The recorded reason, or null when none was given.
string—
status
One of pending, requires_action, succeeded, failed or canceled.
string—
created
Creation time, as a Unix timestamp in seconds.
number—
metadata
The key/value pairs stored on the refund.
object—
{
  "amount": 0,
  "charge": "",
  "created": 0,
  "currency": "",
  "id": "",
  "metadata": {},
  "payment_intent": "",
  "reason": "",
  "status": ""
}

Notes

  • A charge can be refunded repeatedly until its full amount is returned; refunding more than remains is an error.

See Create Refund run in a workflow.

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