---
title: "create refund · RUAL Documentation"
description: "Refunds all or part of a payment transaction. Wire an idempotency key that is stable per refund: Smart Pay answers a repeated key with the first refund…"
canonical: https://docs.rual.nl/block-types/rabosmartpay/rabosmartpayconnection_refunds_create
language: en
---

# create refund

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

Refunds all or part of a payment transaction. Wire an `idempotency key` that is stable per refund: Smart Pay answers a repeated key with the first refund instead of making a second one.

- flow

- connection `rabosmartpayconnection` required

- transaction id `value` required From get payment or a webhook result : the transaction, not the order.

- amount `number` required In cents. At most what refundable details reports.

- currency `value` Default `EUR`.

- description `value`

- vat category `value` `HIGH`, `LOW` or `ZERO`. `NONE` sends no category, which is how Smart Pay spells it on a refund. • Suggestions: `HIGH` `LOW` `ZERO` `NONE`

- idempotency key `value` Anything stable per refund, e.g. the order id plus a refund number. Without it every run is a new refund. A Request-ID from `request id` is sent unchanged.

- flow

- connection `rabosmartpayconnection`

- refund id `value` Read the refund back with get refund.

- status `value` `PENDING`, then `SUCCEEDED` or `FAILED`.

- amount `number` In cents.

- currency `value`

- transaction id `value` The payment transaction refunded.

- refund transaction id `value`

- refund `object`

- request id `value` The Request-ID this refund was sent with. If the answer was lost, run again with this as the idempotency key: Smart Pay then replays this refund instead of making a second.

- success `condition`

- error `value` Smart Pay's own message, e.g. *merchantOrderId should only contain alphanumeric characters*, or a sentinel for a problem in the wiring.

- error code `value` Smart Pay's code (`5017` validation, `5001` authorization) or a sentinel like `SIGNATURE_MISMATCH`.

| `refund` |
| --- |
| `money back` |
| `partial refund` |

## Version history

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

## Service documentation

- [External API reference](https://docs.developer.rabobank.com/smartpay/reference/integration-guide): This block wraps a third-party service. Click here for the service's own documentation of the underlying endpoint.

- [Back to `rabosmartpay`](https://docs.rual.nl/block-types/rabosmartpay): Return to the main group to view all sub-groups

- [Back to `refunds`](https://docs.rual.nl/block-types/rabosmartpay?group=refunds): Return to the group to view all blocks within this group
