Internal Bank Transfers
Internal bank transfers use the same API as other outward transfers: POST /v1/transfer-session (see Send Money to Contact). The difference is which contacts and funding sources you wire up.
Funding source pairing (SELF and virtual account)
Set payerFundingSourceGid and fundingSourceGid so they resolve through contacts whose types include SELF and VIRTUAL_ACCOUNT, in line with your program:
- Both sides may use
SELFcontacts, or - One side
SELFand the otherVIRTUAL_ACCOUNT.
Use the contact and funding-source APIs in Manage Contacts to create or verify the right GIDs before you initiate the session.
Virtual account balances
To show balances alongside internal movement, use Get Virtual Accounts—each virtual account in the list includes balance and alert threshold fields.
What this guide does not cover
- Multi-transfer batching stays under Send Money to Contact—it is not specific to internal rails.
Error handling reminder
Inspect TransferSession.status on success responses; some issuer workflows return HTTP 200 with a declined session—see the API reference description on Initiate Transfer Session.