sdj0 / fire-1099

Generate 1099 tax filings formatted for the IRS electronic filing system ("FIRE").
MIT License
53 stars 13 forks source link

2022 Documentation for how to get set up with the IRS #24

Open jerfelix opened 2 years ago

jerfelix commented 2 years ago

Sorry for posting this as an "Issue", but I thought it might be the easiest way to get information out to others who are working through this process in late March 2022, with the filing deadline rapidly approaching. I hope this helps someone.

@sdj0 Feel free to include this into your Readme documentation. I have spent many hours trying to navigate the IRS systems, and I think I have it figured out enough to help other people. This is intended to be a Quickstart guide (as much as possible) for someone who is in a similar situation as me.


My situation: My wife and I started a multi-member LLC in 2021. I had legal expenses over $600, and so I need to submit a 1099-NEC informational return, and also provide my attorney with a 1099-NEC. I missed the February paper filing deadline for the informational return, so I decided to use the online submission process, which has a March 31 deadline.

If your situation is similar (or if you have some 1099-Misc documents) , this may apply to you. I started the process around March 17th, and completed it by April 2. My ultimate goal is upload the informational return to the IRS. I'll try to explain the whole process here. Prerequisites: You should already have an EIN for your business.

The IRS has a system called FIRE that allows you to upload the required return, in a specific format. That's where I am heading with these instructions.


The entire process to get set up with the IRS and to submit your 1099 informational returns can take weeks. The IRS recommends that you allow for 45 days. My experience was about 17 days.


Step 0 Apply for an Extension (Time required: 15-20 minutes)

FIRST if you are reading this before the March 31 deadline, hop over to FIRE and request an extension. There's no way you can get ALL this done in a couple of days. But you can file for an (automatic) extension before the end of March, and that might buy you enough time. The extension will give you until the end of April or so.

To file for an extension, go to https://fire.irs.gov/ Select "Create Account" from the nav menu on the left. Click the YES radio button, because you are going to file the 8809 Extension Only at this point. Leave the TCC* field blank Fill in your EIN, Company Name, and make up a user ID and Password (see field requirements on that page). Press the Create button

If my notes are correct, I believe the next page prompts you to create a Fire PIN of 10 characters and a Secret Phrase of 12-20 characters (no spaces). Both of these items will be used by you later, so make sure you write them down. (In one IRS System that I describe later, the secret phrase is just used to make sure you recognize it. In this case (FIRE). you need to know the secret phrase exactly, not just recognize it later.)

If all goes well, you will receive a notification of your automatic extension that you can print, or save a screen capture.

OK... that bought you some time. Now, at a high level, what you are going to do is to work within three different systems. In one system (ID.Me), you'll prove your identity. In another system (unnamed IRS system), you'll establish a profile for your company. And finally, in the third system (FIRE), you'll upload the informational return.


Step 1: Prove your identity to the IRS. (Time required: 60-90 minutes per person - minimum of two people, unless you are a one-person LLC. Elapsed time may be several days, if you require US Mail confirmation.)

Access the ID.Me system at https://www.irs.gov/payments/your-online-account (you may also be able to find it by searching for Secure Access.)

ID.Me is a system that identifies an individual, so that the individual can work with the IRS on individual OR corporate informational returns. Note that this take some time, and requires some documentation. So set aside at least an hour. Another important note, if you have anything bigger than a single-person LLC, you will need multiple people to go through this process. In my case, both my wife and I had to do this. Perhaps work through it yourself, and then (while it's fresh in your mind) help your spouse or partner through the process.

My wife and I had slightly different experiences. In my case, I established my user ID (it uses your email account), a password, and I scanned in some documents (my drivers license and passport). Then I did a face scan with my phone. The ID.Me tool (webapp) walks you through this. The only problem I had with this was that my phone brightness wasn't bright enough. But it worked on the third try. I had to do a video conference call with an ID.Me rep, so he could see me holding my documents. Then they confirmed my phone number with my phone provider, and I was all done.

My wife's experience took days. For some reason, they couldn't confirm her phone number with the major phone provider. And so the IRS mailed her an access code in the form xxxx-xxxx.

If you get stuck waiting for your wife or partner's code to be sent by US Mail, you may be able to continue on with the next steps, and make some progress while you wait.


Step 2: Set up your corporate profile in the IRS system (not sure what the name of this system is, so I'll refer to it as the "unnamed" IRS system).

(Time required: 45-60 minutes for one person, 15-20 minutes per each additional person)

Your goal in this step is to define that your company will be using electronic submissions, and specify which individuals have permission to do so. If all goes well, you will be given a TCC (Transmitter Control Code), which can be used in the later step.

To use the unnamed IRS system, you may need to first sign into your ID.Me account. I am not positive that this is necessary, but it won't hurt. The two IRS systems seem to be independent (with separate logins), so this step may not be necessary.
Sign in to ID.me at https://www.irs.gov/payments/your-online-account

Then go to this page: https://www.irs.gov/e-file-providers/filing-information-returns-electronically-fire

There, you will see a link that talks about the Information Return (IR) Application for Transmitter Control Code (TCC), which should take you to the unnamed IRS system, at: https://la.www4.irs.gov/esrv/esam/pages/landingPage.xhtml

Here, you are going to Create an Account. Yes, another account. Note that the ID.Me system used your email address as its login, but this system uses a login ID that you get to choose.

For this system, you will need personal information, a credit card, a cell phone, and an email address, among other things. Create the account. You'll need to create a PIN (this one is 5 characters) and select an image and submit a phrase that you'll recognize when you log in. Hopefully pretty straight-forward,

Once you create your account and log in, then you will be able to work on behalf of yourself, or your company. At this point, what you are trying to do is to set up your company so that you can request a TCC. I didn't take good notes here, but as I recall, I had to define the company and the organization structure. Since it is not a single-member LLC, I needed to name two Responsible Officials and two Contacts (which can be the same two people). I set those up, agreed to some terms, and then I had to wait for my wife to also sign in and agree to the terms. Once all that is done, you have submitted your application for a TCC.

I completed this process on Sunday afternoon, and the TCC application was listed as "Submitted" or something that indicated that it wasn't yet approved. By Monday morning, when I signed back in, the application had been approved and there was a TCC number listed there. This TCC number will be used in the FIRE system to upload the informational return in steps 6 and 8. The IRS will also send the TCC number in the US Mail (or so they say, although I haven't seen it yet, but it's only been a couple of days).

If you are still working on this step, you may want to move on to the next step, so you keep progressing.


Step 3: Download the fire-1099 software from this repository (Time required: 30 minutes to 2 hours.)

I am using a Windows machine, and downloaded Python 3.10.4 (32 bit) for Windows from the Python website, which was the latest version. https://www.python.org/downloads/

Then I followed the instructions on this Github repo, to clone the files. I downloaded a zip file, uncompressed the files, and did a "pip install ." command to install the files. I was able to test the software by using the sample files that were provided. The only surprise for me was that the default command (not specifying an input file) failed with a message indicating that the file was missing. But this was because the program looks for a file with hyphens in it, while the actual file name has underscores: valid_minimal_MISC.json.

I won't go into a lot of detail on Step 3, because it depends on what operating system you are trying to install to, what your experience is with Github, whether you have Python and pip installed already, etc. Hopefully the other documentation on this fire-1099 repository will provide you the help you need.


Step 4: Prepare your actual 1099's (which you were supposed to provide to your vendors or compensated non-employees back in January).

(Time required: 15-20 minutes per 1099.)

If you haven't already prepared your 1099-misc and 1099-nec forms, I recommend using google to find the fillable PDFs, and then filling in the blanks. I also used a program called PDFSAM (PDF Split and Merge) to take the 8 page PDF, and just pull out the page or pages appropriate for the attorney. No sense in sending them the complete file, or making more work for yourself than is necessary. Or you can print all the pages, and only mail the pages that apply.... but I sent mine via email.


Step 5: Modify the .json files and create your upload file.

(Time required: 15-20 minutes, plus maybe 10 minutes per 1099.)

In this step, you are working on your local PC, with the fire-1099 software that is in this Github repository. Refer to the documentation for fire-1099 to see how the software works. The software comes with some sample files that you can use to immediately create a sample file to upload to the IRS. You need to change all the fake data to your real data.

I used the valid_minimal_MISC.json file to create an NEC file. There were only a few fields that were not self-explanatory. The Test File Indicator being a "T" is for Test mode. You'll want to test your upload first. Then set that to "" (I think) for the live upload.

The Prior-Year indicator: Leave as "". See IRS instructions if you are amending a prior year 1099.

The Payer and Payee Name Control fields are 4 characters, and just the first 4 characters of the entity's official name (as the IRS knows them).

The Payment Amount includes cents, but no decimal point. This is a pretty important thing to understand. If you paid $1234.56, put in 123456 in that field.

Once you set up your .json file, you can use the program in this repository to generate a suitable upload file. For me, the command was

py bin\fire-1099 spec\data\MY_MODIFIED_FILE_NEC.json --output spec\data\UploadFile.ascii --type NEC


Step 6: Upload the Test file.

(Time required: 15-20 minutes. Note that your TCC needs to be at least several days old, or you won't be able to create your Test account.)

There is a Test Fire system, located at https://fire.test.irs.gov/ . You need to create yet another account, this time on the Test Fire system.

Note that your TCC won't be available on the Test system for several days after it's issued, which will prevent you from being able to create your account. My experience was that I applied for the TCC (step 2) on a Sunday, and I was able to create a Test account by Thursday. (On Wednesday, it wouldn't let me create the account, simply saying that some information was invalid.) If you are in the waiting period, you can still move on to the next steps and possibly create your account on the Production FIRE system (Step 8).

When you create your account, make sure you remember your 10-digit PIN that you assign, because you will need it to submit the file. If you filed for an extension (Step 0), then you may have already created an account on the Production FIRE system. You'll still need to create an account on the TEST system, but I recommend that you use the same credentials, or keep VERY good notes as to any differences.

Sign in to the TEST FIRE system using the TCC that you received back in step 2. Upload the Test file. From what I read, it looks like the IRS will review it, and email you the results - whether the test passed, or if there were issues. Supposedly you'll hear back in a day or so. You can also sign back into the Test system and view the results of the test, using "Check File Status".

If the test passes, then move on to Step 7.


Step 7, re-create your Upload File for non-Test.

(Time required: 5-10 minutes)

Modify your .json file so that the Test File Indicator is not "T", but rather it's "". Re-run the fire-1099 program, and you'll have a new Upload File.


Step 8: Upload the new file.

(Time required: 15-20 minutes. Note that your TCC needs to be at least several days old, or you won't be able to create your Production account.)

The FIRE Production system is located at https://fire.irs.gov . Create yet another account, this time on Production Fire system. (I recommend using the same information as you used on the Test Fire system.) You may have already created the account in Step 0, if you filed for an extension. If you did, try to use that account.

Note that your TCC won't be available on the Production FIRE system for several days after it's issued, which will prevent you from being able to create your account. My experience was that the Production System was one day faster than the Test System - I requested my TCC (Step 2) on a Sunday, and I could create my account on the FIRE Production System on Wednesday.

Assuming your test file from Step 6 was successfully transmitted, received, and passed their tests, your file created in Step 7 should be OK (fingers crossed).

Sign into FIRE, and upload the new file created in Step 7. You should be notified of success (or failure) via email, or you can Check the File Status in the FIRE Production System.


I hope these instructions help someone. It was quite frustrating to try to figure the IRS's process out.
If you see errors or have different experiences, please provide feedback or corrections.

Thanks @sdj0 for creating this software!!!

-J

sdj0 commented 2 years ago

This is great a great resource to have, thanks @jerfelix. I could see this being a supplement to the README (i.e. a second markdown tutorial that we link to from the README).

Were you able to get through the full process with the steps above?

jerfelix commented 2 years ago

Yes, I submitted a Test file on 3/31 to the test system, which was confirmed to be good on 4/1. I modified the json file to remove the "T" flag (for Test), re-ran fire-1099, and created a production version which I uploaded to the Production Fire server on 4/1, and it was confirmed on 4/2.

Total Elapsed time from Start to Finish was 17 days.

The only thing that bothered me was that I didn't get much validation that the file was what I intended it to be. The IRS told me that there was 1 person in the file, which was correct. But I didn't get any confirmation of the other fields, so I have to trust the software and the upload process.

Quite an ordeal just to use one lawyer.

tomoima525 commented 1 year ago

@jerfelix @sdj0 this is really helpful to understand how FIRE works! I have a question regarding filing, do you folks happen to know if there is a way to file 1099 programmatically? I searched a bit but seems like FIRE does not have an API that we can interact with.

jerfelix commented 1 year ago

@tomoima525 I haven't seen an API, and I kinda doubt that they have one. It seems like the IRS systems lag technology by about 20 years. I feel lucky that we have a file format to upload a file to. Best of luck, and I would like to hear back if you find an API.

tomoima525 commented 1 year ago

@jerfelix thank you for your quick response! Yeah their system is very classic. I've seen some companies offer a feature to submit 1099 document (e.g. https://docs.withabound.com/docs/1099-nec) so I believe there must be a way. I'll let you know once I find out.

sdj0 commented 1 year ago

@tomoima525 the closest thing I'm aware of would be including multiple "payer" objects in a single FIRE transmission. This way multiple entities can be included in one manual upload. Note that you'd have to modify the code to do this. I suspect this is how the paid software providers avoid excess manual uploading.

thorntonedgar commented 1 year ago

This was helpful, just wanted to say for future reference - if you only need to file one 1099, just use one of many software providers like this one: https://www.tax1099.com/ will take 5 min and be quicker than this process.

jerfelix commented 1 year ago

@thorntonedgar Thanks for the info. Where were you 7 months ago when I needed you!

Looks like it would have been $3 for tax1099.com ... well worth it.