Skip to documentationDocumentation
On this page

refund.reversed

Completed refund reversed after a chain reorg.

A previously completed refund lost its chain confirmation. The exact terminal ledger effect was mirrored and the restored merchant reserve released in the same transaction as this event.

Schema version: 1. This event applies to refunds of accepted funds, including individual returns confirmed in the dashboard. It does not cover returns of payments not credited to the merchant; poll /v1/refunds?invoice_id=… for complete coverage.

The amounts and destination describe the original refund. network_fee, network_fee_currency and network_fee_network describe the measured cost whose booking was reversed; they are not a new merchant charge.

Read GET refund, retain the original transaction hash and reopen reconciliation for this return. Do not automatically issue a replacement: the transaction may be re-included on the chain. Re-inclusion requires operator review and does not automatically rebook the merchant debit or send another refund.

This event does not reverse or cancel the original incoming invoice payment. invoice.payment_reversed describes that separate event.

Schema version 1#

Fields are taken from the public OpenAPI contract. Required nullable fields must be present and may contain null.

  • id · string · Required

    Stable event UUID for merchant-side idempotency. · Format: uuid

  • event_seq · integer · Required

    Global event sequence. Gaps are possible; it does not establish delivery or processing order. · Format: int64

  • type · "refund.reversed" · Required

    —

  • schema_version · 1 · Required

    —

  • environment · "live" | "test" · Required

    —

  • merchant_id · string · Required

    Format: uuid

  • subject_type · "refund" · Required

    —

  • subject_id · string · Required

    Format: uuid

  • occurred_at · string · Required

    Canonical business occurrence timestamp. · Format: date-time

  • data · object · Required

    Unknown properties are rejected

  • data.refund_id · string · Required

    Format: uuid

  • data.invoice_id · string · Required

    Format: uuid

  • data.currency · string · Required

    —

  • data.network · string · Required

    —

  • data.environment · "live" | "test" · Required

    —

  • data.amount · string · Required

    Format: decimal · Pattern: ^\d+(.\d+)?$

  • data.recipient_amount · string · Required

    Format: decimal · Pattern: ^\d+(.\d+)?$

  • data.merchant_debit_amount · string · Required

    Format: decimal · Pattern: ^\d+(.\d+)?$

  • data.destination · string · Required

    —

  • data.tx_hash · string · Required

    —

  • data.network_fee · string · Required

    Format: decimal · Pattern: ^\d+(.\d+)?$

  • data.network_fee_currency · string · Required

    —

  • data.network_fee_network · string · Required

    —

  • data.status · "reversed" · Required

    —

Example — version 1#

json example
{
  "id": "00000000-0000-0000-0000-000000000020",
  "event_seq": 184205,
  "type": "refund.reversed",
  "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-22T10: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": "reversed"
  }
}

See delivery and envelope, signature verification, and business processes.