createTransfer mutation. Unlike an internal transfer — which moves money between two of your own spend accounts — an account to account transfer sends money to a different Fluz account: one of your users, your application, or between two of your users.
Every transfer is a two-step flow: first identify the recipient, then create the transfer.
Not the same as an internal transfer.To move money between your own spend accounts, use Transfer Funds Internally instead. Account to account transfers are for moving funds to a separate Fluz account.
The Three Transfer Directions
The samecreateTransfer mutation supports three directions. Which one you’re performing is determined by your authentication method and whether you provide a destination.
Step 1 — Look Up the Recipient
Before sending, resolve the recipient into anaccountId using the lookup queries (both require the QUERY_RECIPIENT scope):
lookupUser— find an individual by phone number (E.164 format) or email.lookupBusiness— find a business by company name (case-insensitive exact match; searches both the registered name and DBA).
accountId — or assigned them an externalReferenceId when you created them — you can skip the lookup and pass that identifier directly in Step 2.
See Wallet Transfer Recipient Lookup for inputs, responses, and error codes.
Step 2 — Create the Transfer
Send the funds with thecreateTransfer mutation. At a minimum you provide an idempotencyKey and an amount; the destination and funding source depend on the direction.
- Identify the recipient by
accountIdor by theexternalReferenceIdyou assigned — provide one, not both. Optionally target a specificuserCashBalanceIdon the recipient’s account. - Fund the transfer from the sender’s cash balance by default, or (Bearer token only) from a linked
bankCardId,bankAccountId, orpaypalVaultId. Only one funding source per request. - Annotate the transfer with an optional
memo,transactionCategory, orattachmentId.
MAKE_PAYOUT_TRANSFER_SEND scope.
See Transfer to Another Fluz Account for the full input reference, examples for each direction, and error handling.
Idempotency
Every transfer must include a unique, client-generatedidempotencyKey. If the same key is submitted more than once, the API returns the result of the original request instead of creating a duplicate transfer. Keys are valid for 10 minutes.
Requirements at a Glance
Want to learn more? Speak with our experts for more info or to request a demo.