1
Pending
Created via
POST /payments. Tribridge returns the id and checkout_url. No chain activity yet — the customer hasn’t paid anything.What you do: store the payment id against your order and send the customer to checkout_url.2
Address generated
The customer opens checkout and selects a chain (
solana or sui). Tribridge derives a one-time deposit wallet and displays it with the exact amount.What you do: nothing — but you can show a “waiting for payment” state in your own UI.3
Confirmed
The on-chain transfer reaches finality. Tribridge detects it (Helius webhook on Solana, polling listener on Sui) and emits the
payment.confirmed webhook.What you do: mark the order as paid in your system. Only trust this after verifying the webhook signature.4
Completed (forwarded)
Funds are swept from the deposit wallet to your payout wallet (gas paid by Tribridge). The
payment.completed webhook fires and the customer is redirected to your redirect_url.What you do: fulfill the order. completed is the terminal success state.5
Expired / Cancelled
Terminal states. A payment expires if unpaid past its window (
expires_at), or is cancelled manually from the dashboard.What you do: release held stock / cancel the order. The deposit address is retired and will never be reused.
