The Deposit object
A deposit represents a single-use payment intent. When created, Aeses generates a fresh on-chain address derived from a hardened HD wallet. Funds sent to that address are detected via blockchain webhooks, confirmed against the network's threshold, and credited to the account's internal balance.
Deposits are address-bound to a single asset/chain pair — sending the wrong token to the address (e.g. USDT to a USDC deposit address) results in funds that require manual reconciliation.
Lifecycle
pending— address generated, no on-chain transaction seen.confirming— at least one confirmation observed, awaiting threshold.completed— confirmation threshold met, internal balance credited.underpaid/overpaid— completed but received amount differs fromexpected_amount.expired— 30-minute window elapsed without sufficient confirmations.
Attributes
Asset code the address accepts. Sending any other asset to the address will not credit the deposit.
Blockchain network. Examples: ethereum, bitcoin, solana, tron, polygon, base, arbitrum, bnb, optimism.
Expected amount as a decimal string. null when the merchant did not specify one.
Per-resource webhook URL, if any. Otherwise events go to the account-level endpoints.
Endpoints
POST /v1/deposits— generate a new deposit address.GET /v1/deposits/:id— retrieve a deposit.GET /v1/deposits— list deposits with filters.
Related events
deposit.created, deposit.confirming, deposit.completed, deposit.underpaid, deposit.overpaid, deposit.expired. See Webhook events.
{
"id": "dep_01HXYZ7M2P5RT4VG3K8AQWE9FN",
"object": "deposit",
"status": "completed",
"asset": "USDC",
"chain": "ethereum",
"deposit_address": "0x8f3a9c2bF7e1A4d62D8b9fF6E3c5a7E1d2B4c8A9",
"expected_amount": "99.50",
"received_amount": "99.50",
"tx_hash": "0xabc123def456...",
"confirmations": 12,
"expires_at": 1731600000,
"webhook_url": "https://example.com/webhooks/aeses",
"metadata": { "order_id": "ord_4421" },
"created_at": 1731598200
}