Get User Transaction
Reads one of a user's transactions. It is the poll target for the transaction_id returned by Buy On Primary Market, Buy On Secondary Market, Sell On Secondary Market, Delist, Sell On OTC, Cancel OTC Deal, Burn and Withdraw.
status moves 1 Started → 2 InProgress → 3 Done or 4 Error. hash is set on Done and error on Error. The user is part of the key: a transaction id paired with another user answers "not found".
Required permission: user:view
Request
GET /v2/users/{user_id}/transactions/{transaction_id}
Parameters
| Name | Type | In | Description |
|---|---|---|---|
user_id | string | path | Required. User the transaction belongs to (24-character hex) |
transaction_id | string | path | Required. Transaction ID (24-character hex) |
Headers
| Name | Description |
|---|---|
Authorization | Required. Bearer <access_token> |
Example
curl --request GET \
--url '{{baseUrl}}/v2/users/6a87455ad5f439809d488ac3/transactions/6a8b5e13f9129816a6cc7a12' \
--header 'Authorization: Bearer <access_token>'
Response
{
"id": "6a8b5e13f9129816a6cc7a12",
"user_id": "6a87455ad5f439809d488ac3",
"type": 10,
"status": 3,
"environment": 0,
"internal_id": "",
"wallet_id": "6a8754e187be1d0e22aa6d83",
"external_id": "",
"hash": "0x9f2c1b6a0d4e3b7c2f1a8e5d4c3b2a1908f7e6d5c4b3a2918f7e6d5c4b3a2918",
"error": null,
"message": null,
"data": {
"address": "0x4A096E485281DE1B8bF11A511D39d5B128EF7C4b",
"amount": "10.5",
"currency_token_id": "6913307ec95e268b239b2d8b"
},
"is_api": true,
"created_at": "2026-08-23T17:43:31.004Z",
"updated_at": "2026-08-23T17:44:01.220Z"
}
Response Fields
The object has the same fields as a row of Get User Transactions; the type, status and environment values and the data keys per type are listed there.
| Field | Type | Description |
|---|---|---|
id | string | Transaction ID |
user_id | string | The user the transaction belongs to |
type | integer | What the transaction does, see types |
status | integer | 1 Started, 2 InProgress, 3 Done, 4 Error |
environment | integer | 0 Default, 1 OTC, 2 Secondary market |
internal_id | string | The record the transaction acts on (listing, OTC offer, token). Empty string when there is none |
wallet_id | string | The wallet the transaction runs on and signs with. Empty string on transactions that name no wallet |
external_id | string | Custody-side reference, when there is one |
hash | string | null | On-chain transaction hash; set on Done |
error | string | null | Failure reason; set on Error |
message | string | null | Human-readable note, when one was given |
data | object | Type-specific payload. Omitted when the transaction has none |
is_api | boolean | Whether the action came through the partner API |
created_at | string | ISO 8601 creation time |
updated_at | string | ISO 8601 time of the last change |
Errors
| Status | Code | Description |
|---|---|---|
| 400 | 10015 | Validation failed (user_id or transaction_id is not 24 hex characters) — see details |
| 400 | 10001 | Transaction not found, or it belongs to another user (domain 8) |
See Errors for the error format and common codes.