Get User Transaction
Reads one of a user's transactions — the poll target for the transaction_id that every write on the user surface hands back.
Request
GET /v2/users/{user_id}/transactions/{transaction_id}
Parameters
| Name | Type | In | Description |
|---|---|---|---|
user_id | string | path | Required. The user the transaction belongs to (24-character hex) |
transaction_id | string | path | Required. The transaction ID (24-character hex) |
Headers
| Name | Type | Description |
|---|---|---|
Authorization | Required. Bearer token for authentication |
Example
curl --location '\{\{baseUrl\}\}/v2/users/680c02896d91ca0145cfeb81/transactions/6a8b5e13f9129816a6cc7a12' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'
Response
{
"id": "6a8b5e13f9129816a6cc7a12",
"user_id": "680c02896d91ca0145cfeb81",
"type": 5,
"status": 3,
"environment": 2,
"internal_id": "68ae06cfcccf4e8fc19362d1",
"wallet_id": "6a89b68e0c46ca4c941271aa",
"external_id": "",
"hash": "0x9f2c1b...",
"error": null,
"message": null,
"is_api": true,
"created_at": "2026-08-23T17:43:31.004Z",
"updated_at": "2026-08-23T17:44:01.220Z"
}
Response Fields
| Field | Type | Description |
|---|---|---|
id | string | The transaction ID |
user_id | string | The user the transaction belongs to |
type | integer | What the transaction does — see the type table in Get User Transactions |
status | integer | 1 Started, 2 InProgress, 3 Done, 4 Error, 5 PendingReceipt |
environment | integer | Which venue the transaction belongs to |
internal_id | string | The record the transaction acts on — the secondary-market listing, the OTC offer, the token |
wallet_id | string | The custody wallet the transaction runs on and signs with. Empty on transactions that name no wallet |
hash | string | On-chain transaction hash; filled in on Done, null before |
error | string | Failure reason; filled in on Error, null otherwise |
message | string | Human-readable note, when one was given |
is_api | boolean | Whether the action came through the integration API rather than the admin panel |
Status enum
| Value | Name | Meaning |
|---|---|---|
| 1 | Started | Recorded, not yet picked up |
| 2 | InProgress | Submitted to the chain |
| 3 | Done | Settled; hash is set |
| 4 | Error | Failed; error is set |
| 5 | PendingReceipt | Submitted, waiting for the chain receipt |
Status Codes
| Status Code | Description |
|---|---|
| 200 | Success - transaction retrieved |
| 400 | Bad Request - unknown transaction, or a transaction ID paired with a user it does not belong to |
| 401 | Unauthorized - invalid or missing authentication token |
| 500 | Internal Server Error |
Notes
- This is the poll target for the
transaction_idreturned by Sell On Secondary Market, Delist, Sell On OTC, Cancel OTC Deal, Buy On Primary Market, Buy On Secondary Market, Burn and Withdraw. - Before this endpoint existed, the only way to resolve one of those IDs was to page Get User Transactions looking for it.
- The user is part of the key: a transaction ID paired with another user reads as absent rather than refused.