Skip to main content
GET
/
api
/
accounts
/
{accountId}
/
transfers
/
{transferId}
Get Transfer
curl --request GET \
  --url https://trade.predexon.com/api/accounts/{accountId}/transfers/{transferId} \
  --header 'x-api-key: <api-key>'
{
  "transferId": "<string>",
  "accountId": "<string>",
  "from": {
    "wallet": "<string>",
    "chain": 123,
    "token": "<string>",
    "address": "<string>"
  },
  "to": {
    "wallet": "<string>",
    "chain": 123,
    "token": "<string>",
    "address": "<string>"
  },
  "amount": "<string>",
  "amountReceived": "<string>",
  "txHashes": {
    "source": "<string>",
    "dest": "<string>",
    "approve": "<string>",
    "unwrap": "<string>",
    "wrap": "<string>",
    "safeExtract": "<string>",
    "safeDeposit": "<string>",
    "swap": "<string>"
  },
  "explorerLink": "<string>",
  "clientReferenceId": "<string>",
  "createdAt": "<string>",
  "completedAt": "<string>",
  "error": "<string>",
  "errorCode": "<string>"
}

Documentation Index

Fetch the complete documentation index at: https://docs.predexon.com/llms.txt

Use this file to discover all available pages before exploring further.

Returns the same envelope as Create Transfer. Poll this endpoint when a POST /transfers response returns status: "pending" — typically cross-token routes that need a swap leg. A reasonable polling cadence is once every 3–5 seconds; most cross-token transfers settle in under a minute, but transient on-chain failures can push that to a few minutes while recovery retries the failing step (substatus: "recoveryInProgress"). txHashes is populated as each on-chain step lands — source, dest, approve, and optionally wrap/unwrap (Polymarket), safeExtract/safeDeposit (Opinion), or swap (cross-token). explorerLink carries a bridge-explorer URL for cross-chain transfers; it’s null for same-chain hops.

Authorizations

x-api-key
string
header
required

Path Parameters

accountId
string
required
transferId
string
required

Response

Transfer detail

A single fund-movement operation. Same envelope returned by POST /transfers, GET /transfers, and GET /transfers/{transferId}. status is the partner-facing 3-state enum; substatus carries additional context where useful.

transferId
string

Stable identifier (tfr-...). Use for GET /transfers/{transferId}.

accountId
string
from
object

Source side of the transfer.

to
object

Destination side of the transfer.

amount
string

Source-side amount (echo of the request).

amountReceived
string | null

Destination-side amount actually delivered. Populated once the transfer settles.

status
enum<string>

Partner-facing 3-state status. pending includes routes still in active recovery; failed includes routes that exhausted recovery (see substatus).

Available options:
pending,
completed,
failed
substatus
enum<string> | null

Optional context. recoveryInProgress — a transient on-chain step is being retried (poll until terminal). escalated — automated recovery exhausted; contact support. legacyPartial — historical pre-recovery-worker rows only.

Available options:
recoveryInProgress,
escalated,
legacyPartial
txHashes
object

On-chain transaction hashes for each step that fired. Most routes use only source/dest (sometimes approve); venue-specific routes add wrap/unwrap (Polymarket), safeExtract/safeDeposit (Opinion), or swap (cross-token routes).

Bridge-explorer URL for cross-chain transfers. null for same-chain transfers.

clientReferenceId
string | null
createdAt
string
completedAt
string | null
error
string | null

Human-readable failure message. Present iff status === "failed".

errorCode
string | null

Machine-readable failure code. Present iff status === "failed".