Skip to content

Status Codes ​

OOLIN retains detailed processing states internally and exposes a simplified customer-facing status where applicable.

Withdrawal customer status (user_status) ​

The table below describes withdrawal user_status. Detailed withdrawal status uses separate values such as REQUESTED, HOT_STAGE, and HOT_FAILED; do not treat the two fields as the same enum.

StatusMeaningTerminal
PENDINGAccepted, awaiting confirmation or inspectionNo
PROCESSINGApproval, signing, or blockchain executionNo
COMPLETEDSuccessfully finalizedYes
FAILEDProcessing failedYes
REJECTEDRejected by policy or operationYes
CANCELLEDCancelled before completionYes

Internal transfers normally complete synchronously but must still be confirmed through transaction detail. External withdrawals can pass through multiple processing states and are successful only with completed statuses and a valid transaction hash.

Deposits remain pending until required confirmation and policy processing completes. Cursor discovery does not replay later status changes; poll non-final records by ID.

For withdrawals, persist both raw status and user_status for diagnostics and reconciliation rather than translating the value destructively in storage.

Deposit detail status (status) ​

Deposit lists and details return status rather than user_status. Interpret external deposit states as follows.

statusHandling
PENDING, INSPECTED, APPROVE_PENDING, APPROVED, VERIFIEDConfirmation, inspection, approval, or verification. Continue detail polling without marking the deposit complete.
REFUND_REQUIRED, REFUND_REQUESTED, REFUND_PENDINGRefund required or in progress. Maintain operational follow-up and status tracking without crediting a successful deposit.
COMPLETEDDeposit complete. Use this to confirm a successful customer deposit.
REFUNDEDEnded by refund. Do not treat it as a successful customer deposit.
FAILEDProcessing failed. Do not treat it as a successful customer deposit.

Internal deposit queries show PENDING or COMPLETED. Confirm an individual payment through the original internal withdrawal's detail. The current contract always returns null for refund_withdrawal_id; do not assume it provides a refund withdrawal ID. See the API Reference for field-level contracts.

Transition handling ​

Store the previous and new status with observed time. Trigger customer notifications and irreversible business effects only from a validated transition, and make the handler idempotent so the same response can be processed twice.

An unexpectedly old status can be a delayed read or replica observation; do not roll a terminal business state backward automatically. A contradiction after a terminal state requires investigation with resource and request IDs.

Use localized labels only at presentation time. Monitoring, storage, and reconciliation must use the stable enum value.

OOLIN is a digital asset operations infrastructure product by BPMG.