portfolio

Intra Account Transfer

Changed on

Transfers funds within the same account.

Subaccount-restricted API keys can only transfer between event_contract exchange indices, with source_subaccount and destination_subaccount both set to the key's subaccount.

When source_exchange_shard and destination_exchange_shard are the same, Kalshi treats the request as a subaccount transfer. The returned transfer ID appears in the subaccount transfer history.

Cross-exchange-index subaccount transfers run in up to three non-atomic steps. If a later step fails, completed steps are not undone, so funds may remain in the primary account on the source or destination exchange index.

post/portfolio/intra_exchange_instance_transfer

Request

  • Base URL
    https://external-api.kalshi.com/trade-api/v2
  • URL
    https://external-api.kalshi.com/trade-api/v2/portfolio/intra_exchange_instance_transfer
  • 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

client_transfer_idstring uuid

Client ID for duplicate prevention. Reuse only to retry the same request: if a transfer from the same source exchange instance and shard was already accepted with this ID, the request returns 409 and creates no new transfer. The returned transfer_id is always generated by Kalshi. Only supported for primary accounts. Transfers involving numbered subaccounts reject this field. If omitted, each request creates a new transfer.

source'event_contract' | 'margined' required

The exchange instance type

destination'event_contract' | 'margined' required

The exchange instance type

amountinteger required

The amount to transfer in centicents

source_exchange_shardinteger

Source exchange shard index (default 0)

destination_exchange_shardinteger

Destination exchange shard index (default 0)

source_subaccountinteger

Source subaccount number (default 0 for the primary account). Only supported for event contract to event contract transfers.

destination_subaccountinteger

Destination subaccount number (default 0 for the primary account). Only supported for event contract to event contract transfers.

Response

Transfer request accepted. The transfer is processed asynchronously.

transfer_idstring required

The ID of the transfer that was created

Changes