curl --request GET \
--url https://sandbox-api.polygon.technology/v0.13/deposit-addresses/{depositAddressId}/transactions \
--header 'Authorization: Bearer <token>'import requests
url = "https://sandbox-api.polygon.technology/v0.13/deposit-addresses/{depositAddressId}/transactions"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://sandbox-api.polygon.technology/v0.13/deposit-addresses/{depositAddressId}/transactions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox-api.polygon.technology/v0.13/deposit-addresses/{depositAddressId}/transactions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://sandbox-api.polygon.technology/v0.13/deposit-addresses/{depositAddressId}/transactions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://sandbox-api.polygon.technology/v0.13/deposit-addresses/{depositAddressId}/transactions")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox-api.polygon.technology/v0.13/deposit-addresses/{depositAddressId}/transactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"object": "<string>",
"limit": 123,
"hasMore": true,
"nextCursor": "<string>",
"previousCursor": "<string>",
"data": [
{
"id": "<string>",
"status": "processing",
"subStatus": "processing.fundsPulled",
"customer": {
"id": "<string>"
},
"precursor": {
"type": "quote",
"id": "<string>"
},
"source": {
"type": "walletCrypto",
"category": "crypto",
"id": "<string>",
"asset": "<string>",
"network": "<string>",
"displayName": "<string>",
"party": {
"relationship": "customer",
"id": "<string>",
"name": "<string>"
},
"memo": "<string>"
},
"destination": {
"type": "walletCrypto",
"category": "crypto",
"id": "<string>",
"asset": "<string>",
"network": "<string>",
"displayName": "<string>",
"party": {
"relationship": "customer",
"id": "<string>",
"name": "<string>"
},
"memo": "<string>",
"payoutOrigin": {
"type": "bank",
"id": "<string>",
"accountHolder": "customer",
"accountHolderName": "<string>"
},
"companyDiscretionaryData": "<string>"
},
"pricing": {
"fees": [
{
"type": "<string>",
"side": "source",
"asset": "<string>",
"amount": "<string>"
}
],
"source": {
"asset": "<string>",
"amountGross": "<string>",
"amountNet": "<string>"
},
"destination": {
"asset": "<string>",
"amountGross": "<string>",
"amountNet": "<string>"
},
"exchangeRate": "<string>",
"fixedAmountSide": "source",
"sponsorGas": true,
"sponsorGasCost": "<string>"
},
"tracking": [
{
"scheme": "<string>",
"value": "<string>",
"leg": "source",
"network": "<string>",
"assignedBy": "<string>",
"url": "<string>"
}
],
"sourceToDestination": "cryptoToCrypto",
"estimatedArrival": "2023-11-07T05:31:56Z",
"error": {
"code": "<string>",
"message": "<string>",
"occurredAt": "2023-11-07T05:31:56Z",
"recoverable": true,
"manualRecovery": {
"type": "manualRecovery",
"custodian": "ANCHORAGE_SG",
"instructions": "<string>",
"referenceFields": {
"transactionId": "<string>",
"sourceTxHash": "<string>"
}
}
},
"hold": {
"required": true,
"type": "informationRequested",
"instructions": "<string>",
"requestedFrom": "<string>",
"since": "2023-11-07T05:31:56Z",
"deadline": "2023-11-07T05:31:56Z",
"resolvedAt": "2023-11-07T05:31:56Z",
"customerId": "<string>"
},
"metadata": {},
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"expiresAt": "2023-11-07T05:31:56Z",
"projectId": "<string>"
}
]
}{
"error": "InvalidFilter",
"code": 10267,
"msg": "startingAfter and endingBefore are mutually exclusive",
"cause": "<string>"
}List Deposit Address transactions
Returns the payment transactions that originated from this Deposit Address, most recent first, with cursor-based pagination. Uses the same grouped payment read model as GET /transactions, pinned to this deposit address (equivalent to GET /transactions?depositAddressId=).
This is a collection filter: it always returns 200 with the matching transactions. An unknown, deleted, or other-tenant depositAddressId simply matches no rows and yields an empty list — it is not a 404. Use GET /deposit-addresses/{depositAddressId} to assert existence/ownership.
curl --request GET \
--url https://sandbox-api.polygon.technology/v0.13/deposit-addresses/{depositAddressId}/transactions \
--header 'Authorization: Bearer <token>'import requests
url = "https://sandbox-api.polygon.technology/v0.13/deposit-addresses/{depositAddressId}/transactions"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://sandbox-api.polygon.technology/v0.13/deposit-addresses/{depositAddressId}/transactions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox-api.polygon.technology/v0.13/deposit-addresses/{depositAddressId}/transactions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://sandbox-api.polygon.technology/v0.13/deposit-addresses/{depositAddressId}/transactions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://sandbox-api.polygon.technology/v0.13/deposit-addresses/{depositAddressId}/transactions")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox-api.polygon.technology/v0.13/deposit-addresses/{depositAddressId}/transactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"object": "<string>",
"limit": 123,
"hasMore": true,
"nextCursor": "<string>",
"previousCursor": "<string>",
"data": [
{
"id": "<string>",
"status": "processing",
"subStatus": "processing.fundsPulled",
"customer": {
"id": "<string>"
},
"precursor": {
"type": "quote",
"id": "<string>"
},
"source": {
"type": "walletCrypto",
"category": "crypto",
"id": "<string>",
"asset": "<string>",
"network": "<string>",
"displayName": "<string>",
"party": {
"relationship": "customer",
"id": "<string>",
"name": "<string>"
},
"memo": "<string>"
},
"destination": {
"type": "walletCrypto",
"category": "crypto",
"id": "<string>",
"asset": "<string>",
"network": "<string>",
"displayName": "<string>",
"party": {
"relationship": "customer",
"id": "<string>",
"name": "<string>"
},
"memo": "<string>",
"payoutOrigin": {
"type": "bank",
"id": "<string>",
"accountHolder": "customer",
"accountHolderName": "<string>"
},
"companyDiscretionaryData": "<string>"
},
"pricing": {
"fees": [
{
"type": "<string>",
"side": "source",
"asset": "<string>",
"amount": "<string>"
}
],
"source": {
"asset": "<string>",
"amountGross": "<string>",
"amountNet": "<string>"
},
"destination": {
"asset": "<string>",
"amountGross": "<string>",
"amountNet": "<string>"
},
"exchangeRate": "<string>",
"fixedAmountSide": "source",
"sponsorGas": true,
"sponsorGasCost": "<string>"
},
"tracking": [
{
"scheme": "<string>",
"value": "<string>",
"leg": "source",
"network": "<string>",
"assignedBy": "<string>",
"url": "<string>"
}
],
"sourceToDestination": "cryptoToCrypto",
"estimatedArrival": "2023-11-07T05:31:56Z",
"error": {
"code": "<string>",
"message": "<string>",
"occurredAt": "2023-11-07T05:31:56Z",
"recoverable": true,
"manualRecovery": {
"type": "manualRecovery",
"custodian": "ANCHORAGE_SG",
"instructions": "<string>",
"referenceFields": {
"transactionId": "<string>",
"sourceTxHash": "<string>"
}
}
},
"hold": {
"required": true,
"type": "informationRequested",
"instructions": "<string>",
"requestedFrom": "<string>",
"since": "2023-11-07T05:31:56Z",
"deadline": "2023-11-07T05:31:56Z",
"resolvedAt": "2023-11-07T05:31:56Z",
"customerId": "<string>"
},
"metadata": {},
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"expiresAt": "2023-11-07T05:31:56Z",
"projectId": "<string>"
}
]
}{
"error": "InvalidFilter",
"code": 10267,
"msg": "startingAfter and endingBefore are mutually exclusive",
"cause": "<string>"
}Authorizations
Token from POST /auth/token
Path Parameters
Deposit Address ID (da_ prefix).
Query Parameters
Page size, supported range 1-100. The default and maximum are per-resource (see each endpoint's description; most endpoints default to 50) and are resolved at runtime from configuration. Values outside the range are clamped to the nearest bound rather than rejected. The range is published machine-readably via the x-minimum/x-maximum OpenAPI extensions below — deliberately NOT via @minValue/@maxValue, which emit JSON-Schema minimum/maximum and make the generated SDK (Zod) reject values the server accepts and clamps. See PaginatedList.limit for the effective value applied.
Filter by status.
Lifecycle of a transaction. processing: funds in motion. awaitingAction: non-terminal, blocked on developer/upstream/compliance (see hold); returns to processing once cleared. completed: delivered. failed: terminal failure.
processing, awaitingAction, completed, failed Filter by corridor (source/destination category composite).
Composite of source and destination instrument categories, inferred from each side. The cash corridors (cryptoToCash, cashToCrypto) are derived from a cash-pickup destination / cash-in source respectively; the rest map straight from the internal corridor type.
cryptoToCrypto, cryptoToCash, cryptoToFiatAccount, cashToCrypto, fiatAccountToCrypto, fiatAccountToFiatAccount Scope to a customer (sender or recipient). cst_ prefix.
Inclusive lower bound on createdAt.
Inclusive upper bound on createdAt.
Free-text search. Matches transaction id, customer id, or customer email.
Alias for search.
Filters to payments where ANY leg's underlying status is in the given set.
Response
The request has succeeded.
A paginated list of transactions.
Resource type discriminator.
The effective page size applied to this response, after clamping an out-of-range or unset requested limit into the supported bound.
True when more rows exist beyond this page in the direction of travel (forward by default, backward when endingBefore was supplied).
Opaque cursor pointing at the last item in this page. Present when data is non-empty. Pass as startingAfter to fetch the next page; hasMore=false signals no more pages forward.
Opaque cursor pointing at the first item in this page. Present when data is non-empty. Pass as endingBefore to page backward; when this yields an empty response the client is at the start of the list.
The page of results.
Hide child attributes
Hide child attributes
Transaction ID (txn_ prefix).
^[a-z]+_([0-9a-hjkmnp-tv-z]{26}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$Current lifecycle status. See subStatus for finer granularity.
processing, awaitingAction, completed, failed Status-scoped sub-state (e.g. processing.fundsPulled). Always present: each status carries a default member (e.g. processing.initiated) when no more specific value applies.
processing.fundsPulled, processing.cashPickupReady, processing.underReview, completed.cashPickupCollected, completed.cashPickupExpired, awaitingAction.informationRequested, awaitingAction.awaitingSenderAttribution, awaitingAction.depositAddressFrozen, awaitingAction.depositAddressInactive, failed.attributionTimeout, failed.depositAddressFrozenTimeout, failed.depositAddressInactiveTimeout, failed.depositAddressClosed, processing.awaitingCryptoOut, processing.cryptoOut, processing.awaitingFiatOut, processing.fiatOut, processing.inboundPending, processing.inboundProcessing, failed.inboundFailed, failed.returnPending, failed.returnStarted, failed.returnComplete, failed.returnFailed, processing.initiated, completed.settled, failed.unspecified, failed.expired, failed.providerDeclined, failed.outboundFailed What created this transaction, as a uniform {type, id} reference — dereference the resource by id for its full record. A custodial-wallet deposit renders {type: walletDeposit, id: null}. null remains only for a genuine out-of-band arrival with no recognised origin at all; the manual arm (id: null) is reserved for a future operator-initiated transaction, distinct from either.
Hide child attributes
Hide child attributes
quote, depositAddress, virtualAccount, cashIn, manual, walletDeposit qt_ / da_ / va_ / ci_. Null for manual and walletDeposit.
^[a-z]+_([0-9a-hjkmnp-tv-z]{26}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$The funding side: a typed instrument carrying identity and detail.
- OMS wallet
- External wallet
- Fiat wallet
- US bank account
- IBAN bank account
- Canadian bank account
- Card
- Cash
Hide child attributes
Hide child attributes
Type discriminator.
walletCrypto High-level grouping: fiatAccount for bank or card accounts, crypto for wallets.
crypto OMS wallet ID (wlt_ prefix). Dereference via GET /wallets/{id}. Null while a deposit is still in flight and the wallet it lands in has not resolved yet.
^[a-z]+_([0-9a-hjkmnp-tv-z]{26}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$Canonical asset identifier.
Network identifier.
Opaque, render-only summary for list/detail display. Never a full account number/IBAN/PAN.
Structured identity of who is on this side.
Hide child attributes
Hide child attributes
Which kind of party this is.
customer, otherCustomer, externalRegistered, externalUnregistered cst_ for customer/otherCustomer; ctp_ for externalRegistered; null for externalUnregistered.
^[a-z]+_([0-9a-hjkmnp-tv-z]{26}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$Display name of a counterparty or external sender. Absent for a customer party on a Transaction, Deposit Address or Virtual Account; a Quote includes the customer's name when it can be resolved. Null or absent when an external sender is unattributed.
Free-text message that travelled with the transfer on this side's rail. Never populated on this instrument — no rail behind it carries a message — so the key is always absent. A memo appears only on the bank arms (bankUs, bankIban, bankCanada).
The receiving side: a typed instrument plus payoutOrigin.
- OMS wallet
- External wallet
- Fiat wallet
- US bank account
- IBAN bank account
- Canadian bank account
- Card
- Cash
Hide child attributes
Hide child attributes
Type discriminator.
walletCrypto High-level grouping: fiatAccount for bank or card accounts, crypto for wallets.
crypto OMS wallet ID (wlt_ prefix). Dereference via GET /wallets/{id}. Null while a deposit is still in flight and the wallet it lands in has not resolved yet.
^[a-z]+_([0-9a-hjkmnp-tv-z]{26}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$Canonical asset identifier.
Network identifier.
Opaque, render-only summary for list/detail display. Never a full account number/IBAN/PAN.
Structured identity of who is on this side.
Hide child attributes
Hide child attributes
Which kind of party this is.
customer, otherCustomer, externalRegistered, externalUnregistered cst_ for customer/otherCustomer; ctp_ for externalRegistered; null for externalUnregistered.
^[a-z]+_([0-9a-hjkmnp-tv-z]{26}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$Display name of a counterparty or external sender. Absent for a customer party on a Transaction, Deposit Address or Virtual Account; a Quote includes the customer's name when it can be resolved. Null or absent when an external sender is unattributed.
Free-text message that travelled with the transfer on this side's rail. Never populated on this instrument — no rail behind it carries a message — so the key is always absent. A memo appears only on the bank arms (bankUs, bankIban, bankCanada).
Where last-mile delivery is sent from, as a uniform {type, id} reference — response-only. id is the Virtual Account (va_) or OMS wallet (wlt_) funding the leg; null before execution (Quote / Deposit Address echo the choice only) or when the origin has no partner-visible resource. Rail identifiers for the last-mile transfer live in the top-level tracking array with leg: destination — not here.
Hide child attributes
Hide child attributes
bank, blockchain Public TypeID, e.g. txn_01h455vb4pex5vsknk084sn02q.
^[a-z]+_([0-9a-hjkmnp-tv-z]{26}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$Whose legal identity the payment is sent under. Determined by OMS from the route's configuration — not a request field. Always present; null when OMS cannot determine it, and on destinations that have no sending legal identity (cash payouts, and crypto payouts outside a Deposit Address). A bank payout that goes out under the payment provider or the partner records that holder just before it is sent to the provider, and reports it only while a payout was or may have been created there; a send interrupted after the holder was recorded and before it went out has an unknown outcome and may report it. A failed send known to have created no payout at the provider, and a payout sent before holders were recorded whose holder could not be recovered afterwards, report the fallback value instead, which may differ from the holder actually used. The fallback value, also reported before a holder is recorded and for payouts that always go out under the customer's own name, is the Deposit Address's value for the destination type the transaction pays (see DepositAddressPayoutOrigin) on a transaction created from a Deposit Address, and the value its route implies on any other.
customer, paymentProvider, partner The legal name the payment is sent under, resolved from accountHolder — the customer's own legal name for customer, the owning customer's legal name for partner (for now; a partner-level name may replace it later), or the payment provider's name for paymentProvider, which differs between a bank origin ("Coinme Inc FBO its Customers") and a blockchain origin. This is what the recipient sees as the sender. Like accountHolder and unlike id, it is populated as soon as it is determinable, so it appears on Quote and Deposit Address responses as well as Transactions. Null whenever accountHolder is null. Absent when accountHolder is customer on a Transaction, Deposit Address or Virtual Account: the customer's name is on the customer resource. A Quote still includes the customer's name when it can be resolved.
Echo of the ACH companyDiscretionaryData supplied on the originating request. Null/absent on non-ACH destinations or when not supplied.
Consolidated economics.
Hide child attributes
Hide child attributes
Every fee deducted across both sides. [] when there are none — never omitted, never null.
Hide child attributes
Hide child attributes
Fee kind. OPEN — clients must tolerate an unrecognised type. Known values today: "developer" (always 0 in alpha), "oms", "gas".
Which side this fee was deducted from.
source, destination Currency this fee is denominated in — that side's asset.
Fee amount, in asset.
Economics for the source side, denominated in the source asset.
Hide child attributes
Hide child attributes
Currency these amounts are in. Same as the side's instrument asset, repeated here so pricing is self-contained.
Amount on this side before fees are applied.
Amount after fees: what is actually pulled from a source, or delivered to a destination. Identity: amountNet = amountGross − Σ fees(side) (this side's entries in Pricing.fees).
Economics for the destination side, denominated in the destination asset.
Hide child attributes
Hide child attributes
Currency these amounts are in. Same as the side's instrument asset, repeated here so pricing is self-contained.
Amount on this side before fees are applied.
Amount after fees: what is actually pulled from a source, or delivered to a destination. Identity: amountNet = amountGross − Σ fees(side) (this side's entries in Pricing.fees).
Mid-market rate between source and destination assets. Identity: source.amountNet × exchangeRate = destination.amountGross.
The side you set amount on when creating the quote. OMS calculated the other side.
source, destination When true, OMS absorbs the destination gas cost. Currently always true.
Gas absorbed by the developer when sponsorGas is true. Currently always 0.00.
Every rail identifier assigned to this transaction — blockchain tx hashes and Fedwire/SWIFT references (uetr, imad, endToEndId, instructionId) today; ACH/cash rail references planned. Ordered oldest-first by leg; within one leg the entries follow a fixed scheme order, not the moment each identifier was assigned. A re-driven wire payout replaces its previous wire's identifiers in place rather than appending them. [] until the first identifier is assigned.
Hide child attributes
Hide child attributes
Identifier kind. Emitted today: "txHash" (on-chain hash), "uetr", "imad", "endToEndId", "instructionId" (Fedwire/SWIFT rail identifiers). OPEN — clients must tolerate an unrecognised scheme. tracking is an ordered list, not a set: no combination of fields is unique. The same scheme repeats once per leg that carries such an identifier (a fiat-in → fiat-out payment has a different uetr on source and on destination) and again for each superseded attempt that survives as its own leg. Iterate it; do not index it.
The identifier itself, verbatim as assigned by the rail/vendor.
Which leg of the transaction this identifier belongs to.
source, destination, return Network the identifier was assigned on (e.g. "polygon", "ach", "swift") — same vocabulary as instrument network fields. Absent when the identifier is not network-scoped.
The operator or partner that assigned this identifier, when known — e.g. erebor, coinme. Open — treat the string as free-form rather than a fixed set. Absent when the assigner is not resolvable.
Deep link to view this identifier on the rail's own explorer, when one is known.
Corridor composite derived from the two sides.
cryptoToCrypto, cryptoToCash, cryptoToFiatAccount, cashToCrypto, fiatAccountToCrypto, fiatAccountToFiatAccount Estimated completion time. Present when the destination rail has a predictable settlement time (e.g. bank payouts and some crypto legs); null otherwise.
Failure detail. Set when the transaction fails; includes refund or recovery state where applicable.
Hide child attributes
Hide child attributes
Machine-readable error code. Never a provider's own code.
Human-readable detail. Never names a provider.
When the error occurred.
Whether the failure can be recovered.
Populated only for terminal failures with no resolved refund/return path (v0.11).
Hide child attributes
Hide child attributes
manualRecovery ANCHORAGE_SG, ANCHORAGE_US, AQUANOW_CA, B2C2_UK, B2C2_US, BITGO_SG, BITGO_US, BITSTAMP_US, BVNK_US, CIRCLE_FR, CIRCLE_US, CITIBANK_US, COINBASE_US, COINSMART_CA, COPPER_CH, COPPER_UK, CUMBERLAND_DRW_LLC_US, CUMBERLAND_SG, EREBOR_BANK_US, FALCONX_US, FIDELITY_UK, FIDELITY_US, FIREBLOCKS_APAC, FIREBLOCKS_US, GALAXY_KY, GEMINI_US, KRAKEN_BVI, KRAKEN_EU_IE, KRAKEN_UK, KRAKEN_US, NUBANK_BR, PAXOS_US, RAMP_NETWORK_US, ROBINHOOD_US, WINTERMUTE_GB, SELF_HOSTED, OTHER Reference identifiers for an operator-driven recovery.
Hide child attributes
Hide child attributes
Transaction ID (txn_ prefix).
^[a-z]+_([0-9a-hjkmnp-tv-z]{26}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$Transaction hash of the originating inbound transfer.
The hold blocking this transaction while status is awaitingAction. Retained after it clears, with resolvedAt set and required false, so the reason stays visible. Absent if the transaction has never been held.
- Information requested
- Sender attribution
- Deposit address frozen
- Deposit address inactive
Hide child attributes
Hide child attributes
Whether the hold is still blocking; false once resolved.
Type discriminator.
informationRequested Human-readable statement of what is needed, safe to surface to the developer. Free text — do not parse it.
Who the information is needed from. Today either customer (the end user, reached through you) or developer (you, the integrator). Open vocabulary — tolerate a value you do not recognise.
When the hold started.
Deadline to resolve before timeout.
When the hold was resolved. Absent while the hold is outstanding.
The customer the request concerns (cst_ prefix), when it is about a specific customer. Absent otherwise.
^[a-z]+_([0-9a-hjkmnp-tv-z]{26}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$When the transaction was created.
When the transaction was last updated.
Expiry of the transaction's actionable window: present on auto-created transactions and on cash payouts (the pickup-code expiry), and retained after completion for audit. Null for other quote-initiated transactions.
The owning project. Populated only on the cross-project admin endpoints (e.g. GET /admin/transactions/redrivable) so operators can tell which project a stranded transaction belongs to. Omitted on partner endpoints, where the project is implicit from the auth token.
^prj_.+$Was this page helpful?