v1

latestOpenAPI 3.0.32026-07-2650226215.9 KB
Transaction

Get transaction by ID

Retrieves a single transaction by ID.

get/transactions/{transactionId}

Path parameters

transactionIdstring required

Transaction ID (txn_ prefix).

Response

The request has succeeded.

idstring required

Public TypeID, e.g. txn_01h455vb4pex5vsknk084sn02q; legacy UUID suffixes are accepted until non-v7 rows are retired.

object'transaction' required

Resource type discriminator. Always "transaction".

sourceToDestination'cryptoToCrypto' | 'cryptoToCash' | 'cryptoToFiatAccount' | 'cashToCrypto' | 'fiatAccountToCrypto' | 'fiatAccountToFiatAccount'

Composite of source and destination instrument categories, inferred from each side. The cash corridors (cryptoToCash, cashToCrypto) are derived from a cash-pickup destination / cash-in source respectively; the rest map straight from the internal corridor type.

status'processing' | 'awaitingAction' | 'completed' | 'failed' required

Lifecycle of a transaction. processing: funds in motion. awaitingAction: non-terminal, blocked on developer/upstream/compliance (see hold); returns to processing once cleared. completed: delivered. failed: terminal failure.

subStatus'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'

Finer-grained, status-scoped sub-state of a transaction (v0.10). Each member is namespaced by its parent status (e.g. processing.cashPickupReady). Largely a closed set aligned to the v0.11 spec; the inbound-leg lifecycle values (processing.inboundPending, processing.inboundProcessing, failed.inboundFailed) are deliberate extensions mirroring the already-exposed outbound states, while the failed.return* family conforms to the spec. Absent when there is no meaningful sub-state.

(2026-07-17, product-agreed vocabulary): failed.returned is RETIRED - its meaning is absorbed by failed.returnComplete, which now covers both the OPS-triggered crypto send-back lane and the vendor-side ACH/WIRE bounce + clawback lane (isReturnedProviderStatus) under one wire value. failed.refundPending is DELIBERATELY NOT added - product agreed to collapse the OMS-wallet-refund and crypto-return status families into one (this failed.return* set); a committed OMS spec snapshot still lists failed.refundPending separately, which is a documented divergence pending that spec's revision.

customerIdstring required

Public TypeID, e.g. txn_01h455vb4pex5vsknk084sn02q; legacy UUID suffixes are accepted until non-v7 rows are retired.

estimatedArrivalstring 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.

metadataobject

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

createdAtstring date-time

When the transaction was created.

updatedAtstring date-time

When the transaction was last updated.

expiresAtstring 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.

projectIdstring

Opaque OMSX project ID, e.g. prj_01kpxxa7esk9a.