Skip to main content
An internal transfer moves money between two account numbers held at Lead without leaving the bank. You name the sending and receiving account numbers, and Lead debits the core balance behind one and credits the core balance behind the other. Transfers post within seconds. An internal transfer moves money between core balances only. Use it to move funds between your program’s own accounts, such as from an operating account to a settlement account.

Which account numbers an internal transfer can use

The table lists which pairs of account numbers a transfer can use. Lead sets whether a core balance can send internal transfers at onboarding.

How internal transfers relate to the rest of the model

An internal transfer connects to these objects:
  • Account numbers. Both ends of a transfer are account numbers you reference by ID. Both must be active. See Account Numbers.
  • Core balances. Lead resolves the core balance behind each account number. The transfer returns them as sender_core_balance_id and receiver_core_balance_id.
  • Core transactions. A posted transfer creates two core transactions, a debit on the sender’s balance and a credit on the receiver’s. The transfer returns them as sender_core_transaction_id and receiver_core_transaction_id. Look a transfer up by either one with the core_transaction_id list filter. See Core Transactions.
  • User deposit balances. Not reachable by internal transfer. Report movement on a user deposit balance as a user deposit transaction.

What you can do

You can use these endpoints:
  • POST /v2/internal_transfers: Create a transfer. Requires an Idempotency-Key header. Returns the transfer in processing.
  • GET /v2/internal_transfers/{internal_transfer_id}: Retrieve a transfer.
  • GET /v2/internal_transfers: List transfers. Filter by sender_account_number_id, receiver_account_number_id, core_transaction_id, status, or created_at.
See Idempotency.

Authentication

The endpoints use these scopes:
  • internal_transfer/read_write for create. Also grants read access.
  • internal_transfer/read for the GET endpoints only.

What you can’t do

These actions aren’t available:
  • Cancel a transfer. After Lead accepts it, it moves to posted or rejected.
  • Move money into or out of a user deposit balance. The request returns an error. Use a user deposit transaction.
  • Transfer between two account numbers on the same core account. The request returns an error.
  • Update a transfer. There is no PATCH endpoint.
  • Reference an account_id. It isn’t accepted on requests, returned on responses, or available as a filter.

In this section

These are the pages in this section: