Sign in
An image of the Stripe logo
Create account
Sign in
Home
Payments
Business operations
Financial services
Developer tools
No-code
All products
Home
Payments
Business operations
Home
Payments
Business operations
Financial services
Developer tools
Support
Overview
Online payments
Products and prices
Invoicing
Subscriptions
Quotes
In-person payments
Multiparty payments
    Overview
    Get started
    Collect payments then pay out
    Enable other businesses to accept payments directly
    Pay out money
    Explore Connect
    Onboard your accounts
    Choose your account type
    Standard
    Express
    Custom
    Service agreement types
    Payment methods
    Account capabilities
    Additional verifications
    Update verified info
    Connect embedded UIs
    Quickstart
    Get started with Connect embedded UIs
    Accept payments
    Create a charge
    Create a payments page
    Create payment links with Connect
    Connect integration guide
    Automatic payment methods
    Set statement descriptors
    Connect platforms using the Payment Methods API
    Create subscriptions
    Create invoices
    Debit Express and Custom connected accounts
    Pay out
    Set bank and debit card payouts
    Bank accounts
    Manage payout schedule
    Manual payouts
    Payout reversals
    Instant Payouts
    Cross-border payouts
    Crypto payouts
    Manage funds
    Add money to your platform balance
    Account balance
    Handle multiple currencies
    Manage accounts
    Best practices
    Listen for updates
    Dashboard account management
    Understanding risk offerings
    Platform controls for Standard accounts
    Make API calls for connected accounts
    Set MCCs
    Testing
    Manage tax forms
    Overview
    Get started with tax reporting
    1099 Tax Support and Communication Guide
    Tax form settings
    Calculation methods
    File tax forms
    File tax forms with states
    Identify forms with missing information
    Update tax forms
    Deliver tax forms
    E-delivery for 1099 tax forms
    Correct tax forms
    Split tax forms
    Tax year changeover
    What's new for tax year 2022
After the payment
Add payment methods
Payment Links
Stripe Checkout
Stripe Elements
About the APIs
Regulation support
Implementation guides
Testing
Connect
·
HomePaymentsMultiparty payments

Choose a calculation method

Learn about the calculation methods for reporting charges and payouts.

The Stripe 1099 tax reporting product allows platforms to select a calculation method, depending on the type of 1099 form they must file. While these calculation methods reflect the most common reporting scenarios, you can import CSV files and edit the amount on each 1099 form to better match the requirements.

Stripe recommends that you consult a tax advisor to determine your tax filing and reporting requirements.

Available calculation method1099-K1099-MISC1099-NEC
Payments including feesYesYesYes
Payments excluding feesYesYesYes
Payouts onlyYesYes

Payments including fees

This payment calculation method includes all charges and transfers including any fees related to each transaction. Such fees might be:

  • Stripe processing and foreign currency conversion fees
  • Platform fees

For Form 1099-K, the IRS requires reporting gross reportable amounts without any adjustments. It’s the taxpayer’s responsibility to determine their taxable income by taking into account their business expenses and deductions.

Depending on your business, you may determine this payment calculation method is also appropriate for the amounts on their Forms 1099-MISC or 1099-NEC.

Refunded charges aren’t deducted when using this calculation method.

Example 1

On December 31, 2020, a customer buys flowers for 100 USD from an online flower shop. The flower shop is a connected account and the destination charge uses the platform’s API key. The charge authorization and capture time are the same since partial authorization wasn’t specified. The platform retains a 2 USD platform fee and a 3.20 USD Stripe fee nets directly out of the connected account’s charge.

On January 2, 2021, the issuing bank settles the money to Stripe. On January 7, 2021, a payout occurs from the connected account’s Stripe balance to their bank account, and includes the proceeds from this sale. With this method, the platform can report 100 USD on their 1099 form for 2021, and no amount for 2020.

DescriptionAmount
Customer charged100 USD
Increase in connected account’s Stripe balance94.80 USD
Increase in platform account’s Stripe balance2 USD
Amount reported with this method100 USD

Assume the same conditions, but a direct charge uses the connected account’s API key. With this method, the platform can report the same 100 USD on their 1099 form for 2021.

Example 2

Assume the same conditions as Example 1, but the connected account issues a refund the same day as the charge because they’re unable to fulfill the order. Ignore any potential Stripe fees for refunds.

DescriptionAmount
Customer charged100 USD
Customer refunded100 USD
Net change in connected account’s Stripe balance0 USD
Net change in platform account’s Stripe balance0 USD
Amount reported with this method100 USD

With this method, the platform can report the same 100 USD on their 1099 form for 2021, and no amount for 2020.

Payments excluding fees

This payment calculation method includes all charges and transfers excluding any fees related to each transaction. Such fees might be:

  • Stripe processing and foreign currency conversion fees
  • Platform fees

This method is useful if the platform wants to remove their fee from the amount reported for the connected account.

For example, in the destination charge flow, the application fee is attributed to the connected account, but a platform might pass the application fee to the end customer to pay the platform. Those funds aren’t necessarily attributable or even known to the connected account. While platforms acknowledge that gross amounts should be reported to their connected accounts on the Form 1099-K, they might think the gross amount to report should be payments excluding fees.

For Form 1099-K, the IRS requires reporting gross amounts for all reportable transactions, without any adjustments for refunds, fees, credits, cash equivalents, or discounts. Because platforms use Connect differently, we recommend working with a tax advisor to determine if this method is right for you based on the 1099 form you want to file.

Depending on your business, you may determine this payment calculation method is also appropriate for the amounts on their Forms 1099-MISC or 1099-NEC.

Stripe doesn’t deduct refunded charges when using this calculation method.

Example

On December 31, 2020, a customer buys flowers for 100 USD from an online flower shop. The flower shop is a connected account and the destination charge uses the platform’s API key. The destination charge specifies an amount of 100 USD and a transfer_data[amount] of 94.80 USD. The charge authorization and capture time are the same since partial authorization wasn’t specified. The platform retains a 2 USD platform fee and a 3.20 USD Stripe fee nets directly out of the connected account’s charge.

On January 2, 2021, the issuing bank settles the money to Stripe. On January 7, 2021, a payout occurs from the connected account’s Stripe balance to their bank account, and includes the proceeds from this sale. With this method, the platform can report 94.80 USD on their 1099 form for 2021, and no amount for 2020.

DescriptionAmount
Customer charged100 USD
Increase in connected account’s Stripe balance94.80 USD
Increase in platform account’s Stripe balance2 USD
Amount reported with this method94.80 USD

Assume the same conditions, but the destination charge specifies an amount of 100 USD and an application_fee_amount of 5.20 USD. The Stripe fee is deducted on the platform’s account from the 5.20 USD. With this method, the platform can report the same 94.80 USD on their 1099 form for 2021.

Assume the same conditions, but a direct charge uses the connected account’s API key. The direct charge specifies an amount of 100 USD and an application_fee_amount of 5.20 USD. With this method, the platform can report the same 94.80 USD on their 1099 form for 2021.

Payouts only

The payouts only method lets you report only the amount that was paid out to the connected account’s bank account, minus any payout reversals. The amount may also include payments that aren’t related to a specific charge transaction. This calculation method takes into consideration payouts and not charges.

Because platforms use Connect differently, we recommend working with a tax advisor to determine if this method is right for you based on the 1099 form you want to file.

Example

On December 31, 2020, a customer buys flowers for 100 USD from an online flower shop. The flower shop is a connected account and the destination charge uses the platform’s API key. The charge authorization and capture time are the same since partial authorization wasn’t specified. The platform retains a 2 USD platform fee and a 3.20 USD Stripe fee nets directly out of the connected account’s charge.

On January 2, 2021, the issuing bank settles the money to Stripe. On January 7, 2021, a payout of 94.80 USD occurs from the connected account’s Stripe balance to their bank account, and includes the proceeds from this sale. With this method, the platform can report 94.80 USD on their 1099 form for 2021, and no amount for 2020.

DescriptionAmount
Customer charged100 USD
Increase in connected account’s Stripe balance94.80 USD
Increase in platform account’s Stripe balance2 USD
Amount reported with this method (2020)0 USD
Amount reported with this method (2021)94.80 USD

Assume the same conditions, but a direct charge uses the connected account’s API key. On January 7, 2021, a payout of 94.80 USD occurs from the connected account’s Stripe balance to their bank account, and includes the proceeds from this sale. With this method, the platform can report the same 94.80 USD on their 1099 form for 2021.

Additional calculation method topics

The following sections discuss calculation method topics that might be applicable to your platform.

Timing and recognition of transactions

Stripe uses the available_on date of the balance transaction associated with the payment to determine which tax year the transaction belongs to. The available_on date represents the date the funds become available in the Stripe account. We believe this approach best matches the IRS’s instructions.

Card not present payments

IRS Form 1099-K box “1b” reports the volume of “card not present” payments. Stripe classifies a payment as “card present” or “card not present” based on the PaymentMethod type associated with that payment. The following PaymentMethod type values are “card present”. All others are “card not present”:

  1. card_present
  2. interac_present

Tax form totals

We recommend that platforms audit Stripe transactions that have contributed to a form’s totals by exporting the transaction log.

Account transactions performed outside of Stripe aren’t included in form totals. To include non-Stripe transactions, platforms must manually adjust the form box amounts before filing.

Transactions created with the Transfers API to credit connected accounts (for example, handling dispute reversals and refund failures) are included in 1099-K form totals. Debits from connected accounts are excluded. To remove these credit transfers from the form, platforms must manually adjust the form box amounts before filing.

Separate charges and transfers

Stripe derives the reportable amount for a separate charge and transfer from the transfer, not the charge.

Additionally, you must use the source_transaction parameter to associate a charge with a transfer from your platform to a connected account—Stripe classifies any transfers without this parameter as “card not present” transactions.

Foreign exchange rate conversions

Stripe’s 1099 calculation methods convert non-USD transactions to USD using the market exchange rate from the day the transaction is created. This method might yield a different value than the Stripe Dashboard shows because we compute that value using an intra-day exchange rate adjusted for Stripe’s foreign exchange fee.

Cancelled asynchronous payments

If a user cancels an asynchronous payment (for example, ACH debit) that would’ve otherwise been successful before the payment completes, that payment might still be included in the results of the “payments including fees” and “payments excluding fees” methods.

Export transaction logs

For tax year 2022 and later, you can use the Stripe Dashboard to export the transaction log of each 1099 form. A transaction log lists the Stripe transactions that have contributed to a form’s total. This log allows you to audit transaction discrepancies and answer questions from your connected accounts about which transactions Stripe includes in their tax forms.

After you export the transaction log, the sum of its Calculation Amount column reflects the form total that you see on the 1099. For each transaction, we show the applicable merchant_id, balance_transaction_id, charge_id, and transfer_id along with the calculation amount relevant to that transaction. The calculation amount is dependent on the type of calculation method you choose. The 1099-K form transaction logs list card_not_present_volume and transaction_count to match the values on the form.

Transaction logs only contain Stripe transactions. Manual updates through CSV imports or the Dashboard’s Tax form editor won’t be included in the transaction log.

To export the transaction log of a tax form:

  1. Navigate to the Tax forms page in the Dashboard.
  2. Select the checkbox next to the tax form.
  3. Click the overflow menu (
    ) at the top-right of the tax form and select Export transaction log.
  4. Specify the date range and rows that you want to export. Use the default export settings to capture all the details of the entire year. The transaction log file downloads in your browser. Keep the email notification option selected if you want to receive an email containing a link to download your transaction log.

The transaction log file downloads after Stripe finishes the export process. If you exported with the email notification option selected, Stripe also sends you an email from notification@stripe.com with a link to download your transaction log.

Was this page helpful?
Questions? Contact us.
Watch our developer tutorials.
Check out our product changelog.
Powered by Markdoc
You can unsubscribe at any time. Read our privacy policy.
On this page
Payments including fees
Payments excluding fees
Payouts only
Additional calculation method topics
Export transaction logs
Stripe Shell
Test mode
Welcome to the Stripe Shell! Stripe Shell is a browser-based shell with the Stripe CLI pre-installed. Login to your Stripe account and press Control + Backtick on your keyboard to start managing your Stripe resources in test mode. - View supported Stripe commands: - Find webhook events: - Listen for webhook events: - Call Stripe APIs: stripe [api resource] [operation] (e.g. )
The Stripe Shell is best experienced on desktop.
$