Insurance companies file 1099-R for retirement and annuity distributions and 1099-LTC for long-term-care and accelerated death benefits, and on IRIS each of those forms maps to a named XML element rather than a numbered box on a flat file. The system enforces arithmetic that paper never checked — a taxable amount can never exceed the gross distribution, and a 1099-LTC payment cannot be flagged as both per-diem and reimbursed at once — so a record that sailed through FIRE can be rejected on IRIS. Both the recipient copy and the electronic filing deadlines still govern your January, and because the FIRE system retires on December 31, 2026, this is the last full season to make the move on your own schedule. If your deadline won't wait, a provider that already holds a TCC and is approved for these form types can file today.
In this story
The Two Forms Insurers Live and Die By
Most industries that file 1099s deal with a single, fairly forgiving form. Insurance carriers are different, because the two forms central to the business — 1099-R and 1099-LTC — are among the most heavily validated in the entire series, and the people who fill them out are usually closer to the policy than to the tax code.
The 1099-R reports distributions from pensions, annuities, retirement plans, and insurance contracts. Every time a policyholder takes an annuity payout, surrenders a contract, or receives a death-benefit distribution that carries a taxable component, that event lands on a 1099-R. The 1099-LTC, by contrast, reports the benefits paid under a long-term-care insurance contract or as an accelerated death benefit on a life policy — the money that flows when a chronically or terminally ill insured begins drawing on coverage. They look unrelated on paper, but on IRIS they share the same fate: the system reads each amount you report and checks it against the others before it will accept the return.
That shift is the whole story of this guide. On the legacy FIRE system you submitted a fixed-width flat file, and the IRS sorted out the consequences later. On IRIS — the Information Returns Intake System that replaces FIRE — you submit structured XML in which every figure has a named home, and the system runs business rules against those names the moment the return arrives. A taxable amount that exceeds the gross distribution is no longer a quiet inconsistency the IRS may notice eventually; it is a rule the schema can reject outright.
The IRIS Application to Application (A2A) program, the XML schema, and the business-rule catalog that validates insurer filings are defined in IRS Publication 5717 and its companion publications, with assurance testing covered in Publication 5719. The element names and rule IDs in this guide are drawn from the IRIS TY2025 schema and rule library; consult the publications for the authoritative text.
How IRIS Actually Reads a 1099-R Distribution
When you file a 1099-R through IRIS, the boxes a policyholder would recognize on the printed form become named elements inside a Form1099RDetail record. Box 1, the gross distribution, becomes GrossDistributionAmt. Box 2a, the taxable amount, becomes TaxableAmt. Box 7, the distribution code that tells the IRS whether this was a normal distribution, an early one, a death benefit, or a rollover, becomes Form1099RDistributionCd. The familiar IRA/SEP/SIMPLE checkbox becomes IRASEPSIMPLEInd. Because each value is labeled rather than positioned, IRIS can compare them to one another, which is exactly where insurers used to filing on FIRE get surprised.
| Printed 1099-R | IRIS XML element | Why it matters |
|---|---|---|
| Box 1 — Gross distribution | GrossDistributionAmt | The ceiling for every other dollar amount on the record. |
| Box 2a — Taxable amount | TaxableAmt | Validated against the gross — it can never exceed it. |
| Box 2b — Taxable amount not determined | TxblAmountNotDeterminedInd | When set, IRIS constrains what TaxableAmt may contain. |
| Box 3 — Capital gain | CapitalGainAmt | Also checked against the gross distribution. |
| Box 4 — Federal income tax withheld | FederalIncomeTaxWithheldAmt | Flagged when it looks excessive relative to the amounts reported. |
| Box 7 — Distribution code(s) | Form1099RDistributionCd | Drives how the distribution is classified. |
The highlighted row is the one that catches carriers most often. On a paper return, an annuity administrator could enter a taxable amount that happened to round above the gross, or carry a determined taxable amount on a contract that was actually marked as undetermined, and nobody downstream would stop the form. On IRIS, the schema runs a rule against those exact elements at intake, and the return comes back rejected instead of filed. The fix is never mysterious — it is almost always a data-entry or mapping error in the source system — but you only learn about it because IRIS refused the record.
The Long-Term-Care Form Has Its Own Quiet Trap
The 1099-LTC carries fewer boxes than the 1099-R, but it hides a constraint that the printed form never made obvious. Inside a Form1099LTCDetail record, the gross benefits paid become GrossLTCBenefitPaidAmt and any accelerated death benefit becomes AcceleratedDeathBenefitPaidAmt. Two indicators describe the insured's status — LTCInsuredChronicallyIllInd and LTCInsuredTerminallyIllInd — and a QualifiedContractInd flags whether the policy is a tax-qualified long-term-care contract. So far, so mechanical.
The trap lives in two more indicators: PerDiemInd, which marks a benefit paid on a per-diem (indemnity) basis, and ReimbursedAmountInd, which marks a benefit paid as reimbursement of actual expenses. A given payment is one or the other — it cannot be both — and IRIS encodes that as a hard rule. If your source system sets both flags on the same record, the form fails validation. This is the kind of inconsistency a flat-file world tolerated silently and the named-element world refuses to.
Here is a difference insurers should plan around before they map a single field: the 1099-R is eligible for Combined Federal/State Filing on IRIS, but the 1099-LTC is not. The CF/SF election in IRIS applies only to a defined list of forms, and long-term-care benefits are outside it. If your long-term-care book spans states with their own reporting requirements, you cannot lean on CF/SF to carry those returns to the states for you — you have to plan a direct state path for the 1099-LTC even while your 1099-R volume rides CF/SF.
Two Layers of Checking: Schema First, Business Rules Second
It helps to know that IRIS validates an insurer's return in two stages, because the two stages fail in different ways and have different fixes. The first stage is the schema itself, which checks that the XML is well-formed and that the required structure is present — whether a 1099-R record even carries the totals group it must have, or whether a number sits where a number belongs. The second stage is the business-rule catalog, which checks whether the values make sense together once the structure is sound.
The structural rules are unforgiving but predictable. A 1099-R submission that omits its required totals group is rejected by rule S1H022, which states that when the form type is 1099R, the Form1099RTotalAmtGrp must be present. A 1099-LTC submission has the parallel requirement under S1H015 for its Form1099LTCTotalAmtGrp, and both forms must carry their detail records under rule SMD001. These are not judgment calls; they are presence checks, and a correctly built file clears them every time.
Where the business rules bite an insurer
The business rules are where distribution math gets enforced. Rule F1099R002 requires that a nonzero TaxableAmt never exceed GrossDistributionAmt; rule F1099R003 says the same for CapitalGainAmt. Rule F1099R006 ties the undetermined-taxable-amount indicator to the IRA/SEP/SIMPLE indicator and constrains what the taxable amount may be. On the long-term-care side, rule F1099LTC001 is the one behind the per-diem-versus-reimbursed trap: the sum of PerDiemInd and ReimbursedAmountInd cannot be greater than one. Each of these is a real, catalogued rule with a real ID, and each maps to a concrete mistake you can prevent at the source.
Filing Across Thousands of Policies Without Hand-Building XML
An insurer rarely files one 1099-R. A mid-sized carrier files tens of thousands across annuity contracts, retirement plans, and surrendered policies, and a long-term-care writer adds a 1099-LTC for every insured drawing benefits. IRIS offers two ways in: the portal, where you key or upload returns through a browser, and the Application to Application (A2A) channel, where your systems transmit XML directly to the IRS. For an insurer at volume, A2A is the realistic path, because keying thousands of distribution codes by hand is neither fast nor safe.
Whichever channel you choose, the same business rules apply, and the same arithmetic gets checked on every single record. That is the part insurers underestimate: a batch of fifty thousand 1099-R records is fifty thousand opportunities for a taxable amount to exceed a gross distribution, and IRIS will surface each one. The work of filing at volume is therefore mostly the work of validating at volume — running your own pre-checks against the rule catalog before you transmit, so that a Receipt ID comes back instead of a list of rejected records under deadline pressure.
For the 1099-R, the recipient copy is due to the policyholder by January 31 and the electronic return is due to the IRS by March 31. The 1099-LTC follows the general information-return timing, with the recipient statement furnished in late January and the electronic filing due in the spring. The January date is the one that defines the crunch, because that is when distribution data must be finalized across every policy before statements go out — and on IRIS, finalized means validated.
When a Distribution Was Reported Wrong
Insurers correct returns constantly — a distribution code was wrong, a taxable amount was restated after a contract review, a death-benefit allocation changed. IRIS handles this with a CorrectedInd on the record and a VoidInd for records that should never have been filed at all. The mechanics of correcting a return on IRIS deserve their own walkthrough, and the broader correction workflow is covered in our guide to filing corrections via IRIS. What matters for the insurance context is that a correction is still a full return that must pass the same validation as the original, so a corrected 1099-R whose taxable amount still exceeds its gross distribution will be rejected exactly like the first attempt.
Common Rejection Reasons (and How to Avoid Them)
These are the failures that show up most often on insurer filings, ordered roughly by how frequently they bite. Each one is a real IRIS rule, and each has a fix that lives in your source data rather than in IRIS itself.
Cause: a 1099-R record carries a TaxableAmt larger than its GrossDistributionAmt, which fails rule F1099R002. This usually comes from a rounding error, a field swap in the export, or a restated taxable amount that was not pushed back through the gross. Fix: reconcile box 2a to box 1 in your source system before export so the taxable figure is always equal to or below the gross.
Cause: both PerDiemInd and ReimbursedAmountInd are set on the same record, so their sum exceeds one and rule F1099LTC001 fires. It typically happens when a benefits system stores both an indemnity flag and a reimbursement flag and exports them together. Fix: map each long-term-care payment to exactly one basis — per-diem or reimbursed — and let the export emit only the one that applies.
Cause: a 1099-R submission omits its Form1099RTotalAmtGrp (rule S1H022) or a 1099-LTC submission omits its Form1099LTCTotalAmtGrp (rule S1H015). This is almost always a builder that emits the detail records but forgets the submission-level totals. Fix: ensure your XML assembler always produces the totals group for each form type, computed from the detail records it just wrote.
Cause: a nonzero CapitalGainAmt exceeds GrossDistributionAmt on a 1099-R, failing rule F1099R003. It shows up on older annuity contracts where the capital-gain figure is calculated separately and never re-checked against the gross. Fix: validate box 3 against box 1 at the same point you validate box 2a.
Cause: the issuer's TIN and legal name on the return do not match IRS records, which fails rules SMF017 and SMF018 at the submission level. For carriers that file under multiple legal entities or recently reorganized, the wrong entity name is an easy mistake. Fix: file each form under the exact legal name tied to the EIN in IRS records, matching the name on the entity's CP 575, not a marketing or DBA name.
Skip the Distribution-Math Guesswork Entirely
Filing distribution and long-term-care benefits at insurer scale?
e1099f maps your policy and distribution data into validated IRIS XML and runs the full rule catalog before transmission, so 1099-R and 1099-LTC come back as Receipt IDs, not rejects.
Distribution math pre-checked
Every taxable, capital-gain, and gross figure is reconciled against the rules before we submit, so F1099R002 and F1099R003 never surprise you.
1099-LTC handled correctly
Per-diem and reimbursed benefits are mapped to a single basis automatically, so the F1099LTC001 trap can't fire on your book.
Built for volume
Thousands of 1099-R and 1099-LTC records validate and transmit through IRIS A2A in one batch, with corrections handled the same way.
A Receipt ID for the whole batch — whether you file fifty records or fifty thousand.
Frequently Asked Questions
Which forms do insurance companies file on IRIS?
Why does IRIS reject a 1099-R that FIRE accepted?
TaxableAmt exceeds its GrossDistributionAmt — an inconsistency FIRE's flat file never checked. The data was always wrong; IRIS is simply the first system to stop it.Can I report a 1099-LTC payment as both per-diem and reimbursed?
PerDiemInd and ReimbursedAmountInd not exceed one, so each payment must be flagged on exactly one basis. Setting both will fail validation.Is the 1099-LTC eligible for Combined Federal/State Filing?
Where does the box 7 distribution code go in IRIS XML?
Form1099RDistributionCd element, which the schema documents as the line-7 distribution code. The IRA/SEP/SIMPLE checkbox becomes IRASEPSIMPLEInd.What are the 1099-R deadlines?
What's the difference between a schema error and a business-rule error?
Form1099RTotalAmtGrp under rule S1H022. A business-rule error means the structure is fine but the values are inconsistent, like a taxable amount exceeding a gross distribution under F1099R002. The fix differs: rebuild the structure versus correct the data.Does my issuer name have to match the IRS exactly?
How do I correct a 1099-R that was filed with the wrong distribution code?
CorrectedInd set. The correction is a full return and must pass the same validation as the original, so the corrected record still has to satisfy every applicable rule.Can I still file insurance 1099s on FIRE?
Do I need to understand any of this to file through e1099f?
Not tax advice. This is general information about IRS procedures for filing 1099-R and 1099-LTC through IRIS, and it may change as the IRS updates the system. The IRIS schema, business-rule catalog, and IRS publications are authoritative; consult a tax professional for your company's specific situation.