Creating a refund
checkout_id— thedata.idreturned when you created the checkout.amount— pence to refund. Anything from 1 penny up to the remaining refundable amount; partial refunds are supported, and you can issue multiple partial refunds until the original amount is exhausted.
id and track it with GET /api/refunds/:id.
Refund lifecycle
Refunds are not instant: approval and processing can take up to a business day. Reflect
requested/pending as “refund in progress” in your admin UI rather than assuming completion.
Constraints
Additional rules:- The checkout must be
successful. - The sum of all refunds for a checkout can’t exceed the original amount (
422if it would). - Refunds are processed toward the shopper’s instalment plan — remaining instalments are reduced or already-collected amounts returned. You don’t need to care which; Float handles the split.
Cancelling vs refunding
There is no separate “void” or “cancel payment” API. If a shopper cancels before paying, the checkout simply endscancelled and no money moves. Once a checkout is successful, use a refund.