> This page is for version v1 (default).
> For other versions, use one of these documentation indexes:
> - v1 (default): https://developers.truemed.com/v-1/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developers.truemed.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developers.truemed.com/_mcp/server.

# Refunds, cancels, and voids

> How to cancel, void, or refund a Truemed payment session depending on where it is in the payment lifecycle.

Refunds, cancels, and voids handle different moments in the payment lifecycle. Use the operation
that matches the current state of the payment session.

| Operation | Use it when                                                                                                                           | API reference                                                                                                      |
| --------- | ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| Cancel    | The session was created, but the customer has not entered payment information.                                                        | [`POST /payments/v1/payment_session/{business_id}/cancel`](/api-reference/payment-sessions/cancel-payment-session) |
| Void      | A [manual capture](/guides/overview/glossary#manual-capture) authorization exists and you want to release the hold without capturing. | [`POST /payments/v1/payment_session/{business_id}/void`](/api-reference/payment-sessions/void-payment-session)     |
| Refund    | Funds were captured and you need to return some or all of the payment.                                                                | [`POST /payments/v1/refund`](/api-reference/payment-sessions/create-refund)                                        |

## Cancel a pending session

Cancel a payment session when checkout should no longer continue and the customer has not entered
payment details yet. After cancellation, keep the order unpaid or let the customer choose another
payment method.

## Void an authorization

Void a session when you used [Manual/Delayed Capture](/guides/setup/api/payment-sessions/manual-delayed-capture)
and no longer want to capture the authorization. Voiding releases the hold instead of settling
funds.

## Refund a captured payment

Refund a payment after funds are captured. Use refunds for post-payment returns, order adjustments,
or customer support cases where funds need to move back to the customer.

For itemized orders, use the payment session details and webhook payloads to reconcile which items
or amounts remain refundable.

## Choosing the right operation

| Payment state                                                                                                                          | Operation                                                                                   |
| -------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| Customer has not completed checkout                                                                                                    | Cancel                                                                                      |
| Authorization was created, but should not be captured                                                                                  | Void                                                                                        |
| Payment was captured                                                                                                                   | Refund                                                                                      |
| [Multi-capture](/guides/setup/api/payment-sessions/manual-delayed-capture#capturing-in-multiple-parts) session is `partially_captured` | Refund a completed capture with its `capture_id`. Void to release the uncaptured remainder. |

If you are not sure which state a payment is in, retrieve the payment session first:
[`GET /payments/v1/payment_session/{business_id}`](/api-reference/payment-sessions/retrieve-payment-session).