How to use Stripe Connect API outside the USA and Canada
By: Leo Kyrpychenko
Tags: Marketplaces, Payments, Stripe, Visibility, Software

Stripe Connect

Stripe Dashboard made during this Stripe Connect API research

TL;DR; Below you will find how to work with Stripe Connect to process payments in a Marketplace scenario for businesses based outside USA and Canada using custom accounts of Stripe Connect. The main goal here is to facilitate payment collection of both sides of a marketplace. In Australia ;)

Prep work: create a Stripe Connect account and verify it, so that it becomes active. Get the API key and store it securely. I will be using JavaScript (NodeJS) to quickly try the APIs. For this exploration, I haven’t built any UI.

Let’s create a custom connected Stripe account.

Afterwards, we need to accept terms and conditions.

We create a person who is the business owner of the account.

Then we update the account owner date of birthday to pass the personal verification.

Now we need to create a bank account and associate it with the custom Stripe account for future payouts.

OK, we are coming close to let the consumer pay for a service, so we need to create a customer who will pay for the service.

Now we are finally ready to charge a customer for the provided service. This charge is done via the platform (the platform is the settlement account) and afterwards the money can be transferred to the service provider.

You can find that our platform charges a fee of 2.99 AUD. To better understand the fee please check the image below.

However, if you want the money to go directly to the service provider’s connect account as a merchant settlement account, you can charge on behalf of the service provider.

The transaction may look like this in the Stripe Dashboard.

After all those charge the Service Provide has some money to withdraw.

If you want to control whether service providers get the money straight away you can switch the payout schedule to the manual mode.

And finally the service provider can get the earned money, so we initiate a transfer (which is a payout). However, let’s get a quick look at the available balances first.

If you get no money on the balance you will get the following error when you try to payout.

Insufficient funds in Stripe account. In test mode, you can add funds to your available balance (bypassing your pending balance) by creating a charge with 4000 0000 0000 0077 as the card number. You can use the /v1/balance endpoint to view your Stripe balance (for more details, see stripe.com/docs/api#balance)

You need to make a charge with this token tok_bypassPending. After your service provider got some available balance you can finally payout to associate default external payment instrument :)

if this operation is successful you should see the payout in the dashboard.

OK, it took me around 3 hours to try out everything and understand better how Stripe Connect works with the custom accounts (standard and express accounts are not fully available in Australia).

In conclusion

IMHO: Stripe Connect provides the best option today to quickly launch a marketplace to test a product idea. You may not want to use Stripe if your innovation based around payments, however, it is a good start and saves a lot of time and money.

If you have any comments or suggestions please write a response.