Earlier this year, we had the opportunity to reconsider the payment processor we use at Scripted. The shift to our new membership model meant that billing logic needed to change anyway. Previously, we had an in-house accounting solution combined with an amalgamation of services for our other billing needs. It was complicated and needed consistent maintenance; plus, only a few engineers knew how all the pieces fit together. After some research, we decided to transition over to Stripe.
The most common use case for Stripe is to provide an easy way to collect payment. We collect money from businesses for our content, but we also need to pay our writers and editors. Stripe Connect allows us to do that. When setting up Connect, you choose either standalone accounts or managed accounts. Standalone accounts are normal Stripe accounts set up by the account owner, whereas managed accounts are set up and controlled entirely by you without any visibility to the owner. We ended up using managed accounts and thought we would share some of the advantages and disadvantages of that decision.
Managed accounts: The good parts
Managed accounts come with several benefits. First and foremost, with managed accounts, we have total control over the payment experience for our writers. They never have to leave Scripted or set up an account on another website to receive payment. The majority of the time, writers just put in their information and bank account directly on Scripted, and they are ready to go right away. This also means that our writers only have one channel of support, so they don’t need to figure out who to contact when they encounter a problem. We can even proactively monitor their accounts and reach out to them if we notice anything they might need help with before they contact us.
On the engineering side, managed accounts do require more work but have the advantage of completely avoiding the integration with Stripe’s OAuth flow. That could be an entirely smooth process, but with managed accounts, we didn’t have to interact with that part of the API at all.
And the not-so-good parts
Managed accounts also come with some downsides. With managed accounts, we take on the risk of potentially fraudulent writers — Stripe doesn’t provide any protection. Because our writers are vetted thoroughly and businesses can reject any unsatisfactory work, this isn’t much of a problem for us. Fraudulent writers are almost nonexistent in our marketplace and don’t present a large risk to us. Standalone accounts would make more sense in a marketplace that is susceptible to fraudulent vendors.
The biggest challenge with managed accounts is that we are responsible for collecting the information Stripe needs to verify our users. Of course, this additional verification step means handling sensitive information. Luckily, Stripe stores all this information in its databases, and the most sensitive data, such as SSNs, EINs, and bank account numbers, can be sent directly to Stripe without ever touching our servers.
The information required to verify an individual is different for every country, and when we first set up Connect, there was very little documentation on the verification process, which made it difficult to implement. For example, we didn’t know how to correctly pass Canadian provinces to Stripe until we received an error message informing us that they could only be certain two letter codes. It looks like Stripe’s documentation has come a long way since we built our integration a few months ago, but managed accounts are still in beta, so you may encounter some hurdles in the API.
For us, having a seamless experience for our writers is the most important factor, so managed accounts make the most sense. Managed accounts come with that power of controlling the experience, but in return, we had to build more infrastructure to get our writers set up to receive payments. At this point, the API is still immature enough that unless you really want that controlled experience, standalone accounts may be the right choice. Stripe has a good track record of supporting and improving their APIs, so hopefully managed accounts will become easier to work with soon.