Get OTC Transaction
Reads one of an offer's transactions. This is where you poll the transaction_id returned by Accept OTC Offer and Cancel OTC Offer: status moves from 1 Started to 2 InProgress (and 5 PendingReceipt while the chain receipt is outstanding) to 3 Done or 4 Error.
The offer is part of the key: a transaction ID paired with another offer's ID answers as not found (10001, domain 22). The offer's token node must be inside your API key's node subtree.
Required permission: otc:view
Request
GET /v2/admin/otcs/{otc_id}/transactions/{transaction_id}
Parameters
| Name | Type | In | Description |
|---|---|---|---|
otc_id | string | path | Required. The offer's own ID (24-character hex) |
transaction_id | string | path | Required. OTC transaction ID (24-character hex) |
Headers
| Name | Description |
|---|---|
Authorization | Required. Bearer <access_token> |
Example
curl --request GET \
--url '{{baseUrl}}/v2/admin/otcs/6a8b5d02f9129816a6cc79f4/transactions/6a8b5e13f9129816a6cc7a12' \
--header 'Authorization: Bearer <access_token>'
Response
{
"id": "6a8b5e13f9129816a6cc7a12",
"type": 1,
"status": 3,
"hash": "0x9f2c1b7e4a0d3c5b6e8f1a2b3c4d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f",
"error": null,
"message": null,
"created_at": "2026-08-23T17:43:31.004Z",
"updated_at": "2026-08-23T17:44:01.220Z"
}
Response Fields
| Field | Type | Description |
|---|---|---|
id | string | OTC transaction ID |
type | integer | 1 accept, 2 cancel |
status | integer | 1 Started (recorded, not picked up yet), 2 InProgress (being submitted), 3 Done (settled), 4 Error (failed, see error), 5 PendingReceipt (submitted, waiting for the chain receipt) |
hash | string or null | On-chain transaction hash, once known |
error | string or null | Failure reason when status is 4 |
message | string or null | Reason given with a cancel, when there was one |
created_at | string | When the transaction was started |
updated_at | string | Last status change |
Errors
| Status | Code | Description |
|---|---|---|
| 400 | 10015 | Validation failed — see details. Includes an ID that is not a 24-character hex ID |
| 400 | 11001 (domain 11) | Offer not found |
| 400 | 10001 (domain 22) | Transaction not found, or it belongs to another offer |
| 400 | 10001 (domain 5) | The offer's token was not found |
| 400 | 10001 (domain 2) | The token's node was not found |
| 403 | 10005 (domain 2) | The token's node is outside your API key's node subtree |
| 500 | 10000 | Unexpected server error |
See Errors for the error format and common codes.