Skip to documentationDocumentation
On this page

invoice.payment_reversed

A previously confirmed payment was reversed (e.g. chain reorg).

A previously accepted payment was reversed by the chain. The accepted amount is reduced and the invoice status is recalculated.

Money and processing#

reversed_amount is the gross payment reversal in reversed_currency and reversed_network. amount_paid is the remaining cumulative accepted gross. Fee corrections mean the gross reversal is not necessarily the net balance adjustment to apply in your own ledger.

GET the invoice and reconcile balances. A previously paid invoice can move to another status. If an order was already fulfilled, handle the reversal as a separate business exception. Do not interpret the optional inherited acceptance fields as another payment credit; the reversal producer does not populate gross/fee/net.

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 · "invoice.payment_reversed" · Required

    —

  • schema_version · 1 · Required

    —

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

    —

  • merchant_id · string · Required

    Format: uuid

  • subject_type · "invoice" · Required

    —

  • subject_id · string · Required

    Format: uuid

  • occurred_at · string · Required

    Canonical business occurrence timestamp. · Format: date-time

  • data · object · Required

    Amounts except reversed_amount are denominated in the invoice's currency and network; reversed_amount uses reversed_currency and reversed_network. For a recovered payment in another asset, gross_amount, fee_total and net_amount are frozen invoice-equivalent values, not an exchange or a balance credit in that asset. Read the invoice payments and their settlement for actual payment and credited amounts. · Unknown properties are rejected

  • data.invoice_id · string · Required

    Format: uuid

  • data.external_id · string | null · Required

    —

  • data.currency · string · Required

    —

  • data.network · string · Required

    —

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

    —

  • data.amount_requested · string · Required

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

  • data.amount_paid · string · Required

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

  • data.status · "pending" | "confirming" | "paid" | "overpaid" | "underpaid" | "expired" | "invalid" | "rejected" · Required

    —

  • data.paid_at · string · Optional

    Format: date-time

  • data.gross_amount · string · Optional

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

  • data.fee_total · string · Optional

    Charges withheld from this payment, expressed in invoice units — service fee, payer-priced conversion spread and recovery fee. Platform-paid service fees are excluded. gross_amount − fee_total = net_amount. · Format: decimal · Pattern: ^\d+(.\d+)?$

  • data.net_amount · string · Optional

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

  • data.reversed_amount · string · Required

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

  • data.reversed_currency · string · Required

    —

  • data.reversed_network · string · Required

    —

Example — version 1#

json example
{
  "id": "00000000-0000-0000-0000-000000000001",
  "event_seq": 184203,
  "type": "invoice.payment_reversed",
  "schema_version": 1,
  "environment": "live",
  "merchant_id": "00000000-0000-0000-0000-000000000002",
  "subject_type": "invoice",
  "subject_id": "00000000-0000-0000-0000-000000000003",
  "occurred_at": "2026-09-14T10:00:00Z",
  "data": {
    "invoice_id": "00000000-0000-0000-0000-000000000003",
    "external_id": null,
    "currency": "USDC",
    "network": "ethereum",
    "environment": "live",
    "amount_requested": "25.00",
    "amount_paid": "15.00",
    "status": "confirming",
    "reversed_amount": "10.00",
    "reversed_currency": "USDC",
    "reversed_network": "ethereum"
  }
}

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