curl --request GET \
--url https://api.sand.etherfuse.com/organization/{organizationId}/order/{id} \
--header 'Authorization: <api-key>'const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.sand.etherfuse.com/organization/{organizationId}/order/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.sand.etherfuse.com/organization/{organizationId}/order/{id}"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"id": "5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b",
"organizationId": "7a8b9c0d-1e2f-4a3b-8c4d-5e6f7a8b9c0d",
"status": "created",
"memo": "Invoice 1042",
"source": {
"paymentAccountId": "3f9a2c1e-5b7d-4e8f-9a01-2b3c4d5e6f70",
"amount": "1000",
"asset": "MXN",
"rail": "spei",
"accountLabel": "Operating account"
},
"destination": {
"paymentAccountId": "8c1d2e3f-4a5b-4c6d-8e7f-901a2b3c4d5e",
"amount": "54.120000",
"asset": "USDC:GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN",
"rail": "stellar",
"accountLabel": "Treasury wallet"
},
"fees": [
{
"type": "transactionFee",
"amount": "2.50",
"asset": "MXN",
"bps": 25
}
],
"returnedDeposits": [],
"fundingInstructions": {
"rail": "spei",
"reference": "1000042",
"destination": {
"expiresAt": null,
"clabe": "646180000000000009",
"bankName": "Ejemplo Banco",
"recipientName": "Ejemplo Receptor"
},
"fundingDeadline": "2026-09-29T17:05:02Z"
},
"claimInstructions": null,
"createdAt": "2026-09-28T17:05:02.114Z",
"updatedAt": "2026-09-28T17:05:02.114Z",
"completedAt": null
}{
"type": "https://docs.etherfuse.com/ramp/v2/errors/quote-expired",
"title": "Quote expired",
"status": 400,
"detail": "quote 5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b has expired or does not exist",
"instance": "tag:etherfuse.com,2026-08-28:R2-10120/0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d",
"errors": [
{
"pointer": "#/accountDetails/clabe",
"detail": "This field is required."
}
],
"required": [
"<string>"
],
"missing": [
"<string>"
]
}{
"type": "https://docs.etherfuse.com/ramp/v2/errors/quote-expired",
"title": "Quote expired",
"status": 400,
"detail": "quote 5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b has expired or does not exist",
"instance": "tag:etherfuse.com,2026-08-28:R2-10120/0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d",
"errors": [
{
"pointer": "#/accountDetails/clabe",
"detail": "This field is required."
}
],
"required": [
"<string>"
],
"missing": [
"<string>"
]
}{
"type": "https://docs.etherfuse.com/ramp/v2/errors/quote-expired",
"title": "Quote expired",
"status": 400,
"detail": "quote 5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b has expired or does not exist",
"instance": "tag:etherfuse.com,2026-08-28:R2-10120/0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d",
"errors": [
{
"pointer": "#/accountDetails/clabe",
"detail": "This field is required."
}
],
"required": [
"<string>"
],
"missing": [
"<string>"
]
}{
"type": "https://docs.etherfuse.com/ramp/v2/errors/quote-expired",
"title": "Quote expired",
"status": 400,
"detail": "quote 5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b has expired or does not exist",
"instance": "tag:etherfuse.com,2026-08-28:R2-10120/0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d",
"errors": [
{
"pointer": "#/accountDetails/clabe",
"detail": "This field is required."
}
],
"required": [
"<string>"
],
"missing": [
"<string>"
]
}Get order
Returns one of the organizationโs orders. An order that belongs to a different organization returns 404.
curl --request GET \
--url https://api.sand.etherfuse.com/organization/{organizationId}/order/{id} \
--header 'Authorization: <api-key>'const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.sand.etherfuse.com/organization/{organizationId}/order/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.sand.etherfuse.com/organization/{organizationId}/order/{id}"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"id": "5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b",
"organizationId": "7a8b9c0d-1e2f-4a3b-8c4d-5e6f7a8b9c0d",
"status": "created",
"memo": "Invoice 1042",
"source": {
"paymentAccountId": "3f9a2c1e-5b7d-4e8f-9a01-2b3c4d5e6f70",
"amount": "1000",
"asset": "MXN",
"rail": "spei",
"accountLabel": "Operating account"
},
"destination": {
"paymentAccountId": "8c1d2e3f-4a5b-4c6d-8e7f-901a2b3c4d5e",
"amount": "54.120000",
"asset": "USDC:GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN",
"rail": "stellar",
"accountLabel": "Treasury wallet"
},
"fees": [
{
"type": "transactionFee",
"amount": "2.50",
"asset": "MXN",
"bps": 25
}
],
"returnedDeposits": [],
"fundingInstructions": {
"rail": "spei",
"reference": "1000042",
"destination": {
"expiresAt": null,
"clabe": "646180000000000009",
"bankName": "Ejemplo Banco",
"recipientName": "Ejemplo Receptor"
},
"fundingDeadline": "2026-09-29T17:05:02Z"
},
"claimInstructions": null,
"createdAt": "2026-09-28T17:05:02.114Z",
"updatedAt": "2026-09-28T17:05:02.114Z",
"completedAt": null
}{
"type": "https://docs.etherfuse.com/ramp/v2/errors/quote-expired",
"title": "Quote expired",
"status": 400,
"detail": "quote 5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b has expired or does not exist",
"instance": "tag:etherfuse.com,2026-08-28:R2-10120/0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d",
"errors": [
{
"pointer": "#/accountDetails/clabe",
"detail": "This field is required."
}
],
"required": [
"<string>"
],
"missing": [
"<string>"
]
}{
"type": "https://docs.etherfuse.com/ramp/v2/errors/quote-expired",
"title": "Quote expired",
"status": 400,
"detail": "quote 5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b has expired or does not exist",
"instance": "tag:etherfuse.com,2026-08-28:R2-10120/0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d",
"errors": [
{
"pointer": "#/accountDetails/clabe",
"detail": "This field is required."
}
],
"required": [
"<string>"
],
"missing": [
"<string>"
]
}{
"type": "https://docs.etherfuse.com/ramp/v2/errors/quote-expired",
"title": "Quote expired",
"status": 400,
"detail": "quote 5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b has expired or does not exist",
"instance": "tag:etherfuse.com,2026-08-28:R2-10120/0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d",
"errors": [
{
"pointer": "#/accountDetails/clabe",
"detail": "This field is required."
}
],
"required": [
"<string>"
],
"missing": [
"<string>"
]
}{
"type": "https://docs.etherfuse.com/ramp/v2/errors/quote-expired",
"title": "Quote expired",
"status": 400,
"detail": "quote 5e6f7a8b-9c0d-4e1f-8a2b-3c4d5e6f7a8b has expired or does not exist",
"instance": "tag:etherfuse.com,2026-08-28:R2-10120/0b1c2d3e-4f50-4a6b-8c7d-9e0f1a2b3c4d",
"errors": [
{
"pointer": "#/accountDetails/clabe",
"detail": "This field is required."
}
],
"required": [
"<string>"
],
"missing": [
"<string>"
]
}Authorizations
API key sent in the Authorization header, with no Bearer prefix.
Path Parameters
The organization this call acts for: your API key's organization or one of its customer organizations. Any other id returns 404 not-found.
The order id, which is the quoteId it was created from.
Response
The order.
The order id. Equal to the quoteId it was created from.
The organization the order belongs to.
created: waiting for the source funds. funded: source funds received. sourcingLiquidity: source funds received, and the payout is waiting while we add funds to our payout account, usually by the next business day. It usually happens only for larger orders, and generally only for payouts to a bank account. The order stays in this status until it is completed or failed. claimable: delivered, waiting for the customer to claim; see claimInstructions. completed: delivered. failed: could not be completed; see failure. canceled: canceled before completion. refunded: the order ended and we sent its source funds back. A returned deposit in returnedDeposits does not end the order.
created, funded, sourcingLiquidity, claimable, completed, failed, canceled, refunded Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Deposits we sent back because they did not match the order, oldest first: a deposit from the order's source wallet for the wrong amount, or a bank transfer with this order's reference for the wrong amount. The order stays open and waits for a deposit that matches. We return at most one deposit from a wallet per order, and only a single transfer of the order's asset from the source wallet. A second wrong deposit, or a deposit with more than one transfer, sender or asset, is held for our team and not sent back automatically. We never send back a deposit from any other wallet. Empty when we returned nothing.
Show child attributes
Show child attributes
How the source funds the order.
Show child attributes
Show child attributes
Set while the order is claimable. Otherwise null. Always null for an embedded wallet, whose claim is the order's authorization.
Show child attributes
Show child attributes
Present only when status is failed.
Show child attributes
Show child attributes
Set while the order waits for the account holder to approve a transfer we built: a funding authorization while the order is created, and a claim authorization while it is claimable. Otherwise null. Approve it with POST /organization/{organizationId}/order/{id}/authorization.
Show child attributes
Show child attributes
{
"id": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",
"reason": "funding",
"method": {
"kind": "signature",
"algorithm": "es256",
"message": "eyJvcmRlcklkIjoiNWU2ZjdhOGIifQ"
},
"expiresAt": "2026-09-28T17:20:00Z"
}