---
title: "Void hold"
method: POST
path: "/v1/holds/{hold_token}/void"
tags: ["Hold"]
---

# Void hold

`POST /v1/holds/{hold_token}/void`

Void an active hold. This returns the held funds from pending back to
available balance. Only holds in PENDING status can be voided.

## Path parameters

- `hold_token` string, uuid, required

## Request body

- VoidHoldRequest — Request to void an active hold
  - `memo` string, nullable — Reason for voiding the hold

## Response `200`

OK

- HoldTransaction — Base class for all transaction types in the ledger service
  - `status` 'PENDING' | 'SETTLED', required — Status of a hold transaction
  - `token` string, uuid, required — Unique identifier for the transaction
  - `created` string, date-time, required — ISO 8601 timestamp of when the transaction was created
  - `updated` string, date-time, required — ISO 8601 timestamp of when the transaction was last updated
  - `family` 'HOLD', required — HOLD - Hold Transaction
  - `result` 'APPROVED' | 'DECLINED', required
  - `financial_account_token` string, uuid, required
  - `pending_amount` integer, required — Current pending amount (0 when resolved)
  - `currency` string, required
  - `events` HoldEvent[], required
    - `token` string, uuid, required
    - `type` 'HOLD_INITIATED' | 'HOLD_VOIDED' | 'HOLD_EXPIRED' | 'HOLD_SETTLED', required — Type of hold lifecycle event
    - `result` 'APPROVED' | 'DECLINED', required
    - `detailed_results` DetailedResults[], required
    - `amount` integer, required — Amount in cents
    - `created` string, date-time, required
    - `memo` string, nullable, required
    - `settling_transaction_token` string, uuid, nullable, required — Transaction token of the payment that settled this hold (only populated for HOLD_SETTLED events)
  - `user_defined_id` string, nullable, required
  - `expiration_datetime` string, date-time, nullable, required — When the hold will auto-expire if not resolved

## Other responses

- `400` — A parameter in the query given in the request does not match the valid queries for the endpoint.
- `401` — | | | |---|---| | User has not been authenticated | Invalid or missing API key | | API key is not active | The API key used is no longer active | | Could not find API key | The API key provided is not associated with any user | | Please provide API key in Authorization header | The Authorization header is not in the request | | Please provide API key in the form Authorization: [api-key] | The Authorization header is not formatted properly | | Insufficient privileges. Issuing API key required | Write access requires an Issuing API key. Reach out at [lithic.com/contact](https://lithic.com/contact) | | Insufficient privileges to create virtual cards. | Creating virtual cards requires an additional privilege | Reach out at [lithic.com/contact](https://lithic.com/contact) |
- `404` — The specified resource was not found.
- `429` — Client has exceeded the number of allowed requests in a given time period. | | | |---|---| | Rate limited, too many requests per second | User has exceeded their per second rate limit | | Rate limited, reached daily limit | User has exceeded their daily rate limit | | Rate limited, too many keys tried | One IP has queried too many different API keys |

---

[API](https://skmtc.net/lithic-com/apis/lithic-developer-api.md) · [All operations](https://skmtc.net/lithic-com/apis/lithic-developer-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lithic-com/lithic-developer-api/revisions/53ab5d4e2adb/schema)
