Z Zise Developers 简体中文

Deposit records (from our ledger's perspective)

GET /v1/deposits scope: deposits:read
On behalf of a member · x-on-behalf-of required

Lists deposit journals actually posted to our ledger, not your own deposit register. Use this as the reconciliation authority: a deposit you reported but which is absent here was not recorded.

id is dep_ plus the original reference. A separate reference field is also returned for direct comparison with your register, without another mapping table or stripping the id prefix.

⚠ Uses real cursor pagination, the same as GET /v1/transactions. Loop with while (has_more); reading only the first page silently misses older records.

⚠⚠ amount is a fixed-point integer string using the asset's ledger_scale, not a decimal amount with an inserted point. For USDT at scale 6, 1500 appears here as "1500000000". This differs from the POST /v1/deposits response, which uses "1500.000000". The difference is historical; we will not silently change this endpoint's format, because clients already parsing it as an integer would miscalculate by 10^scale immediately after deployment without an error. ledger_scale accompanies the amount; use it to restore the value, never assume 6 decimals.

⚠ The four chain fields (network / txid / from_address / to_address) have values only if supplied during declaration. Deposits recorded before POST /v1/deposits supported these fields have empty strings here. That means provenance was not recorded at the time, not that it could not be retrieved.

Query Parameters

FieldTypeRequiredDescription
limit integer Optional Defaults to 20, maximum 100.
cursor string Optional Pass the previous page's next_cursor unchanged.
reference string Optional Exact match on your original business reference, without the dep_ prefix. ⚠ This is not redundant with GET /v1/deposits/{id}: a reference containing / cannot fit into a path segment, so this query is the only usable lookup in that case.
asset string Optional Filter by asset, automatically converted to uppercase.
from string Optional Start time, inclusive, in ISO-8601. Compared against posting time.
to string Optional End time, exclusive, in ISO-8601.
FieldTypeRequiredDescription
x-on-behalf-of string Required Whose deposit records to query.

Response

200OK
{
  "data": [
    {
      "id": "dep_0xa3f1c2e9-0",
      "reference": "0xa3f1c2e9-0",
      "asset": "USDT",
      "amount": "1500000000",
      "ledger_scale": 6,
      "status": "credited",
      "network": "BSC",
      "txid": "0xa3f1c2b7d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f",
      "from_address": "0x9C3f1B7a5E2d4C6b8A0f2E4d6C8b0A2f4E6d8C0b",
      "to_address": "0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed",
      "created_at": "2026-08-12T08:04:57.204Z"
    }
  ],
  "next_cursor": null,
  "has_more": false
}
400invalid_fields: from or to is not valid ISO-8601.
404member_not_found: member does not exist, belongs to another merchant, or is suspended.
Request
curl -X GET 'https://api.zinfra.vip/v1/deposits' \
  -H 'x-auth-token: Bearer $TOKEN' \
  -H 'x-on-behalf-of: $MEMBER_ID'
const res = await fetch("https://api.zinfra.vip/v1/deposits", {
  method: "GET",
  headers: {
    "x-auth-token": "Bearer $TOKEN",
    "x-on-behalf-of": "$MEMBER_ID",
  },
});
// Keep monetary amounts as strings, never numbers.
const data = await res.json();
import requests

res = requests.get(
    "https://api.zinfra.vip/v1/deposits",
    headers={
        "x-auth-token": "Bearer $TOKEN",
        "x-on-behalf-of": "$MEMBER_ID",
    },
)
# Use Decimal(str(...)) for amounts, not float.
data = res.json()
req, _ := http.NewRequest("GET", "https://api.zinfra.vip/v1/deposits",
    nil)
req.Header.Set("x-auth-token", "Bearer $TOKEN")
req.Header.Set("x-on-behalf-of", "$MEMBER_ID")
res, err := http.DefaultClient.Do(req)
// Decode amount fields as string, not float64.
HttpRequest req = HttpRequest.newBuilder()
    .uri(URI.create("https://api.zinfra.vip/v1/deposits"))
    .header("x-auth-token", "Bearer $TOKEN")
    .header("x-on-behalf-of", "$MEMBER_ID")
    .method("GET", HttpRequest.BodyPublishers.noBody())
    .build();
// Use String / BigDecimal for amounts, not double.
$ch = curl_init('https://api.zinfra.vip/v1/deposits');
curl_setopt_array($ch, [
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => [
    'x-auth-token: Bearer $TOKEN',
    'x-on-behalf-of: $MEMBER_ID',
  ],
]);
$res = curl_exec($ch);
// Use bcmath / strings for amounts, not floatval.
200
{
  "data": [
    {
      "id": "dep_0xa3f1c2e9-0",
      "reference": "0xa3f1c2e9-0",
      "asset": "USDT",
      "amount": "1500000000",
      "ledger_scale": 6,
      "status": "credited",
      "network": "BSC",
      "txid": "0xa3f1c2b7d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f",
      "from_address": "0x9C3f1B7a5E2d4C6b8A0f2E4d6C8b0A2f4E6d8C0b",
      "to_address": "0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed",
      "created_at": "2026-08-12T08:04:57.204Z"
    }
  ],
  "next_cursor": null,
  "has_more": false
}