Skip to main content
A rejected request moved no money and returns an error code you fix. A settlement that started and did not finish is held, in full, and reported by name on the payment.

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.
A recovery settles to the preferred crypto destination frozen at the moment it is reserved. If the sending account has no active preferred crypto destination, no recovery starts and it waits for a person. Keeping one on every paying account is your obligation, not a default.

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.
Never create a replacement payment to work around a stuck one. Reuse the original payment and its idempotency key. A second payment for the same obligation is how a recipient gets paid twice.

Next: Settlement webhooks and testing

The events to act on, and the cases to rehearse in sandbox.