---
updatedAt: 2025-05-20T20:12:16.000Z
agentTools:
  projectIndex: https://dev.caxton.io/llms.txt
---

# Internal Transfers

# Overview

Internal transfers can be made back and forth between:

1. A Main Balance and a Pot.
2. Pots.
3. A Main Balance and a User Account or Sub-Account.

The following guide explains how the operations outlined above are carried out.

## 1. Transfer funds from the main balance to a new or existing Pot

1. Call [`POST - Move Funds between Pots`](https://dev.caxton.io/reference/accountbalanceapi_createcurrencypot).
2. Enter the `FromCurrency` . This is the pot to transfer funds from. For main GBP balance, enter 'GBP'.
3. Enter the `ToCurrency`. This is the pot to transfer funds to.
4. Enter the `amount`.  This is the amount to transfer from the main balance to the desired pot.

**REQUEST**

As shown below, a transfer is made from the main GBP balance in the account to the pot named 'POTBC-GBP' in the amount of 10 GBP.

```curl
curl --location 'https://caxapi-integration.azurewebsites.net/api/account/balances/third-party/movement' \
--header 'Content-Type: application/json' \
--header 'authorization: Bearer <access_token>' \
--header 'userapitoken: <userapitoken>' \
--data '{
"FromCurrency":"GBP",
"ToCurrency":"POTBC-GBP",
"Amount":"10"
}'
```

**RESPONSE**

As illustrated below, the main balance is shown first, followed by the pot balance the funds are transferred to, indicating the operation is carried out successfully:

```json
{
    "Content": {
        "Model": {
            "Balances": [
                {
                    "Balance": 1040.31,
                    "CcyCode": "GBP",
                    "BaseCcyCode": "GBP",
                    "AlphabeticCode": "GBP",
                    "Description": "British Pound Sterling",
                    "NumericCode": "826",
                    "Symbol": "£",
                    "ApiStatusCode": 100,
                    "ApiStatus": "IsValid",
                    "ApiStatusDescription": "Valid Operation"
                },
                {
                    "Balance": 30.00,
                    "CcyCode": "POTBC-GBP",
                    "BaseCcyCode": "GBP",
                    "FriendlyName": "userone",
                    "AlphabeticCode": "GBP",
                    "Description": "British Pound Sterling",
                    "NumericCode": "826",
                    "Symbol": "£",
                    "ApiStatusCode": 100,
                    "ApiStatus": "IsValid",
                    "ApiStatusDescription": "Valid Operation"
                }
            ],
            "ApiStatusCode": 100,
            "ApiStatus": "IsValid",
            "ApiStatusDescription": "Valid Operation"
        },
        "ExpectedResponses": [
            "IsValid"
        ]
    },
    "AuthorisedClientModel": {
        "ClientId": "<clientid>",
        "ClientRef": "<clientref>",
        "ApiStatusCode": 100,
        "ApiStatus": "IsValid",
        "ApiStatusDescription": "Valid Operation"
    },
    "AuthorisedUserModel": {
        "UserId": "<userid>",
        "AppVersion": null,
        "TokenStartDate": "2023-11-13T00:00:00",
        "TokenEndDate": "2023-12-13T00:00:00",
        "LoginTimestamp": "2023-12-01T20:45:14.7858085",
        "ApiLoginType": 0,
        "ApiStatusCode": 100,
        "ApiStatus": "IsValid",
        "ApiStatusDescription": "Valid Operation"
    }
}
```

## 2. Transfer funds from an existing Pot to a new or existing Pot

1. Using [`POST - Move Funds between Pots`](https://dev.caxton.io/reference/accountbalanceapi_createcurrencypot)
2. Enter the `FromCurrency` . This is the pot to transfer funds from.
3. Enter the `ToCurrency`. This is the pot to transfer funds to.
4. Enter the `amount`.  This is the amount to transfer, from one pot to another.

**REQUEST**

As shown below, a transfer from pot "POTBC-GBP" is being made to "IP-GBP" in the amount of 10 GBP.

```curl
curl --location 'https://caxapi-integration.azurewebsites.net/api/account/balances/third-party/movement' \
--header 'Content-Type: application/json' \
--header 'authorization: Bearer <access_token>' \
--header 'userapitoken: <userapitoken>' \
--data '{
"FromCurrency":"POTBC-GBP",
"ToCurrency":"IP-GBP",
"Amount":"10"
}'
```

**RESPONSE**

A successful response is shown below:

```json
{
    "Content": {
        "Model": {
            "Balances": [
                {
                    "Balance": 20.00,
                    "CcyCode": "POTBC-GBP",
                    "BaseCcyCode": "GBP",
                    "FriendlyName": "userone",
                    "AlphabeticCode": "GBP",
                    "Description": "British Pound Sterling",
                    "NumericCode": "826",
                    "Symbol": "£",
                    "ApiStatusCode": 100,
                    "ApiStatus": "IsValid",
                    "ApiStatusDescription": "Valid Operation"
                },
                {
                    "Balance": 1924.55,
                    "CcyCode": "IP-GBP",
                    "BaseCcyCode": "GBP",
                    "AlphabeticCode": "GBP",
                    "Description": "British Pound Sterling",
                    "NumericCode": "826",
                    "Symbol": "£",
                    "ApiStatusCode": 100,
                    "ApiStatus": "IsValid",
                    "ApiStatusDescription": "Valid Operation"
                }
            ],
            "ApiStatusCode": 100,
            "ApiStatus": "IsValid",
            "ApiStatusDescription": "Valid Operation"
        },
        "ExpectedResponses": [
            "IsValid"
        ]
    },
    "AuthorisedClientModel": {
        "ClientId": "<clientid>",
        "ClientRef": "<clientref>",
        "ApiStatusCode": 100,
        "ApiStatus": "IsValid",
        "ApiStatusDescription": "Valid Operation"
    },
    "AuthorisedUserModel": {
        "UserId": "<userid>",
        "AppVersion": null,
        "TokenStartDate": "2023-11-13T00:00:00",
        "TokenEndDate": "2023-12-13T00:00:00",
        "LoginTimestamp": "2023-12-01T20:45:14.7858085",
        "ApiLoginType": 0,
        "ApiStatusCode": 100,
        "ApiStatus": "IsValid",
        "ApiStatusDescription": "Valid Operation"
    }
}
```

## 3. Transfer funds to a User Account or Sub-Account

Currency balance transfers between accounts are made via the [`POST - Transfer funds to an account`](https://dev.caxton.io/reference/accountbalanceapi_initiatethirdpartycurrencybalancetransfer) endpoint. The following information must be entered:

1. `UserID`. This is the account to transfer funds to. Can be a User account or Sub-Account.
2. `SendAmount`. The amount to send to the recipient.
3. `SendCurrency`. The currency balance from where the funds are debited.

**REQUEST**

As shown below, we are making a transfer to the User `johndoe@company.com` in the amount of 10 GBP, and the amount is being deducted from the Main GBP balance.

```curl
curl --location 'https://caxapi-integration.azurewebsites.net/api/account/balances/third-party/transfer' \
--header 'Content-Type: application/json' \
--header 'authorization: Bearer <access_token>' \
--header 'userapitoken: <userapitoken>' \
--data-raw '{
"UserID":"johndoe@company.com",
"SendAmount":"10",
"SendCurrency":"GBP"
}'
```

**RESPONSE**

```json
{
    "Content": {
        "Model": {
            "ApiStatusCode": 100,
            "ApiStatus": "IsValid",
            "ApiStatusDescription": "Valid Operation"
        },
        "ExpectedResponses": [
            "IsValid"
        ]
    },
    "AuthorisedClientModel": {
        "ClientId": "<clientid>",
        "ClientRef": "<clientref>",
        "ApiStatusCode": 100,
        "ApiStatus": "IsValid",
        "ApiStatusDescription": "Valid Operation"
    },
    "AuthorisedUserModel": {
        "UserId": "<userid>",
        "AppVersion": null,
        "TokenStartDate": "2023-11-13T00:00:00",
        "TokenEndDate": "2023-12-13T00:00:00",
        "LoginTimestamp": "2023-12-01T20:45:14.7858085",
        "ApiLoginType": 0,
        "ApiStatusCode": 100,
        "ApiStatus": "IsValid",
        "ApiStatusDescription": "Valid Operation"
    }
}
```