Skip to main content
While a stream is 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”).
When a withdrawal exhausts the deposited balance, the stream transitions to COMPLETED and a stream.completed webhook fires; otherwise a stream.withdrawn webhook fires. Both include reference, receiverSCA, amountWithdrawn, totalStreamed, txHash, and an explorerUrl.
Only the stream’s receiver may withdraw, and the caller must control the receiverSCA wallet. On-chain confirmation can take up to ~75 seconds — the route waits for confirmation before returning, so do not retry in parallel during that window.