Get a Transaction
One transaction, with its status history, whichever API version created it.
The v3 counterpart of GET /api/v2/transactions/{transactionId}, which keeps working: the v2 id with a txn_ prefix is the v3 id.
A workspace-scoped key reads any transaction of the workspace; an account-scoped key reads only its own account's, and another account's reads as 404.
Authorization:
Every request is signed with your API key: a short-lived JWT, signed with your private key, sent in one header on /v3/* and /api/v2/* alike.
Headers:
Authorization: APIKey {SIGNED_JWT}
How to build and sign the JWT: Authentication.
Endpoint
/v3/transactions/{transaction_id}
Path parameters
| Parameter | Type | Description |
|---|---|---|
transaction_id | string (txn_…) | Required. The transaction. |
Response Sample
{
"id": "txn_01k9a1b3c5d7e9f1g3h5j7k9m1",
"reference": "inv-2026-10-0042",
"account_id": "cst_01h455vb4pex5vsknk084sn02q",
"account_email": "ops@acme.com",
"account_name": "Acme Imports LLC",
"type": "crypto",
"status": "success",
"status_history": [
{ "status": "pending", "at": "2026-10-20T18:00:00Z" },
{ "status": "success", "at": "2026-10-20T18:11:37Z" }
],
"coins": ["USDC"],
"executed_by": { "api_key": true },
"crypto": {
"direction": "withdraw",
"withdrawal_id": "wtx_01k9a1b3c5d7e9f1g3h5j7k9m1",
"grace_ends_at": "2026-10-20T18:05:00Z",
"coin": "USDC",
"network": "ethereum",
"amount": "250",
"fee": "10",
"total": "240",
"fiat_rate": "0.9998",
"target_address": "0x8f3b2c1d0e9a7b6c5d4e3f2a1b0c9d8e7f6a5b4c",
"tx_hash": "0x9f1c2b3a4d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5d6e7f8"
},
"created_at": "2026-10-20T18:00:00Z",
"updated_at": "2026-10-20T18:11:37Z"
}
Response Schema
Every transaction carries the common fields and exactly one detail object: the one type names. A field the transaction's rail did not record is absent. Amounts are decimal strings in the detail's own currency; nothing is converted or added up across kinds.
| Field | Type | Description |
|---|---|---|
id | string (txn_…) | The transaction. |
reference | string | What a person searches the list by: the reference given when the transaction was created, or the rail's own. |
account_id | string (cst_…) | Whose transaction it is. |
account_email, account_name | string | The account's email and name when the transaction was recorded. |
type | string | crypto, bank, trade or platform_fee. |
status | string | Where the transaction is, in its rail's own words (pending, processing, completed, success, failed, …). |
status_reason | string | Why it is in that status, when the rail says. |
status_history | array | Every status it went through, in order: status, reason, at. |
coins | array of string | Every currency it touched: one for a transfer or a fee, both legs for a trade. |
executed_by | object | Who started it for the account: member_id (mbr_…) and member_email for a member of the workspace, api_key: true for an API key. Absent when the account's holder acted, or when nobody was recorded. |
crypto | object | A crypto transfer: direction (deposit or withdraw), withdrawal_id or deposit_id (the same transfer under its wtx_… id; Get a Crypto Withdrawal reads one created through v3), grace_ends_at on a withdrawal created through v3 (until then a pending one can be cancelled; absent on one created through v2), coin, network, amount, fee, total (what was credited or what the counterparty received), network_fee and network_fee_currency, fiat_rate (one coin in USD when it was recorded), target_address, tx_hash. |
bank | object | A bank transfer: direction, instrument_type, wire_type (on a wire), currency, amount, fee, total, reserved (what of total the reserve holds), transaction_reference, imad (a wire), trace_number and addenda (an ACH entry), sender and beneficiary (each name, bank_name, account_number, routing_number, swift_code, iban), ach_pull_id (an ACH pull), linked_transaction_id (a related transaction, such as the wire a return deposit gives back). |
trade | object | A trade: order_type, product, side, quantity of quantity_currency (what the account spends), quote_quantity of quote_currency (what it ends up with), rate, fee and fee_currency. |
platform_fee | object | A fee the platform charged the workspace: currency, amount, period, description. |
created_at | string (date-time) | When the transaction was created. |
updated_at | string (date-time) | When it last changed. |
Errors
| Status | message | When |
|---|---|---|
400 | failed to parse request | transaction_id is not a txn_… id. |
401 | unauthorized | Missing or invalid signature. |
404 | transaction_not_found | No such transaction, or it belongs to another account. |
Support and Resources
If you need assistance or have any questions, our support team is here to help. You can contact our support team at support@blockwyre.com.
Stay Updated
Stay up-to-date with the latest news, updates, and features from BlockWyre by following us on social media:
- Instagram: BlockWyre Instagram
- Twitter: BlockWyre Twitter
- Facebook: BlockWyre Facebook
- LinkedIn: BlockWyre LinkedIn
We are excited to have you on board and look forward to seeing how you leverage BlockWyre's powerful tools to enhance your financial operations. Happy integrating!