---
title: "Intra Account Transfer"
method: POST
path: "/portfolio/intra_exchange_instance_transfer"
tags: ["portfolio"]
---

# Intra Account Transfer

`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`

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.

## Request body

- IntraExchangeInstanceTransferRequest
  - `client_transfer_id` string, 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
  - `amount` integer, required: The amount to transfer in centicents
  - `source_exchange_shard` integer: Source exchange shard index (default 0)
  - `destination_exchange_shard` integer: Destination exchange shard index (default 0)
  - `source_subaccount` integer: Source subaccount number (default 0 for the primary account). Only supported for event contract to event contract transfers.
  - `destination_subaccount` integer: Destination subaccount number (default 0 for the primary account). Only supported for event contract to event contract transfers.

## Response `200`

Transfer request accepted. The transfer is processed asynchronously.

- IntraExchangeInstanceTransferResponse
  - `transfer_id` string, required: The ID of the transfer that was created

## Other responses

- `400`: Bad request - invalid input
- `401`: Unauthorized - authentication required
- `403`: Forbidden - insufficient permissions
- `409`: Conflict - resource already exists or cannot be modified
- `500`: Internal server error

## Changes

- **2026-10-19** `25f07afd9c09`: 1 info
  - added the non-success response with the status `409`
- **2026-10-09** `091f171718a0`: 1 info
  - added the new optional request property `client_transfer_id`
- **2026-08-18** `bd2f42622930`: 2 info
  - added the new optional request property `destination_subaccount`
  - added the new optional request property `source_subaccount`
- **2026-08-06** `9df78ad479a1`: 4 warning
  - the `destination_exchange_shard` request property's max was set to `100.00`
  - the `source_exchange_shard` request property's max was set to `100.00`
  - the `destination_exchange_shard` request property's min was set to `0.00`
  - the `source_exchange_shard` request property's min was set to `0.00`
- **2026-07-31** `a07481be8bf9`: 4 warning
  - removed the optional property `service` from the response with the `400` status
  - removed the optional property `service` from the response with the `401` status
  - removed the optional property `service` from the response with the `403` status
  - removed the optional property `service` from the response with the `500` status

[Operation history](https://skmtc.dev/kalshi/apis/kalshi-trade-api-manual-endpoints/changes/portfolio/intra_exchange_instance_transfer/post.md)

---

[API](https://skmtc.dev/kalshi/apis/kalshi-trade-api-manual-endpoints.md) - [All operations](https://skmtc.dev/kalshi/apis/kalshi-trade-api-manual-endpoints/llms.txt) - [OpenAPI document](https://skmtc.dev/kalshi/apis/kalshi-trade-api-manual-endpoints/revisions/e6691cdd1915?raw)
