Skip to content

Deposit Flow ​

A deposit receives externally sent assets into an OOLIN account balance. Address allocation, transfer discovery, and completed credit are different points in the process. A customer wallet confirms completion through deposit detail status.

Deposit Addresses explains destination information, allocation, and retrieval before sending funds. This page covers processing after assets are sent to that destination.

External deposit stages ​

text
Select the customer account, asset, and network
  → provide the deposit address and required memo
  → customer sends funds externally
  → discover the deposit record
  → track confirmation and processing
  → confirm COMPLETED and query the balance/ledger
StageWhat to verifyMeaning for the wallet
Prepare destinationAccount, supported asset/network, address/memoProvide deposit instructions
External transferSend the selected asset on the selected networkSending alone does not prove wallet credit
Discover depositdeposit_id, type, amount, statusDisplay the record and start tracking
ProcessingConfirmation, approval, verification statesDeposit is not yet complete
Completionstatus: COMPLETED, confirmed_atConfirm successful receipt
Verify recordsBalance and DEPOSIT / CREDIT ledger entryCheck credited funds and reconcile

Confirmations indicate how firmly the blockchain has established a transfer. Processing time depends on the network and deposit policy; elapsed time alone does not confirm completion.

A 100 USDT customer deposit ​

Assume the customer's initial USDT balance is zero and they send 100 USDT to the correct destination.

  • Once discovered, display the 100 USDT deposit with its processing state.
  • Track that deposit_id while it is non-final and wait for successful funding.
  • At COMPLETED, query the USDT balance and related deposit ledger entry.
  • Without concurrent activity, the completed deposit increases the balance by 100 USDT.

An explorer observation or tx_hash does not prove account credit completed. If your service applies order or reward effects after deposit completion, make repeated processing of the same completion response idempotent.

Discovery and status tracking ​

Deposit lists find new records; detail queries retrieve later states of already discovered deposits.

PurposeAPIPersist
Discover external depositsGET /deposits?account_id={account_id}&type=EXTERNAL&after_id={cursor}deposit_id and list next_cursor
Track an existing depositGET /deposits/{deposit_id}?type=EXTERNALLast state and records requiring another check

An ID cursor does not replay later status changes. Keep polling a processing deposit by detail even after the discovery cursor advances. Persist items and the cursor, then resume discovery from the stored checkpoint after a restart.

External and internal deposits can use different ID ranges. Distinguish (type, deposit_id) and maintain separate cursors. Do not use tx_hash alone to identify every deposit record.

Success, processing, and refund states ​

Deposit APIs provide detail status without user_status.

StateYour service's behavior
PENDING, INSPECTED, APPROVE_PENDING, APPROVED, VERIFIEDContinue detail polling without marking success
REFUND_REQUIRED, REFUND_REQUESTED, REFUND_PENDINGTrack refund progress and operational follow-up without successful funding
COMPLETEDConfirm receipt and reconcile balance/ledger
REFUNDED, FAILEDRecord an unsuccessful final outcome

A completed refund differs from successful wallet credit. Use deposit IDs and states when requesting support; do not independently adjust balances. See Status Codes for the full contract.

Funds received from another account ​

An internal transfer increases the recipient account's balance without an external blockchain transfer. General account transfers and customer-to-merchant payments can both receive funds this way.

Query internal deposits with type=INTERNAL; they display PENDING or COMPLETED. The ledger records INTERNAL_IN / CREDIT linked to the original internal withdrawal reference. Confirm an individual transfer/payment through the original withdrawal detail.

Persistence and restart recovery ​

Persist deposit type/ID, account, asset, network, raw amount/decimals, status, tx_hash, confirmed_at, and last-check time. Maintain discovery cursors separately from non-final deposits to recover both tasks after a restart.

Follow Issue a Deposit Address and Check a Deposit for examples. Balances and Ledger explains the records after credit.

OOLIN is a digital asset operations infrastructure product by BPMG.