Back to updates
FixedOct 13, 2026

Withdrawal webhooks: book outcome.delivered_amount, read progress by reason

Book a closed withdrawal with outcome.delivered_amount, not summary.withdrawer_received. WITHDRAWAL_PARTIALLY_FUNDED now has its reasons documented with real examples.

Overview

Earlier versions of this guide said to post summary.withdrawer_received on the terminal event. That field can also count legs that were claimed but never paid. outcome.delivered_amount counts only money that provably reached the customer — book that, and refund your customer only summary.withdrawer_pending_refund (absent means 0).

WITHDRAWAL_PARTIALLY_FUNDED is sent on every leg change, and data.reason says which: LEG_SETTLED (money arrived, including a dispute the depositor won), PLEDGE_EXPIRED, PLEDGE_REJECTED (the depositor lost a dispute) and SHORTFALL_TO_BANK (the remainder went to the company account). Read the running total from progress.settled_amount; even FULLY_SETTLED there is not the close — wait for the terminal event, which always comes after the last progress event.

What changed

  • ChangedBook the terminal withdrawal event with outcome.delivered_amount (was summary.withdrawer_received in this guide).
  • AddedWITHDRAWAL_PARTIALLY_FUNDED: the four reason values, how to read data.progress, and a real JSON example for each.