Stripe and Connect basics
You'll find this guide more helpful if you understand a little about Stripe and the Stripe Connect product. Stripe provides everything a business needs for internet commerce. This includes accepting online payments, but also functionality for paying sellers, fighting fraud, and more.
To accept payments, your application uses Stripe's technology to securely collect and send payment information to Stripe. Stripe then processes the payment information and passes it to the appropriate payment networks (e.g., credit card or ACH). Information sent between your company's application and Stripe uses the same protocols as web traffic, so this communication is standardized and safe.
Stripe Connect is a full-stack solution for using Stripe’s capabilities on behalf of others. This means your platform can send requests on behalf of other Stripe accounts (your users) that are connected to your platform. This functionality allows your platform to create charges, issue refunds, and pay sellers. This is an important concept because connected accounts often have questions about these topics.
Accessing and using the Stripe Dashboard
To assist your connected accounts, you need to have access to your platform's Dashboard so you can view information about payouts, charges, and more. Your connected accounts have their own Dashboards as well, which you can access from your platform's Dashboard. This is useful when assisting connected accounts because you can view the same information they see.
Stripe Dashboard reading list
Stripe Dashboard to-do list
The payment flow begins when your application collects payment information from a customer. This is most often credit card information, but Stripe supports other payment methods, too. This guide focuses on credit card payments, so some information might not apply to you. You can check with your engineering team or sales representative to find out more about the payment methods you accept.
Payment information is collected using either Checkout or a form built with
Stripe Elements. In either case, after the payment information is collected,
it's sent to Stripe. Stripe stores the information and generates an opaque ID that represents the payment information.
This is called tokenization. Each opaque ID is a unique value that includes a string of randomized characters
pm_131sV23sd). This ID, along with other payment information, is sent back to your application's server.
Using this ID, your application can then make an API request to Stripe to create a charge, or can store the information so that it can be used for future payments. Whether payment information is stored or not, Stripe keeps a record of payment activity for every Stripe account.
While most charges end in successful payments, it's possible for charges to be declined, refunded, or disputed. The following sections describe these flows in more detail, and how to manage them.
Stripe submits refund requests to the customer's bank or card issuer immediately. Generally, it takes 5–10 business days for the bank to process the refund and display it on the customer's statement. If a refund occurs within minutes of the original charge, Stripe treats the refund as a reversal instead. This means no credit is issued for the refund and the original payment is removed from the customer's bank statement, usually within one to two days. Because the reversal process is faster and the payment is removed, customers might never see the payment on their bank statement.
Refund time limit
Refunds should be submitted within 60 days. The longer you wait, the more time customers have to change credit card information, close accounts, lose their credit cards, etc. All of these events can cause refunds to fail. At most, Stripe recommends submitting refunds within 60 days. This isn't a hard requirement, but we generally see issues with refunds submitted after that.
If you need to submit a refund after 60 days, you can use the API to create a refund. Before submitting, contact your customer, and confirm that their original payment information is the same. If the refund needs to be issued to a different card or account than the customer used on the original charge, read about refund destinations.
Refunds reading list
Refunds to-do list
- Know how to issue a refund using the Dashboard
- Know how to respond to a dispute
Failed payments are usually caused by card issuers declining payments, or by Stripe's fraud prevention tooling. The Understanding Declines and Failed Payments guide explains why payments fail, and actions you can take to prevent failures.
Declines reading list
Declines to-do list
A dispute (also known as a chargeback) occurs when a cardholder questions your payment with their card issuer. Stripe automatically notifies you when a dispute is filed, so make sure team members that handle disputes have the email notification for disputes setting enabled. You can also have your engineering team build a webhook endpoint using the charge.disputed.created event. This triggers when a dispute is created, but you can also listen for changes to disputes after they're created (e.g., when they're updated or when funds are withdrawn). Stripe recommends that you respond to disputes in the Dashboard, but you can also use the API.
Disputes reading list
Disputes to-do list
Most issues around payouts arise when funds aren’t deposited by the time connected accounts expect them to be. To help resolve these issues, it helps to understand what payouts are, and when automatic payouts occur. For your connected accounts, payouts are funds in their Stripe balance that Stripe deposits into their bank account. Each payout consists of a set of transactions (charges, refunds, etc.).
Automatic payouts are batched daily from midnight to midnight (UTC time), and are paid out in aggregate total (a single deposit is made that contains the sum of all the transactions). Your connected accounts receive their first payout 7–10 days after processing their first charges on Stripe. In the U.S., subsequent payouts are made daily, and include the credit and debit card payments that were processed two business days prior. For example, payments on August 1st are deposited by August 3rd, and payments on August 2nd are deposited by August 4th.
ACH charges follow a different flow than credit and debit charges. Successful ACH charges are reflected in your connected account's Stripe balance 7 days after the charge is created. After that, the funds are available for automatic or manual payouts to your bank account. To learn more about ACH payments, see our support page.
When connected accounts report payout issues, work with them to verify:
- That it's not their first payout. If it is their first payout, they might be expecting it too soon, because the first payout takes 7–10 days.
- The scheduled payout date. Make sure the date isn't on a weekend or a bank holiday. Bank holidays in one country might affect payouts to banks in another country.
- The payout wasn't returned by the recipient’s bank. When Stripe is notified of a returned payout, we immediately update the status in the Dashboard and include the reason.
- The user hasn’t accidentally switched to manual payouts in their account settings.
- Stripe hasn't sent them an email requesting information.
If you can't resolve the issue after following these steps, contact our support team for assistance. When you do, please provide:
- Documentation (e.g., a voided check or a screenshot of a bank statement) that includes the account and routing number(s) the funds were expeceted to be deposited in.
- The connected account's email address or account token (account tokens start with
- The payout's token (payout tokens start with
py_and can be found in the Dashboard).