---
title: "cancel payment · RUAL Documentation"
description: "Cancels a payment that has not completed. A payment that already succeeded cannot be cancelled : refund it instead."
canonical: https://docs.rual.nl/block-types/stripe/stripeconnection_paymentintents_cancel
language: en
---

# cancel payment

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).

Cancels a payment that has not completed. A payment that already **succeeded** cannot be cancelled : refund it instead.

- flow `flow`

- connection required `stripeconnection`

- payment intent id required `value`

- reason `value` `duplicate`, `fraudulent`, `requested_by_customer` or `abandoned`. • Suggestions: `duplicate` `fraudulent` `requested_by_customer` `abandoned`

- 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`

- succeeded `condition` True only when the money has actually been taken. This is the pin to gate fulfilment on.

- status `value` `requires_payment_method`, `requires_action`, `processing`, `succeeded`, `canceled`.

- payment intent id `value`

- client secret `value` Hand this to Stripe.js in the browser to confirm the payment. It is scoped to this one payment : but do not log it.

- amount `number` What was asked for, in the smallest currency unit.

- amount received `number` What was actually taken. Differs from amount on a partial capture.

- currency `value`

- payment method type `value` What the customer actually paid with: `card`, `ideal`, `sepa_debit`, `bancontact`… Read off the charge, so it is the method used, not the ones offered.

- payment method `value` A line to show a person: "Visa ···· 4242", "ideal (INGBNL2A)", "SEPA ···· 3000".

- payment method details `object` The full method details : brand, last4, bank, mandate, wallet.

- charge id `value` Needed for a refund when no payment intent id is to hand.

- receipt url `value` Stripe's own hosted receipt for this payment.

- customer id `value`

- meta data `object`

- payment intent `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.

| `abandon payment` |
| --- |
| `void payment` |

### Version history

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

### Service documentation
