Skip to main content
WEBHOOK
offrampTransactionCreated
{
  "eventType": "offramp.transaction.updated",
  "transactionId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "status": "TRANSACTION_STATUS_STARTED",
  "asset": "ETH",
  "network": "ethereum",
  "sellAmount": {
    "currency": "USD",
    "value": "5.00"
  },
  "total": {
    "currency": "USD",
    "value": "5.00"
  },
  "minimumTotal": {
    "currency": "USD",
    "value": "5.00"
  },
  "subtotal": {
    "currency": "USD",
    "value": "5.00"
  },
  "coinbaseFee": {
    "currency": "USD",
    "value": "5.00"
  },
  "exchangeRate": {
    "currency": "USD",
    "value": "5.00"
  },
  "unitPrice": {
    "currency": "USD",
    "value": "5.00"
  },
  "fromAddress": "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
  "toAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
  "createdAt": "2025-09-02T02:34:13Z",
  "updatedAt": "2025-09-02T02:40:00Z",
  "txHash": "0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890",
  "redirectUrl": "https://partner.com/offramp/complete",
  "paymentMethod": "ACH_BANK_ACCOUNT"
}

Authorizations

X-Hook0-Signature
string
header
required

HMAC-SHA256 signature of the raw request body, computed using your webhook secret. Webhook receivers should always verify this header before processing the event. The header value is hex-encoded and prefixed by the algorithm and timestamp, e.g. t=1700000000,v1=abc123... (refer to the Webhook Security docs for the exact verification algorithm).

This scheme applies to webhook delivery (outbound POSTs from CDP to your endpoint), not to inbound CDP API requests.

Body

application/json

The offramp.transaction.created webhook event payload.

Webhook payload for offramp transactions. Serialized from the OfframpTransaction proto via protojson with eventType appended.

eventType
string
required

The webhook event type.

Example:

"offramp.transaction.updated"

transactionId
string
required

Unique transaction identifier.

Example:

"a1b2c3d4-e5f6-7890-abcd-ef1234567890"

status
enum<string>
required

Current status of the offramp transaction.

Available options:
TRANSACTION_STATUS_UNSPECIFIED,
TRANSACTION_STATUS_CREATED,
TRANSACTION_STATUS_EXPIRED,
TRANSACTION_STATUS_STARTED,
TRANSACTION_STATUS_SUCCESS,
TRANSACTION_STATUS_FAILED
Example:

"TRANSACTION_STATUS_STARTED"

asset
string

The crypto currency being sold (e.g., "ETH", "USDC").

Example:

"ETH"

network
string

The blockchain network (e.g., "ethereum", "base").

Example:

"ethereum"

sellAmount
object

A monetary amount with currency.

Example:
{ "currency": "USD", "value": "5.00" }
total
object

A monetary amount with currency.

Example:
{ "currency": "USD", "value": "5.00" }
minimumTotal
object

A monetary amount with currency.

Example:
{ "currency": "USD", "value": "5.00" }
subtotal
object

A monetary amount with currency.

Example:
{ "currency": "USD", "value": "5.00" }
coinbaseFee
object

A monetary amount with currency.

Example:
{ "currency": "USD", "value": "5.00" }
exchangeRate
object

A monetary amount with currency.

Example:
{ "currency": "USD", "value": "5.00" }
unitPrice
object

A monetary amount with currency.

Example:
{ "currency": "USD", "value": "5.00" }
fromAddress
string

The address crypto was received from.

Example:

"0x742d35Cc6634C0532925a3b844Bc454e4438f44e"

toAddress
string

The address crypto was sent to (Coinbase deposit address).

Example:

"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"

createdAt
string<date-time>

When the transaction was created.

Example:

"2025-09-02T02:34:13Z"

updatedAt
string<date-time>

When the transaction was last updated.

Example:

"2025-09-02T02:40:00Z"

txHash
string

The onchain transaction hash of the crypto send.

Example:

"0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890"

redirectUrl
string

The URL the user was redirected to after confirming the offramp.

Example:

"https://partner.com/offramp/complete"

paymentMethod
enum<string>

The payment method type used for cashout.

Available options:
UNSPECIFIED,
CARD,
ACH_BANK_ACCOUNT,
APPLE_PAY,
FIAT_WALLET,
CRYPTO_ACCOUNT,
GUEST_CHECKOUT_CARD,
PAYPAL,
RTP,
GUEST_CHECKOUT_APPLE_PAY,
GUEST_CHECKOUT_GOOGLE_PAY
Example:

"ACH_BANK_ACCOUNT"

Response

Webhook received and processed successfully.