When the same person or company is on both sides of a transfer, we call that a self-to-self transfer. Some examples of self-to-self transfers include:
A company transferring funds between accounts at two separate banks
A contractor moving money from their Moov wallet to their bank account
A platform adding funds from their bank account to their Moov wallet
In this guide, we’ll be covering the flow for creating a self-to-self transfer. We’ll use an example where you’re performing a transfer from your wallet to your bank account. For the purposes of this guide, we’ll assume that you’ve created a Moov account and gotten your API keys. For more detailed instructions, see our quick start guide.
Start by creating your Moov account. Request the send-funds capability for the account. You will need to submit specific data about the user to Moov for verification before the capability is enabled. See our capabilities guide for a list of required information.
mc,_:=moov.NewClient()mc.CreateAccount(ctx,moov.CreateAccount{Type:moov.AccountType_Business,Profile:moov.CreateProfile{Business:&moov.CreateBusinessProfile{Name:"Whole Body Fitness LLC",Type:moov.BusinessType_Llc,},},RequestedCapabilities:[]moov.CapabilityName{moov.CapabilityName_SendFunds,},ForeignID:"your-correlation-id",})
First, get a list of the available payment methods from the generate transfer options POSTendpoint. Specify your account ID as both the source and the destination. You will get a list that includes all the payment methods you can use to make a self-to-self transfer. The payment method for the source of the transfer will be moov-wallet, while the payment method for the destination will be ach-credit-standard or ach-credit-same-day.
Once you’ve selected your payment methods, you can initiate a transfer from your bank account to your wallet, using the payment method IDs you got earlier in the transfer options request.