Skip to main content

Status Lifecycles

PayChain exposes statuses so your system can decide what to do next. Build your integration around lifecycle states, not raw transaction observations alone.
Fulfillment rule: Fulfill customer orders from confirmed invoice state, not from raw balance changes or unverified transaction history.

Invoice statuses

StatusMeaningTypical action
pendingInvoice has been created and is waiting for payment.Show payment instructions.
confirmingPayment has been observed and is waiting for required settlement confirmation.Wait. Do not fulfill yet.
paidInvoice is fully settled.Fulfill the order after webhook verification and canonical fetch.
overpaidMore than the requested amount was settled.Fulfill according to your policy; reconcile the excess.
underpaidLess than the requested amount was settled.Wait for completion or follow your underpayment policy.
failedInvoice is no longer valid or was rejected.Do not fulfill.
expiredInvoice expired before settlement.Ask customer to create or request a new invoice.
cancelledInvoice was cancelled.Do not accept it for fulfillment.
Confirmation progress: When an invoice is confirming, invoice detail responses include confirmationProgress so your UI can show current confirmations, required confirmations, remaining confirmations, progress percent, and transaction hash.

Withdrawal statuses

StatusMeaningTypical action
quotedA quote was generated but no withdrawal has been created.Confirm terms before creating.
queuedWithdrawal is accepted and waiting for processing.Show pending state.
processingPayChain is preparing or submitting the transfer.Wait for final state.
broadcastedTransaction has been submitted to the network.Track hash if available.
completedWithdrawal completed.Mark payout as complete.
failedWithdrawal failed.Review failure reason and retry only when safe.
cancelledWithdrawal was cancelled before completion.Do not retry automatically without operator intent.
gas_blockedSponsored outbound operation is waiting for gas credits.Top up gas credits or wait for operator action.

Payout routing statuses

StatusMeaning
pendingInvoice has routing instructions but settlement has not triggered routing yet.
processingPayChain is creating withdrawal legs.
completedAll routing legs completed.
failedRouting setup failed or all created legs failed.
cancelledRouting was cancelled before execution.

Gas-blocked state

Gas-blocked means PayChain can see the payment or operation, but an eligible sponsored outbound action is paused because gas credits are insufficient. Inbound payment detection does not stop when gas credits run out. Sponsored outbound actions may pause, including:
  • Automatic settlement.
  • Sponsored withdrawals.
  • Payout route withdrawal legs.
  • Dynamic payout recipient withdrawal legs.
  • Contract execution where PayChain sponsors network cost.

Status handling rules

  • Treat unknown statuses as non-final.
  • Make fulfillment idempotent.
  • Store PayChain IDs and your own order references together.
  • Fetch the resource after webhook verification.
  • Do not assume a transaction hash alone means the invoice is payable or fulfilled.