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 a token that represents the payment information.
This is called tokenization. Each token is a unique value that starts with
tok_ and includes a string of randomized characters (e.g.,
tok_213A48c12). This token, along with any
other information, is sent back to your application's server.
Using the token, 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 requests can’t be canceled after Stripe receives them. The only way to reclaim a refunded amount is to create a new charge for the same value on the customer’s saved card. Refunds can be issued for any amount less than or equal to the original payment amount.
Refund time limit
Refunds should be submitted within 60 days. The longer you or your connected account waits, 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 or a connected account needs to submit a refund after 60 days, the create a refund API call can be used. 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 a payment with their card issuer. Your connected accounts can enable the email notification for disputes setting to be notified automatically of disputes. If you also wanted to be notified of disputes, your engineering team can 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).
Payouts reading list
There are several financial reports you can download as CSV files from the Stripe Dashboard. These include monthly reports, individual payout summaries, dispute information, and more. Most of these reports can be found on the following Stripe Dashboard pages:
- Monthly report
- Payouts summary (click on an individual payout to view a summary of it)
If you have access to it, you can also analyize your financial data with Stripe Sigma. Stripe Sigma is an interactive SQL environemnt you can use to create custom queries and reports.
Your connected accounts have access to these reporting tools as well. This includes their own monthly reports and the ability to download financial information as CSV files.