Pave Bank
Crypto

Confirm Digital Asset Exchange

Admin Access Required

Use this API to confirm and execute a Digital Asset Exchange quote that was created with the POST Create Digital Asset Exchange endpoint. The quote must be confirmed before it expires.

Example PUT to confirm a Digital Asset Exchange

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

Confirming locks in the quoted rate and triggers execution and settlement. You must confirm before the order's quote_valid_until timestamp; if the quote has expired, the confirmation is rejected and you must create a new order to obtain a fresh quote.

This API will respond with a transaction_id. Use this transaction_id to query the Digital Asset Exchange via the GET Transaction API.

{
  "transaction_id": "transaction_tvc28vj7eul6gtymqcl9nm6xhl"
}

Example response from GET Transaction API

This is an example of a completed Digital Asset Exchange. If you query the order immediately after invoking the PUT API, you may receive a response reflecting an intermediate state (e.g., in_progress) before the order reaches its final status.

{
  "transaction_id": "transaction_tvc28vj7eul6gtymqcl9nm6xhl",
  "status": "completed",
  "timestamp": "2026-07-13T07:19:31.969776Z",
  "type": "CRYPTO-TRADE-V2",
  "customer_type": "Exchange (Digital asset)",
  "crypto_trade_v2": {
    "transaction_id": "transaction_tvc28vj7eul6gtymqcl9nm6xhl",
    "customer_legal_entity_id": "legalentity_<LEGAL_ENTITY_ID>",
    "initiated_by": {
      "id": "user_<YOUR_USER_ID>",
      "first_name": "Local",
      "last_name": ""
    },
    "checked_by": null,
    "checked_at": null,
    "priority": "instant",
    "side": "sell",
    "rail": "rfq",
    "symbol": "USDT-USD",
    "base_asset": "ETHEREUM-USDT",
    "quote_asset": "USD",
    "customer_pays_account_id": "account_<Example_USDT_Account>",
    "customer_pays_account_name": "ETH USDT Account",
    "customer_pays_account_iban": "",
    "customer_pays_account_wallet_address": "0x54138299990c0F2F44DD58808b69EcFfCfdba508",
    "customer_receives_account_id": "account_<Example_USD_Account>",
    "customer_receives_account_name": "USD Account",
    "customer_receives_account_iban": "<RECEIVES_ACCOUNT_IBAN>",
    "customer_receives_account_wallet_address": "",
    "customer_requested_asset": "ETHEREUM-USDT",
    "customer_requested_amount": "100000000",
    "customer_pays_asset": "ETHEREUM-USDT",     // What the customer paid
    "customer_pays_amount": "100000000",
    "customer_receives_asset": "USD",           // What the customer received
    "customer_receives_amount": "9957",
    "customer_rate": "0.9957155299663593",      // Locked-in rate, expressed as Base/Quote
    "quote_valid_until": "2026-07-13T07:24:31.928134Z",
    "quote_confirmed_at": "2026-07-13T07:19:43.325326Z", // Set once the order is confirmed
    "description": "Sell 100 USDT",
    "additional_details": "",
    "document_ids": [],
    "transaction_hash": "0x450a99bacb2ed95778515f9b9eb95596a89569c1b265badcb4b232a74e63d338",
    "customer_pays_network_fee_asset": "ETHEREUM-ETH",  // On-chain network fee charged to the customer
    "customer_pays_network_fee_amount": "172035606380292",
    "customer_pays_network_fee_account_id": "",
    "created_at": "2026-07-13T07:19:31.928134Z",
    "updated_at": "2026-07-13T07:34:26.378932Z"
  }
}
PUT
/v1/crypto/order

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 Exchange endpoint.

Header Parameters

Idempotency-KeyRequiredstring

Response Body

Success response

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