Custodian
Deposits

Deposits

List incoming activity for your app in one place: invoices (all statuses) and non-invoice on-chain deposits (token_transfers without an invoice_id). Requires authentication (X-App-ID + signature).

MethodPath
GET/api/v1/deposits

List Deposits

GET /api/v1/deposits

Returns a combined, paginated list scoped to the authenticated app.

What is included

typeSource
invoiceInvoice rows for your app (any status)
non_invoiceOn-chain deposits credited to a listen / deposit wallet that are not linked to an invoice

Query parameters

ParamTypeDefaultDescription
typestring—Filter: invoice or non_invoice
statusstring—Filter: paid, pending, failed, expired, or cancelled. Alias: success is treated as paid
networkIdstring—Filter by network UUID
networkstring—Filter by network code (e.g. polygon-pos, ethereum)
tokenIdstring—Filter by allowed token UUID
tokenCodestring—Filter by allowed token code (e.g. usdt-ethereum)
walletIdstring—Filter by deposit wallet UUID
qstring—Search across tx hash, invoice id, reference, deposit id, or wallet id
startDatestring—Inclusive lower bound on createdAt. RFC3339 or YYYY-MM-DD
endDatestring—Inclusive upper bound on createdAt. RFC3339 or YYYY-MM-DD (YYYY-MM-DD = end of that UTC day)
pageint1Page number (minimum 1)
limitint20Page size (minimum 1, maximum 100)

Response 200

{
  "data": {
    "items": [
      {
        "id": "9544b2ae-c84a-4bc5-a7ed-599b20d0f25d",
        "reference": "order-555",
        "transactionHash": "0x005c514230821be3b7f0a588b9012f76cf1b84a90a28235cf772128ec1775b05",
        "createdAt": "2026-01-15T10:00:00Z",
        "type": "invoice",
        "symbol": "USDT",
        "network": "ethereum",
        "networkId": "net-uuid",
        "tokenId": "tok-uuid",
        "amount": 100,
        "status": "paid",
        "invoiceId": "9544b2ae-c84a-4bc5-a7ed-599b20d0f25d",
        "wallet": {
          "walletId": "wal-uuid",
          "accountId": "acc-uuid",
          "networkId": "net-uuid",
          "network": "ethereum",
          "address": "0x37937c09c7454b1d4ff8fb7657cfd84418168036",
          "addressType": "evm",
          "account": {
            "id": "acc-uuid",
            "appId": "app-uuid",
            "subId": "user-123",
            "mpcSubId": "mpc-sub-id",
            "status": "active",
            "poolType": "organization_owned"
          }
        }
      },
      {
        "id": "44f5465c-e1b4-4128-aa88-728290a9dea6",
        "transactionHash": "0x79ed73ec782a3a01050885b37a7261873369448e6d863be23664f96a40f305fb",
        "createdAt": "2026-01-14T08:30:00Z",
        "type": "non_invoice",
        "symbol": "USDT",
        "network": "ethereum",
        "networkId": "net-uuid",
        "tokenId": "tok-uuid",
        "amount": 25.5,
        "status": "paid",
        "wallet": {
          "walletId": "wal-uuid-2",
          "accountId": "acc-uuid-2",
          "networkId": "net-uuid",
          "network": "ethereum",
          "address": "0xabc...",
          "addressType": "evm"
        }
      }
    ],
    "total": 2,
    "page": 1,
    "limit": 20
  }
}

List envelope

FieldTypeDescription
itemsarrayDeposit rows for this page
totalnumberTotal matching rows (before pagination)
pagenumberCurrent page
limitnumberPage size used

Item fields

FieldTypeDescription
idstringRow id (invoice id for type: invoice, or token-transfer / deposit id for non_invoice)
referencestring | omittedYour external reference when set (typical for invoices)
transactionHashstringOn-chain transaction hash when known; may be empty for unpaid / unpaid-yet invoices
createdAtstring (RFC3339)When the row was created
typestringinvoice or non_invoice
symbolstringToken display symbol (e.g. USDT)
networkstringNetwork code (e.g. ethereum, polygon-pos)
networkIdstringNetwork UUID
tokenIdstringAllowed token UUID
amountnumberAmount in human-readable token units
statusstringLifecycle status (see below)
invoiceIdstring | omittedInvoice UUID when this row is invoice-related
walletobject | omittedDeposit wallet details when available

Status values

StatusTypical meaning
pendingAwaiting payment or confirmations
paidCredited / paid (also accepts filter alias success)
failedPayment or matching failed
expiredInvoice past expiry without payment
cancelledInvoice cancelled

Exact status sets can differ slightly between invoice vs non-invoice rows; use the status and type filters together when you need a narrow slice.

Nested wallet object (when present)

FieldTypeDescription
walletIdstringDeposit wallet UUID
accountIdstringParent account UUID
networkIdstringNetwork UUID
networkstringNetwork code
addressstringOn-chain deposit address
addressTypestringAddress family (e.g. evm) — may be omitted
accountobject | omittedParent account summary when loaded

Nested wallet.account (when present)

FieldTypeDescription
idstringAccount UUID
appIdstringApp UUID
subIdstringYour external account identifier
mpcSubIdstringMPC-side sub id
statusstringAccount status (e.g. active)
poolTypestringdedicated or organization_owned

Errors

CodeTypical errorWhen
400invalid type; use invoice or non_invoiceBad type
400invalid status; use paid, pending, failed, expired, or cancelledBad status
400invalid startDate; use RFC3339 or YYYY-MM-DDBad startDate
400invalid endDate; use RFC3339 or YYYY-MM-DDBad endDate
400startDate must not be after endDateDate range inverted