Pave Bank
Transfer

Confirm Digital Asset Transfer

Admin Access Required

Use this API to confirm and execute an outgoing Digital Asset Transfer intent that was created with the POST endpoint. The intent must be confirmed before it expires.

Availability: This API is currently available in sandbox and is targeted for production on 10 August 2026. Reach out to us to have it enabled for your account.

Example PUT to confirm a Digital Asset Transfer intent

curl -X PUT 'https://developer-api-staging.pavebank.dev/v1/transfer/segregated-wallet' \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: <YOUR_IDEMPOTENCY_KEY>' \
  --header 'Authorization: Bearer <YOUR_BEARER_TOKEN>' \
  --data '{
  "transaction_id": "transaction_viy22bn5gcdfqbkm9ghkaj8cv0"
}'

Confirming triggers execution (approval → risk assessment → on-chain transfer). You must confirm before the intent's intent_valid_until timestamp; if the intent has expired, the confirmation is rejected and you must create a new intent.

Use a fresh Idempotency-Key for the confirm step — it uses a separate keyspace from the create step.

This API will respond with a transaction_id. Use this transaction_id to track the transfer via the GET Transaction API.

{
  "transaction_id": "transaction_viy22bn5gcdfqbkm9ghkaj8cv0"
}

Example response from GET Transaction API

This is an example of an executed Digital Asset Transfer. If you query the transfer immediately after invoking the PUT API, you may receive a response reflecting an intermediate state (e.g., approved or in_progress) before it reaches its final status. On-chain settlement fields such as tx_hash and network_fee are populated as the transfer is broadcast and confirmed.

{
  "transaction_id": "transaction_viy22bn5gcdfqbkm9ghkaj8cv0",
  "status": "completed",
  "timestamp": "2026-07-15T09:05:20.160371Z",
  "type": "SEGREGATED-WALLET-OUTGOING",
  "customer_type": "Digital asset transfer (Segregated wallet)",
  "segregated_wallet_outgoing": {
    "asset": "ETHEREUM-USDT",
    "amount": "1200000",
    "amount_usd": "0",
    "description": "invoice 123",
    "document_ids": [],
    "initiated_by": {
      "id": "user_<YOUR_USER_ID>",
      "first_name": "Local",
      "last_name": ""
    },
    "checked_by": null,
    "checked_at": null,
    "from_account_name": "ETH USDT 02",
    "from_account_id": "account_<Example_Segregated_Wallet_Account>",
    "from_address": "0x54138299990c0F2F44DD58808b69EcFfCfdba508",
    "from_legal_entity_id": "legalentity_<LEGAL_ENTITY_ID>",
    "from_legal_entity_name": "Cute Cat Pte Ltd",
    "from_bank_name": "Pave Bank",
    "from_bank_bic": "PAVEGE22",
    "to_account_id": "",
    "to_account_name": "",
    "to_address": "0x54138299990c0F2F44DD58808b69EcFfCfdba508", // The destination_address
    "to_legal_entity_id": "",
    "to_legal_entity_name": "External Wallet",
    "tx_hash": "0x450a99bacb2ed95778515f9b9eb95596a89569c1b265badcb4b232a74e63d338",
    "network_fee": "861256215659520",
    "network_fee_asset": "ETHEREUM-ETH",
    "network_fee_account_id": "account_<Network_Fee_Account>",
    "estimated_fee_asset": "USD",
    "estimated_fee_amount": "250",
    "estimated_network_fee_asset": "ETHEREUM-ETH",
    "estimated_network_fee_amount": "861256215659520",
    "fee_amount": "250",
    "fee_asset": "USD",
    "fee_account_id": "account_<Fee_Account>",
    "intent_valid_until": "2026-07-15T09:10:00Z",
    "initiated_at": "2026-07-15T09:00:00.210572Z",
    "processed_at": "2026-07-15T09:05:20.628702Z",
    "executed_at": "2026-07-15T09:05:20.628702Z"
  }
}
PUT
/v1/transfer/segregated-wallet

Authorization

AuthorizationRequiredBearer <token>

Enter your token in the format: Bearer {token}

In: header

Request Body

application/jsonOptional
transaction_idRequiredstring

The transaction_id returned by the Create Digital Asset Transfer endpoint.

Header Parameters

Idempotency-KeyRequiredstring

Response Body

Success response

transaction_idRequiredstring
curl -X PUT "https://developer-api-staging.pavebank.dev/v1/transfer/segregated-wallet" \
  -H "Idempotency-Key: string" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "transaction_id": "string"
  }'
{
  "transaction_id": "string"
}