ACTIVE, USDC accrues to the receiver at ratePerSecond for every elapsed second. This endpoint lets the receiver claim the accrued, not-yet-withdrawn balance on-chain. When the claimed amount brings totalStreamed up to totalDeposited, the stream transitions to COMPLETED and is stopped.
The route is strict about identity: the receiverSCA you pass must match the stream’s actual receiver, and the caller must prove they control that wallet (via the API key’s associated merchant wallet or the Circle-custodied receiver address).
The withdrawal is executed on-chain on Arc Mainnet. If the stream’s receiver is a merchant wallet, the route may require a signature approval (
pendingSignature) before the transfer completes.Endpoint
Request
Headers
Body Parameters
string
required
The stream reference (e.g.
"stream_n2p4q8_f3g7h1") returned by create stream.string
required
SCA wallet address of the stream’s receiver. Must exactly match the stream’s
receiverSCA, and the caller must control this wallet.Response
boolean
true when the withdrawal was submitted on-chain.object
The updated stream record.
string
On-chain transaction hash for the withdrawal.
string
Arc Explorer link —
https://explorer.arc.io/tx/{txHash}.number
USDC claimed in this withdrawal, calculated as
max(0, min(ratePerSecond * elapsedSeconds, totalDeposited) - totalStreamed).number
Cumulative USDC paid to the receiver after this withdrawal (mirrors
stream.totalStreamed).boolean
true when this withdrawal exhausted the deposited balance and the stream transitioned to COMPLETED.string
Human-readable confirmation, e.g.
"0.500000 USDC withdrawn from stream.".Examples
Success Response
Merchant Wallet — Pending Signature
Error Responses
Notes
The claimable amount is computed at call time as
min(ratePerSecond * elapsedSeconds, totalDeposited) - totalStreamed. If nothing has accrued beyond what was already streamed, the request fails with HTTP 400 (“No USDC available to withdraw yet”).
