Rejected requests and failed flows
A rejected request is something the payer or your UI can usually recover from in the same flow, for example by requesting a new quote or choosing another source. The API guide and the SDK references list the errors each request can return.
A failed flow cannot be retried. Its
executionState or settlementState is failed, and its failure field describes the reason.
The failure record
A failed flow carries afailure object with these fields:
Your server receives the same record in the
failed execution webhook and in the settlement webhook when settlement fails.
Failure codes
Treat a code your integration does not recognize as a failure, and show the
message.
Refunds
Refunds in Flow payments are performed by the provider that handled the payment, such as the deposit-address or conversion provider. Dynamic does not initiate refunds.REFUND_INITIATEDmeans the provider reported that it started returning the funds. For a deposit address, the funds go to the refund address the payer gave.REFUND_FAILEDmeans the provider reported that the refund failed. The funds were not returned, and you need to contact support to resolve it.
REFUND_INITIATED.
Funds sent to a deposit address after the flow was cancelled or expired have no provider refund. They can still reach your destination, the flow does not record them, and no webhook reports them, so you handle any refund to the payer. See Expiry and cancellation.
A short payment in deposit mode is not a failure and is not refunded: the flow settles for the amount that arrived. See Short payments depend on the mode.
What to show the payer
Check the flow in this order and show the first outcome that applies:settlementStateiscompleted: the payment succeeded. Show the delivered amount when the flow reports one.- Either axis is
failed: show the failure. Whenfailure.codeisREFUND_INITIATED, show that a refund was started. executionStateiscancelled: the payment was cancelled.executionStateisexpired: the payment expired. A new payment needs a new flow.- Any other state: the payment is still in progress.
Next
Payment lifecycle and states
Every state and what moves a flow between them.
Webhooks
How your server learns that a flow failed.