If you’ve worked with online payments before, you may have had relationships with gateways, merchant accounts, and possibly American Express. Stripe is a full-stack payments solution though, so you only need a relationship with Stripe to accept online payments. This guide covers three key areas of working with Stripe:
At the end of some sections are reading and to-do lists. Reading list items link to our product documentation and explain topics in more depth. You should read these to familiarize yourself with each topic. To-do lists are either actions items for you to complete, or workflows you need to know how to do.
Stripe account settings
Before learning about reconciliation and payments on Stripe, your Stripe account needs to be set up. If one of your team members already set up your account, you should still review and confirm the settings are correct.
Step 1: Give team members access to your Stripe account
Step 2: Fill out the public information form
The information provided in this form is shared with your customers. Make sure your statement descriptor is set, and can be clearly associated with your business. The statement descriptor is the default text that's displayed on customer card and bank statements to identify the source of charges and payouts. Banks display statement descriptions inconsistently, and some may not display them at all. Setting a statement descriptor is still recommended though because they reduce disputes. For Connect integrations, we also recommend using dynamic statement descriptors.
Step 3: Set email notifications
Step 4: Add or update your bank account
Check to see if your bank account is already added. If not, click the + Add bank account button to add your bank account.
Step 5: Configure CVC and AVS checks
Stripe account settings reading list
- Teams and User Roles
- Updating your public business information
- Receiving email notifications
- Traditional card checks
Stripe account settings to-do list
Payments on Stripe
Stripe is primarily used to accept online payments. Your engineering team most likely used Elements, Checkout, or our mobile SDKs to build your front-end checkout form. This means your customers enter payment details into your website or mobile application, and the information is sent to Stripe.
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
- Declines by card type (pre-paid, debit, etc.)
- Declines by card brand
- Declines by country
- Declines with charges that have missing information (without CVC numbers, without addresses, etc.)
- MCC Code, contact your sales representative to make sure the right MCC code is applied to your account.
- New Merchant Identification Number (MID), when you joined Stripe you began processing on a new MID. The combination of your business name and new MID can cause card issuing banks to consider you as a new merchant. If they do, they'll apply more stringent fraud filters on you for a short time, which results in a higher decline rate.
- Fields, make sure you're passing CVCs even if you aren't using the CVC check. Banks use CVCs for evaluation, so it helps to pass them. PCI rules don't allow processors to store CVCs, so they can't be migrated.
- Migrated Cards, migrated cards often see higher decline rates on the first charge. If you migrated from another processor, you can work with your engineering team to create prompts for customers with declined charges that gathers their full payment details (e.g., full card number, CVCs, etc.) again. This is strongly recommended if you supported subscriptions or recurring payments with your previous processor.
- Know where to look up decline codes
- Know how to reduce card issuer declines
- Know how to respond to a dispute
The Understanding Declines and Failed Payments guide explains why payments fail, and actions you can take to prevent them. If you experience a high decline rate when you first start processing with Stripe, there are a few things you can do to determine the cause.
Check your decline rate
Your decline rate is calculated by dividing the number of (unique) cards declined by the total number of cards. Even if a card is declined multiple times, you should only count it once. Decline rates can vary by industry, location, business model, customer base, etc. If you need help understanding your decline rate, contact support or your sales representative.
Look for trends
Use the Stripe Dashboard to analyze your data. Look for trends like:
Determine the cause for generic decline codes
If all your declines have a generic decline code, you should check your:
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
Reconciliation on Stripe
Reconciliation is an accounting process that verifies how fund flows affect your balance. The Stripe Dashboard has several features that support this process.
Before learning how to use the Stripe Dashboard for reconciliation, it helps to understand what payouts are, and when automatic payouts occur. Payouts are funds in your Stripe balance that Stripe deposits into your 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 your transactions). After processing your first charges on Stripe, your first payout is initiated and posted within 7–10 days. 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 Stripe account 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.
Payouts reading list
Using the Stripe Dashboard to reconcile payouts
To reconcile payouts, it helps to know how to:
- View payouts and transactions
- View your connected accounts' payout amounts and deposit dates
View payouts and transactions
When you view a payout, you can see basic information like the amount and the date the funds were deposited. You can use this information to verify the amount and date are the same as what you see in your bank account. You can also view the transactions that contributed to each payout. This includes charges, refunds, transfers, and more. You can then click on each transaction to see a breakdown of it (the amount, card information, metadata, etc.). You can also view transactions across payouts in the Transactions section of the Dashboard.
View connected accounts' payout amounts and deposit dates
If you need to assist a connected account with reconciliation, you can view their Dashboard to see their payout amounts and dates. The Payments tab displays their payouts, and you can select an individual payout to see the date it was paid and other information.
Dashboard reading list
Dashboard to-do list
- Know where to view payouts
- Know how to view a connected account's Dashboard
- Monthly report
- Payouts summary (click on an individual payout to view a summary of it)
- Multiple business locations
- Multiple businesses under the same sole proprietor
- An international entity
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:
If you have access to it, you can also analyize your financial data with Stripe Sigma. Stripe Sigma is an interactive SQL environment you can use to create custom queries and reports.
You can build custom reports using the Stripe API. There's a technical recipe that can get you started, but we've included some additional guidance below.
Reconciling transactions and payouts
You can use the balance_history call with a payout ID to retrieve a list of transactions that contributed to the specified payout. Transaction types include charges, refunds, application fees, and more. Your engineering team can pull this information into your internal systems so you can complete reconciliation.
Daily transaction totals
Net charge amounts
When a charge is created, a charge object is returned. This object includes a
balance_transaction ID (e.g.,
txn_1BBrXnENMHy0DmMaKXV6UFG0). You can use that ID to
retrieve information on the specified balance transaction. This includes
information on the fee that Stripe took for the transaction.
Generating reports for different divisions
You may want to consider generating different reports if you have different divisions within your company. This is commonly done if you have: