Skip to main content

transaction.created

Fired when a withdrawal is successfully submitted to the exchange. At this point the transaction is pending — it has been accepted by the exchange but may not yet be broadcast on-chain.

When this event is sent

  • A withdrawal is executed after the user confirms the quote
  • The exchange accepts the withdrawal request

Payload

Example payload
{
  "event": "transaction.created",
  "eventId": "txn_ghi789",
  "timestamp": "2026-04-21T12:00:00.000Z",
  "data": {
    "transaction": {
      "id": "txn_ghi789",
      "walletId": "wal_abc123",
      "quoteId": "quot_def456",
      "exchange": "coinbase",
      "asset": "BTC",
      "amount": "0.1",
      "address": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh",
      "network": "Bitcoin",
      "tag": null
    },
    "cexTransaction": {
      "id": "cb-internal-id",
      "txid": null,
      "status": "pending",
      "fee": {
        "cost": 0.0001,
        "currency": "BTC"
      }
    },
    "rawResponse": null
  }
}

Fields

FieldTypeDescription
data.transaction.idstringBluvo transaction identifier
data.transaction.walletIdstringSource wallet
data.transaction.quoteIdstringQuote this transaction was created from
data.transaction.exchangestringExchange identifier
data.transaction.assetstringAsset ticker
data.transaction.amountstringWithdrawal amount
data.transaction.addressstringDestination address
data.transaction.networkstring | undefinedBlockchain network
data.transaction.tagstring | nullMemo/destination tag (for XRP, etc.)
data.cexTransaction.idstringExchange-internal transaction ID
data.cexTransaction.txidstring | nullOn-chain transaction hash (usually null at creation, populated after broadcast)
data.cexTransaction.statusstringExchange-reported status (e.g., pending)
data.cexTransaction.feeobjectFee charged by the exchange
data.cexTransaction.fee.costnumberFee amount
data.cexTransaction.fee.currencystringFee currency
data.rawResponseunknown | nullRaw exchange API response
The rawResponse field contains the unmodified response from the exchange API. Its structure varies between exchanges and should not be relied upon — use the structured fields instead.
The cexTransaction.txid is typically null at creation time. You’ll receive a transaction.broadcasted event once the on-chain hash is available.