• Stripe · Create a refund — Sends money back for a payment — all of it, or part. It is marked Moves money: with a live key, the customer really gets the money back. See Steps that move money.
  • Stripe · Retrieve a charge or payment — A charge's or payment intent's status and amount.

Who can do this

Workspace Admins and Editors, on every plan. Viewers see the step's settings but cannot change them.

Before you start

  • A Stripe connection — see Connect Stripe. Use one with a test key while you build.
  • The payment's id — a payment intent (pi_…) or a charge (ch_…) — usually from a Stripe trigger, as {{ trigger.id }}.

Steps

Create a refund:

  1. Select +. In the step picker, open Apps, select Stripe, then Create a refund. The settings open with the Moves money tag and This step sends money out of your account.
  2. In Connection, choose your Stripe connection. Read the line under it: Live key — real money. or Test mode — Test key — no real money moves.
  3. In Payment, the payment or charge — The payment or charge to refund — from a trigger or an earlier step. An id starting ch_ is refunded as a charge; anything else as a payment intent.
  4. In Refund, choose Full (the default) or Part. For Part, fill in Amount — In the currency's main unit; Bizomate sends the smallest. — and choose the payment's Currency.
  5. Optional: in Reason, choose Asked for by the customer, Duplicate or Fraudulent. None sends no reason.
  6. Leave Idempotency key as {{ run.id }} — A retry of this step sends the same key, so the service pays once. Run again, Test run and Run this step start a new run with a new key, and pay again. Bizomate adds the step's id, and the item's position, to it.
  7. Optional: under Metadata, add names and values Stripe keeps with the refund.
  8. Select Test run. With a live key, Bizomate asks first — This workflow refunds ₹ 500.00 with a live Stripe key. A test run pays for real. — and the red button, Refund ₹ 500.00, starts the test run, which refunds for real. Cancel runs nothing.

Retrieve a charge or payment:

  1. In the step picker, under Stripe, select Retrieve a charge or payment.
  2. In Connection, choose your Stripe connection.
  3. In Charge or payment, an id starting pi_ or ch_.
  4. Select Run this step.

Output

Create a refund

Field What it is
id Stripe's id for the refund — starts re_.
status succeeded, pending or failed.
amount, amountMain, amountText 50000, 500, ₹ 500.00.
currency inr.
paymentIntent, charge What was refunded.

Retrieve a charge or payment

Field What it is
id, status The payment's id and status — succeeded, requires_payment_method …
amount, amountMain, amountText The amount.
amountReceived, amountReceivedMain, amountReceivedText For a payment intent: what was received.
amountRefunded, amountRefundedMain, amountRefundedText For a charge: what has been refunded.
currency, customer, description, email As Stripe has them.
createdAt When it was made, in UTC.

Good to know

  • A retried step refunds once. Every try in the same run sends Stripe the same Idempotency-Key, and Stripe answers a repeat with the first refund.
  • Run again, Test run and Run this step refund again — each is a new run, with a new key.
  • Several items in one run. The step runs once per item, and each item sends its own key — Bizomate adds the item's position to it — so several refunds in one run each go through.
  • Once per order. To refund an order only once, whatever run does it, use a value from the trigger as the key.

If something goes wrong

What you see Why What to do
Payment is empty when the step ran — … Payment reads a value that came out empty. Check the value it reads.
Amount is empty when the step ran — … Refund is Part with no Amount. Fill in Amount, or choose Full.
Charge or payment is neither a charge (ch_…) nor a payment (pi_…). Retrieve was given another kind of id. Give a pi_ or ch_ id.
Stripe refused: … about a refund Stripe would not refund, in its own words — already refunded, more than is left, or the payment is in the other mode. Retrieve the payment and check it.
Stripe refused: Keys for idempotent requests can only be used with the same parameters they were first used with. … A key of your own was used in an earlier run for a different refund — for example a fixed value. Use a key that names the refund's payment or order, such as {{ $json.id }}.