Skip to main content
POST
Records proceeds from a partial sale of seized collateral and transfers them from the signing wallet into the liquidation router. Use it when a position is being sold down in tranches and you want proceeds banked as they arrive, rather than held off-platform until the final settlement. The endpoint is repeatable. Each call increases the router’s proceedsCollected. Once deposited, the proceeds can leave the router only through Settle Liquidation: the router’s emergency withdrawal refuses the borrow asset.
The signing wallet must be holding the proceeds. This call pulls the borrow asset from that wallet into the router, so fund it before broadcasting. An insufficient balance reverts on-chain.

Path Parameters

string
required
Liquidation ID on the market’s router.

Body Parameters

string
Names the market whose liquidation you mean. Every market runs its own liquidation router and IDs restart at 1 on each of them, so the same liquidationId can exist on several markets in one instance. Supply this when it does, otherwise the call is refused with AMBIGUOUS_LIQUIDATION_ID and the response lists the candidates. Also accepted as a query parameter. At most 100 characters.
string
required
Collateral disposed of in this tranche, as a decimal string in collateral token units, at most as many decimals as the collateral token has. Must be greater than zero. Required on the confirm call too.
string
required
Proceeds realised, as a decimal string in the market’s borrow asset, at most as many decimals as that asset has. Must be greater than zero. Required on the confirm call too.
string
Hash of the reportPartialSale transaction you broadcast, not of the approval. Send it with the same body to confirm the transaction and record the result. Omit it to receive the calldata. A value that is not 0x followed by 64 hex characters is refused with 400 VALIDATION_ERROR and nothing is built or recorded. null or an empty string counts as omitted.
The wallet that signs must hold OPERATOR_ROLE on the router. This endpoint checks the role against your instance’s primary verified wallet, since it takes no signer address. If that wallet lacks the role, the calldata is not returned: the response carries ROUTER_OPERATOR_ROLE_MISSING along with the calldata that grants it.

Response Fields

object
collateralSold is recorded in the on-chain event as an audit trail. It does not reduce collateralRemaining on the router, because the collateral left the router when you called Withdraw Collateral for Sale. Only that endpoint moves the balance.
Proceeds deposited here stay in the router until Settle Liquidation forwards the cumulative total to the market. Reporting partial sales alone never closes a liquidation, and the record stays PENDING.

Settle After Partial Sales

Once every unit of collateral has left the router and every tranche has been reported, call Settle Liquidation with usdcProceeds of "0". Settlement forwards the full proceedsCollected balance already sitting at the router, so a zero final payment is valid and expected in this flow. Settlement is refused with COLLATERAL_UNSOLD while any collateral is still on the router.

Error Codes

Confirming with txHash can also return any transaction verification error. A report that reverted on-chain is refused there with TX_REVERTED.