← Al Davies, 250 High Street

Vendor W-9 and 1099 tracker in SharePoint before January

Short answer: make one SharePoint list with one row per vendor, a W-9 status, the date it arrived, and the amount you paid the vendor this year. Add a flag column that turns on at $2,000, and a weekly Power Automate flow that emails vendors who still owe you a form. This is a tracking aid. It is not tax advice. Ask your tax advisor which vendors need a 1099.

What the IRS pages say

These facts come from irs.gov pages. They are quoted so you can read the source yourself.

I do not say which of your vendors need a 1099. The IRS instructions set rules for payment types and special cases, such as card payments reported on Form 1099-K. Your tax advisor decides. The list below only tracks what you decide to track.

Step 1. Create the Vendors list

Create a blank list in Microsoft 365. Exact names may differ on your screen. Give each column a name without spaces at first, such as W9Status. Rename it afterward. Our advice, not a Microsoft rule: this makes the later filter query easier to write, because Microsoft's Get items page says spaces in a column name are replaced with _x0020_ in a query.

Columns:

  1. Title. The vendor's business name.
  2. VendorEmail. Type: Single line of text.
  3. W9Status. Type: Choice, with values 1 Not requested, 2 Requested, 3 Received.
  4. W9Requested. Type: Date and time, date only.
  5. W9Received. Type: Date and time, date only.
  6. PaidThisYear. Type: Number. The total you paid this vendor this calendar year, copied from your payment records.
  7. ThresholdFlag. Type: Calculated. See Step 2.
  8. RemindersSent. Type: Number. Default value 0.
  9. Owner. Type: Person. The person on your team who chases this vendor.
  10. W9FileName. Type: Single line of text. The file name of the form in your restricted library.

Step 2. Add the $2,000 flag

Microsoft's formula page shows the IF pattern with this example: =IF([Column1]<=[Column2], "OK", "Not OK"). Our advice, not a Microsoft rule: build the flag from the same pattern.

  1. Add a column. Choose Calculated (calculation based on other columns).
  2. Name it ThresholdFlag. Set the data type returned to Single line of text.
  3. Enter this formula: =IF([PaidThisYear]>=2000,"Review","Under")
  4. Save, then test it on one row with 1999 and one row with 2000.

Why 2000: it matches the $2,000 figure in the IRS instructions above. If the IRS adjusts the amount, change the number in the formula. Microsoft's page notes that calculated columns cannot reference other rows or other lists, so PaidThisYear has to be a number on the same row.

Our advice, not a Microsoft rule: add a view named Needs a form. Filter it to ThresholdFlag equals Review and W9Status not equal to 3 Received. That view is your list of vendors to chase first.

Step 3. Keep W-9 forms out of the list

A W-9 holds a taxpayer identification number. Our advice, not a Microsoft rule: do not type that number into any list column, and do not attach the form to a list row. Keep the form in a document library with restricted access, and store only the file name in W9FileName.

To restrict a library:

  1. Open the library. Select Settings, then Library settings. If you see More library settings, select it. Then select Permissions for this document library.
  2. Select Stop Inheriting Permissions. Microsoft's permissions page names this button for breaking inheritance from the parent.
  3. Remove the groups that should not open W-9 forms. Keep only the people who handle vendor payments.

Microsoft's page says that while it is not recommended, breaking inheritance "is a supported scenario within reasonable use." It recommends managing team site permissions through the site's Microsoft 365 group. It also warns that after you remove permissions, "Restoring them will not be possible." Ask your admin before you change permissions on a library other people use.

Step 4. Build the reminder flow

The flow runs on a schedule, reads vendors with no W-9, and emails each one.

  1. Sign in to Power Automate. Select My flows, then Create from blank.
  2. Choose Add a trigger and pick Recurrence from the results.
  3. Make it weekly: Interval 1, Frequency Week, as Microsoft's scheduling page describes. Then choose a Time zone.
  4. Add the SharePoint action Get items. Choose your Site Address and the Vendors list.
  5. In Advanced options, set Filter Query to: W9Status ne '3 Received' and RemindersSent lt 3
  6. Set Top Count to 5000. Open the action Settings and turn Pagination on. The Get items default limit is 100 and Top Count goes up to 5,000, per Microsoft. See "Power Automate Get items stops at 100 rows: how to get them all".
  7. Add Send an email (V2) from Office 365 Outlook. Power Automate wraps it in Apply to each. Set To to the VendorEmail value. Write a short subject and body asking for the W-9.
  8. After the email, add the SharePoint action Update item. Set RemindersSent to the current value plus 1, and W9Status to 2 Requested.
  9. Select Save.

Microsoft's Get items page lists ne and lt among the supported comparisons. Run it once and read the Get items output to confirm it returns the rows you expect.

The count stops the flow from emailing the same vendor without end. Our advice, not a Microsoft rule: this is the guard for a flow that emails outside people. The flow runs on a schedule, so Update item does not start it again. If you ever change the trigger to When an item is created or modified, add a Yes/No column named Reminder sent. Have the flow check that it is not Yes, send, then set it to Yes.

What the email says is your call. Keep it short, name the form, and say who to reply to. Do not ask the vendor to put a taxpayer identification number in the email body.

Step 5. Year-end check

  1. In early January, open the Needs a form view and chase the rest.
  2. Hand your tax advisor a view of all vendors with ThresholdFlag equal to Review.
  3. After filing, copy the list to an archive and reset PaidThisYear for the new year. See "Move closed items to an archive list so the main list stays fast".

Also see "How to set up a vendor list with renewal dates in SharePoint" and "Send a reminder before a due date in a SharePoint list".

Honest limits

When to get help

You can build all of this yourself in Microsoft 365. If you would rather have it built and tested for your team, I do that. A tracker like this is a fixed price: $5,000 for one, built in 2 weeks. See "What a SharePoint tracker costs to build". Bring one example of the problem to a free call.

Tell me what's still manual

I am Al Davies. I run 250 High Street LLC and build SharePoint trackers and Power Automate flows for operations teams. I work remotely. The first call is free, and I will not try to sell you anything.

See trackers I built: Tools I built

FAQ

When is the 1099-NEC due for 2026 payments?

The IRS says January 31, and if that date falls on a Saturday, Sunday or legal holiday it moves to the next business day. January 31, 2027 is a Sunday, so ask your tax advisor to confirm February 1, 2027.

What is the 1099 threshold now?

The IRS instructions say the minimum reporting amount for certain payments increased to $2,000 for tax years beginning after 2025.

What vendors receive a 1099?

I do not decide that. The IRS Instructions for Forms 1099-MISC and 1099-NEC set the rules, and your tax advisor applies them to your vendors.

How do I track 1099 vendors in SharePoint?

Keep one row per vendor with W-9 status, date received and amount paid this year, plus a flag column at $2,000.

Should I store tax IDs in a SharePoint list?

Our advice, not a Microsoft rule: no. Keep W-9 forms in a restricted library and store only the file name in the list.

Sources