Statuses

The status is the state of an entity, the webhook event type is the reason for the notification. Final statuses do not change.

Invoice

StatusFinalMeaning
pendingnoThe invoice is created and awaits payment.
confirmingnoPayment received, confirmations are not complete yet.
underpaidnoLess than the required amount was received.
successyesThe invoice is paid.
expiredyesThe invoice has expired.
cancelledyesThe invoice is cancelled.

Deposit

StatusFinalMeaning
pendingnoThe deposit is detected but not confirmed yet.
confirmedyesThe deposit is confirmed.
reorgedyesA blockchain reorganization happened.
failedyesDeposit processing failed.
  • deposit.detected — the deposit is detected.
  • deposit.confirmed — the deposit reached the required confirmations.
  • deposit.reorged — a blockchain reorganization happened.
  • deposit.failed — deposit processing failed.

For confirmed, the deposit state is final in terms of confirmation.

Withdrawal

StatusFinalEventMeaning
requestednopayout.requestedThe withdrawal is created and awaits processing.
awaiting_liquidityno—Waiting for funds on the sender wallet or resources to pay the network fee.
queuednopayout.queuedThe withdrawal is queued.
processingno—Signing, preparing or sending is in progress.
broadcast_unknownno—The broadcast result is unknown, for example due to an RPC error. This is not a failure and not a reason to create a second withdrawal.
broadcastednopayout.broadcastedThe transaction is broadcast.
confirmedyespayout.confirmedThe transaction is confirmed.
failedyespayout.failedThe withdrawal failed.
cancelledyespayout.cancelledThe withdrawal is cancelled.

Using statuses

When handling webhooks, look at status, eventType, isFinal and revision together. isFinal: true means the state is final. If several events arrive for one object, never replace a newer state with an older one.