Update and create 1099 tax forms
Update and create 1099 tax forms for connected accounts.
Getting your 1099 Forms
If you work for a platform that pays you via Stripe and want to learn about your 1099 forms and how to get them, see 1099 tax forms on the Stripe Support site.
Stripe automatically generates tax forms for all connected accounts that have transactions in a given tax year. Tax forms are available on the Tax reporting page in the Dashboard. If you need to update or correct a 1099 form, you can do so in one of the following ways:
- Use the Tax form editor-Use the editor in the Dashboard to change the values used in a new 1099 form.
- Export the form as a comma separated value (CSV) file-Export a tax form to a CSV file, modify the values in the CSV file, then import the updated CSV file to generate a new 1099 form with the updated values.
You can also create new tax forms by importing CSV files. If your connected account doesn’t already have a tax form, performing Update or Delta imports automatically creates the form.
Click Create to create a standalone tax form that isn’t associated with a connected account. You must include all columns except for form_
and stripe_
. E-delivery isn’t available for standalone forms (only postal mailing is allowed for delivery). If you’re creating a standalone form of a non-default form type, you must include the CSV headers of that form type. If you need assistance getting the correct CSV headers, reach out to support@stripe.com.
You can export tax forms to verify data at scale against your internal systems or to prepare for a subsequent import. Whatever your rationale, you can export tax forms by clicking the Export button, then Export CSV. Choose the type of tax form to export, which also defines the CSV file that you download. This choice overrides any tax form type filter, if set. If you have multiple types of 1099 forms (for example, 1099-K for some recipients and 1099-NEC for others), you must export them separately.
You can also choose whether or not to export the tax identification number (TIN). If you don’t include the TIN, the TIN column shows a masked value (for example, *********
). If you include the TIN, the value appears masked to the last 4 digits (for example, *****1234
). If you require the full TIN in the export, contact Stripe support to enable this feature.
The export considers any filters that you apply. You can see any applied filters by hovering over the information icon in the lower left corner of the export dialog.
After you initiate an export you can monitor it on the Exports & imports tab. An export expires 7 days after initiation.
Import tax forms
Stripe provides values for payee data and form totals whenever possible. However, you may want to supply your own totals-for example if you provided reimbursements or otherwise altered the totals. Or you may want to import data to correct a filed tax form.
Note
The maximum allowed file size is 75 MB.
When it comes to altering form totals specifically, you have 2 options:
- Overwrite the existing values with your own totals (CSV Import -> Update)
- Add to the existing values with your deltas (CSV Import -> Delta).
Overwriting existing values with Update
Importing tax forms allows you to override most of the values supplied on the initial tax form by Stripe. When you import tax forms, Stripe uses the imported values and files the tax forms in accordance with the information you provide. If you make updates in the Dashboard after importing from CSV, the updates aren’t recorded in the filed tax forms. If you need to return to the Stripe-supplied values, contact Stripe support.
To import tax forms:
- Click Import.
- Choose the type of tax form to import.
- Specify whether or not you’ve already filed it.
You’re not required to supply a payee’s TIN on import. If you provide a 9-digit number for the TIN, it overrides the Stripe-supplied value. Stripe ignores any other value and retains the Stripe-supplied value.
Leading Zeros
Tools like Google Spreadsheet and Excel usually delete any leading zeros in a CSV. For example, ‘000001234’ becomes ‘1234’ when exported as a CSV and opened in excel. If you export a form as a CSV that has leading zeros in the TIN, importing that same CSV form will fail if the zeros have been deleted. If this happens, add the leading zeros back in the TINs that had them originally and try again.
After you initiate an import you can monitor it on the Exports & imports tab.
Adding to existing values with Delta
Importing tax forms using Delta allows you to add to (or subtract from) the values on the initial tax form totals by Stripe. This lets platforms report just the totals of transactions that happened outside of Stripe. Without this functionality you would have to download the existing values from Stripe, then sum the values from Stripe with the external values, and then import the final values. Instead, just provide the delta amounts and Stripe does the rest. This is particularly useful if you have multiple payout mechanisms or reimbursements on Stripe connected accounts for activity that happened outside of Stripe.
To import a form using Delta, click Import, then choose the type of tax form to import. Select Delta, and then choose the file that contains the delta totals data.
Frequently asked questions about Deltas
This section provides answer to common questions about using Deltas for 1099 tax forms in Connect.
Can there be negative values as deltas (e.g. reimbursements made which needs to reduce the total on 1099)?
Yes.
If I send multiple delta amounts, do they get overwritten or are they additive?
They get overwritten, so if on stripe_account_id S1 there was a delta added for 10 USD, and then another delta was added for 20 USD, the final delta amount applied is 20 USD and not 30 USD.
If my calculation method changes or the total changes after I have applied a delta, does the delta still persist?
Yes. To learn more about calculation methods, see Choose a calculation method.
Will I be able to filter to just the forms that had deltas applied?
Yes
Can I undo the delta values that I just imported?
Yes, you can use Revert to revert to the Stripe-calculated totals in the form. This restores the value in the form to the value calculated by Stripe after you import CSV files with different values using Update or Delta, or changes you made using the Dashboard.
If I update a value for a stripe_account_id using a Delta, can I also overwrite the amount with a CSV update and/or the tax form editor?
Yes, Deltas are applied on top of the stripe calculated total / platform’s overwritten totals. The changes made on the Stripe dashboard UI (Tax form editor) overwrite any other changes. The examples in the following table demonstrate how Stripe determines the final values for a connected account after Deltas and Updates.
Scenario | Final value | Value after Revert |
---|---|---|
Stripe calculated (100 USD) | 100 USD | 100 USD |
Stripe calculated (100 USD) -> CSV Import (update) (150 USD) | 150 USD | 100 USD |
Stripe calculated (100 USD) -> Tax form editor Edit (200 USD) | 200 USD | 100 USD |
Stripe calculated (100 USD) -> CSV Import (Delta) (+25 USD) | 125 USD | 100 USD |
Stripe calculated (100 USD) -> CSV Import (Update) (150 USD)-> Tax form editor Edit (200 USD) | 200 USD | 100 USD |
Stripe calculated (100 USD) -> CSV Import (Update) (150 USD)-> CSV Import (Delta) (+25 USD) | 175 USD | 100 USD |
Stripe calculated (100 USD) -> Tax form editor Edit (200 USD) -> CSV Import (Delta) (+25 USD) | 225 USD | 100 USD |
Stripe calculated (100 USD) -> CSV Import (Delta) (+25 USD) -> Tax form editor Edit (200 USD) | 200 USD | 100 USD |
Stripe calculated (100 USD) -> CSV Import (Delta) (+25 USD) -> Tax form editor Edit (200 USD) -> CSV Import (update) (150 USD) | 175 USD | 100 USD |
Improvements to CSV imports
CSV imports no longer require supplying all columns when updating values for your 1099 tax forms. Include only the columns in the CSV for the data that you want to change, along with either form_
or stripe_
values, which uniquely identify forms in Stripe. When you import a CSV for a correction, you must include a form_
field value. Columns that don’t exist in the CSV import schema default to the values that are on the corresponding tax form. We might perform validation on fields even if you don’t include them in the import. If we find validation errors, the import fails and the changes aren’t applied.
Override the tax form status
Stripe calculates a status for each tax form based on the type of form, year-to-date amount, and information completeness. You can override a tax form’s status by setting a value for the filing_
field on import. This field can have one of the following values:
NOT_
– Don’t file the form, even if it meets the threshold and is complete.REQUIRED REQUIRED
– File the form, even if it doesn’t meet the threshold or is incomplete. Conceptually this is the combination ofFILE_
andEVEN_ IF_ INCOMPLETE FILE_
.EVEN_ IF_ BELOW_ THRESHOLD FILE_
– File the form if it’s above the threshold, even if it isn’t complete.EVEN_ IF_ INCOMPLETE FILE_
– File the form if it’s complete, even if it’s below the threshold.EVEN_ IF_ BELOW_ THRESHOLD DEFAULT
– Use federal and state thresholds to decide whether a form should be filed. This is what the initial filing requirement value is for all forms, which can be overridden to one of the other values by platform admins.
Override the delivery method
Stripe uses your platform’s tax settings to determine whether to use postal delivery for your forms by DEFAULT
. You can override a tax form’s delivery method for an account by setting a value for the postal_
field on import. This field can have one of the following values:
TRUE
- Postal deliver the form when filed, even if the platform’s tax settings don’t require it or the account holder provided consent to paperless delivery.
FALSE
- Do not postal deliver the form when filed, even if the platform’s tax settings require it or the account holder chose to decline paperless delivery.
DEFAULT
- Use the platform’s tax settings to determine whether to postal deliver the form when filed.
Change the type of 1099 form
You can change the type of 1099 form for an account by setting a value for the form_
field on import. This field can have one of the following values:
k
- To swap to a 1099-K form
misc
- To swap to a 1099-MISC form
nec
- To swap to a 1099-NEC form
1099 CSV schema
The schemas for 1099-NEC, 1099-K, and 1099-MISC are similar overall. Most fields in the CSV file map directly to a box on the tax form and are named accordingly. To get the column names for your CSV import, the best approach is to do a CSV export, change the values, delete the columns you aren’t changing, and import that CSV file.
Note
Refer to the IRS website for instructions on 1099 tax forms (for example, 1099-NEC instructions).
The following table describes the schema when you use Update or Correct to update values in a 1099 form.
Field | Description |
---|---|
form_ | The ID of the tax form. You can’t change this value. |
email_ | The payee’s email address. You can’t change this value. To change a connected account’s email address, visit Connect communication settings or the 1099 tax forms dashboard. |
status | The federal filing status of the tax form. You can’t change this value. To force a tax form into a different status, use filing_ . |
postal_ | Whether to mail the form. You can use this field to override your postal delivery default in tax form settings. |
delivery_ | The postal delivery status of the tax form. You can’t change this value. |
stripe_ | The payee’s Stripe account ID. You can’t change this value. |
filing_ | Use this field to override a tax form status. |
payee_ | The payee’s name. |
payee_ | Overflow for the payee’s name, sometimes used for a doing business as (DBA) name. |
payee_ | The payee’s TIN. On export this is masked by default. Masked values are ignored on import. |
payee_ | The type (business or individual) of a payee’s TIN. This field may be necessary for some state filings. |
payee_ | The first line of the payee’s address. |
payee_ | The second line of the payee’s address. |
payee_ | The payee’s city. |
payee_ | The payee’s state or region. |
payee_ | The payee’s postal code. |
payee_ | The payee’s country. |
payee_ | The account number on the tax form. This field defaults to the stripe_ , but you can override the value on import. |
january_ | The total amount paid in January. Other months follow the same format. |
nonemployee_ | The total compensation paid to the non-employee. |
federal_ | The total amount withheld from federal income taxes, if any. |
state_ | The total amount withheld from state income taxes, if any. |
other_ | The total amount withheld from the other state income taxes, if any. |
state_ | The payer’s ID for filing in the state. |
other_ | The payer’s ID for filing in the other state. |
state_ | The payee’s state income. |
other_ | The payee’s other state income. |
fatca_ | Whether to check the Foreign Account Tax Compliance Act (FATCA) filing requirement. |
second_ | Use this field to specify whether the payer has received a TIN notice for the payee twice in 3 calendar years. |
paperless_ | Use this field to specify whether you have collected paperless delivery consent. Possible values are NOT_ , PROVIDED , and REVOKED . NOT_ means you have not collected consent. PROVIDED means you have collected consent. REVOKED means that the connected account does not want e-delivery and has explicitly declined to give consent. When importing, leaving the field empty defaults to NOT_ . |
The following table describes the schema for CSV export when you update the values in a tax form by adding a Delta to the value calculated by Stripe. Many of the fields are the same as the schema when you use Update or Correct. For fields that are different when using a Delta, the field names includes _delta at the end.
Field | Description |
---|---|
form_id | The ID of the tax form. You can’t change this value and either form_id or stripe_account_id are the required values for the import with Delta. |
stripe_account_id | The payee’s Stripe account ID. You can’t change this value. |
nonemployee_compensation_delta | The delta to add on the compensation paid to the non-employee total already in Stripe. |
federal_income_tax_withheld_delta | The delta to add on the total amount withheld from federal income taxes total already in Stripe. |
state_tax_withheld_delta | The delta to add on the amount withheld from state income taxes total already in Stripe. |
state_income_delta | The delta to add on the payee’s state income total already in Stripe. |
january_amount_delta | The delta to add on the january totals already in Stripe. |
february_amount_delta | The delta to add on the february totals already in Stripe. |
royalties_delta | The delta to add on the royalties total already in Stripe. |
rents_delta | The delta to add on the rents total already in Stripe. |
User self-serve updates for connected accounts
If you signed up for stripe hosted e-delivery, you can have your users update their tax information themselves before their tax form is filed. If users update their information after filing, the tax form page shows an option to correct the filed 1099 form with the updated information. For more information, see Quick correct: Payee details.
Users can edit their Legal name, Taxpayer Identification Number (TIN), and address. Note that some information can’t be edited after a user’s legal entity is verified, including date of birth, and business type. To edit the information user must contact Stripe Support.