# Tax forms and 1099s

Promoters sign a W-9 or W-8 inside BoltClaw, payouts wait for it, and at year end you download your 1099-NEC data. BoltClaw never files anything for you.

If you pay promoters in the United States, the IRS expects you to hold a tax form from each
of them, and at year end to report what you paid on Form 1099-NEC. BoltClaw collects the
forms, holds payouts until the right one is signed, and prepares the year-end data for you.

**BoltClaw prepares these forms; it does not give tax advice or file anything for you.** It
never files with the IRS, never withholds tax, and never checks a tax number against the
IRS's records. Every tax screen says so, and so does every answer of the tax operations
(`disclaimer`). Ask your accountant how the rules apply to your business.

## What a program asks for

Each program has its own setting, on the program's **Tax** tab or with
`PATCH /v1/referrals/programs/{id}/tax`:

| `tax_forms` | Who signs what | Whose payouts wait |
|---|---|---|
| `off` | Nobody is asked | Nobody's |
| `us_only` | A US person signs a **W-9**. Anyone else signs a short statement that they are not a US person | A promoter with no form, or whose form expired or was replaced |
| `all` | A US person signs a **W-9**, a person outside the US a **W-8BEN**, an organisation outside the US a **W-8BEN-E** | The same, and the short statement is not enough |

`us_only` is the usual choice for a program that pays in US dollars: the 1099-NEC is about
US persons, and a foreign promoter's statement is the record of why you did not report them.
Choose `all` when your accountant wants a W-8 on file for everyone abroad.

A program can also wait for the promoter's own invoice before each payout
(`invoice_required`), and issue self-billed invoices for EU and UK business promoters
(`self_billing`). Both are explained in [Self-billing invoices](https://boltclaw.ai/docs/referral-self-billing).

Changing these needs the **Payouts** permission. Turning a requirement off lets money that
waited for a form be paid, so an API key needs `referrals:payouts` as well as `referrals:write`
for it, and an AI assistant always asks a person first (`referral.tax.settings`), whatever your
organisation's approval settings say.

## What promoters sign, and how

A promoter never picks a form by its number. They answer two questions in plain words: are
you a US person for tax purposes, and are you signing for a business or organisation rather
than for yourself. The answers choose the form, and its questions are the IRS form's own, as
a substitute form the IRS allows: the same information as the paper form, the perjury
statement immediately before the signature, and the signature as the final entry.

To sign, a promoter:

- is signed in with a confirmed email address (Google, or a confirmed password account);
- has signed in within the last 15 minutes, and with two-step verification when their
  account has it;
- reads the full statement, types their full name and ticks "I sign this electronically".

The stored record holds the name, the time, the words "Electronically signed", how they
signed in and the form's revision, sealed with everything they answered. A form that no
longer matches what was signed is marked `invalid` the first time anyone opens it, and they
are asked to sign again. Every view, download and change is logged on the form.

**One promoter, many merchants.** A form is addressed to one business. When a promoter joins
another program that needs one, their answers prefill the new form and they sign once more.
A change of name, tax number or address replaces every live form (`superseded`), and each
merchant asks again.

**W-8s expire** at the end of the third calendar year after they were signed. The promoter
is emailed 60 and 14 days before; their payouts wait from the day it expires until they sign
a new one. A W-9 does not expire.

**Your own users** (referrers in your in-app panel) sign inside the panel when their program
pays them cash and asks for forms, with a code emailed to the address they type for
themselves. The copy they can download from the panel shows each tax number's last four
characters only and no date of birth: you hold the form complete. The code proves that the
person signing reads that address, and your server opened their panel session: the record is
as strong as your own sign-in for them.

## Payouts that wait

A promoter whose required form is missing, expired or replaced is left out of every payout
batch until they sign. **Ready to pay** shows them as waiting for a tax form (`wait:
"tax_form"` with `waiting_since` in `GET /v1/referrals/programs/{id}/payout-preview`), and the
promoter is asked to add their form to get paid. Nothing is cancelled: their commissions stay
approved and are paid in the next batch after they sign.

`GET /v1/referrals/programs/{id}/tax-forms` lists every promoter with their form's type,
revision, status and expiry, whether their payouts wait (`requirement_met`), since when
(`waiting_since`) and how much (`forfeitable_minor`). **No operation returns a tax number or
anything a form says.** Opening a form, as a PDF, is done in the dashboard, with two-step
verification and the **Payouts** permission, through a link good for ten minutes and one
download, and every opening is recorded.

## Forfeiting

Your program terms may say that money is forfeited when a promoter never sends a form. If
so, a person can forfeit it: on the program's **Tax** tab, or with
`POST /v1/referrals/partners/{id}/forfeit` and a reason of 3 to 500 characters. Every
approved commission of that promoter that waits for a form is given up, for good, and the
activity log records who did it, why and how much. What they earn afterwards is not touched.

Forfeiting is never automatic: no job does it, ever. Over the API it needs
`referrals:payouts` as well as `referrals:write`, and an AI assistant always asks a person
first (`referral.commission.forfeit`). Only money held for a missing, expired or replaced
form can be forfeited; anything else answers `409 CONFLICT`.

## The year-end screen

The year-end screen (or `GET /v1/referrals/tax-years/{year}`) lists everyone
your programs paid in a calendar year, as one person per account, with how each payout was
made, their form's status, and whether they belong on your 1099-NEC, with the reason in a
sentence. A person belongs on it when they gave you a W-9, are not a C or S corporation
(unless they are an attorney), and were paid at least the year's threshold in US dollars
through the providers you report. The threshold is **$2,000 for payments made in 2026**,
indexed for inflation from 2027; until a year's figure is set, no IRS file can be made for
it. A W-9 that says the IRS told them they are subject to backup withholding puts them on the
file whatever the amount.

The warnings say what to fix before you file:

| Warning | What it means |
|---|---|
| `no_form` | No tax form on file. If they are a US person, backup withholding (24%) may apply: ask your accountant |
| `no_tin` | Their W-9 has no tax number yet. Backup withholding (24%) may apply until they give one |
| `backup_withholding` | Their W-9 says the IRS told them they are subject to backup withholding (24%) |
| `form_superseded` | Their form was replaced after a change of details, and they have not signed a new one |
| `w8_expired` | Their W-8 has expired |
| `other_currency` | They were also paid in another currency. Only US dollars are counted: convert the rest with your accountant |
| `network_only` | Everything you paid them went through providers your 1099 table leaves out |

**BoltClaw does not withhold.** A US promoter paid without a correct tax number is shown with
"Backup withholding (24%) may apply: ask your accountant", and the general file marks them.

### The files

Three files are made in the dashboard, each with two-step verification and the **Payouts**
permission, recorded in the activity log, and downloaded through a link good for ten minutes
and one download. They carry tax numbers, so none of them is an API operation:

- **The IRIS CSV**, for the IRS's own IRIS Taxpayer Portal, at most 100 people a file. It
  needs your business's own 1099 details (legal name, EIN, US address and telephone),
  entered in the dashboard.
- **A general CSV** of everyone, included or not, with the reasons: for your accountant or
  another filing service.
- **Copy B**, the promoter's own copy, as a PDF. A promoter who agreed to receive it
  electronically (the IRS's disclosures are shown first: what it covers, how to withdraw,
  what they need to open it, how to ask for paper) finds it in their dashboard once you
  publish the year's copies. Everyone else: send them paper.

**The IRIS template.** The IRS publishes its 1099-NEC template only inside the IRIS portal,
behind a sign-in, and checks the header row exactly. BoltClaw builds the file from the IRS's
published formatting guidelines, and the form changed for 2026 (box 1 became box 1a). Before
your first upload, download the template from the portal and compare its header row with
the file's; if they differ, give your accountant the general CSV instead.

## Which providers count

A payment through a card or a payment network is reported by that network on Form 1099-K,
not by you on a 1099-NEC. Counting it twice would report the same money twice. So each
program's payouts are counted by how they were sent, in a table you can change, with a note,
in your business's tax details:

| Provider | Counted by default | Why |
|---|---|---|
| Paid by you (marked paid) | Yes | Usually a bank transfer, which is yours to report. If you paid through PayPal or another network, leave it out or ask your accountant how to split it |
| Your own payout system | Yes | A bank transfer is yours to report; change the row if your system pays through a network |
| **PayPal** | **No** | PayPal pays through a third-party network, and the IRS says such payments are reported on Form 1099-K by the payment settlement entity, not on a 1099-NEC |
| Wise | Yes | A bank transfer from your own account |
| Stripe Connect | Yes | Unless you use Stripe's 1099 tax reporting for your connected accounts, which files them for you |
| Tremendous | Yes | Gift cards and cash you send are your payments |
| Trolley | Yes | Unless you use Trolley Tax, which can make and e-file the 1099s for you |
| Tango | Yes | Gift cards and cash you send are your payments |

Each row in the dashboard cites its source. **Check the table with your accountant**: it is
a starting point, not advice. `GET /v1/referrals/programs/{id}/tax` returns it as
`providers`, with your own changes.

## Promoters outside the US

A promoter who is not a US person gets no 1099-NEC. Commissions for work done entirely
outside the US need no Form 1042-S either; check with your accountant if they worked in the
US. A W-8 or the short statement is the record of why you did not report them. For EU and UK
business promoters, see [Self-billing invoices](https://boltclaw.ai/docs/referral-self-billing).

## Events

| `event` | When |
|---|---|
| `referral.tax_form.signed` | A promoter signed a form for your business |
| `referral.tax_form.expiring` | A promoter's W-8 expires in 60 or 14 days (`days_left`) |

Each carries `program_id`, `partner_id` (their membership, once per program of yours they
are in), `form_type`, `status` and `valid_until`, never anything the form says. See
[Webhooks](https://boltclaw.ai/docs/webhooks).

<!-- https://boltclaw.ai/docs/referral-tax as markdown. Generated from openapi.yaml; API version 1.22.0. -->
<!-- Every /docs page answers as markdown: add .md to its path, or send Accept: text/markdown. -->
