Transfer Funds Between Spend Accounts

Move money between two of your own Fluz spend accounts — withdrawing from a source spend account and depositing into a destination spend account in a single operation, using the transferInternalBalance mutation.

📘

This transfers between your own spend accounts.

A spend account is a cash balance account (the UserCashBalance type). This mutation moves funds from one of your spend accounts to another. To send funds to a different Fluz user, use Create Wallet Transfer to Another Fluz Account instead.


Transfer Funds Between Spend Accounts

To move funds from one spend account to another, use the transferInternalBalance mutation. It takes a TransferInternalBalanceInput input object identifying the source spend account, the destination spend account, and the amount.

TransferInternalBalanceInput

FieldTypeRequiredDescription
amountFloat!YesThe amount to transfer from the source spend account to the destination spend account.
idempotencyKeyString!YesA unique client-generated string to ensure idempotent request processing. If the same key is submitted multiple times, only the first request is processed.
sourceUserCashBalanceIdUUID!YesThe spend account to withdraw funds from.
destinationUserCashBalanceIdUUID!YesThe spend account to deposit funds into.
💡

Both IDs must be your own spend accounts.

Use Get Spend Accounts to look up the userCashBalanceId for each spend account. The source and destination must be two different spend accounts, and the source must have enough available balance to cover the transfer.

Sample RequestaphQL

mutation transferInternalBalance($input: TransferInternalBalanceInput!) {
  transferInternalBalance(input: $input) {
    cashBalanceDeposit {
      cashBalanceDepositId
      depositDisplayId
      depositAmount
      depositFee
      bankAccountId
      transactionDate
      clearedDate
      status
      expectedClearedDate
      cashBalanceDepositType
      cashBalanceSettlements {
        cashBalanceSettlementId
        cashBalanceDepositId
        availabilityType
        status
      }
    }
    withdraw {
      withdrawId
      amount
      processingFee
      chargedFee
      status
      displayStatus
      withdrawSource
      submissionDate
      createdAt
      updatedAt
      transactionLogId
      externalTransactionId
      payoutId
      emailAddress
      bankAccountId
      userCashBalanceId
      seatId
    }
  }
}

Example Inputhis example, $6.00 moves from the source spend account into the destination spend account.

JSON

{
  "idempotencyKey": "1f1df3e7-5d43-4e3d-83de-31922d4aefb7",
  "amount": 6.00,
  "sourceUserCashBalanceId": "6d1b4b19-deef-42f5-80d7-ec34804ce090",
  "destinationUserCashBalanceId": "bb584e49-d030-4a6e-a5a9-1c34368cbaed"
}

Sample Response


Understanding the Responsenal transfer is recorded as two linked movements: a withdraw from the source spend account and a deposit into the destination spend account. The response returns both.

Field NameTypeDescription
cashBalanceDepositCashBalanceDepositThe deposit made into the destination spend account.
withdrawWithdrawThe withdrawal taken from the source spend account.

cashBalanceDepositlanceDeposit object contains details about the deposit into the destination spend account.

Field NameTypeDescription
cashBalanceDepositIdUUID!Unique identifier for the cash balance deposit.
depositDisplayIdString!Display identifier for the deposit, intended for user-facing purposes.
depositAmountString!The amount of the deposit.
depositFeeStringFee associated with the deposit, if applicable.
bankCardIdUUIDIdentifier of the bank card used for the deposit.
bankAccountIdUUIDIdentifier of the bank account used for the deposit.
paypalVaultIdUUIDIdentifier of the PayPal vault used for the deposit.
transactionDateDateTime!Date and time when the transaction was made.
clearedDateDateTimeDate and time when the deposit cleared, if applicable.
statusCashBalanceDepositStatus!Current status of the deposit.
expectedClearedDateDateTime!Expected date and time for the deposit to clear.
cashBalanceDepositTypeCashBalanceDepositType!Type of the cash balance deposit, including CASH_BALANCE, GIFT_CARD_PREPAYMENT, RESERVE_BALANCE.
cashBalanceSettlements[CashBalanceSettlement]Settlement time details for the deposit, including status and type.

withdraw object contains details about the withdrawal from the source spend account.

Field NameTypeDescription
withdrawIdUUID!Unique identifier for the withdrawal.
amountString!The amount withdrawn.
processingFeeString!Fee charged for processing the withdrawal.
chargedFeeString!Fee charged to the user for the withdrawal.
statusString!Internal status of the withdrawal.
displayStatusString!User-friendly display status of the withdrawal.
withdrawSourceWithdrawSource!The source balance from which funds were withdrawn.
submissionDateDateTime!Date and time when the withdrawal was submitted.
createdAtDateTime!Date and time when the withdrawal was created.
updatedAtDateTime!Date and time when the withdrawal was last updated.
transactionLogIdUUIDIdentifier of the associated transaction log.
externalTransactionIdStringExternal transaction identifier from payment gateway (for ACH).
payoutIdStringPayout identifier from payment gateway (for PayPal/Venmo).
emailAddressStringEmail address associated with the withdrawal.
bankAccountIdUUIDIdentifier of the bank account used (if applicable).
userCashBalanceIdUUIDIdentifier of the source spend account funds were withdrawn from.
seatIdUUIDThe seat identifier associated with the account.
❗️

Authorization required

This mutation requires the MAKE_INTERNAL_TRANSFER scope. Ensure your access token has been granted this scope before attempting an internal transfer between spend accounts.



Did this page help you?