Margin call
What CLC does when a margin warning goes uncured, and what your side sees while it happens.
On escalation, CLC instructs the custodian to sell the entire collateral portfolio at a CLC-assigned venue. You only observe via webhooks and read execution records, and never instruct the sell.
Scope facility:read
Prerequisites: A margin warning escalated, or a documented default
1. Margin call started (CLC-internal)
CLC-internal, delivered to your webhook endpoint. CLC decides when to sell and assigns the venue; the custodian only executes. A margin call always sells the whole portfolio — there is no partial sale.
← margin_call.started (CLC posts this to your webhook URL){
"type": "margin_call.started",
"data": {
"facility_id": "fac_7a1b",
"number": 2,
"reason": "hard_floor_breach",
"instructions": [
{
"operation": "swap",
"output_asset": "USD",
"expected_output_amount": "20000.00"
},
{
"operation": "transfer",
"source": "borrower",
"destination": "clc",
"amount": "20000.00",
"asset": "USD"
}
]
}
}Executing the instructions
Two steps, in this order: swap the holdings into USD, then transfer the proceeds. Do not start the transfer until the swap has settled.
CLC does not say which holdings to sell. The swap names an output_asset and an expected_output_amount, and choosing the inputs is yours — you are the one who knows the account and the venues you can reach.
This is best effort
expected_output_amount is what CLC expects at the prices it saw. You execute against the prices that exist, and on a sharp move those differ.
If the swap yields less, transfer what you got. A swap for 20,000 USD that fills at 19,000 means you transfer 19,000. Do not hold it back waiting to make up the difference, and do not top it up from somewhere else.
The margin call is then incomplete: 1,000 remains owed and the facility says so. That is a state CLC can see and act on — a second margin call, or a repayment from the borrower. A broker that waits for the full amount before transferring anything turns a partial recovery into no recovery, which is worse for the borrower as well as for CLC.
2. Margin call completed (CLC-internal)
CLC-internal, delivered to your webhook endpoint.
← margin_call.completed (CLC posts this to your webhook URL){
"type": "margin_call.completed",
"data": {
"facility_id": "fac_7a1b",
"number": 2,
"outcome": "re_floored | payoff | shortfall",
"gross_proceeds_usd": "20000.00",
"fee_bps": 150,
"fee_usd": "300.00",
"net_applied_usd": "19700.00"
}
}3. Fetch a margin call
facility_id + number is the key. number is the margin call's position on that facility, from 1, so the pair addresses exactly one record and reads the same in a URL as it does out loud — "the second margin call on fac_7a1b".
Everything the webhook carried, including instructions, can be read back:
curl -X GET https://api.clc.solutions/v1/facilities/fac_7a1b/margin-calls/2 \
-H "X-CLC-Key-Id: $CLC_KEY_ID" \
-H "X-CLC-Timestamp: $CLC_TIMESTAMP" \
-H "X-CLC-Signature: $CLC_SIGNATURE"{
"facility_id": "fac_7a1b",
"number": 2,
"status": "EXECUTING",
"reason": "hard_floor_breach",
"instructions": [
{
"operation": "swap",
"output_asset": "USD",
"expected_output_amount": "20000.00"
},
{
"operation": "transfer",
"source": "borrower",
"destination": "clc",
"amount": "20000.00",
"asset": "USD"
}
],
"started_at": "2026-07-22T11:02:14Z"
}This is what makes the webhook non-critical. A delivery that was missed, arrived twice, arrived out of order, or was dropped by a proxy does not strand you: the instruction set is readable here at any point. Treat the webhook as the signal that something happened and this endpoint as the source of truth for what to do about it.
It also means you never have to persist an instruction set you have not executed yet. If your process restarts mid-sequence, fetch the margin call again and carry on.
Tell CLC you executed it
CLC learns the collateral moved from the portfolio you push, but a movement on its own is ambiguous: a draw CLC instructed, a repayment CLC instructed and the borrower depositing on their own all look identical in a portfolio diff. One report per entity resolves it — CLC does not track which holdings you sold to raise the money, only what arrived.
curl -X POST https://api.clc.solutions/v1/facilities/fac_7a1b/margin-calls/2/execution \\
-H "X-CLC-Key-Id: $CLC_KEY_ID" \\
-H "X-CLC-Timestamp: $CLC_TIMESTAMP" \\
-H "X-CLC-Signature: $CLC_SIGNATURE" \\
-H "Idempotency-Key: $(uuidgen)" \\
-d '{
"status": "completed",
"delivered": {
"amount": "19000.00",
"asset": "USD"
},
"reference": "0xbb41d902"
}'One report for the whole set, once the last instruction has settled. CLC validates it against its own receipts and the portfolio you push, so this is a report to reconcile rather than a figure taken on trust.
{
"execution_id": "exe_5b1d",
"recorded_at": "2026-07-22T11:04:33Z",
"margin_call": {
"facility_id": "fac_7a1b",
"number": 2,
"status": "COMPLETED",
"gross_proceeds_usd": "19000.00"
}
}Keep execution_id. It is CLC's handle for this report — the raw figures exactly as they arrived — and it is what a reconciliation or a support thread quotes to point at this one.
A short recovery is just the real number. If the swap yielded 19,000 against an expected_output_amount of 20,000, you transfer the 19,000 and report "status": "completed" with "delivered": {"amount": "19000.00", "asset": "USD"} — completed because you did execute the set, and 19,000 because that is what arrived.
There is no partial to send. CLC knows it instructed 20,000 and reads that 19,000 arrived, so it does that arithmetic itself: the margin_call in the response comes back short, with the remaining 1,000 still owed. Your job is the amount; the judgement is CLC's. Rounding delivered up to the instructed figure is the one thing that turns a reconcilable shortfall into a silent one.
4. The margin call penalty
Executing a margin call costs the borrower 1.5% of the total proceeds — the whole portfolio is sold, so the fee is on all of it. That is the fee_bps: 150 above. It comes out of the proceeds before anything reaches the loan:
gross_proceeds_usd 20,000.00 what the collateral sold for
fee_usd 300.00 1.5% penalty, charged to the borrower
----------
net_applied_usd 19,700.00 the only part that pays down the loanSo a margin call reduces the balance by less than it sold. If the sale was already short of the outstanding balance, the penalty widens the shortfall rather than being waived, and the borrower still owes the difference.
5. Read margin call execution records
Execution records evidence commercial reasonableness under UCC Section 9-627.
curl -X GET https://api.clc.solutions/v1/facilities/fac_7a1b/margin-calls \
-H "X-CLC-Key-Id: $CLC_KEY_ID" \
-H "X-CLC-Timestamp: $CLC_TIMESTAMP" \
-H "X-CLC-Signature: $CLC_SIGNATURE"{
"margin_calls": [
{
"number": 2,
"status": "COMPLETED",
"reason": "hard_floor_breach",
"fee_bps": 150,
"gross_proceeds_usd": "20000.00",
"fee_usd": "300.00",
"net_applied_usd": "19700.00",
"execution_records": [
{
"asset": "BTC",
"quantity_filled": "0.31",
"execution_price": "64516.13",
"venue": "venue-a",
"execution_timestamp": "2026-07-22T11:04:31Z"
}
]
}
]
}Updated about 2 months ago