NordStern Docs
Reference

Transaction Statuses

Complete guide to transaction lifecycles, states, and transition mappings.

Transaction Lifecycle States

Transactions on the NordStern platform transition through a series of status states as funds clear in the banking rails and on-chain. Understanding these states helps developers track API events and helps operator staff monitor payments.


1. Customer Deposit Flow (On-Ramp)

The table below maps the transaction status states for a customer deposit (INR to digital assets):

API StatusDashboard LabelWhat it meansNext Transition
awaiting_paymentAwaiting PaymentThe customer has created a deposit transaction, and the UPI QR code or intent has been generated. The system is waiting for checkout payment.payment_received or expired
payment_receivedPayment CapturedThe payment gateway has confirmed capture of the INR funds from the customer's bank.processing
processingMinting AssetThe anchor business server is preparing and signing the transaction to send the digital asset (e.g. USDC) to the user's wallet.completing
completingConfirming On-ChainThe transaction has been submitted to the blockchain network and is waiting for ledger consensus validation.completed or failed
completedCompletedThe transaction succeeded. The digital asset is cleared in the customer's wallet address.Terminal State
failedFailedThe transaction failed (e.g., payment was declined by the bank or the blockchain transaction failed).Terminal State
expiredExpiredThe customer did not complete payment before the transaction quote time-to-live (TTL) expired.Terminal State

2. Customer Withdrawal Flow (Off-Ramp)

The table below maps the transaction status states for a customer withdrawal (digital assets to INR):

API StatusDashboard LabelWhat it meansNext Transition
pending_user_transferAwaiting AssetThe customer has initiated a withdrawal. The system is waiting for them to submit the digital asset transfer from their wallet with the correct memo.transfer_received or expired
transfer_receivedAsset ReceivedThe blockchain network has confirmed that the user sent the digital assets to the anchor's treasury account.processing
processingProcessing PayoutThe system has detected the assets and is calling the payout gateway to trigger a bank transfer (IMPS/UPI) to the user's bank account.completed or failed
completedCompletedThe payout gateway has confirmed successful credit of INR funds in the customer's bank account.Terminal State
failedFailedThe payout failed (e.g., wrong bank details or invalid IFSC code). The operator must manually review and retry or refund.Terminal State

3. Transaction State Transitions

stateDiagram-v2
    [*] --> awaiting_payment : Deposit Started
    awaiting_payment --> payment_received : Payment Webhook Received
    awaiting_payment --> expired : Quote TTL Expires
    payment_received --> processing : Initiate Mint
    processing --> completing : Transaction Submitted
    completing --> completed : On-Chain Confirmation
    completing --> failed : Network Rejection

    [*] --> pending_user_transfer : Withdrawal Started
    pending_user_transfer --> transfer_received : Observer Detects On-Chain Payment
    pending_user_transfer --> expired : User Fails to Send
    transfer_received --> processing : Trigger Payout API
    processing --> completed : Bank Confirms Credit
    processing --> failed : Bank Rejects Payout

On this page