Skip to main content
Fiat checkouts and exchange connections share the same normalized provider-order lifecycle. A completed provider order means Swapped sent crypto on-chain; it does not necessarily mean the deposit reached the account’s final target.

Order lifecycle

Orders move through a normalized lifecycle: Each transition fires an onramp-order webhook carrying the normalized status, Swapped’s rawStatus, the fiat receipt, and — once completed — the on-chain transactionId.

Poll the latest order

You can also poll the account’s latest order:
Polling reflects the account’s most recent order and returns { ok: false, reason: "no_order" } before the first order update arrives. Full schema: GET /onramp/swapped/status/{smartAccount}. Once the order completes, either funding method hands off to the regular pipeline: transactionId reappears as the transactionHash on the deposit-received event, followed by the usual bridge events. Card and Apple Pay orders typically complete within minutes; bank transfers can take days. Exchange timing depends on the provider flow. Orders stay trackable for 7 days.

Processing caveats

  • Session coverage — on-ramp purchases land on Base, so the account’s session set must include Base. The default registration flow covers every supported chain; if you restrict sessionChainIds, include Base or landed funds can’t be bridged.
  • Deposit whitelist — if you restrict accepted deposits, allow USDC on Base above your minimum. Otherwise every on-ramp purchase is rejected with deposit-rejected.
  • Same-chain target — when the account’s target is USDC on Base paid to the account itself, the purchase is already at its destination: no bridge events fire, and onramp-order with status: "completed" is your terminal signal.
  • KYC and limits — identity verification and purchase limits are handled by Swapped inside the hosted UI.