curl --request GET \
--url https://sandbox-api.polygon.technology/v0.13/deposit-addresses \
--header 'Authorization: Bearer <token>'import requests
url = "https://sandbox-api.polygon.technology/v0.13/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.13/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.13/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.13/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.13/deposit-addresses")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox-api.polygon.technology/v0.13/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>"
},
"status": "pending",
"statusReason": "<string>",
"expectedSourceAsset": "<string>",
"expectedSourceNetwork": "ethereum",
"depositInstructions": {
"asset": "<string>",
"network": "ethereum",
"address": "<string>",
"expiresAt": "2023-11-07T05:31:56Z"
},
"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>"
},
"companyDiscretionaryData": "<string>"
},
"returnDestination": {
"type": "walletCrypto",
"network": "ethereum",
"id": "<string>"
},
"failureReason": "provisioningTimeout",
"sourceToDestination": "cryptoToCrypto",
"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.13/deposit-addresses \
--header 'Authorization: Bearer <token>'import requests
url = "https://sandbox-api.polygon.technology/v0.13/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.13/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.13/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.13/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.13/deposit-addresses")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox-api.polygon.technology/v0.13/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>"
},
"status": "pending",
"statusReason": "<string>",
"expectedSourceAsset": "<string>",
"expectedSourceNetwork": "ethereum",
"depositInstructions": {
"asset": "<string>",
"network": "ethereum",
"address": "<string>",
"expiresAt": "2023-11-07T05:31:56Z"
},
"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>"
},
"companyDiscretionaryData": "<string>"
},
"returnDestination": {
"type": "walletCrypto",
"network": "ethereum",
"id": "<string>"
},
"failureReason": "provisioningTimeout",
"sourceToDestination": "cryptoToCrypto",
"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, tron 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, tron 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 OMS wallet ID (wlt_ prefix).
DEVIATION from the ratified OMS v0.12 contract (docs/specs/2026-08-05-oms-v0.12-openapi.yaml,
WalletCryptoInstrument): the ratified shape has id required and non-nullable. A row
can classify as this arm (destination_type=walletCrypto/legacy walletOms, per #2528)
before the wallet FK has actually resolved — the "in-flight deposit" window
destInstrumentKind's own doc comment describes — so id is nullable rather than
emitting an empty string that fails the typeId scalar's pattern. Not recorded in
the upstream snapshot's §4 errata (that section is for defects IN the ratified
snapshot, not BPN's own accepted deviations from it) — flagged here and in the PR
description instead, same class as the CardInstrument.id/WalletFiatInstrument.id/
BankUsInstrument.network deviations elsewhere in this same change.
^[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. Null only when genuinely unknown (an unattributed external sender).
Free-text message travelling with the transfer on this side's rail.
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; legacy UUID suffixes are accepted until non-v7 rows are retired.
^[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})$Echo of the ACH companyDiscretionaryData supplied on the originating request. Null/absent on non-ACH destinations or when not supplied.
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, tron 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?