Get order status
Retrieve an order using the id returned when it was created. The response includes its status, deposit details, destination address, and, once delivered, amount_out and the payout_tx that paid it.
Order statuses
| Status | Meaning |
|---|---|
awaiting_deposit | Waiting for funds at the deposit address. |
funded | The deposit has been received. |
underfunded | Far below amount_in arrived at the deposit address, and the order can't be filled. |
executing | The route is being executed. |
delivered | amount_out has reached the destination address. |
refunded | Execution gave up and amount_out was sent back to the refund address. |
expired | No deposit arrived before the deposit deadline. |
frozen | Execution was halted by policy, or gave up with no refund destination, or the refund failed. An operator needs to step in. |
Finding the payout transaction
Once an order is delivered or refunded, payout_tx is the transaction that paid amount_out: to the destination address when it is delivered, and to the refund address when it is refunded. It's a transaction hash, or a txid on Bitcoin, and it's null until then.
If the order paid an integrator fee, integrator_fee_tx is the transaction that paid it. It's null when no fee was paid.
Polling an order
Repeat this request with the same id to follow an order. Wait a few seconds between checks and back off on transient errors. Stop polling once the order is delivered, refunded, expired, or frozen. If an order is frozen or underfunded, contact the Rift team using Support.
Request example
const response = await fetch("https://api.rift.trade/order/%7Bid%7D", {
method: "GET",
headers: {
Accept: "application/json",
},
});
const data = await response.json();
console.log(data);Parameters
Required parameters
idstringpathuuid
Responses
The order
application/json
{
"id": "019a3c7e-6d2f-7b41-8c3e-2a9f4d5e6b70",
"quote_id": "019a3c7e-5b1a-7c3e-9a51-6f3d2b8e4a10",
"vault_id": "4f8e2c1a-93b7-4d6e-a5f0-7c2b9e8d1a34",
"from": "bitcoin.btc",
"to": "ethereum.usdc",
"amount_in": "0.01",
"amount_out": "997.208451",
"payout_tx": "0x7f3a9c1e5b2d84f60a1c7e93d5b8426f0e9a3d17c6b24f58a0de13c79b6f2e41",
"format": "formatted",
"deposit_address": "bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq",
"to_address": "0x8ba1f109551bd432803012645ac136ddd64dba72",
"refund_address": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh",
"venue_allowlist": [],
"venue_blocklist": [],
"integrator_id": null,
"integrator_fee_bps": null,
"integrator_fee_recipient": null,
"integrator_fee": null,
"integrator_fee_tx": null,
"status": "delivered",
"deposit_deadline": "2026-11-07T19:00:12Z",
"created_at": "2026-10-31T19:00:12Z"
}formatstringrequiredThe format every amount and asset name in this response is written in, inherited from the quote.
Allowed: "raw""formatted"
idstringrequiredIdentifier used in GET /order/{id}.
uuid
quote_idstringrequiredThe quote this order was created from.
uuid
vault_idstringrequiredInternal identifier of the vault holding the deposit address.
uuid
fromstringrequiredAsset to deposit, written per format.
tostringrequiredAsset delivered, written per format.
amount_instringrequiredAmount of from to deposit, exactly as quoted.
amount_outstring | nullWhat the order settled: the amount of to that reached to_address
when the status is delivered, or the amount of from that reached
refund_address when it is refunded. Absent until then.
payout_txstring | nullThe transaction that paid amount_out, to to_address when the status
is delivered and to refund_address when it is refunded: a
transaction hash, or a txid on Bitcoin. Null until then.
deposit_addressstringrequiredAddress on the from chain to send amount_in to.
to_addressstringrequiredAddress on the to chain that receives the output.
refund_addressstring | nullAddress on the from chain that receives a refund if the order cannot
be completed. Null when none was given; it is then set to the deposit's
sender address once a refund begins.
Show child attributes
Any of: string 1
string
Any of: null 2
null
venue_allowliststring[]requiredVenues quoting was restricted to; empty when it was not.
Show child attributes
string · "aave", "across", "cctp", "chainflip", "cowswap", "euler", "flytrade", "hyperliquid", "kyberswap", "lifi", "mayan", "metric", "morpho", "near_intents", "nordstern", "okx", "relay", "rift_otc", "transit", "tydro", "ultrayield", "uniswap", "unit", "velora", "weth_contract", "xstocks"
venue_blockliststring[]requiredVenues excluded from quoting; empty when none were.
Show child attributes
string · "aave", "across", "cctp", "chainflip", "cowswap", "euler", "flytrade", "hyperliquid", "kyberswap", "lifi", "mayan", "metric", "morpho", "near_intents", "nordstern", "okx", "relay", "rift_otc", "transit", "tydro", "ultrayield", "uniswap", "unit", "velora", "weth_contract", "xstocks"
integrator_idstring | nullThe integrator_id of the quote this order was created from, or null.
Show child attributes
Any of: string 1
string
Any of: null 2
null
integrator_fee_bpsinteger | nullThe integrator_fee_bps of the quote this order was created from, or
null.
Show child attributes
Any of: integer 1
integer
Any of: null 2
null
integrator_fee_recipientstring | nullThe integrator_fee_recipient of the quote this order was created
from, or null.
Show child attributes
Any of: string 1
string
Any of: null 2
null
integrator_feestring | nullAmount of to paid to integrator_fee_recipient, written per
format. Null until the order is delivered, and for an order without
a fee; a refund pays no fee.
integrator_fee_txstring | nullThe transaction that paid integrator_fee. On EVM chains and Bitcoin
the fee is paid in the same transaction as amount_out, so this equals
payout_tx; on HyperCore it is its own. Null when no fee was paid.
statusstringrequiredawaiting_deposit until funds arrive at deposit_address; funded
once they are seen; executing while the route runs; delivered when
amount_out has reached to_address; refunded when execution gave
up and amount_out was sent back to refund_address instead;
expired when nothing arrived by deposit_deadline; frozen when the
order was halted by policy, when execution gave up with no refund
destination, or when the refund itself failed, and needs an operator.
Allowed: "awaiting_deposit""funded""underfunded""expired""executing""delivered""refunded""frozen"
deposit_deadlinestringrequiredInstant after which deposits are no longer watched for and the order expires. Seven days after creation.
date-time
created_atstringrequiredWhen the order was created.
date-time

