Depositing
This section of documentation discusses features principally used when DriveWealth’s Account Management product is enabled. Partners managing customers on their own won’t have these workflows available.
Depositing customer funds is the act of moving customer funds from its originating source into a DriveWealth brokerage account.
💵 Accepted Currencies
As of January 1, 2023, DriveWealth only accepts United States Dollars (USD) for deposits and withdrawals.
Deposit flow lifecycle
Deposits have a lifecycle in which they can inform a partner about the status of a particular deposit. To understand more about the deposit lifecycle flow see below:
Individual Deposits
Individual deposits refer to funds that will be transferred to DriveWealth for a single customer’s brokerage account. DriveWealth can accept many forms of funds:
Deposit type | API method type | Description |
---|---|---|
ACH (pull) | ACH | Automated Clearing House is an electronic funds transfer network that allows an integrator to facilitate the movement of funds. ACH is only available in the United States. |
ACH (push) | None | See above |
Wire (push) | None | Wire, also known internationally as a SWIFT transfer, is an international electronic funds transfer network; allowing the transfer of funds between international banks. SWIFT is available world wide. |
Paper check (push) | None | A check is a physical document (normally in paper form) that orders a bank to pay a specific amount of money from a person's account to the person in whose name the check has been issued. International personal checks are not accepted. International draft checks are accepted. |
Pulling funds to deposit
DriveWealth provides the ability to use its ACH rails in order to pull customer funds from any U.S. bank account. It is not a requirement to utilize DriveWealth’s ACH rails; a partner can use its own provider to push funds into a customer’s brokerage account. ACH push sends money, and ACH pull collects money.
Pulling funds starts with creating a Linked Bank Account, which stores the details of the customer’s third-party bank account:
POST /back-office/bank-accounts
{
"bankAccountNumber": "2329...",
"bankRoutingNumber": "1231...",
"userID": "abc-def-xyz",
"bankAccountNickname": "My Checking Account",
"bankAccountType": "CHECKING"
}
Response:
{
...
"id": "bank_d897...",
...
}
The ID of this Linked Bank Account can now be used to create a Deposit, which will automatically be processed:
POST /back-office/funding/deposits
{
"accountNo": "DWBG000052",
"amount": 250.50,
"currency": "USD",
"bankAccountID": "bank_d897...",
"type": "ACH"
}
Pushing funds to deposit
When pushing funds to DriveWealth, specific instructions regarding account destinations or addresses will be provided manually, which can be relayed to a customer.
Bulk Deposits
Bulk deposit is the act of aggregating different customer deposits to transfer to DriveWealth to fund individual customer brokerage Accounts. Bulking lowers costs of transfers and decreases chances of failures.
Is bulk right for your company?
Bulk deposits are right for you if your company or a third party provider (i.e. banking-as-a-service platform) have the ability to aggregate different customers’ deposits into a single account to be transferred to DriveWealth. Basically, if you or a third party provider can custody customer funds and transfer customer funds, bulk funding is likely right for you.
For example: John, JJ, Garrett & Marcus all make deposits of $100.00 each to their brokerage accounts. The next day DriveWealth would expect one transfer in the amount of $400.00. The one transfer would be split among their accounts per the deposit instructions below.
Bulk deposits are processed from 00:00:00.000 to 23:59:59.999 UTC for an aggregated bulk deposit. This means all bulk deposits that are submitted during these times will be included in the next bulk deposit settlement report.
The bulk deposit flow starts by indicating how much money will be transferred for each individual customer:
POST /back-office/funding/deposits
{
"accountNo": "DWBG000052",
"amount": 100.00,
"currency": "USD",
"type": "INSTANT_FUNDING"
}
This API will continue to be used throughout the rest of the day for more customers who wish to deposit funds. Each time this occurs, DriveWealth updates a Settlement object, which details how much money in total will be expected to settle all of these Deposits:
POST /back-office/funding/settlements/instant-funding/{settlementID}
{
"id": "2e901d48-dd17...",
"date": "2019-03-22",
"status": "PENDING",
"amounts": {
"total": 400.00,
"deposits": 100
},
...
}
The amount shown above is expected to arrive at DriveWealth on the date listed. This amount should be pushed to DriveWealth, typically via domestic or international wire transfer.
Pushing funds to Virtual Accounts
When pushing funds to DriveWealth, a Virtual Account provides a unique banking and routing number to direct funds into, to assist in the efficient processing and tracking of funds.
For bulk deposits, a static Virtual Account number will be provided to you prior to launch.
For individual deposits, each Account that is created has a unique Virtual Account automatically setup, which can be retrieved via the Retrieve Virtual Bank Account by Account API.
GET /back-office/accounts/{accountID}/funding/deposit-instructions
{
...
"wireDetails": {
"bankAccountNumber": "495...",
"bankName": "JPMorgan Chase Bank National Association",
"bankSwiftCode": "CHASUS33",
...
},
"achDetails": { ... },
"wireDomesticDetails": { ... },
...
}
Trading with money en route
Although customers may not have settled money in their brokerage Account, DriveWealth can still allow them to trade on funds in transit. This is often referred to as Instant Trading.
Instant Trading can be enabled by DriveWealth for all bulk Deposit methods, and for individual ACH (pull) Deposits.
Instant trading requires LPMA or margin accounts
In most cases, Instant Trading should only be used with Margin or LPMA accounts (see Enabling leverage). Why? Cash accounts are subject to Good Faith Violations. If a Cash account buys assets with funds that are in transit, then sells those assets before the funds arrive, they are subject to GFVs and can be subject to restriction or even closure.
With Instant Trading enabled, once the Create Deposit API is used, some cash values in the Account will change, and some will not. For example, if an Account has no money in it, and you create a $200 ACH
deposit, the following will show in the Retrieve money details by Account API:
GET /back-office/accounts/{accountID}/summary/money
{
"accountID": "cc07f91b-7ee1...",
"accountNo": "DWBG000052",
"tradingType": "CASH",
"updated": "2022-12-25T18:41:32.440Z",
"cash": {
"cashAvailableForTrade": 200.0,
"cashAvailableForWithdrawal": 0,
"cashBalance": 0,
"noBuyingPowerReason": [],
"cashSettlement": [],
"pendingPaymentsAmount": 200.0
},
"payments": {
"buyingPower": {
"pendingDepositsAmountAvailable": 200.0,
"pendingDepositsAmountNotAvailable": 0
},
"redemptions": {
"amountWithheldFromRedemptions": 0
}
}
}
As you can see, money is available instantly to trade with, but those funds are not yet available to withdraw. The withdrawable number will increase only after these funds physically arrive at DriveWealth. You’ll also know this process is complete as the Deposit we created will have moved to status SUCCESSFUL
.
Seasoning periods
The seasoning period is the time in days that must elapse before a Withdrawal can be made from deposited funds. The seasoning period includes deposited funds that were not invested and any purchases of securities that may have been sold and settled to the account.
Deposit Type | Default Seasoning Period |
---|---|
ACH | 30 days |
WIRE | Instant |
CHECK | 14 days |
These are the default seasoning periods which can be adjusted during your integration.
Cash Rewards
Rewards are a great way to invite and incentivize customers to partners app. DriveWealth enable partners to be able to deposit money directly to customer accounts via their Cash Promotion Account. This Cash Promotion Account is fully funded by the partner and is owned/managed by the partner.
For more details on buying power; see above for more details.
POST /back-office/funding/deposits
{
"accountNo": "DWBG000052",
"amount": 5.00,
"currency": "USD",
"type": "CASH_PROMOTION"
}
Updated about 1 year ago