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.
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.
Transaction Response
This is the standard shape of a transaction returned by the API.
Top-level flag indicating whether the request was processed successfully.
Top-level human-readable status message describing the outcome of the request.
Envelope containing the paginated transactions list and pagination cursors.
The page of transaction records matching the query.
Opaque base64 cursor to fetch the next page. Empty string when there are no more results.
Opaque base64 cursor to fetch the previous page. Empty string when on the first page.
Total number of transactions matching the query across all pages.
True when additional pages are available (use next_cursor to fetch them).
A unique identifier automatically generated by the system for each transaction. This is used to track and reference a specific transaction.
The account number associated with this transaction.
The currency of the transaction (e.g., 'USDT', 'USDC', 'BTC').
Specifies the type of transaction performed, e.g., 'WITHDRAWAL_INITIATED', 'DEPOSIT_CONFIRMED'.
The current state of the transaction: 'PENDING' for in-progress, 'SETTLED' for completed transactions.
The transaction amount in the smallest unit of the currency. Negative values indicate debits.
The total fee charged for the transaction in the smallest unit.
A unique reference string (system or custom-generated) used for idempotency and reliable transaction lookups.
A unique key used to ensure the transaction is not duplicated on retry. May be an empty string for system-generated records.
Identifier for an associated trade, if applicable. Empty string or null when the transaction is not tied to a trade.
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.
The exact timestamp (ISO 8601 format) when the transaction was first recorded in the system.
The most recent timestamp (ISO 8601 format) when the transaction details were updated.
The date when the transaction value is effective (YYYY-MM-DD format).
Human-readable formatted amount with currency symbol (e.g., '-10.0 USDT').
Human-readable formatted fee with currency symbol (e.g., '1.2 USDT').
Indicates the direction of funds — 'Credit' for incoming, 'Debit' for outgoing.
Top-level request identifier useful for support and log correlation.
Top-level RFC 3339 / ISO 8601 server timestamp of when the response was generated (UTC).
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.
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.
Maximum number of records to return per page. Default 20, max 100.
Transaction flow direction — 'credit' for incoming funds, 'debit' for outgoing.
Filter by transaction status, e.g. 'pending', 'completed', or 'failed'.
Filter by currency, e.g. 'BTC', 'USDT', 'USDC'.
Get Transaction By ID Or Reference
Use Case
Retrieve a single transaction using its UUID or reference.
You can pass either the system-generated id (UUID) or your own provided reference to retrieve the transaction. Useful for tracking or verifying transactions.
Path Parameters
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.
Get Transaction Sample Request By ID Or Reference
Returns a single | TransactionResponse.
Get Transaction By ID Sample Response
The response is identical to that of Transaction Response. Refer to the Transaction Response section for field explanations.
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
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.