Skip to main content

Documentation

Release On-Hold Funds

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

This action transfers funds from the on-hold balance to the available balance. If the wallet does not have enough funds in the on-hold 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.

This method is relevant for person and company wallets.

Note

  • Deprecated endpoint - POST /v1/account/balance/release

  • 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/release

  • Release On-Hold Funds

  • curl -X post 'https://sandboxapi.rapyd.net/v1/ewallets/accounts/balance/release' \
    -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": 50,
      "currency": "EUR"
    }'
  • {
        "status": {
            "error_code": "",
            "status": "SUCCESS",
            "message": "",
            "response_code": "",
            "operation_id": "7ebb4ec0-dab9-4953-93a4-6c71139e0ccc"
        },
        "data": {
            "id": "d8403116-ce6a-4390-92cb-fc7359da9372",
            "source_transaction_id": "a60f741f-3d9e-49aa-8b88-337b4f7b6296",
            "destination_transaction_id": "2d08c84e-7ba2-40ba-85bf-3ada9ad7930a",
            "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": "on_hold_balance",
            "destination_balance_type": "available_balance",
            "currency_code": "EUR",
            "amount": 50,
            "destination_currency_code": "EUR",
            "destination_amount": 50,
            "source_transaction_pk": 20522384,
            "destination_transaction_pk": 20522385
        }
    }
  • Bad Request - Insufficient Funds

  • curl -X post 'https://sandboxapi.rapyd.net/v1/ewallets/accounts/balance/release' \
    -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": 50,
      "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": "1db24064-c59f-4cf8-9389-49ff051897e3"
        }
    }
  • Bad Request - Wallet Not Found

  • curl -X post 'https://sandboxapi.rapyd.net/v1/ewallets/accounts/balance/release' \
    -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": 50,
      "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": "a2c0eda9-b77f-47e5-b67f-33c649a9e44f"
        }
    }