Fix these error codes in your request
Stableyard refuses to create a receiving object it cannot deliver from, rather than holding the money. Settlement destinations covers listing and setting a destination, and Errors lists every code with its HTTP status.
A destination change never re-routes money
That last row is the safety property: a settings change cannot redirect money already on its way.
A payout that fails after funding recovers to the frozen crypto destination
For an outbound leg,offrampStatus distinguishes a failure that cost nothing from one that did.
A failure before funding is confirmed is not a failed payout. Create a new payment with a fresh quote; do not raise it as a recovery.
requires_intervention goes to a person
operationalState is a separate axis from status: a payment can be accepted and healthy, or accepted and stopped. Which of these states you can meet depends on the capabilities switched on for your app.
Deposits carry the same idea:
status: requires_intervention on the deposit, and settlement.status: requires_intervention with a reasonCode naming why. Raw provider errors are never exposed there.
Financial status is preserved through all of this. An accepted or succeeded payment does not regress because an operational field changed; if your records can move an order backwards out of a fulfilled state on an operational event, the model is wrong.
Next: Settlement webhooks and testing
The events to act on, and the cases to rehearse in sandbox.