curl /api/v1/transfers/42 \
-H "x-api-key: mh_live_abc123..."
curl /api/v1/transfers/by-external/order_12345 \
-H "x-api-key: mh_live_abc123..."
{
"id": 42,
"externalId": "order_12345",
"status": "processing",
"phase": "executing",
"progress": { "hopsCompleted": 3, "hopsTotal": 7 },
"lastError": null,
"recovery": null,
"signatures": {
"routeInit": ["4mGxFn7m..."],
"sessionInit": [],
"hops": ["9rTpWx2a...", "7kLmQv4b..."]
}
}
{
"error": {
"code": "MH_030",
"message": "Transfer not found"
}
}
Transfers
Get Transfer
Retrieve a transfer by its internal ID or external ID
GET
/
api
/
v1
/
transfers
/
{transferId}
curl /api/v1/transfers/42 \
-H "x-api-key: mh_live_abc123..."
curl /api/v1/transfers/by-external/order_12345 \
-H "x-api-key: mh_live_abc123..."
{
"id": 42,
"externalId": "order_12345",
"status": "processing",
"phase": "executing",
"progress": { "hopsCompleted": 3, "hopsTotal": 7 },
"lastError": null,
"recovery": null,
"signatures": {
"routeInit": ["4mGxFn7m..."],
"sessionInit": [],
"hops": ["9rTpWx2a...", "7kLmQv4b..."]
}
}
{
"error": {
"code": "MH_030",
"message": "Transfer not found"
}
}
Retrieve a transfer by its internal ID. Returns the extended transfer object including
phase, progress, recovery, and signatures.
A companion endpoint at GET /api/v1/transfers/by-external/{externalId} returns the same response shape using your external ID.
Path parameters
integer
required
The internal transfer ID.
Response
integer
Transfer ID.
string
Transfer status:
quote | awaiting_signature | processing | active | completed | failed | expired | refunded.
A multi-destination transfer stays active after its last hop until
every destination has been paid; completed means everyone was paid.array | null
Multi-destination transfers:
[{ wallet, amountRaw, status, payoutSignature, paidAt }], where
status is pending or paid and payoutSignature is the transaction that paid it. null for a
single recipient.object
{ hops: [{ index, address, label, category, scheduledAt, executedAt, txSignature }] }: the route’s
hops on chain, in order. executedAt and txSignature fill in as each hop runs. label and
category are set for hop library wallets. Absent if the hops could
not be read.string
Finer-grained execution phase derived from on-chain state:
quoted | deploying | executing | settled | failed | recoverable | rescued | reclaimed | expiredobject
object | null
object | null
Recovery options. Only populated when
phase is recoverable, settled, rescued, or reclaimed.object
curl /api/v1/transfers/42 \
-H "x-api-key: mh_live_abc123..."
curl /api/v1/transfers/by-external/order_12345 \
-H "x-api-key: mh_live_abc123..."
{
"id": 42,
"externalId": "order_12345",
"status": "processing",
"phase": "executing",
"progress": { "hopsCompleted": 3, "hopsTotal": 7 },
"lastError": null,
"recovery": null,
"signatures": {
"routeInit": ["4mGxFn7m..."],
"sessionInit": [],
"hops": ["9rTpWx2a...", "7kLmQv4b..."]
}
}
{
"error": {
"code": "MH_030",
"message": "Transfer not found"
}
}

