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.
| Field | Type | Required | Default | Constraints | Example |
|---|---|---|---|---|---|
charge The charge to refund (ch_...). Give this or 'payment_intent'. | string | No | — | — | ch_3MmlLrLkdIwHu7ix0snN0B15 |
payment_intent The PaymentIntent to refund (pi_...). Give this or 'charge'. | string | No | — | — | 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. | number | No | — | ≥ 1 | — |
reason Why the money is going back. Choosing 'fraudulent' also adds the card and email to your Radar block lists. | string | No | — | one of "duplicate", "fraudulent", "requested_by_customer" | — |
metadata Key/value pairs stored on the refund and returned on every read. | object | No | — | — | — |
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. | string | No | — | ≤ 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
| Field | Type | Example |
|---|---|---|
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.