---
title: "create refund · RUAL Documentation"
description: "Sends money back to whatever the customer paid with. Leave amount empty to refund the whole payment. This is one of the two ways to credit someone : it…"
canonical: https://docs.rual.nl/block-types/stripe/stripeconnection_refunds_create
language: en
---

# create refund

This block is part of the [`stripe`](https://docs.rual.nl/block-types/stripe) group and was last modified in core [`v15.0.0`](https://docs.rual.nl/core-versions/150000).

Sends money back to whatever the customer paid with. Leave `amount` empty to refund the whole payment. This is one of the two ways to credit someone : it moves real money out of the account. The other is **create credit note**, which settles against a future invoice instead.

- flow `flow`

- connection required `stripeconnection`

- payment intent id `value` pi_… : the payment to refund. Either this or a charge id.

- charge id `value` ch_… : used when no payment intent id is to hand.

- amount `number` Partial refund, in the smallest currency unit. Empty refunds everything still refundable.

- reason `value` `duplicate`, `fraudulent` or `requested_by_customer`. Marking one fraudulent also affects Stripe's dispute handling : for a free-text note use meta data. • Suggestions: `duplicate` `fraudulent` `requested_by_customer`

- reverse transfer `boolean` Stripe Connect: also take the money back from the connected account it was transferred to.

- refund application fee `boolean` Stripe Connect: also refund the platform fee.

- meta data `object`

- idempotency key `value` Optional. Reusing a key makes Stripe replay the first response instead of creating a second object : wire something stable per order, like the order GUID.

- flow `flow`

- connection `stripeconnection`

- refunded `condition` True only once the refund has actually settled. iDEAL and SEPA refunds sit in `pending` for days : telling a customer their money is back before this is true is telling them something untrue.

- status `value` `pending`, `succeeded`, `failed` or `canceled`.

- refund id `value`

- amount `number`

- currency `value`

- charge id `value`

- failure reason `value` Why a refund failed, e.g. the customer's account is closed.

- meta data `object`

- refund `object`

- success `condition`

- error `value` Stripe's own message, or a sentinel like MISSING_SESSION_ID for a problem in the wiring.

- error code `value` Stripe's machine-readable code, e.g. `card_declined`, `resource_missing`.

- decline code `value` Why the bank refused, e.g. `insufficient_funds`. Only set on a declined card.

| `refund` |
| --- |
| `money back` |
| `reverse payment` |
| `credit payment` |

### Version history

Introduced in [`v15.0.0`](https://docs.rual.nl/core-versions/150000).

### Service documentation
