Cashfree · Refund an order — Sends money back for a paid order — refunds through your Cashfree account. It is marked Moves money: on a Production connection, the customer really gets the money back. See Steps that move money.

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 Cashfree connection — see Connect Cashfree. Use a Sandbox one while you build.
  • The paid order's id — for example from Payment success, as {{ trigger.orderId }}.

Steps

  1. Select +. In the step picker, open Apps, select Cashfree, then Refund an order. The settings open with Moves money and This step sends money out of your account.
  2. In Connection, choose your Cashfree connection. Read the line under it: Live key — real money. or Test mode — Test key — no real money moves.
  3. In Order, the order — The paid order to refund — from a trigger or an earlier step.
  4. In Amount, how much — In rupees. The order's full amount refunds it all. For a full refund use {{ trigger.amount }}.
  5. In Currency, the order's currency — ₹ Indian rupee by default.
  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: Note.
  8. Select Test run. On a Production connection, Bizomate asks first — This workflow refunds ₹ 500.00 with a live Cashfree key. A test run pays for real. — with Refund ₹ 500.00 and Cancel. When Amount comes from an earlier step, the button reads Refund for real.

Output

Field What it is
refundId The refund's id — the idempotency key, with the step's id.
cfRefundId Cashfree's own number for the refund.
orderId The order refunded.
status PENDING, SUCCESS, CANCELLED or ONHOLD.
amount, amountText 500, ₹ 500.00.
alreadyRefunded false for a new refund; true when a refund with this key already existed and was given back.

What happens next

  • Before refunding, Bizomate looks for a refund on the order with this key as its id. If there is one, it gives that back with alreadyRefunded: true, and nothing more is refunded.
  • Cashfree tells you when the refund is done with Refund status — see Start a workflow from Cashfree payment events.

Good to know

  • A retried step refunds once: every try in the same run uses the same key.
  • Run again, Test run and Run this step refund again — each is a new run, with a new key.
  • Amount is always needed. There is no full-or-part choice; the order's full amount refunds it all.
  • Runs once per item. Each item refunds its own order.

If something goes wrong

What you see Why What to do
Order is empty when the step ran — … / Amount is empty when the step ran — … The value it reads came out empty. Check the values it reads.
Cashfree refused: … Cashfree would not refund, in its own words — the order is not paid, the amount is more than is left, or the order is in the other environment. Use Get an order to check it.
alreadyRefunded is true and you meant a new refund The key was used before. Use a different Idempotency key.