payout.confirmed
The payout’s transaction is final on the network.
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.
Payload
Section titled “Payload”| Field | Type | Description |
|---|---|---|
id |
string | Unique event id, evt_…. Use it to deduplicate deliveries. |
type |
string | Always payout.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 | |
data. |
string | |
data. |
string | One of pending, processing, included, confirmed, failed. |
data. |
string | |
data. |
string | |
data. |
string | |
data. optional |
string | |
data. |
integer | |
data. |
string | What the destination receives, base units of asset. A whole number written as a string of digits. |
data. |
string | |
data. optional |
string | |
data. optional |
string | |
data. optional |
string | Set when the payout pays a refund. |
data. optional |
string | Why a failed payout failed. |
data. |
object | |
data. |
string | One of user, apiKey. |
data. |
string | |
data. |
string (date-time) | |
data. optional |
string (date-time) | |
data. optional |
string (date-time) |
A field marked optional can be missing from a payload.
Example
Section titled “Example”{ "id": "string", "type": "payout.confirmed", "api_version": "v1", "created": 0, "livemode": true, "data": { "object": { "id": "string", "status": "confirmed", "network": "string", "asset": "string", "asset_id": "string", "contract": "string", "decimals": 0, "amount": "1000000", "destination": "string", "memo": "string", "tx_hash": "string", "refund_id": "string", "failure_code": "string", "requested_by": { "type": "user", "id": "string" }, "created_at": "2026-01-01T00:00:00.000Z", "confirmed_at": "2026-01-01T00:00:00.000Z", "failed_at": "2026-01-01T00:00:00.000Z" } }}The values are placeholders generated from the schema. They show the shape, not real data.

