fcm
Create FCM Position Transfer
Changed onEndpoint for FCM members to move a position in one market from one of their subtraders into a subtrader under their FCM's error account.
This endpoint must be enabled for your FCM by Kalshi. Kalshi enables it by configuring the error account that receives transferred positions and gives you that account's user id, which prefixes target_subtrader_id. Contact Kalshi to enable it; until then, requests return 400.
- The destination is always your FCM's error account. target_subtrader_id picks the subtrader under it, which is created on first use.
- Each request moves one market for one source subtrader. To move many positions, send one request per subtrader and market.
- The transfer is booked like a trade at price_centicents, which is always the YES price, even when moving NO. No fee is charged and no fill is created. For YES, the error account pays the price per contract; for NO, it pays $1 minus the price per contract. The FCM receives the same amount. Use 0 for YES or 10000 for NO to move no cash. These amounts assume the source holds the side being moved and the target subtrader holds no opposite position in that market; otherwise the positions net like a trade and the balance changes differ.
- The source's current position is not checked. A request for more than the source holds, or with the opposite sign, flips or grows the source's position.
- Requests are not idempotent. After a timeout or 5xx, check the position before retrying.
- The market must be open, neither account may be blocked, and the error account must have enough available balance on the market's exchange index to pay for the transfer. Otherwise the request returns 409.
Example: moving YES. A customer subtrader holds 10 YES contracts. Send position_centicount 1000 and price_centicents 4500 (YES at 45 cents):
- The customer subtrader goes from 10 YES to 0, and the error account subtrader from 0 to 10 YES.
- The error account pays 10 x $0.45 = $4.50 and the FCM receives $4.50.
- Sending price_centicents 0 instead moves the position with no cash.
Example: moving NO. A customer subtrader holds 5 NO contracts. Send position_centicount -500 and price_centicents 7000 (YES at 70 cents, so NO at 30 cents):
- The customer subtrader goes from 5 NO to 0, and the error account subtrader from 0 to 5 NO.
- The error account pays 5 x $0.30 = $1.50 and the FCM receives $1.50.
- Sending price_centicents 10000 instead moves the position with no cash. Sending 0 makes the error account pay the full $1 per contract ($5.00).
post/fcm/positions/transfers
Request
- Base URL: https://external-api.kalshi.com/trade-api/v2
- URL: https://external-api.kalshi.com/trade-api/v2/fcm/positions/transfers
- Auth: API key in header KALSHI-ACCESS-KEY and API key in header KALSHI-ACCESS-SIGNATURE and API key in header KALSHI-ACCESS-TIMESTAMP
Request body
Response
Position transferred
Changes
- info
endpoint added
- info