curl --request GET \
--url https://sandbox-api.polygon.technology/v0.12/deposit-addresses \
--header 'Authorization: Bearer <token>'import requests
url = "https://sandbox-api.polygon.technology/v0.12/deposit-addresses"
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.12/deposit-addresses', 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.12/deposit-addresses",
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.12/deposit-addresses"
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.12/deposit-addresses")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox-api.polygon.technology/v0.12/deposit-addresses")
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>",
"object": "depositAddress",
"customerId": "<string>",
"customer": {
"id": "<string>",
"name": "<string>"
},
"statusReason": "<string>",
"expectedSourceAsset": "<string>",
"depositInstructions": {
"asset": "<string>",
"address": "<string>",
"expiresAt": "2023-11-07T05:31:56Z"
},
"destination": {
"type": "walletCrypto",
"category": "crypto",
"details": {
"id": "<string>",
"asset": "<string>",
"network": "<string>",
"blockchainAddress": "<string>",
"txHash": "<string>",
"blockchainAsset": {
"chainId": "<string>",
"tokenId": "<string>"
}
},
"displayName": "<string>",
"party": {
"relationship": "customer",
"customerId": "<string>"
},
"payoutOrigin": {
"type": "bank",
"details": {
"accountHolder": "customer",
"accountHolderName": "<string>",
"accountNumber": "<string>",
"routingNumber": "<string>",
"virtualAccountId": "<string>"
}
}
},
"returnDestination": {
"id": "<string>"
},
"sponsorGas": true,
"label": "<string>",
"metadata": {},
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}
]
}List all Deposit Addresses
List all Deposit Addresses across the organization. Spans every customer in the caller’s organization; optionally filter by status and/or customer.
curl --request GET \
--url https://sandbox-api.polygon.technology/v0.12/deposit-addresses \
--header 'Authorization: Bearer <token>'import requests
url = "https://sandbox-api.polygon.technology/v0.12/deposit-addresses"
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.12/deposit-addresses', 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.12/deposit-addresses",
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.12/deposit-addresses"
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.12/deposit-addresses")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox-api.polygon.technology/v0.12/deposit-addresses")
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>",
"object": "depositAddress",
"customerId": "<string>",
"customer": {
"id": "<string>",
"name": "<string>"
},
"statusReason": "<string>",
"expectedSourceAsset": "<string>",
"depositInstructions": {
"asset": "<string>",
"address": "<string>",
"expiresAt": "2023-11-07T05:31:56Z"
},
"destination": {
"type": "walletCrypto",
"category": "crypto",
"details": {
"id": "<string>",
"asset": "<string>",
"network": "<string>",
"blockchainAddress": "<string>",
"txHash": "<string>",
"blockchainAsset": {
"chainId": "<string>",
"tokenId": "<string>"
}
},
"displayName": "<string>",
"party": {
"relationship": "customer",
"customerId": "<string>"
},
"payoutOrigin": {
"type": "bank",
"details": {
"accountHolder": "customer",
"accountHolderName": "<string>",
"accountNumber": "<string>",
"routingNumber": "<string>",
"virtualAccountId": "<string>"
}
}
},
"returnDestination": {
"id": "<string>"
},
"sponsorGas": true,
"label": "<string>",
"metadata": {},
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}
]
}Authorizations
Token from POST /auth/token
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 Deposit Address. pending: awaiting on-chain address
assignment. active: accepting deposits. frozen: deposits held by compliance.
inactiveActionRequired: destination unusable, re-point destination to
recover. closed: permanently disabled. failed: provisioning failed.
pending, active, frozen, closed, failed, inactiveActionRequired Filter to a single customer (cst_ prefix).
Response
The request has succeeded.
Paginated list of DepositAddress resources.
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
Deposit Address ID (da_ 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})$Resource type discriminator. Always "depositAddress".
depositAddress Public customer id (cst_...). Named customerId to match VA's naming convention.
^[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})$Resolved id + display name of the owning customer, so list/detail rendering needs no follow-up customer fetch (v0.12, #2665).
Current lifecycle status of the deposit address.
pending, active, frozen, closed, failed, inactiveActionRequired Human-readable explanation of the current status.
Asset of the inbound crypto the DA expects.
Network of the inbound crypto the DA expects.
ethereum, polygon, base, solana Null in the 201 until DEPOSIT_ACCOUNT.OPEN populates the Erebor-owned inlet address.
Hide child attributes
Hide child attributes
Same value as expectedSourceAsset.
Same value as expectedSourceNetwork.
ethereum, polygon, base, solana Erebor-owned on-chain inlet address for this DA.
Placeholder for a future provider-imposed inlet expiry. Null for Erebor DDAs today; surfaced now so adding it later is not a breaking change.
V0.10: unified destination shape (payoutOrigin now lives inside TransactionDestination).
- 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 WalletCrypto instrument details: an OMS-custodied crypto wallet.
Hide child attributes
Hide child attributes
Internal OMS wallet (wlt_ prefix; legacy acc_ also accepted on input).
^[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.
On-chain address.
How the wallet is held: custodial or embedded.
custodial, embedded On-chain transaction hash.
BPN extension: resolved on-chain asset identity (protocol/chainId/tokenId).
Opaque, render-only summary of this instrument for list/detail display (v0.12, #2665) — format is not contractual and may change without a version bump. Never a full account number/IBAN/PAN.
Structured identity of who is on this side.
- Customer
- Another customer
- Registered external account
- Unregistered external account
Hide child attributes
Hide child attributes
Relationship discriminator.
customer The OMS customer that owns this record (cst_ 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})$individual, business Payout originates from a bank account. v0.10 wraps the fields in a details
envelope (matches the precursor shape). accountNumber/routingNumber are
full sending-account detail rendered on the Transaction only, null on
Quote/Deposit Address (choice-only).
- Bank
- Blockchain
Hide child attributes
Hide child attributes
Type discriminator.
bank Bank payout-origin detail. accountHolder(+Name) is the chosen sender
identity (echoed on Quote/DA too); accountNumber/routingNumber are the
full sending-account coordinates (Transaction only, else null); virtualAccountId
is the VA the funds were pulled from.
Hide child attributes
Hide child attributes
Who holds the payout bank account (OMS closed enum). customer is the only
valid value.
customer Name of the sending account holder.
Bank account number.
US ABA routing number.
Virtual Account ID (va_ 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})$Registered crypto return destination (v0.11-8), echoed when set.
Hide child attributes
Hide child attributes
walletCrypto, walletExternal Return network. Must equal the DA's expectedSourceNetwork for the return to be usable.
ethereum, polygon, base, solana walletCrypto: OMS wallet id (acc_…). walletExternal: registered ExternalAccount id (ext_…).
Set when status = failed; closed enum identifying the failure category.
provisioningTimeout, systemError, ereborRejected, intlBankAccountCreateRejected, noMatchingNetwork, blockchainAddressInUse, bankAccountInUse Derived from the destination type: cryptoToFiatAccount for a bank
destination, or cryptoToCrypto for a crypto-wallet destination.
cryptoToCrypto, cryptoToCash, cryptoToFiatAccount, cashToCrypto, fiatAccountToCrypto, fiatAccountToFiatAccount Whether OMS absorbs the on-chain gas cost for the destination delivery.
Persisted from the create/update request (currently only true is
accepted).
Partner display label.
When the deposit address was created.
When the deposit address was last updated.
Was this page helpful?