Payments and Payouts
As you develop a storefront, one of the most important things to understand is how will you get paid when items are sold. How does money reach your account for sales made through your application? How will that money reach the Merchants you have integrated with? Violet gives you two ways to handle this:
1) Violet Payments – Violet gives you the ability to link a bank account and takes care of the rest. This is available out of the box and requires no extra effort to integrate.
2) External Payments – You leverage all of Violet's other APIs but handle all payment processing, including charging the customer and paying out the merchants yourself. This solution is intended for Channels who have a complete payment solution and are able to fully manage transactions between shoppers and merchants.
We'll walk you through the details of both payment flows below, along with what engineering effort is required to integrate.
With Violet Payments, all payment processing, including charging the customer, calculating the commission split for each party involved and paying out each party is handled by Violet. Violet also handles all logic to refund payments if there is a return. No extra engineering effort is required for you to use Violet Payments.
Charging the shopper
To charge the shopper, Violet lets you pass in customer billing information during the checkout process. Violet then uses Stripe's libraries to tokenize your customer payment data before charging the card. No credit card information is stored in Violet and the transaction is fully secure. If you are PCI Compliant, Violet also lets you send tokenized card data through our Checkout APIs.
Once Violet has this payment data, when an order is completed, Violet charges your customer and handles both payment to you as well as all the Merchants involved (since your application could sell products from multiple merchants). Payments are made directly into the bank account that you’ve connected to Violet. Our connection to this bank account is limited to deposits only. We cannot read any data from your account or perform withdrawals. Violet handles all of these transactions through Stripe. You can learn more about Stripe partnerships here.
Connecting Your Bank Account
To connect your bank account please login to your Violet account at my.violet.io. Once logged into click on the Settings icon in the far right hand corner. From the left menu select Payout and proceed as follows to connect your bank.
- Enter the Country for your Bank Account.
- Click "Manage on Stripe" to link a payout account and enter required information.
Violet will then show you the state of your connected account in the form of indicators, which you can use to determine whether or not an account is enabled.
Enabling an account
As part of Stripes Know Your Customer (KYC) policy we are required to provide any information about you or your company that Stripe requests. This information can be populated in the Payout Info section by clicking on "Manage on Stripe".
Your apps will continue to function in the event that Stripe determines they need more information before processing payouts to your account. Any commissions earned by your application will be credited to your connected account and will begin depositing into your bank account again once Stripe is satisfied with your information.
When an order facilitated by your application and is accepted and shipped by the merchant your commission will be credited to your account. On a 7 day rolling basis any commissions will be deposited into your bank account.
In the event that a customer returns the items they purchased within 30 days the transaction will be partially or fully refunded, depending on what portion of the order was returned. In this event the refunded amount will be retracted from all parties (the merchant, Violet, and the channel).
It is recommended that a minimum amount to cover recent orders is always left in the connected bank account to accommodate for returns. If a refund results in an insufficient funds error your account may be converted to a 30 day rolling payout basis to reduce the chances of this issue occuring again.
With External Payments, you are able to leverage Violet's Checkout capabilities while bypassing all order payment requirements. Hence, you no longer need to apply shopper payment methods to the cart. In this scenario though, Channels assume all responsibility for facilitating payments between shoppers and merchants.
To use External Payments with Violet, some engineering effort is required to subcribe to the ORDER_CANCELED, ORDER_REFUNDED, and ORDER_RETURNED webhooks, or the catchall ORDER_UPDATED webhook. This is to ensure that channels can facilitate a refund back to the shopper when necessary.
Additionally, Channels are fully responsible for their own payment stack and managing payment relationships with their merchants.
Checkout with External Payments
You can use our external payments solution by following the steps below:
- Please contact firstname.lastname@example.org to have your application approved for External Payments. Violet may require supporting evidence of your existing relationship with Merchants and current payment mechanisms before this is approved.
- Use all other checkout APIs out-of-the-box withough making the call to apply payment methods. Orders will process as expected.
Violet is always improving our payment capabilities and is in the process of supporting many other use-cases. If your use-case is not supported by the methods above or you would like to learn more about External Payments, please reach out to us at email@example.com.