Now filing 1095-B and 1095-C for ACA reporting.Learn more →
    Tax compliance — our first service

    Verify every TIN before it hits the IRS.

    Plain Dot validates name and TIN combinations against IRS records, in real time or in bulk. Catch mismatches before they become B-Notices, late penalties, or rejected filings.

    Millions
    of TINs verified
    Up to $3M
    in penalties prevented
    100+
    Finance & ops teams trust Plain Dot

    This is one of five services on the Plain Dot platform. The others — 1099 filing, W-9 collection, Form 720, and API Rails — share the same plumbing and the same accountable team.

    TIN match · batch_4271IRS connected
    1,248 records · 3.2s
    Matched
    1,196
    95.8% of batch
    Mismatched
    37
    Auto-flagged
    Invalid
    15
    Bad TIN format
    Name
    Type
    TIN
    Result
    Acme Corporation
    EIN
    12-3456789
    Match
    Northwind Studios
    EIN
    84-2210556
    Match
    Harborline Rentals
    EIN
    47-9981230
    Name mismatch
    Cedar & Co.
    SSN
    •••-••-4422
    Match
    Trusted by finance & compliance teams
    Savvy Bookkeep
    Don Pedro Financial

    Two ways to match. One source of truth.

    Whether you're onboarding a single vendor or validating thousands of payees before a filing run, the same authoritative IRS data backs every response.

    Real-time API

    Verify one TIN at a time.

    Drop a single REST call into your vendor onboarding flow and get a match result back in milliseconds — no batch windows, no overnight waits.

    • Synchronous match response in under a second
    • Idempotent requests with stable result codes
    • Name and TIN type validation (EIN, SSN, ITIN)
    • Webhook callbacks for downstream automation
    Built for onboarding flows, marketplaces, and any system that needs instant vendor approval.
    Bulk Match

    Validate full payee lists.

    Upload thousands of records before a filing cycle. We return matched, mismatched, and invalid rows in a single structured response.

    • CSV, Excel, or API-driven bulk submission
    • Itemized status per record with reason codes
    • Mismatch and invalid TINs auto-flagged for review
    • Run again as you correct records — no extra cost
    Ideal as a pre-flight check before any 1099 transmission. If a TIN fails, our team chases the corrected W-9 before the filing window closes. That's part of the price, not an add-on.
    Penalty risk calculator

    How much are you exposed to in B-Notice penalties?

    Industry average mismatch rate is ~5%. IRS penalties under §6721 reach up to $310 per incorrect 1099 filed.

    Likely TIN mismatches25 records
    IRS penalty per mismatch$310
    Exposure without verification$7,750
    Exposure with Plain Dot TIN matching$310
    Estimated savings
    $7,440
    Get your custom quote

    Same calculator logic lives on the 1099 Filing page. The bigger you are, the bigger that number gets — and the more obvious the case for verifying before you file.

    Industries

    Built for the teams paying the most payees.

    Lending

    Originate without onboarding risk.

    Verify business borrowers against IRS records before underwriting decisions.

    Insurance

    Pay claims to the right entity.

    Match payee TINs before disbursing claim payouts and 1099 reporting.

    Fintech

    Onboard merchants at API speed.

    Drop a single call into your KYB flow — instant match, structured response.

    Banking

    Reduce reportable-payee exposure.

    Pre-flight every payee before annual 1099-INT, -DIV, and -MISC runs.

    Reason codes

    Every mismatch, explained.

    We return the IRS's full reason code on every response so your ops team knows exactly what to fix — not just that something failed.

    Code
    Status
    What it means
    0
    Match
    Name and TIN match IRS records.
    1
    TIN missing
    TIN was not provided or is empty.
    2
    Invalid TIN
    TIN format invalid — bad length or characters.
    3
    Name/TIN mismatch
    Combination doesn't match IRS records. Request W-9.
    4
    Invalid request
    Submission rejected by IRS validator.
    5
    Duplicate
    Same TIN submitted twice in batch — auto-deduped.
    6
    SSN match (1-line)
    Single-line SSN/Name match.
    7
    EIN match (1-line)
    Single-line EIN/Name match.
    8
    Match either
    Match found as either SSN or EIN.
    How it works

    From submission to verified status.

    01 · Submit

    Send TIN and legal name.

    Use our REST API for single records, or upload a CSV/Excel file for bulk runs. Requests are idempotent and traceable end-to-end.

    02 · Match

    Direct IRS verification.

    We query the IRS TIN matching service through our authorized integration and return a structured match status per record.

    03 · Resolve

    Mismatches, surfaced clearly.

    Bad combinations are flagged with a reason code and ready for re-submission. No more guessing why a filing was rejected.

    04 · File with confidence

    Clean data into the IRS.

    Matched records flow straight into your 1099 filing run. Mismatches are held back until corrected — no penalties, no B-Notices.

    Resilience

    Keep validating, even when the IRS is offline.

    The IRS TIN matching service goes down for outages. Plain Dot queues your requests, retries with exponential backoff, and returns results the moment the IRS is back online — no failed batches, no missed filings.

    • Smart queueing
      Submissions are persisted and replayed automatically.
    • Idempotent retries
      Safe to resend — duplicate calls collapse to one record.
    • Status webhooks
      Get notified when delayed results land.
    • 99.99% gateway uptime
      Our API stays up even when the IRS service doesn't.
    Developer-first

    A clean API for finance teams.

    Integrate IRS TIN matching with a few lines of code. REST endpoints, idempotent by default, sandbox included.

    const response = await api.verifyTIN({
      name: "Acme Corporation",
      tin: "12-3456789",
      tinType: "EIN"
    });
    
    if (response.matchStatus === "MATCH") {
      console.log("IRS validation successful.");
    }
    Pricing

    Pay for what you verify.

    Every plan includes the human-in-the-loop review when something fails — not a separate line item.

    Starter
    $19/month

    For occasional verification needs.

    • 100 TIN checks/month
    • Real-time + bulk
    • Email support
    • Reason codes included
    Start free
    Growth
    $99/month

    For active vendor onboarding teams.

    • 1,000 TIN checks/month
    • REST API + webhooks
    • Sandbox environment
    • Priority support
    Book demo
    Scale
    $349/month

    For high-volume filing operations.

    • 10,000 TIN checks/month
    • Bulk SLA-backed
    • OFAC-ready hooks
    • Dedicated CSM
    Book demo
    Enterprise
    Custom

    Custom volume, SLAs, and contracts.

    • Unlimited checks
    • SSO + audit log
    • Custom integrations
    • Private cloud option
    Talk to sales
    Customer outcomes

    Real teams, real penalty reduction.

    73%
    fewer manual reviews

    "We cut manual TIN review by 73% in the first quarter. The mismatch reason codes are gold for our ops team."

    Head of Vendor Ops
    Logistics company
    $0
    in B-Notice penalties

    "Before Plain Dot, we'd absorb six-figure B-Notice penalties every year. This year — zero."

    VP Finance
    Equipment-rental company
    <1s
    match response

    "Dropped the API into our merchant onboarding flow in an afternoon. Match results in under a second."

    Engineering Lead
    Fintech platform
    FAQ

    Common questions about IRS TIN matching.

    Don't see your question? Send us a note.

    First check free
    Run your first TIN match on us. No card required.
    Try it free →
    Security & compliance
    IRS-authorized · independently audited · no payee data sold, ever.
    SOC 2 Type II (in progress)ISO 27001TLS 1.3Encrypted at restMFA / SSOAudit log

    Stop chasing B-Notices. Start matching in minutes.

    Tell us your batch size and we'll get you onboarded fast.

    Start free