Skip to main content

Documentation

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).

    • 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_.

  • /v1/ewallets/accounts/balance/hold

  • Put Funds on Hold

  • 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"
    }'
  • {
        "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 -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"
    }'
  • {
        "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 -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"
    }'
  • {
        "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"
        }
    }