Skip to content

deposit.payment_confirmed

A payment to a deposit address confirmed. payment.settlement tracks its release.

cTpeWay sends this event as an HTTP POST to every webhook endpoint subscribed to it. Verify the signature before you trust the body: see Webhooks.

Field Type Description
id string Unique event id, evt_…. Use it to deduplicate deliveries.
type string Always deposit.payment_confirmed.
api_version string Always v1.
created integer Unix time in seconds.
livemode boolean false for events from the test environment.
data object
data.object object
data.object.deposit_address object
data.object.deposit_address.id string
data.object.deposit_address.name optional string
data.object.deposit_address.network string
data.object.deposit_address.address string
data.object.deposit_address.status string One of active, disabled, archived.
data.object.deposit_address.created_at string (date-time)
data.object.payment object
data.object.payment.id string
data.object.payment.status string One of detected, confirmed, orphaned, dropped.
data.object.payment.invoice_id optional string
data.object.payment.option_id optional string
data.object.payment.deposit_address_id optional string
data.object.payment.network string
data.object.payment.asset string
data.object.payment.asset_id string
data.object.payment.contract optional string
data.object.payment.decimals integer
data.object.payment.address string
data.object.payment.from_address optional string
data.object.payment.tx_hash optional string The transaction that paid. Absent while the payment is known only from a balance change (detected_by: balance) and its transaction has not been identified; payment.transaction_attached announces it. A simulated payment (test mode, simulated: true) carries its sim_… id here.
data.object.payment.tx_index optional integer Position of the transfer inside the transaction. Present exactly when tx_hash is.
data.object.payment.amount string A whole number written as a string of digits.
data.object.payment.confirmations integer
data.object.payment.block_height optional integer
data.object.payment.block_hash optional string
data.object.payment.usd_value optional string Value at the price snapshot taken at confirmation. A decimal number written as a string, with up to 8 decimal places.
data.object.payment.late boolean Confirmed after the invoice had expired or been canceled.
data.object.payment.simulated boolean
data.object.payment.detected_by string How the payment was found, fixed when it is first seen: poll (its transaction was seen while watching the address), hint (its transaction was reported through the checkout and found on the network), balance (the address’s balance rose; the transaction is identified later, and tx_hash is absent until then), simulated (test mode). One of poll, hint, balance, simulated.
data.object.payment.detected_at string (date-time)
data.object.payment.confirmed_at optional string (date-time)
data.object.payment.settlement optional object
data.object.payment.settlement.id string
data.object.payment.settlement.status string One of pending, held, releasing, released, failed, reverted.

A field marked optional can be missing from a payload.

{
"id": "string",
"type": "deposit.payment_confirmed",
"api_version": "v1",
"created": 0,
"livemode": true,
"data": {
"object": {
"deposit_address": {
"id": "string",
"name": "string",
"network": "string",
"address": "string",
"status": "active",
"created_at": "2026-01-01T00:00:00.000Z"
},
"payment": {
"id": "string",
"status": "detected",
"invoice_id": "string",
"option_id": "string",
"deposit_address_id": "string",
"network": "string",
"asset": "string",
"asset_id": "string",
"contract": "string",
"decimals": 0,
"address": "string",
"from_address": "string",
"tx_hash": "string",
"tx_index": 0,
"amount": "1000000",
"confirmations": 0,
"block_height": 0,
"block_hash": "string",
"usd_value": "10.00",
"late": true,
"simulated": true,
"detected_by": "poll",
"detected_at": "2026-01-01T00:00:00.000Z",
"confirmed_at": "2026-01-01T00:00:00.000Z",
"settlement": {
"id": "string",
"status": "pending"
}
}
}
}
}

The values are placeholders generated from the schema. They show the shape, not real data.