Transactions

The Transactions API provides access to your transaction history and account balances. Use these endpoints to retrieve detailed records of all financial activities including deposits, withdrawals, and transfers as well as realtime balance across supported currencies.

Transaction Endpoints

Get All Transactions

Use Case

This endpoint retrieves a paginated list of transactions, with support for filtering via query parameters. It is commonly used to list transaction histories, audit flows, or search for specific transactions across various dimensions.

Get All Transactions

Transaction Response

This is the standard shape of a transaction returned by the API.

1
successBoolean

Top-level flag indicating whether the request was processed successfully.

2
messageString

Top-level human-readable status message describing the outcome of the request.

3
dataObject

Envelope containing the paginated transactions list and pagination cursors.

4
data.transactionsArray<Transaction>

The page of transaction records matching the query.

5
data.next_cursorString

Opaque base64 cursor to fetch the next page. Empty string when there are no more results.

6
data.previous_cursorString

Opaque base64 cursor to fetch the previous page. Empty string when on the first page.

7
data.total_countInteger

Total number of transactions matching the query across all pages.

8
data.has_moreBoolean

True when additional pages are available (use next_cursor to fetch them).

9
transaction_idUUID

A unique identifier automatically generated by the system for each transaction. This is used to track and reference a specific transaction.

10
account_numberString

The account number associated with this transaction.

11
currencyString

The currency of the transaction (e.g., 'USDT', 'USDC', 'BTC').

12
typeString

Specifies the type of transaction performed, e.g., 'WITHDRAWAL_INITIATED', 'DEPOSIT_CONFIRMED'.

13
stateString

The current state of the transaction: 'PENDING' for in-progress, 'SETTLED' for completed transactions.

14
amountString

The transaction amount in the smallest unit of the currency. Negative values indicate debits.

15
feeString

The total fee charged for the transaction in the smallest unit.

16
referenceString

A unique reference string (system or custom-generated) used for idempotency and reliable transaction lookups.

17
idempotency_keyString

A unique key used to ensure the transaction is not duplicated on retry. May be an empty string for system-generated records.

18
trade_idUUID | String

Identifier for an associated trade, if applicable. Empty string or null when the transaction is not tied to a trade.

19
metadataObject

Contextual details about the transaction. Shape varies by type — for blockchain deposits it includes address, chain, channel, company_id, deposit_type, explorer_url, tx_hash, original_amount, settlement_type, and is_simulated; for trade holds it includes hold_id, hold_type, order_id, order_side, side; may also carry btc_spot_price for BTC-priced legs.

20
created_atDate

The exact timestamp (ISO 8601 format) when the transaction was first recorded in the system.

21
updated_atDate

The most recent timestamp (ISO 8601 format) when the transaction details were updated.

22
value_dateDate

The date when the transaction value is effective (YYYY-MM-DD format).

23
amount_formattedString

Human-readable formatted amount with currency symbol (e.g., '-10.0 USDT').

24
fee_formattedString

Human-readable formatted fee with currency symbol (e.g., '1.2 USDT').

25
sideString

Indicates the direction of funds — 'Credit' for incoming, 'Debit' for outgoing.

26
metadata.request_idString

Top-level request identifier useful for support and log correlation.

27
timestampDate

Top-level RFC 3339 / ISO 8601 server timestamp of when the response was generated (UTC).

Transactions Sample Response

Query Parameters

Use query parameters on GET /api/transactions to filter results and page through them. Pagination is cursor-based: the first request returns a next_cursor which you pass back in as the cursor parameter to fetch the next page.

1
cursorstring

Opaque base64 pagination cursor. Pass data.next_cursor from the previous response to fetch the next page, or data.previous_cursor to go back. Omit on the first request.

2
limitnumber

Maximum number of records to return per page. Default 20, max 100.

3
typestring

Transaction flow direction — 'credit' for incoming funds, 'debit' for outgoing.

4
statusstring

Filter by transaction status, e.g. 'pending', 'completed', or 'failed'.

5
currencystring

Filter by currency, e.g. 'BTC', 'USDT', 'USDC'.

Sample Requests

Get Transaction By ID Or Reference

Use Case

Retrieve a single transaction using its UUID or reference.

1
id or referenceString (UUID or Reference)Required

You can pass either the system-generated id (UUID) or your own provided reference to retrieve the transaction. Useful for tracking or verifying transactions.

Get Transaction

Path Parameters
1
idUUID or stringRequired

A unique identifier used to fetch the transaction details. This can either be the system-generated UUID or a custom reference string provided during transaction creation. It helps ensure idempotency and traceability of transactions.

Path Parameter

Get Transaction Sample Request By ID Or Reference

Returns a single | TransactionResponse.

Sample Request

Get Transaction By ID Sample Response
Note

The response is identical to that of Transaction Response. Refer to the Transaction Response section for field explanations.

Transaction Sample Response

Transaction Types & States

Understanding the different transaction types and states helps you accurately track and reconcile financial activity in your system.

Transaction Types

The type field indicates the nature of the transaction. Possible values:

type
description
DEPOSIT_CONFIRMED
An inbound deposit has been confirmed on-chain and credited to the account.
DEPOSIT_DETECTED
An inbound deposit has been detected on-chain but not yet confirmed.
DEPOSIT_PENDING
An inbound deposit is pending confirmation.
WITHDRAWAL_INITIATED
An outbound withdrawal has been initiated and is being processed.
WITHDRAWAL_FAILED
An outbound withdrawal has failed during processing.
P2P_TRANSFER
A peer-to-peer transfer between accounts within the system.
SWAP_INTERNAL
An internal swap or exchange between currencies.
FX_REBALANCING
A foreign exchange rebalancing transaction.
FEE_ONLY
A transaction representing only fee charges.
REVERSAL
A reversal of a previous transaction.
Transaction States

The state field indicates the current status of the transaction. Possible values:

state
description
terminal?
PENDING
The transaction has been created and is awaiting processing.
No
IN_PROGRESS
The transaction is currently being processed.
No
SETTLED
The transaction has been completed successfully.
Yes
FAILED
The transaction has failed and will not be processed.
Yes
REVERSED
The transaction has been reversed after settlement.
Yes
Typical Lifecycle
State Transitions
Reconciliation Tip

Only SETTLED, FAILED, and REVERSED are terminal — once a transaction reaches one of these, its state won't change again. Use them as checkpoints when reconciling balances or retrying webhooks.

Did you find this page useful?