Install
openclaw skills install vendor-compliance-10991099 vendor compliance pipeline for accounting firms. Pulls full-year General Ledger from QBO, aggregates vendor payments, applies IRS $600 threshold, classifies 1099-NEC vs 1099-MISC, checks corporate exemptions, tracks W-9 and TIN status, filters credit card payments (1099-K handled by processor), calculates late-filing penalties, and produces year-over-year CDC. Outputs an 8-tab Excel workbook. Use for year-end 1099 compliance runs, W-9 tracking, and IRS threshold checks. NOT for payroll W-2, 1042-S foreign withholding, or 1099-K reconciliation.
openclaw skills install vendor-compliance-10991099 vendor compliance pipeline for accounting firms. Pulls the full-year General Ledger from QBO, aggregates vendor payments by name, applies IRS $600 threshold, classifies 1099-NEC vs 1099-MISC, checks corporate exemptions, tracks W-9 and TIN status, filters credit card payments (1099-K handled by processor), calculates late-filing penalties, and produces a year-over-year CDC. Outputs an 8-tab Excel workbook.
Trigger phrases: "run 1099 compliance," "vendor 1099 check," "pull 1099 list," "who needs a 1099," "1099 vendor scan," "W-9 tracker," "1099-NEC list," "1099-MISC list"
NOT for: payroll W-2 compliance, 1042-S foreign withholding, 1099-K reconciliation (CC processor), or non-US entities.
scripts/pipelines/vendor-compliance-1099.py
# Standard run
python3 scripts/pipelines/vendor-compliance-1099.py --slug my-client --year 2025
# QBO sandbox
python3 scripts/pipelines/vendor-compliance-1099.py --slug my-client --year 2025 --sandbox
# Custom output directory
python3 scripts/pipelines/vendor-compliance-1099.py --slug my-client --year 2025 --out ~/Desktop/1099s
# Skip GL pull (empty vendor list — testing only)
python3 scripts/pipelines/vendor-compliance-1099.py --slug my-client --year 2025 --skip-gl
Arguments:
| Flag | Required | Default | Notes |
|---|---|---|---|
--slug | ✅ | — | QBO client slug |
--year | ✅ | — | Tax year (e.g. 2025) |
--sandbox | ❌ | false | Use QBO sandbox |
--skip-gl | ❌ | false | Skip GL pull (empty output — testing only) |
--out | ❌ | ~/Desktop | Output directory |
| Tab | Contents |
|---|---|
| Vendor Summary | All vendors: total paid, ACH/check/wire vs CC split, form type, corp exempt flag, action required |
| 1099-NEC List | Contractors/service vendors ≥$600 (reportable amount only), W-9 status, TIN status, action |
| 1099-MISC List | Rent, royalties, prizes ≥$600 with MISC box classification (Box 1/2/3/6/10) |
| Exemptions | Corp-flagged vendors (LLC/Inc/Corp/Ltd) requiring manual entity-type verification before skipping 1099 |
| W-9 Tracker | Per-vendor W-9 received/pending/missing status; persisted between runs; editable date/TIN fields |
| Payment Methods | ACH/check/wire vs. credit card split per vendor; CC excluded from 1099 reportable amount |
| Penalties Calc | IRC §6721/6722 penalty scenarios: on-time, 15/30/45/60/90 days late + today's actual exposure |
| CDC Log | New vendors (not in prior year), dropped vendors, amount changes ≥10% or ≥$500 YoY |
Output filename: VendorCompliance_1099_{slug}_{year}.xlsx
| Form | When | Keyword triggers |
|---|---|---|
| 1099-NEC | Non-employee compensation: contractors, consultants, attorneys, sole proprietors | contractor, freelance, consultant, attorney, repair, cleaning, design, etc. |
| 1099-MISC | Rent, royalties, prizes, medical payments | rent, royalty, prize, award, medical, healthcare |
Default is 1099-NEC — NEC is assumed for all service payments unless account/memo indicates MISC category.
LLC|Inc|Corp|Ltd|Co.|Company|etc. → flagged as potentially exempt.cache/vendor-compliance-1099/{slug}-w9.jsonNO status.cache/vendor-compliance-1099/{slug}-tin.json| Form | Recipient Copy | IRS Paper | IRS e-File |
|---|---|---|---|
| 1099-NEC | January 31 | January 31 | January 31 |
| 1099-MISC (Box 7) | January 31 | January 31 | January 31 |
| 1099-MISC (other boxes) | January 31 | February 28 | March 31 |
e-File required if filing 10+ information returns.
| Days Late | Per Form | Small Biz Annual Cap |
|---|---|---|
| ≤30 days | $60 | $232,500 |
| 31–60 days | $120 | $664,500 |
| >60 days | $310 | $1,329,000 |
| Intentional disregard | $630 minimum | No cap |
Small business = avg annual gross receipts ≤$5M for 3 prior years.
| File | Purpose |
|---|---|
.cache/vendor-compliance-1099/{slug}-{year}.json | YoY snapshot for CDC (auto-saved each run) |
.cache/vendor-compliance-1099/{slug}-{year-1}.json | Prior year snapshot for comparison |
.cache/vendor-compliance-1099/{slug}-w9.json | W-9 status (persisted, editable manually) |
.cache/vendor-compliance-1099/{slug}-tin.json | TIN status (persisted, editable manually) |
Updating W-9 status manually:
# Edit cache file directly to update W-9 status
cat .cache/vendor-compliance-1099/my-client-w9.json
# Modify "VendorName": "YES" | "NO" | "PENDING"
# Then re-run pipeline — status will be loaded automatically
pip install openpyxlAll financial calculations use Python Decimal with ROUND_HALF_UP at 2 decimal places. No float arithmetic. Same pattern as tax-package-prep.py and pl-deep-analysis.py.
Run this pipeline as part of year-end close: