order.outcome is final. Only confirmed means the buyer has an order.
Read the transaction
waitSeconds (0 to 22) holds the call open until something changes. since is the version from your last read. Reading never pays and never contacts the merchant.
Refresh the checkout
WhennextAction.type is reconcile_checkout, Sapiom needs a fresh look at the merchant’s checkout. Your backend calls the refresh route with the buyer’s key, then your agent reads the transaction again:
Recover without buying twice
Error formats and codes are in Errors.