U.S. Tax Reporting for Connect Platforms

    Learn how to report the gross annual volume for your U.S.-based Express and Custom accounts.

    Stripe Connect allows platforms to provide a seamless, end-to-end payment service for their Express and Custom accounts. This capability comes with several responsibilities, including proper reporting for tax purposes.

    Platforms should consider issuing a Form 1099-K summarizing the gross annual payment volume for any Express or Custom account that meets these criteria:

    • U.S.-based
    • More $20,000 in gross volume in the calendar year
    • More than 200 transactions in the calendar year

    Platforms should also determine if they need to issue a Form 1099-MISC to their Express or Custom accounts. Payable, part of Stripe, can make this process easier by automatically generating 1099s for your Express and Custom accounts.

    Reporting gross transaction volume

    IRS guidelines require that a Form 1099-K display the gross transaction volume processed by the account during the previous year. The gross transaction volume is the total dollar amount of all reportable payment transactions for each participating payee without regard to any adjustments for credits, cash equivalents, discount amounts, fees, disputes, refunded amounts, or any other amounts.

    When communicating with your users about these tax forms, it may be worth mentioning that the Form 1099-K requires the reporting of gross transaction volume, as the reflected amount is higher than their received payouts or profits. Sending a report or invoice of fees paid during the tax year can be helpful for your users, allowing them to deduct these from the reported gross for tax purposes.

    Platforms are responsible for the accuracy of the information on their 1099 forms, and need to review and update the information, as necessary, after the forms are generated and before they are delivered to recipients and e-filed with the IRS.

    Payable uses a standard logic to calculate the gross amounts shown on the generated 1099 forms:

    • Stripe transaction objects are converted into taxable transactions in Payable.
    • Gross 1099 amounts are calculated using the amount and “paid at” information, depending upon the transaction type.
    • The “paid at” date is set as the date the balance is available to the connected account, or the transfer.created date for recipient transfers.
    • The “paid at” date determines the calendar year for the transaction. It uses the timezone set in the platform’s Payable account, which comes from the platform’s Stripe account timezone setting.
    • The payment card and third-party network transactions gross amount (box 1a) is reported in USD.
    • Charges and transfers completed in non-USD currencies are converted to USD using the exchange rate on the date they were created.

    The calculation of gross amounts depends upon the charging method used, as explained below. Speak with a tax advisor if you have any questions.

    Transaction volume by charging method

    Gross amount totals for 1099s are calculated based upon how a charge was created. Connect platforms can create charges using three different methods:

    Separate charges and transfers can be created as linked transactions—where the transfer is explicitly connected to a charge—or unlinked. This also factors into the calculation. Transactions performed using the older recipient transfers approach are treated the same as an unlinked transfer.

    Transaction type Amount "Paid at" date
    Direct charges charge.amount balance.available
    Destination charges charge.amount balance.available
    Separate charges and transfers, linked (transfer.amount/sum(related_transfers.amount)) * sum(charge.balance_transaction.amount) balance.available
    Separate charges and transfers, unlinked transfer.amount balance.available

    Direct charges

    For charges created directly on a connected account, the amount reflected on a 1099 equals the gross amount of the full charges. Platforms can provide connected accounts a report that groups together fees paid to both the platform and Stripe by following the instructions in the next section.

    As an example, a $100 charge created directly on a connected account, with a $10 application fee, is represented as $100 on the generated 1099.

    Destination charges

    For charges created on the platform using the destination parameter, the amount reflected on a 1099 equals the gross amount of the full charges (not destination[amount]). Platforms can provide connected accounts a report that reflects the destination[amount] sum by following the instructions in the next section.

    As an example, a $100 charge with a destination[amount] of $90 is represented as $100 on the generated 1099.

    Separate charges and transfers

    For charges created on the platform coupled with separate transfers, reporting is dictated by whether the transfers are linked or unlinked. Linked transfers further factor in the specific parameter used:

    • on_behalf_of
    • source_transaction
    • transfer_group

    Transfers not made using one of these parameters are considered unlinked.

    Unlinked transfers

    For charges created on the platform with transfers that do not use one of the above three parameters, the amount reflected on a 1099 equals the gross amount of the transfers.

    As an example, a $100 charge with an unlinked transfer of $90 is represented as $90 on the generated 1099.

    On behalf of

    For charges created on the platform with transfers that use the on_behalf_of parameter, the amount reflected on a 1099 equals the gross amount of the full charges. This is the same as with destination charges.

    As an example, a $100 charge with a on_behalf_of transfer is represented as $100 on the generated 1099. (You cannot transfer less than the charge amount, minus the Stripe fees, when using on_behalf_of.)

    Source transaction

    For charges created on the platform with transfers that use the source_transaction parameter, the amount reflected on a 1099 equals the gross amount of the associated charge.

    As an example, a $100 charge with a source_transaction transfer of $90 is represented as $100 on the generated 1099.

    Transfer group

    For charges created on the platform with transfers that use the transfer_group parameter, the amount reflected on a 1099 equals the gross amount of the associated charges. If a single group has transfers to multiple connected accounts, the amount reflected on each account’s 1099 is their percentage of the gross amount of the associated charges.

    As an example, two $30 charges with two transfers—$10 to connected account A and $40 to connected account B—is represented as $12 and $48 respectively on the generated 1099s. The math is:

    Gross amount reported = (amount transferred/sum of all amounts transferred) * (gross amount of the associated charges)

    Connected account A received 20% of the transferred funds—$10/($10 + $40)—so 20% of the total charge amount—$30 + $30—is reported: $12. Connected account B received the other 80% of the transferred funds and 80% of $60 is $48.

    Finding detailed numbers

    You can find all necessary information for your users using the Dashboard or the API.

    1. Log into the Stripe Dashboard for your platform account.
    2. Under Connect, navigate to the connected account that requires reporting.
    3. Click View dashboard as.
    4. Now in the connected user’s Dashboard, go to Balance > Transactions.
    5. Filter the results to only show the applicable calendar year.
    6. Click Export.

    The downloaded .csv file, which you can open in any spreadsheet app, reflects all payments, refunds, and fees.

    To fetch the needed data via the API, perform a list all balance history call while:

    • Authenticated as the connected account
    • Providing an available_on value of lte with a timestamp representing the last second of the applicable calendar year
    • Totaling only the payments, refunds, and fees (i.e., ignoring the payouts, payout failures, and transfers)

    Use pagination to continue looping through the returned records through to the beginning of the year (in backwards chronological order).

    Correcting submitted tax forms

    If a user requires an update to a 1099, work with the third party who helped create the 1099—such as Payable—to handle the correction. If you created the 1099 on your own, talk to your accountant or tax advisor about processing the correction.

    Next steps

    Payable provides more information regarding 1099-K and 1099-MISC filing responsibilities:

    Questions?

    We're always happy to help with code or other questions you might have! Search our documentation, contact support, or connect with our sales team. You can also chat live with other developers in #stripe on freenode.

    Was this page helpful? Yes No

    Send

    Thank you for helping improve Stripe's documentation. If you need help or have any questions, please consider contacting support.