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.
