Architecture for fund transfer


(Gagan Shrestha) #1

We have an application where we need to pay our agents(customers) in weekly basis.

I created a customer account for each customers via api and created a funding_source for each of them.

I added a bank as funding source in my account.

There are four combination of fund transfer to customer.

  1. Dwolla balance to Customer Dwolla balance
  2. Dwolla balance to Customer funding-source
  3. Funding source to Customer Dwolla balance
  4. Funding source to Customer Dwolla balance

Transfer to Dwolla balance is only available if customer is created with type as ‘personal’ but not when created with type ‘receive_only’, why?

If we transfer the fund to Customer Dwolla Balance, how is that fund transferred to their actual bank account?

If we want to transfer the fund directly(instant transfer) to Customer bank account(funding source), how should it be done?


(Spencer Hunter) #2

Hi @ckgagan, thank you for your post – hopefully I can provide some clarity around your outstanding questions.

Based on what you’ve outlined so far, it sounds like you’re wanting to payout users to their attached bank account from your own bank account.

Once you have attached a bank account to your primary Dwolla account you can “pre-load” funds into your own Dwolla balance. This can be done via the Dwolla API(programmatically and automated) or through the Dwolla Dashboard.

What is the benefit of “pre-loading” your own Dwolla balance before initiating a transaction to another user or users?

By adding funds to your balance from an attached bank account, it speeds up the time it takes for the receiving user to receive their funds. There are two sides to every bank to bank transaction within the Dwolla network, an ACH debit and an ACH credit. By having funds available in your balance it essentially cuts out the transaction time for the ACH debit. Once funds are available in your own balance you can initiate transactions from that balance to other users bank accounts. That transaction time should take 1-2 business days depending on when the transaction is initiated.

The sequence of events will be:

  1. Dwolla bank to your own Dwolla balance (pre-funding balance) This can be done on an interval basis and programmatically initiated via the Dwolla API.

  2. Dwolla balance (your own) to Customer’s funding source (Bank Account)

Only CIP Verified Customers can hold a balance within the Dwolla network at this time. This is an account type that undergoes additional identity vetting on the Dwolla platform. For the purposes of your use case, the recommended Customer type would be a Receive-only Customer. This is a Customer type that only requires firstName, lastName, and email. A receive-only Customer cannot hold funds in the Dwolla network, therefore when a transfer is initiated to this Customer type then it will be automatically sent to an attached bank account.

Dwolla doesn’t offer the “instant” transfer of funds to Customers bank accounts since we primarily leverage the ACH network to send funds to users bank accounts. As referenced above, if you preload your own Dwolla account balance then your user’s can receive funds through standard ACH in 1-2 business days. Otherwise, as an alternative to standard ACH processing, you can speed up the transaction time for balance sourced transactions by leveraging Same-day ACH.

Hope this helps, please let us know if you have any follow up questions!