Skip to main content
POST
Freeze Funds in a Wallet

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Path Parameters

wallet_id
string<uuid>
required

The wallet to freeze funds on.

Example:

"a1b2c3d4-e5f6-7890-abcd-ef1234567890"

Body

application/json

Freeze (hold) part of a wallet's available balance.

Moves amount from the wallet's available balance into its frozen hold bucket: available drops, current is unchanged (the money hasn't left the wallet). The frozen funds can later be spent by a payment with from_hold=true or returned to available via a release. This is a partial-amount hold — distinct from the whole-wallet is_frozen block.

amount
required

Amount to freeze, in major currency units.

Required range: x > 0
currency
string
default:USD
Required string length: 3
reason
string | null

Optional human-readable purpose, recorded on the ledger + audit log.

Maximum string length: 500
reference
string | null

Optional caller reference/idempotency trace for the hold.

Maximum string length: 120

Response

Wallet balances after the freeze, plus the amount moved.

Standard response wrapper for single-object responses and errors.

Generic over the payload type. A route that declares CommonResponse[SomeModel] gets the real data schema rendered in OpenAPI/Swagger; a bare CommonResponse leaves data untyped.

status_code
integer
required

HTTP status code for the response.

data
any
required

Payload or error details.

query_generated_time
integer
required

UTC timestamp (milliseconds since epoch) when response was generated.