This documentation describes a mock MCP server. It does not file with the IRS and does not connect to any IRS system.

Form 941 (and 941-X)

MOCK. Does not file with the IRS. Not tax advice. Fake data only.

What it is

Employer's QUARTERLY Federal Tax Return: reports federal income tax withheld plus employer and employee social security and Medicare tax. Source: https://www.irs.gov/forms-pubs/about-form-941 (retrieved 2026-10-23; page lists the 03/2026 revision).

Due dates (public IRS instructions)

Source: https://www.irs.gov/instructions/i941 (retrieved 2026-10-23).

Other facts from the same page: deposits are required when line 12 is $2,500 or more (current and prior quarter); a $100,000 next-day deposit obligation also triggers deposits; monthly vs semiweekly depends on the lookback period ($50,000 threshold); semiweekly depositors complete Schedule B; CPEOs and section 3504 agents file Schedule R; e-file needs a valid EIN. Exact line numbering is UNVERIFIED against the 03/2026 form; the mock's line numbers are approximate.

Fields the mock models (validate_return input)

Required: filer {ein, businessName, tradeName?}, taxYear (2023-2100), quarter (1-4), numberOfEmployees, wages, fitWithheld, totalDeposits, depositSchedule (lessThan2500 | monthly | semiweekly). Optional: noWagesSubjectToSsMedicare, ssWages, ssTips, medicareWages, addlMedicareWages, section3121qAmount, fractionsOfCentsAdj, sickPayAdj, tipsGtlAdj (adjustments may be negative), researchCredit, monthlyLiability {month1..3}, scheduleBTotal, scheduleB {month1..3: daily amounts[]}, scheduleR {filerType, clients[]}, form8974 {creditAmount, electedOnForm6765: true}, refund {choice, bank?}, header, stated. Unknown keys are rejected. Money has at most 2 decimals. The mock computes: 5a = ssWages x 12.4%, 5b = ssTips x 12.4%, 5c = medicareWages x 2.9%, 5d = addlMedicareWages x 0.9%, line 6 = fit + 5e + 3121(q), line 10 = line 6 + adjustments, line 12 = line 10 - researchCredit, balance due / overpayment against totalDeposits. Rates are hard-coded and may lag current law (UNVERIFIED).

Validation enforced (codes illustrative; see the error catalog)

Wages with zero employees (F941-001); FIT above wages (F941-003); line-4 box vs wages (F941-004); stated totals vs recomputed, more than $1.00 off is an error, up to $1.00 a -RND warning (F941-010..019); credit above line 10 (F941-020); lessThan2500 with line 12 of $2,500 or more (F941-030); monthly liability missing or not equal to line 12 (F941-031/032); semiweekly needs Schedule B total or detail equal to line 12 (F941-033/034); Schedule B day counts and totals (F941-036..039); Schedule R sums, duplicate and self EINs (F941-050..052); Form 8974 rules (F941-040..044); refund rules (F941-060..062); header, signature and EIN rules (see catalog).

Common rejection causes in the mock

  1. Monthly liabilities not summing to line 12 to the cent (F941-032). 2. EIN not starting 00 on a test transmission (R0000-148). 3. Resubmitting a return already accepted in this process (R0000-902-01). 4. researchCredit with no matching form8974 (F941-040/042). 5. Signature option set without the 8453-EMP attachment, signer and ERO blocks (R0000-183-01, HDR-030, HDR-031).

941-X (corrections)

Per-row {corrected, previous} for wages, fitWithheld, ssWages, ssTips, medicareWages, addlMedicareWages, researchCredit; processType adjustment or claim; explanation required; dateDiscovered required when tax increases; claimCertification required for a claim that reduces tax. The mock key is EIN + year + quarter + correctionSequence. A 941-X with no accepted 941 in this process gets warning R941X-W01, not a rejection. Official 941-X instructions were not fetched: UNVERIFIED.