Skip to content

refund.completed

The refund’s payout 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.

Field Type Description
id string Unique event id, evt_…. Use it to deduplicate deliveries.
type string Always refund.completed.
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.id string
data.object.status string One of pending, completed, failed.
data.object.payment_id string
data.object.invoice_id optional string
data.object.payout_id optional string
data.object.network string
data.object.asset string
data.object.asset_id string
data.object.contract optional string
data.object.decimals integer
data.object.amount string Base units of asset, the asset of the refunded payment. A whole number written as a string of digits.
data.object.destination string
data.object.reason string
data.object.tx_hash optional string
data.object.failure_code optional string
data.object.created_at string (date-time)
data.object.completed_at optional string (date-time)
data.object.failed_at optional string (date-time)

A field marked optional can be missing from a payload.

{
"id": "string",
"type": "refund.completed",
"api_version": "v1",
"created": 0,
"livemode": true,
"data": {
"object": {
"id": "string",
"status": "completed",
"payment_id": "string",
"invoice_id": "string",
"payout_id": "string",
"network": "string",
"asset": "string",
"asset_id": "string",
"contract": "string",
"decimals": 0,
"amount": "1000000",
"destination": "string",
"reason": "string",
"tx_hash": "string",
"failure_code": "string",
"created_at": "2026-01-01T00:00:00.000Z",
"completed_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.