# Convert or Move Money Between Balances This endpoint allows conversion and movement of funds between balance accounts. Convert across balance accounts: Convert funds between two STANDARD balance accounts in different currencies. Requires a quote created with "payOut": "BALANCE". Move money between balances: - Add money to a same-currency jar (move from STANDARD to SAVINGS without conversion) - Add money to another-currency jar (convert money using a quote) - Withdraw money from a jar (move from SAVINGS to STANDARD without conversion) Either amount or quoteId is required. Use quoteId for cross-currency movements. Endpoint: POST /v2/profiles/{profileId}/balance-movements Security: UserToken, PersonalToken ## Path parameters: - `profileId` (integer, required) The profile ID. ## Header parameters: - `X-idempotence-uuid` (string, required) Unique identifier assigned by you. Used for idempotency check purposes. Should your call fail for technical reasons then you can use the same value again for making a retry call. ## Request fields (application/json): - `quoteId` (string) Quote ID. Required for cross-currency movements. Quote must be created with payOut: BALANCE. - `sourceBalanceId` (integer) Source balance ID. Required when moving between balances (with targetBalanceId). - `targetBalanceId` (integer) Target balance ID. Required when moving between balances (with sourceBalanceId). - `amount` (object) Amount to move. Required for same-currency movements. Either amount or quoteId must be provided. - `amount.value` (number) Amount value. - `amount.currency` (string) Currency code (ISO 4217 Alphabetic Code). ## Response 201 fields (application/json): - `id` (integer) Movement transaction ID. Example: 30000001 - `type` (string) Type of movement. Enum: "DEPOSIT", "WITHDRAWAL", "CONVERSION" - `state` (string) State of the movement. Enum: "PENDING", "COMPLETED", "CANCELLED", "REVERSED" - `balancesAfter` (array) Balance states after the movement. - `balancesAfter.id` (integer) Balance ID. Example: 1 - `balancesAfter.value` (number) Balance value after movement. Example: 10000594.71 - `balancesAfter.currency` (string) Currency code. Example: "GBP" - `creationTime` (string) When the movement was created. Example: "2017-11-21T09:55:49.275Z" - `sourceAmount` (object) Source amount of the movement. - `sourceAmount.value` (number) Example: 113.48 - `sourceAmount.currency` (string) Example: "EUR" - `targetAmount` (object) Target amount of the movement. - `rate` (number) Exchange rate applied to the conversion. Example: 0.88558 - `feeAmounts` (array) Fee amounts charged for the movement. - `steps` (array) Steps involved in the movement. - `steps.id` (integer) Step ID. Example: 369588 - `steps.type` (string) Step type. Example: "CONVERSION" - `steps.creationTime` (string) When the step was created. Example: "2017-11-21T09:55:49.276Z" - `steps.balancesAfter` (array) - `steps.sourceAmount` (object) - `steps.targetAmount` (object) - `steps.fee` (object) - `steps.rate` (number) Exchange rate applied. Example: 0.88558