Skip to main content
GET
Get transaction by ID

Authorizations

Authorization
string
header
required

Token from POST /auth/token

Path Parameters

transactionId
string
required

Transaction ID (txn_ prefix).

Response

200 - application/json

The request has succeeded.

A single movement of money from a source to a destination. Created by accepting a quote, or generated automatically by a deposit address, virtual account, or cash-in. Track its progress with status.

id
string
required

Transaction ID (txn_ prefix).

Pattern: ^[a-z]+_([0-9a-hjkmnp-tv-z]{26}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$
object
enum<string>
required

Resource type discriminator. Always "transaction".

Available options:
transaction
status
enum<string>
required

Current lifecycle status. See subStatus for finer granularity.

Available options:
processing,
awaitingAction,
completed,
failed
customerId
string
required

The owning (sender) customer. OMSX customer TypeID (cst_…).

Pattern: ^[a-z]+_([0-9a-hjkmnp-tv-z]{26}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$
precursor
Deposit address · object
required

What created this transaction, carrying that origin's deposit instructions. Always present: the manual arm covers any transaction with no automated origin.

source
OMS wallet · object
required

The funding side: a typed instrument carrying identity and detail.

destination
OMS wallet · object
required

The receiving side: a typed instrument plus payoutOrigin.

pricing
object
required

Consolidated economics.

sourceToDestination
enum<string>

Corridor composite derived from the two sides.

Available options:
cryptoToCrypto,
cryptoToCash,
cryptoToFiatAccount,
cashToCrypto,
fiatAccountToCrypto,
fiatAccountToFiatAccount
subStatus
enum<string>

Status-scoped sub-state (e.g. processing.fundsPulled). Absent when the transaction has no meaningful sub-state.

Available options:
processing.fundsPulled,
processing.cashPickupReady,
processing.underReview,
completed.cashPickupCollected,
completed.cashPickupExpired,
awaitingAction.awaitingSenderAttribution,
awaitingAction.depositAddressFrozen,
awaitingAction.depositAddressInactive,
failed.attributionTimeout,
failed.depositAddressFrozenTimeout,
failed.depositAddressInactiveTimeout,
failed.depositAddressClosed,
processing.awaitingCryptoOut,
processing.cryptoOut,
processing.awaitingFiatOut,
processing.fiatOut,
processing.inboundPending,
processing.inboundProcessing,
failed.inboundFailed,
failed.returnPending,
failed.returnStarted,
failed.returnComplete,
failed.returnFailed
estimatedArrival
string<date-time>

Estimated completion time. Present when the destination rail has a predictable settlement time (e.g. bank payouts and some crypto legs); null otherwise.

error
object

Failure detail. Set when the transaction fails; includes refund or recovery state where applicable.

hold
Sender attribution · object

Present while status is awaitingAction; explains the hold + deadline. Populated when the hold model is wired.

metadata
object

Free-form key-value pairs supplied at creation or update.

createdAt
string<date-time>

When the transaction was created.

updatedAt
string<date-time>

When the transaction was last updated.

expiresAt
string<date-time>

Expiry of the transaction's actionable window: present on auto-created transactions and on cash payouts (the pickup-code expiry), and retained after completion for audit. Null for other quote-initiated transactions.

projectId
string

The owning project. Populated only on the cross-project admin endpoints (e.g. GET /admin/transactions/redrivable) so operators can tell which project a stranded transaction belongs to. Omitted on partner endpoints, where the project is implicit from the auth token.

Pattern: ^prj_.+$