---
title: "Put Funds on Hold"
source_url: https://docs.rapyd.net/en/put-funds-on-hold.html
lang: en
---

# Put Funds on Hold

Put a hold on funds in the wallet. Sandbox only.

This action transfers funds from the available balance to the on-hold balance. If the wallet does not have enough funds in the available balance in the specified currency, the transfer fails.

This method triggers the **Transfer Funds Between Balances** webhook. This webhook contains the same information as the response.

The customer cannot move funds that are on hold until the client releases the hold.

This method is relevant for **person** and **company** wallets.

> **Note:**
>
> - Deprecated endpoint - `POST /v1/account/balance/hold`
> - Rapyd no longer supports the deprecated endpoint.
> - The code samples include successful requests (200) and bad requests (400).
>
>   - For error messages that appear due to bad requests (400), see: [General Errors](https://docs.rapyd.net/en/general-errors.md "General Errors")
>   - For information about unauthorized request (401) and other authentication errors, see [Wallet Transaction Errors](https://docs.rapyd.net/en/wallet-transaction-errors.md "Wallet Transaction Errors").

### Parameters

### Request Header Parameters

- - access_key
  - Unique access key provided by Rapyd for each authorized user.

    See [Developers](https://docs.rapyd.net/en/developers.md "Developers").
- - Content-Type
  - Indicates that the data appears in JSON format. Set to **application/json**.
- - idempotency
  - A unique key that prevents the platform from creating the same object twice.

    See [Idempotency](https://docs.rapyd.net/en/idempotency.md "Idempotency").
- - salt
  - Random string. Recommended length: 8-16 characters.
- - signature
  - Signature calculated for each request individually.

    See [Request Signatures](https://docs.rapyd.net/en/request-signatures.md "Request Signatures").
- - timestamp
  - Timestamp for the request, in [Unix time](https://docs.rapyd.net/en/glossary.md#UUID-945d98cf-adae-e1cf-2606-c7fae8b4a7e1_unix_time "Unix time") (seconds).

### Request Body Parameters

- - amount
  - Amount of the transfer. Decimal.
- - currency
  - Three-letter ISO 4217 code for the currency used in the `amount` field.
- - ewallet
  - ID of the wallet associated with the contact. String starting with **ewallet_**.

### Response Parameters

- - amount
  - - **Transactions** - Amount of the transaction, in units of the currency defined in `currency`. Decimal, including the correct number of decimal places for the currency exponent, as defined in ISO 4217:2015.
    - **Wallet Account Operations** - Amount of the account limit.
- - currency_code
  - Three-letter ISO 4217 code for the currency used in the `amount` field.
- - destination_account_id
  - ID of the wallet owner's user. UUID.
- - destination_amount
  - Amount received by the destination balance.
- - destination_balance_type
  - Balance type that the funds are transferred to. See [Wallet Balance Types](https://docs.rapyd.net/en/wallet-balance-types.md "Wallet Balance Types"). One of the following:

    - **available_balance**
    - **on_hold_balance**
    - **received_balance**
    - **reserve_balance**
- - destination_currency
  - Currency received by the destination balance.
- - destination_transaction_id
  - ID of the transaction with regard to the destination. String starting with **wt_**.
- - destination_transaction_pk
  - Numeric ID of the transaction with regard to the destination.
- - destination_user_profile_id
  - ID of the wallet owner's user. UUID.
- - id
  - ID of the transaction. UUID.
- - source_account_id
  - ID of the wallet owner's user. UUID.
- - source_balance_type
  - Balance type that the funds are transferred from. See [Wallet Balance Types](https://docs.rapyd.net/en/wallet-balance-types.md "Wallet Balance Types"). One of the following:

    - **available_balance**
    - **on_hold_balance**
    - **received_balance**
    - **reserve_balance**
- - source_transaction_id
  - ID of the transaction with regard to the source. String starting with **wt_**.
- - source_transaction_pk
  - Numeric ID of the transaction with regard to the source.
- - source_user_profile_id
  - ID of the wallet owner's user. UUID.

- /v1/ewallets/accounts/balance/hold

- Put Funds on Hold
- ```curl
  curl -X post 'https://sandboxapi.rapyd.net/v1/ewallets/accounts/balance/hold' \
  -H 'access_key: your-access-key-here' \
  -H 'Content-Type: application/json' \
  -H 'idempotency: your-idempotency-parameter-here' \
  -H 'salt: your-random-string-here' \
  -H 'signature: your-calculated-signature-here' \
  -H 'timestamp: your-unix-timestamp-here' \
  --data-raw '{
    "ewallet": "ewallet_31fb2dbbaf6519461ee4fbe1062220d3",
    "amount": 28,
    "currency": "EUR"
  }'
  ```
- ```json
  {
      "status": {
          "error_code": "",
          "status": "SUCCESS",
          "message": "",
          "response_code": "",
          "operation_id": "4b9ae072-e9bd-4153-915c-181cf3917ef1"
      },
      "data": {
          "id": "d0b1c8d4-e34b-4fd6-9cee-2c7b4dca17cc",
          "source_transaction_id": "e02134ab-5b4d-4ddd-bc85-cea5c0101185",
          "destination_transaction_id": "5ca865f2-b511-41b1-aeed-ed25a2da9491",
          "source_user_profile_id": "7f5e489a-6d48-11f0-a9a0-027388e3b881",
          "destination_user_profile_id": "7f5e489a-6d48-11f0-a9a0-027388e3b881",
          "source_account_id": "49b2c1db-dd26-444f-8667-5508ae901de5",
          "destination_account_id": "49b2c1db-dd26-444f-8667-5508ae901de5",
          "source_balance_type": "available_balance",
          "destination_balance_type": "on_hold_balance",
          "currency_code": "EUR",
          "amount": 28,
          "destination_currency_code": "EUR",
          "destination_amount": 28,
          "source_transaction_pk": 21079492,
          "destination_transaction_pk": 21079493
      }
  }
  ```

- Bad Request - Insufficient Funds
- ```curl
  curl -X post 'https://sandboxapi.rapyd.net/v1/ewallets/accounts/balance/hold' \
  -H 'access_key: your-access-key-here' \
  -H 'Content-Type: application/json' \
  -H 'idempotency: your-idempotency-parameter-here' \
  -H 'salt: your-random-string-here' \
  -H 'signature: your-calculated-signature-here' \
  -H 'timestamp: your-unix-timestamp-here' \
  --data-raw '{
    "ewallet": "ewallet_31fb2dbbaf6519461ee4fbe1062220d3",
    "amount": 28,
    "currency": "COP"
  }'
  ```
- ```json
  {
      "status": {
          "error_code": "NOT_ENOUGH_FUNDS",
          "status": "ERROR",
          "message": "The request attempted an operation that requires funds in a specific currency, but there were not sufficient funds in that currency. The request was rejected. Corrective action: Transfer funds to the wallet in the required currency.",
          "response_code": "NOT_ENOUGH_FUNDS",
          "operation_id": "8bdcce14-e905-421f-9801-0d651d465e5c"
      }
  }
  ```

- Bad Request - Wallet Not Found
- ```curl
  curl -X post 'https://sandboxapi.rapyd.net/v1/ewallets/accounts/balance/hold' \
  -H 'access_key: your-access-key-here' \
  -H 'Content-Type: application/json' \
  -H 'idempotency: your-idempotency-parameter-here' \
  -H 'salt: your-random-string-here' \
  -H 'signature: your-calculated-signature-here' \
  -H 'timestamp: your-unix-timestamp-here' \
  --data-raw '{
    "ewallet": "ewallet_31fb2dbbaf6519461ee4fbe1062220d",
    "amount": 28,
    "currency": "EUR"
  }'
  ```
- ```json
  {
      "status": {
          "error_code": "ERROR_GET_USER",
          "status": "ERROR",
          "message": "The request attempted an operation that requires a wallet, but the wallet was not found. The request was rejected. Corrective action: Use the ID of a valid wallet that has not been deleted. The ID is a string starting with 'ewallet_'.",
          "response_code": "ERROR_GET_USER",
          "operation_id": "f8835858-4b8d-4aba-9d12-5e33108c818d"
      }
  }
  ```
