Receiving deposits
Top up your workspace balance by receiving crypto to a permanent deposit address.
Fund your workspace balance directly by receiving crypto to a deposit address. Each address is permanent and reusable — receive to it as many times as you like, and every incoming transfer credits your workspace balance for the coin that was sent.
Before you start: both calls need the balances:read scope (Authentication).
These addresses top up your own workspace — to collect a specific amount from a customer, use a
payment link or invoice instead (those mint per-order addresses and settle as
payments).
Supported networks
List the networks (and their coins) you can deposit on:
const { chains } = await ap.deposits.chains();
// [{ chain: "ETH", … }, { chain: "TRX", … }]chains = ap.deposits.chains()
# { "chains": [{ "chain": "ETH", … }, { "chain": "TRX", … }] }chains, err := ap.Deposits.Chains(ctx)
if err != nil {
log.Fatal(err)
}
fmt.Println(chains)curl https://api.absolutepay.io/v1/deposits/chains \
-H "Authorization: Bearer $APP_TOKEN" $(sign GET /v1/deposits/chains "")Get a deposit address
Create (or fetch) the address for a network. Show it to the sender — or render it as a QR code — and funds land on your balance once the transfer confirms.
const address = await ap.deposits.createAddress({ chain: "ETH" });
// { chain: "ETH", address: "0x…" }address = ap.deposits.create_address(chain="ETH")
# { "chain": "ETH", "address": "0x…" }address, err := ap.Deposits.CreateAddress(ctx, "ETH")
if err != nil {
log.Fatal(err)
}
fmt.Println(address)BODY='{"chain":"ETH"}'
curl https://api.absolutepay.io/v1/deposits/address \
-H "Authorization: Bearer $APP_TOKEN" -H "Content-Type: application/json" \
$(sign POST /v1/deposits/address "$BODY") -d "$BODY"Addresses are permanent — reuse them
The address returned for a network is permanent and reusable, so store it once instead of creating a new one per top-up. Calling create again for the same network returns the same address.
Confirm the funds arrived
Deposits credit your balance once the on-chain transfer confirms. Verify by reading your
balances (GET /v1/balances) or by finding the credit in your settled
deposit history (GET /v1/deposits · ap.deposits.list()).
Gotchas
- Match asset to network. Only send assets supported on that chain (check
deposits.chains()) — a transfer to the right address on the wrong network is irrecoverable. Crypto transfers can't be reversed. - Any supported coin credits the matching balance — the address isn't bound to one asset; the credited balance follows whatever coin was sent.
- In the sandbox, no real chain exists — deposits are simulated, so test the read path
(
chains→createAddress→ balances) rather than waiting for on-chain confirmations.
Next
- Balances & reconciliation — see credited funds and reconcile.
- Send payouts — move the balance back out to a crypto address.
- Payment links & invoices — per-order deposit addresses for customer payments.
- API reference — full fields on the deposit endpoints.