What advances it
What announces it
Compare status values case-insensitively rather than matching exact strings.
Corridors
A bank payout never carries a transaction hash, and a crypto payout never carries a wire reference. Which identifiers arrive is a property of the rail, not of the payout going well — see The payout object.
Where an RFI interrupts it
KYT_PENDING is the compliance hold on this lifecycle, and it can also raise a request for information against the sub-client. Until it clears, the payout does not move.
Treat a hold as a state you display, not one you resolve by retrying. Retrying with the same idempotency key returns the same held payout; retrying with a fresh one creates a second payout that will be held for the same reason.
States
Every status on every resource, and what moves it.