When we first launched our investing APIs, we were hyper-aware of the happy path user journeys. How would we allow an engineer to complete a trade workflow in just a single API request? How could we provide all the necessary account calculations on demand?
As we scale and onboard many more millions of accounts, the unhappy paths become more common. One especially thorny operational requirement has been Cancel & Rebill.
What is Cancel & Rebill?
When something goes wrong with a trade, it’s not always simple to reverse. Let’s say an investor sold 5 shares of XYZ stock, but something went wrong. Maybe an API integration had a bug causing the order to take a while to get to DriveWealth, so the price per share the investor received was disadvantaged.
Just to undo this trade, we need to:
- Determine if the customer already spent or withdrew the cash from the sale
- Determine if the stock underwent any corporate action since the sale
- Buy shares back from the market
- Credit the shares to the customer’s account
- Debit the customer’s account the cash they received from the sale
- Debit the partner’s error account for any extra cost of re-acquiring the shares
- Adjust/reverse any commissions and fees that were charged to the customer
Now imagine being the operations employee responsible for all of these steps and having to complete them manually across every errored transaction!
When is this a problem?
There are a few major instances we wanted to solve for:
- Fraud. In the case of trades fraudulently placed in an account, we need to be able to back them out quickly and restore the account to a prior state.
- Manual inputs. Some brokers or advisors take orders over the phone or can input orders on behalf of a customer. When this happens, mistakes are inevitable, and every now and then a commission or other attribute could be entered incorrectly.
- Technology issues. Whether an issue on DriveWealth’s side or one of our partner’s, an outage or bug can require several trades to be rebilled. Of course, we all hope for this never to be needed!
The new Cancel & Rebill
Cancel & Rebill requests can now be entered on our dashboard:
For regulatory reasons, these requests do require an approval by DriveWealth’s operations staff. But, once viewed and accepted, all of the required ledgering is completed automatically.
You can also submit requests via the API. These requests land on the same screen for review, but can be integrated entirely within your infrastructure. This means if you are building out a process to automatically resolve events like account takeovers, you can request certain trades to be cleaned up directly from your system.
Regardless of how the request was entered, you can optionally subscribe to events that indicate the action taken and ledgering done.
The pattern we’ve developed for this feature is a great glimpse at how we’ll continue to modernize similar functions: send instructions over API/dashboard, manually approve if necessary, then automate the resulting actions.
The Partner Engineering team is incredibly passionate about making every operational workflow automated and ticket-less—not just for our internal teams, but for our partners’ staff too.