Skip to main content

Refund Transaction

POST 

/api/pos/transactions/:posTransaction/refund

Refund a completed POS sale in full — credit and restock the items, then either refund the original tenders (card via processor, cash at the drawer) or top up the customer's store-credit wallet.

Not yet available to API tokens

This endpoint currently requires session authentication; Personal Access Token scope support is in progress.

Authentication: Requires Bearer token. Permission: pos.refund.

Request body fields:

  • refund_to (enum, nullable) — original (default; back to the original tenders) or store_credit (top up the attached customer's wallet). Store credit requires a customer on the sale (enforced server-side). Omitting the field defaults to original.

Refunds are serialized under a row lock so a duplicate refund aborts. Returns 200 with the updated transaction (is_refunded true) and a message.

Request

Responses

OK

Response Headers
    Content-Type