refund.completed
Refund completed on-chain.
The refund transfer completed on-chain.
Money and processing#
Close this refund once and retain its transaction hash. The measured network cost has its own network_fee_currency and network_fee_network; these fields can differ from the refund pair and are currently absent from the REST refund response.
Actual network cost is separate from the configured commercial charge and is not added again to merchant_debit_amount. A partial refund completes this refund object, not every possible refund of its invoice.
A later chain reorganization can reverse this completion. Handle refund.reversed and reconcile the return instead of assuming that delivery can never change.
Schema version 1#
Fields are taken from the public OpenAPI contract. Required nullable fields must be present and may contain null.
-
id· string · RequiredStable event UUID for merchant-side idempotency. · Format: uuid
-
event_seq· integer · RequiredGlobal event sequence. Gaps are possible; it does not establish delivery or processing order. · Format: int64
-
type· "refund.completed" · Required—
-
schema_version· 1 · Required—
-
environment· "live" | "test" · Required—
-
merchant_id· string · RequiredFormat: uuid
-
subject_type· "refund" · Required—
-
subject_id· string · RequiredFormat: uuid
-
occurred_at· string · RequiredCanonical business occurrence timestamp. · Format: date-time
-
data· object · RequiredUnknown properties are rejected
-
data.refund_id· string · RequiredFormat: uuid
-
data.invoice_id· string · RequiredFormat: uuid
-
data.currency· string · Required—
-
data.network· string · Required—
-
data.environment· "live" | "test" · Required—
-
data.amount· string · RequiredFormat: decimal · Pattern: ^\d+(.\d+)?$
-
data.recipient_amount· string · RequiredFormat: decimal · Pattern: ^\d+(.\d+)?$
-
data.merchant_debit_amount· string · RequiredFormat: decimal · Pattern: ^\d+(.\d+)?$
-
data.destination· string · Required—
-
data.tx_hash· string · Required—
-
data.network_fee· string · RequiredFormat: decimal · Pattern: ^\d+(.\d+)?$
-
data.network_fee_currency· string · Required—
-
data.network_fee_network· string · Required—
-
data.status· "completed" · Required—
Example — version 1#
{
"id": "00000000-0000-0000-0000-000000000001",
"event_seq": 184203,
"type": "refund.completed",
"schema_version": 1,
"environment": "live",
"merchant_id": "00000000-0000-0000-0000-000000000002",
"subject_type": "refund",
"subject_id": "00000000-0000-0000-0000-000000000003",
"occurred_at": "2026-09-14T10:00:00Z",
"data": {
"refund_id": "00000000-0000-0000-0000-000000000003",
"invoice_id": "00000000-0000-0000-0000-000000000004",
"currency": "USDC",
"network": "ethereum",
"environment": "live",
"amount": "5.00",
"recipient_amount": "5.00",
"merchant_debit_amount": "5.10",
"destination": "0x0000000000000000000000000000000000000001",
"tx_hash": "0x0000000000000000000000000000000000000000000000000000000000000001",
"network_fee": "0.00005",
"network_fee_currency": "ETH",
"network_fee_network": "ethereum",
"status": "completed"
}
}See delivery and envelope, signature verification, and business processes.