Create
Create
Use this endpoint to create one or more Form W-2 returns in a single submission. The Employee copies, SSA e-file and state e-file can all be requested in the same call.
Filing Services
Each return has its own ReturnManifest where you opt into filing services. Set at least one of the following:
- Federal Filing - Set IsFederal to TRUE to e-file the return with the IRS.
- State Filing - Set IsState to TRUE to file with the relevant state agency. State filing will not be created for states that do not require it.
- State-only filing - Set IsState to TRUE and IsFederal to FALSE. Use this when the federal return has already been filed outside of TaxBandits.
Distribution Services
Optionally, enable recipient copy distribution within ReturnManifest by setting IsDistribution to TRUE and configuring DistributionDetails:
- Postal Mailing - Set DistributionType to POSTAL_ONLY and PostalType to USPS_FIRST_CLASS. TaxBandits prints and mails the recipient copy via USPS First Class on your behalf.
- Online Access - Set DistributionType to ONLINE_ACCESS. The recipient's Email is required. They will be notified via email and can view and download their copy through a secure online portal.alf.
If you want to enable both Postal Mailing and Online Access, set DistributionType to POSTAL_AND_ONLINE.
POST formw2/create Request Body
| Field | Type | Description |
|---|---|---|
| SubmissionManifest | object[] | SubmissionManifest provides brief information about a particular submission on the whole. It contains information like
|
| TaxYear | string | Tax year of Form W-2 to be filed.Allowed values"2025", "2026" |
| IsScheduleFiling | Boolean | When true, schedule filing services will be enabled for Form W-2 returns under this submission. |
| ScheduleFiling | object[] | Optional Contains the preferred date to submit the returns to the IRS. Required only when "IsScheduleFiling" is True. |
| EfileDate | string | Date of Schedule Filing. Enter the date in the format: MM/DD/YYYY or MM-DD-YYYY. Example: 01/25/2026 or 01-25-2026 |
| ReturnHeader | object | Contains information about the Business details. |
| Business | object | Object to identify the Business Details. |
| BusinessId | Guid | Optional Use the unique Business ID (Generated by TaxBandits) that you received in the response of the Business CREATE Endpoint. If you do not have a Business ID, ignore the field. By giving the Business ID, you do not have to provide all the business information again. |
| PayerRef | string | Optional Your unique identifier for the payer. Can replace BusinessId in future requests. Size Range: 50 |
| IsDefaultBusiness | Boolean | When set to TRUE, this business will be set as the default across requests that do not specify a business. |
| TINDetails | object | TIN information for the business. |
| Format | string | Specifies how the TIN is passed.Allowed values"PLAIN_TIN" — Pass TIN directly. |
| TINType | string | Specify the TIN type of the business.Allowed values"EIN", "SSN", "QI-EIN", "ITIN", "WP-EIN", "WT-EIN", "NQI-EIN", "IRSN" |
| TIN | string | The TIN value according to the Format selected. |
| IndividualNm | object | Required when TINType is SSN. Provide individual name fields instead of BusinessNm. |
| FirstNm | string | The first name of the individual. Size Range: 20 |
| MiddleNm | string | Optional Middle name of the individual. Size Range: 20 |
| LastNm | string | The last name of the individual. Size Range: 20 |
| Suffix | string | Optional Suffix of the individual's name.Allowed values"Jr", "Sr", "I", "II", "III", "IV", "V", "VI", "VII" |
| BusinessNm | string | Legal name of the business. Required when TINType is EIN. Size Range: 75 |
| NameCtrl | string | Name control of the business as registered with the IRS. Size Range: 3..4 |
| DBADetails | object[] | Optional DBA (Doing Business As) information. |
| DBANm | string | Name of the DBA. Size Range: 75 |
| DBARef | string | Unique identifier for the DBA. Size Range: 1-50 |
| DBAId | Guid | TaxBandits-generated DBA identifier. |
| Address | object[] | Address information of the DBA. |
| Address1 | string | Street address or PO Box. Size Range: 46 |
| Address2 | string | Optional Suite or apartment number. Size Range: 46 |
| City | string | DBA's city. Size Range: 50 |
| ProvinceOrState | string | DBA's province or state name. Allowed values When the country code is US: Allowed values"AL", "AK", "AZ", "AR", "CA", "CO", "CT", "DE", "DC", "FL", "GA", "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MD", "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ", "NM", "NY", "NC", "ND", "OH", "OK", "OR", "PA", "RI", "SC", "SD", "TN", "TX", "UT", "VT", "VA", "WA", "WV", "WI", "WY", "AS", "FM", "GU", "MH", "MP", "PW", "PR", "VI", "AA", "AE", "AP" Allowed values"AB", "BC", "MB", "NB", "NL", "NT", "NS", "NU", "ON", "PE", "QC", "SK", "YT" |
| Zipcd | string | DBA's ZIP code. Size Range: 5-16 |
| Country | string | DBA's 2-character country code.Allowed values"US","AF", "AX", "AL", "AG", "AQ", "AN", "AO", "AV", "AY", "AC", "AR", "AM", "AA", "AT", "AS", "AU", "AJ", "BF", "BA", "FQ", "BG", "BB", "BO", "BE", "BH", "BN", "BD", "BT", "BL", "BK", "BC", "BV", "BR", "IO", "VI", "BX", "BU", "UV", "BM", "BY", "CB", "CM", "CA", "CV", "CJ", "CT", "CD", "CI", "CH", "KT", "IP", "CK", "CO", "CN", "CF", "CG", "CW", "CR", "CS", "IV", "HR", "CU", "UC", "CY", "EZ", "DA", "DX", "DJ", "DO", "DR", "TT", "EC", "EG", "ES", "EK", "ER", "EN", "ET", "FK", "FO", "FM", "FJ", "FI", "FR", "FP", "FS", "GB", "GA", "GG", "GM", "GH", "GI", "GR", "GL", "GJ", "GQ", "GT", "GK", "GV", "PU", "GY", "HA", "HM", "VT", "HO", "HK", "HQ", "HU", "IC", "IN", "ID", "IR", "IZ", "EI", "IS", "IT", "JM", "JN", "JA", "DQ", "JE", "JQ", "JO", "KZ", "KE", "KQ", "KR", "KN", "KS", "KV", "KU", "KG", "LA", "LG", "LE", "LT", "LI", "LY", "LS", "LH", "LU", "MC", "MK", "MA", "MI", "MY", "MV", "ML", "MT", "IM", "RM", "MR", "MP", "MX", "MQ", "MD", "MN", "MG", "MJ", "MH", "MO", "MZ", "WA", "NR", "BQ", "NP", "NL", "NC", "NZ", "NU", "NG", "NI", "NE", "NF", "CQ", "NO", "MU", "OC", "PK", "PS", "LQ", "PM", "PP", "PF", "PA", "PE", "RP", "PC", "PL", "PO", "RQ", "QA", "RO", "RS", "RW", "TB", "RN", "WS", "SM", "TP", "SA", "SG", "RI", "SE", "SL", "SN", "NN", "LO", "SI", "BP", "SO", "SF", "SX", "OD", "SP", "PG", "CE", "SH", "SC", "ST", "SB", "VC", "SU", "NS", "SV", "WZ", "SW", "SZ", "SY", "TW", "TI", "TZ", "TH", "TO", "TL", "TN", "TD", "TS", "TU", "TX", "TK", "TV", "UG", "UP", "AE", "UK", "UY", "UZ", "NH", "VE", "VM", "VQ", "WQ", "WF", "WI", "YM", "ZA", "ZI" |
| Address | object | Primary address of the business. |
| Address1 | string | Street address or PO Box of the business. Size Range: 46 |
| Address2 | string | Optional Suite or apartment number of the business. Size Range: 46 |
| City | string | City of the business. Size Range: 50 |
| ProvinceOrState | string | Province or state name of the business. Allowed values When the country code is US: Allowed values"AL", "AK", "AZ", "AR", "CA", "CO", "CT", "DE", "DC", "FL", "GA", "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MD", "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ", "NM", "NY", "NC", "ND", "OH", "OK", "OR", "PA", "RI", "SC", "SD", "TN", "TX", "UT", "VT", "VA", "WA", "WV", "WI", "WY", "AS", "FM", "GU", "MH", "MP", "PW", "PR", "VI", "AA", "AE", "AP" Allowed values"AB", "BC", "MB", "NB", "NL", "NT", "NS", "NU", "ON", "PE", "QC", "SK", "YT" |
| ZipCd | string | ZIP code of the business. Size Range: 5-16 |
| Country | string | 2-character country code of the business.Allowed values"US","AF", "AX", "AL", "AG", "AQ", "AN", "AO", "AV", "AY", "AC", "AR", "AM", "AA", "AT", "AS", "AU", "AJ", "BF", "BA", "FQ", "BG", "BB", "BO", "BE", "BH", "BN", "BD", "BT", "BL", "BK", "BC", "BV", "BR", "IO", "VI", "BX", "BU", "UV", "BM", "BY", "CB", "CM", "CA", "CV", "CJ", "CT", "CD", "CI", "CH", "KT", "IP", "CK", "CO", "CN", "CF", "CG", "CW", "CR", "CS", "IV", "HR", "CU", "UC", "CY", "EZ", "DA", "DX", "DJ", "DO", "DR", "TT", "EC", "EG", "ES", "EK", "ER", "EN", "ET", "FK", "FO", "FM", "FJ", "FI", "FR", "FP", "FS", "GB", "GA", "GG", "GM", "GH", "GI", "GR", "GL", "GJ", "GQ", "GT", "GK", "GV", "PU", "GY", "HA", "HM", "VT", "HO", "HK", "HQ", "HU", "IC", "IN", "ID", "IR", "IZ", "EI", "IS", "IT", "JM", "JN", "JA", "DQ", "JE", "JQ", "JO", "KZ", "KE", "KQ", "KR", "KN", "KS", "KV", "KU", "KG", "LA", "LG", "LE", "LT", "LI", "LY", "LS", "LH", "LU", "MC", "MK", "MA", "MI", "MY", "MV", "ML", "MT", "IM", "RM", "MR", "MP", "MX", "MQ", "MD", "MN", "MG", "MJ", "MH", "MO", "MZ", "WA", "NR", "BQ", "NP", "NL", "NC", "NZ", "NU", "NG", "NI", "NE", "NF", "CQ", "NO", "MU", "OC", "PK", "PS", "LQ", "PM", "PP", "PF", "PA", "PE", "RP", "PC", "PL", "PO", "RQ", "QA", "RO", "RS", "RW", "TB", "RN", "WS", "SM", "TP", "SA", "SG", "RI", "SE", "SL", "SN", "NN", "LO", "SI", "BP", "SO", "SF", "SX", "OD", "SP", "PG", "CE", "SH", "SC", "ST", "SB", "VC", "SU", "NS", "SV", "WZ", "SW", "SZ", "SY", "TW", "TI", "TZ", "TH", "TO", "TL", "TN", "TD", "TS", "TU", "TX", "TK", "TV", "UG", "UP", "AE", "UK", "UY", "UZ", "NH", "VE", "VM", "VQ", "WQ", "WF", "WI", "YM", "ZA", "ZI" |
| ContactDetails | object[] | Details of the person the IRS can contact regarding the given business. |
| FirstNm | string | First name of the contact person. Size Range: 20 |
| MiddleNm | string | Optional Middle name of the contact person. Size Range: 20 |
| LastNm | string | Last name of the contact person. Size Range: 20 |
| Suffix | string | Optional The suffix of the contact person.Allowed values"Jr", "Sr", "I", "II", "III", "IV", "V", "VI", "VII" |
| Phone | string | Optional Phone number of the contact person. Size Range: 10 digits |
| PhoneExtn | string | Optional Phone extension number. Size Range: 5 |
| Fax | string | Optional Fax number of the contact person. Size Range: 10 digits |
| ReturnData | object[] | Contains information about the recipient details and Form W-2 details. |
| SequenceId | string | A unique reference ID for the submission that can be used to identify a particular record. The Sequence ID will be returned in the Response for your reference. Size Range: 50 |
| ReturnManifest | object[] | Filing options for this record. |
| IsFederal | Boolean | Federal Filing for the return will be enabled when the value is True. Form W-2 will be sent directly to the IRS. |
| IsState | Boolean | State Filing for the return will be enabled when the value is True. Form W-2 will be directly filed with the respective recipient states. Note: State Filing will not be created for the states that do not require State filing. |
| IsDistribution | Boolean | When TRUE, recipient distribution is enabled (postal mail / online access/email). |
| DistributionDetails | object[] | Distribution configuration. Required when IsDistribution is TRUE. |
| DistributionType | string | Recipient copy distribution type.Allowed values"POSTAL_ONLY", "ONLINE_ACCESS", "POSTAL_AND_ONLINE" |
| PostalType | string | Postal service type.Allowed values"USPS_FIRST_CLASS" |
| Employee | object | Information about the Employee (Employee of the W-2).Required: Yes |
| EmployeeId | Guid | Unique EmployeeId generated by TaxBandits when the Employee was first created. If supplied, takes precedence over other identifiers.Required: Optional Size Range: 36 |
| PayeeRef | string | Optional Your unique identifier for the employee. Can replace EmployeeId in future requests. Size Range: 50 |
| TINDetails | object | Recipient TIN information. |
| Format | string | Specifies how the TIN is passed.Allowed values"PLAIN_TIN" — Pass TIN directly. |
| TINType | string | Specify the TIN type of the recipient.Allowed values"EIN", "SSN", "QI-EIN", "ITIN", "WP-EIN", "WT-EIN", "NQI-EIN", "IRSN" |
| TIN | string | The TIN value, formatted according to the Format field selected. |
| IndividualNm | object | Required when TINType is SSN, ITIN, or ATIN. Provide individual name fields instead of BusinessNm. |
| FirstNm | string | The first name of the individual. Size Range: 20 |
| MiddleNm | string | Optional The middle name of the individual. Size Range: 20 |
| LastNm | string | The last name of the individual. Size Range: 20 |
| Suffix | string | Optional The suffix of the individual's name.Allowed values"Jr", "Sr", "I", "II", "III", "IV", "V", "VI", "VII" |
| BusinessNm | string | Legal name of the recipient business. Required when TINType is EIN. Size Range: 75 |
| NameCtrl | string | Name control of the business as registered with the IRS. Size Range: 3..4 |
| DBADetails | object | Optional DBA (Doing Business As) information. |
| DBAId | Guid | TaxBandits-generated DBA identifier. Returned in the response. |
| DBANm | string | Name of the DBA. Size Range: 75 |
| DBARef | string | Your unique identifier for this DBA. Size Range: 1–50 |
| Address | object | Address information of the DBA. |
| Address1 | string | Street address or PO Box. Size Range: 46 |
| Address2 | string | Optional Suite or apartment number. Size Range: 46 |
| City | string | DBA's city. Size Range: 50 |
| ProvinceOrState | string | DBA's province or state name. Allowed values When the country code is US: Allowed values"AL", "AK", "AZ", "AR", "CA", "CO", "CT", "DE", "DC", "FL", "GA", "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MD", "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ", "NM", "NY", "NC", "ND", "OH", "OK", "OR", "PA", "RI", "SC", "SD", "TN", "TX", "UT", "VT", "VA", "WA", "WV", "WI", "WY", "AS", "FM", "GU", "MH", "MP", "PW", "PR", "VI", "AA", "AE", "AP" Allowed values"AB", "BC", "MB", "NB", "NL", "NT", "NS", "NU", "ON", "PE", "QC", "SK", "YT" |
| ZipCd | string | DBA's ZIP code. Size Range: 5–16 |
| Country | string | DBA's 2-character country code.Allowed values"US","AF", "AX", "AL", "AG", "AQ", "AN", "AO", "AV", "AY", "AC", "AR", "AM", "AA", "AT", "AS", "AU", "AJ", "BF", "BA", "FQ", "BG", "BB", "BO", "BE", "BH", "BN", "BD", "BT", "BL", "BK", "BC", "BV", "BR", "IO", "VI", "BX", "BU", "UV", "BM", "BY", "CB", "CM", "CA", "CV", "CJ", "CT", "CD", "CI", "CH", "KT", "IP", "CK", "CO", "CN", "CF", "CG", "CW", "CR", "CS", "IV", "HR", "CU", "UC", "CY", "EZ", "DA", "DX", "DJ", "DO", "DR", "TT", "EC", "EG", "ES", "EK", "ER", "EN", "ET", "FK", "FO", "FM", "FJ", "FI", "FR", "FP", "FS", "GB", "GA", "GG", "GM", "GH", "GI", "GR", "GL", "GJ", "GQ", "GT", "GK", "GV", "PU", "GY", "HA", "HM", "VT", "HO", "HK", "HQ", "HU", "IC", "IN", "ID", "IR", "IZ", "EI", "IS", "IT", "JM", "JN", "JA", "DQ", "JE", "JQ", "JO", "KZ", "KE", "KQ", "KR", "KN", "KS", "KV", "KU", "KG", "LA", "LG", "LE", "LT", "LI", "LY", "LS", "LH", "LU", "MC", "MK", "MA", "MI", "MY", "MV", "ML", "MT", "IM", "RM", "MR", "MP", "MX", "MQ", "MD", "MN", "MG", "MJ", "MH", "MO", "MZ", "WA", "NR", "BQ", "NP", "NL", "NC", "NZ", "NU", "NG", "NI", "NE", "NF", "CQ", "NO", "MU", "OC", "PK", "PS", "LQ", "PM", "PP", "PF", "PA", "PE", "RP", "PC", "PL", "PO", "RQ", "QA", "RO", "RS", "RW", "TB", "RN", "WS", "SM", "TP", "SA", "SG", "RI", "SE", "SL", "SN", "NN", "LO", "SI", "BP", "SO", "SF", "SX", "OD", "SP", "PG", "CE", "SH", "SC", "ST", "SB", "VC", "SU", "NS", "SV", "WZ", "SW", "SZ", "SY", "TW", "TI", "TZ", "TH", "TO", "TL", "TN", "TD", "TS", "TU", "TX", "TK", "TV", "UG", "UP", "AE", "UK", "UY", "UZ", "NH", "VE", "VM", "VQ", "WQ", "WF", "WI", "YM", "ZA", "ZI" |
| DOB | string | Optional Date of Birth of the recipient. Format: MM/DD/YYYY |
| Address | object | Primary address of the recipient. |
| Address1 | string | Street address or PO Box of the recipient. Size Range: 46 |
| Address2 | string | Optional Suite or apartment number of the recipient. Size Range: 46 |
| City | string | City of the recipient. Size Range: 50 |
| ProvinceOrState | string | Province or state name of the recipient. Allowed values When the country code is US: Allowed values"AL", "AK", "AZ", "AR", "CA", "CO", "CT", "DE", "DC", "FL", "GA", "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MD", "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ", "NM", "NY", "NC", "ND", "OH", "OK", "OR", "PA", "RI", "SC", "SD", "TN", "TX", "UT", "VT", "VA", "WA", "WV", "WI", "WY", "AS", "FM", "GU", "MH", "MP", "PW", "PR", "VI", "AA", "AE", "AP" Allowed values"AB", "BC", "MB", "NB", "NL", "NT", "NS", "NU", "ON", "PE", "QC", "SK", "YT" |
| ZipCd | string | ZIP code of the recipient. Size Range: 5 – 16 |
| Country | string | 2-character country code of the recipient.Allowed values"US","AF", "AX", "AL", "AG", "AQ", "AN", "AO", "AV", "AY", "AC", "AR", "AM", "AA", "AT", "AS", "AU", "AJ", "BF", "BA", "FQ", "BG", "BB", "BO", "BE", "BH", "BN", "BD", "BT", "BL", "BK", "BC", "BV", "BR", "IO", "VI", "BX", "BU", "UV", "BM", "BY", "CB", "CM", "CA", "CV", "CJ", "CT", "CD", "CI", "CH", "KT", "IP", "CK", "CO", "CN", "CF", "CG", "CW", "CR", "CS", "IV", "HR", "CU", "UC", "CY", "EZ", "DA", "DX", "DJ", "DO", "DR", "TT", "EC", "EG", "ES", "EK", "ER", "EN", "ET", "FK", "FO", "FM", "FJ", "FI", "FR", "FP", "FS", "GB", "GA", "GG", "GM", "GH", "GI", "GR", "GL", "GJ", "GQ", "GT", "GK", "GV", "PU", "GY", "HA", "HM", "VT", "HO", "HK", "HQ", "HU", "IC", "IN", "ID", "IR", "IZ", "EI", "IS", "IT", "JM", "JN", "JA", "DQ", "JE", "JQ", "JO", "KZ", "KE", "KQ", "KR", "KN", "KS", "KV", "KU", "KG", "LA", "LG", "LE", "LT", "LI", "LY", "LS", "LH", "LU", "MC", "MK", "MA", "MI", "MY", "MV", "ML", "MT", "IM", "RM", "MR", "MP", "MX", "MQ", "MD", "MN", "MG", "MJ", "MH", "MO", "MZ", "WA", "NR", "BQ", "NP", "NL", "NC", "NZ", "NU", "NG", "NI", "NE", "NF", "CQ", "NO", "MU", "OC", "PK", "PS", "LQ", "PM", "PP", "PF", "PA", "PE", "RP", "PC", "PL", "PO", "RQ", "QA", "RO", "RS", "RW", "TB", "RN", "WS", "SM", "TP", "SA", "SG", "RI", "SE", "SL", "SN", "NN", "LO", "SI", "BP", "SO", "SF", "SX", "OD", "SP", "PG", "CE", "SH", "SC", "ST", "SB", "VC", "SU", "NS", "SV", "WZ", "SW", "SZ", "SY", "TW", "TI", "TZ", "TH", "TO", "TL", "TN", "TD", "TS", "TU", "TX", "TK", "TV", "UG", "UP", "AE", "UK", "UY", "UZ", "NH", "VE", "VM", "VQ", "WQ", "WF", "WI", "YM", "ZA", "ZI" |
| string | Email address of the recipient. Size Range: 100 Note: Required if DistributionType is ONLINE_ACCESS. | |
| Fax | string | Optional Fax number of the recipient. Size Range: 10 |
| Phone | string | Optional Phone number of the recipient. Size Range: 10 |
| W2FormData | object | Form W-2 line-item data for this Employee. Required: Yes |
| Wages | number | Box 1 — Wages, Tips, Other Compensation. Required: Yes Size Range: 0 – 999999999.99 Format: Decimal (up to 2 dp) |
| FedTaxWH | number | Box 2 — Federal Income Tax Withheld. Required: Optional Size Range: 0 – 999999999.99 |
| SocSecWages | number | Box 3 — Social Security Wages. Required: Optional Size Range: 0 – 999999999.99 |
| SocSecTaxWH | number | Box 4 — Social Security Tax Withheld. Required: Optional Size Range: 0 – 999999999.99 |
| MediWages | number | Box 5 — Medicare Wages and Tips. Required: Optional Size Range: 0 – 999999999.99 |
| MediTaxWH | number | Box 6 — Medicare Tax Withheld. Required: Optional Size Range: 0 – 999999999.99 |
| SocSecTips | number | Box 7 — Social Security Tips. Required: Optional Size Range: 0 – 999999999.99 |
| AllocatedTips | number | Box 8 — Allocated Tips. Required: Optional Size Range: 0 – 999999999.99 |
| DependtCareBenefits | number | Box 10 — Dependent Care Benefits. Required: Optional Size Range: 0 – 999999999.99 |
| Sec457Plan | number | Box 11 — Nonqualified Plans, Section 457 portion. Required: Optional Size Range: 0 – 999999999.99 |
| NonSec457Plan | number | Box 11 — Nonqualified Plans, Non-Section 457 portion. Required: Optional Size Range: 0 – 999999999.99 |
| CompCode1 | string | Box 12 — Code #1 (e.g., A, B, C, D, DD, TT, TP, TA, …). Required: Optional Size Range: 1–2 Note: Codes TT, TP and TA were introduced for TY 2026 to support OBBBA tip / overtime reporting. |
| CompAmt1 | number | Box 12 — Amount for Code #1. Required: Conditional Size Range: 0 – 999999999.99 |
| CompCode2 | string | Box 12 — Code #2. Required: Optional Size Range: 1–2 |
| CompAmt2 | number | Box 12 — Amount for Code #2. Required: Conditional Size Range: 0 – 999999999.99 |
| CompCode3 | string | Box 12 — Code #3. Required: Optional Size Range: 1–2 |
| CompAmt3 | number | Box 12 — Amount for Code #3. Required: Conditional Size Range: 0 – 999999999.99 |
| CompCode4 | string | Box 12 — Code #4. Required: Optional Size Range: 1–2 |
| CompAmt4 | number | Box 12 — Amount for Code #4. Required: Conditional Size Range: 0 – 999999999.99 |
| IsStatEmp | boolean | Box 13 — Statutory Employee indicator. Required: Optional Allowed valuestrue, false |
| IsRetPlan | boolean | Box 13 — Retirement Plan indicator. Required: Optional Allowed valuestrue, false |
| Is3rdPartySickPay | boolean | Box 13 — Third-Party Sick Pay indicator. Required: Optional Allowed valuestrue, false |
| B14Other | string | Box 14 — Other. Free-form text used to report items such as state PFL / PML, union dues, etc. Required: Optional Size Range: 1–100 |
| TTOC1 | string | Treasury Tipped Occupation Code #1 — identifies the Employee's qualifying tipped occupation. New for TY 2026 — supports OBBBA No-Tax-on-Tips reporting. Required: Conditional (TY 2026 only) Size Range: 1–3 Note: Required when Box 12 Code TT (Cash Tips) is reported. |
| TTOC2 | string | Treasury Tipped Occupation Code #2 — secondary qualifying tipped occupation, if applicable. New for TY 2026. Required: Optional (TY 2026 only) Size Range: 1–3 |
| ControlNum | string | Box D — Control Number assigned by the Employer to uniquely identify the W-2. Required: Optional Size Range: 1–14 |
| State | object [] | State filing data — Boxes 15–20. Required: Conditional Note: Required when ReturnManifest.IsState is true. |
| StateCd | string | Box 15 — Two-letter State Code. Required: Yes (if State present) Size Range: 2 |
| StateIdNum | string | Box 15 — Employer's State ID Number. Required: Conditional Size Range: 1–20 |
| StateWages | number | Box 16 — State Wages, Tips, etc. Required: Conditional Size Range: 0 – 999999999.99 |
| StateTax | number | Box 17 — State Income Tax. Required: Optional Size Range: 0 – 999999999.99 |
| LocalityData | object | Boxes 18–20 — Local income / locality information. Required: Optional |
| LocalWages | number | Box 18 — Local Wages, Tips, etc. Required: Conditional Size Range: 0 – 999999999.99 |
| LocalTax | number | Box 19 — Local Income Tax. Required: Optional Size Range: 0 – 999999999.99 |
| LocalityNm | string | Box 20 — Locality Name. Required: Conditional Size Range: 1–50 |
| County | string | County name (used in states where county-level reporting is required). Required: Optional Size Range: 1–50 |
| TaxTypeCd | string | Tax Type Code identifying the type of local tax being reported. Required: Optional Size Range: 1–2 Allowed values"C", "D", "E", "F", "H", "I", "K", "N" |
| SchoolDistrictNum | string | School District Number (required for certain Ohio / Pennsylvania filings). Required: Conditional Size Range: 1–10 |
| EmployeeStateSpecificData | object | State-specific reporting fields keyed by state code. Only the states relevant to the Employee need to be supplied. Required: Optional |
| MD | object | Maryland-specific W-2 fields. Required: Optional |
| W4ExemptionCount | number | Maryland — number of exemptions claimed on Form MW-507. Required: Optional Size Range: 0 – 99 |
| NJ | object | New Jersey-specific W-2 fields. Required: Optional |
| PvtFmlLeaveInsuranceNum | string | NJ — Private Family Leave Insurance Plan Number. Required: Optional Size Range: 1–20 |
| FmlLeaveInsuranceWH | number | NJ — Family Leave Insurance Withheld. Required: Optional Size Range: 0 – 999999999.99 |
| PvtDisabilityPlanNum | string | NJ — Private Disability Plan Number. Required: Optional Size Range: 1–20 |
| DisabilityInsuranceWH | number | NJ — Disability Insurance Withheld. Required: Optional Size Range: 0 – 999999999.99 |
| CombNJUnempInsWrkFrceDevProgHCSubWH | number | NJ — Combined withholding for Unemployment Insurance, Workforce Development Program and Health Care Subsidy. Required: Optional Size Range: 0 – 999999999.99 |
| DeffCompAmt | number | NJ — Deferred Compensation amount. Required: Optional Size Range: 0 – 999999999.99 |
| IsRetirementPlan | boolean | NJ — Indicates whether the Employee was an active participant in a retirement plan. Required: Optional Allowed valuestrue, false |
| OR | object | Oregon-specific W-2 fields. Required: Optional |
| DateFirstEmployed | string | Oregon — Date the Employee was first employed. Required: Optional Format: MM/DD/YYYY |
| DateOfSeparation | string | Oregon — Date of Separation, if applicable. Required: Optional Format: MM/DD/YYYY |
| TaxableWagesForStateTransitTax | number | Oregon — Taxable Wages for the Statewide Transit Tax (STT). Required: Optional Size Range: 0 – 999999999.99 |
| StateTransitTaxWH | number | Oregon — State Transit Tax Withheld. Required: Optional Size Range: 0 – 999999999.99 |
| ME | object | Maine-specific W-2 fields. Required: Optional |
| MEPERScontribution | number | Maine — Maine Public Employees Retirement System (MEPERS) contribution. Required: Optional Size Range: 0 – 999999999.99 |
Response Body
| Field | Type | Description |
|---|---|---|
| BusinessId | Guid | Unique identifier generated by TaxBandits. Store this for use in all subsequent requests. |
| PayerRef | string | Your unique identifier for the payer, as provided in the request. |
| DBARef | string | Your unique identifier for the DBA. |
| DBAId | Guid | Unique identifier generated for the DBA. |
| ScheduleFiling | object | Returns the date of the schedule filing. |
| EFileDate | string | Date of the schedule filing to know when the return to be filed to the IRS. |
| Form1099Type | string | Denotes the type of 1099 form. |
| Form1099Records | object | Pulls Form W-2 records with Success and Error statuses. |
| SuccessRecords | object[] | It will show the detailed information about the success status of Form W-2 Records. |
| SequenceId | string | A unique reference ID for the submission that can be used to identify a particular record. |
| RecordId | Guid | An unique identifier generated by TaxBandits when a W-2 return is created. |
| RecipientId | Guid | A unique reference ID for the submission that can be used to identify a particular record. |
| PayeeRef | string | Your unique identifier for the recipient, as provided in the request. |
| AccountNum | string | Account number of Payer having multiple accounts for a recipient for whom more than one Form W-2 is filed. |
| Federal | object | Returns the record status and StatusTs of the federal return. |
| Status | string | Status of the operation. |
| StatusTs | string | Date and time of the return created. |
| Info | string | Returns information about the Federal Filing service. |
| State | object[] | Returns a collection of state return information. |
| StateCd | string | Returns the state code of the state for which the return is filed. |
| Status | string | Returns the record status of the state return. |
| StatusCd | string | Date and time of the postal creation. |
| StatusTs | string | Date and time of the return created. |
| Info | string | Returns the information about the return processed for the state. |
| Distribution | object[] | Returns information about the distribution. |
| DistributionType | string | Returns the distribution method used. |
| Postal | object[] | Returns information about postal mailing. |
| PostalType | string | Returns the postal service used. |
| Status | string | Returns the Postal status. |
| StatusCd | string | Detailed status code. |
| StatusTs | string | Date and time of the postal created. |
| Info | string | Returns the information about the postal order. |
| OnlineAccess | object | Returns the Email address for whom the online access to be given and Status of online access. |
| Status | string | Returns status of online access for Form W-2 return. |
| string | Email address for whom the online access to be given. | |
| Info | string | Information about the online access service. |
| ErrorRecords | object[] | It will show the detailed information about the error status of Form W-2 Records. |
| SequenceId | string | A unique reference ID for the submission that can be used to identify a particular DBA. The Sequence ID will be returned in the Response for your reference. |
| RecordId | Guid | Unique identifier of a record. |
| Errors | object[] | Validation error details. |
| Id | string | Validation error code. |
| Name | string | Name of the validation rule that failed. |
| Message | string | Clear description of what went wrong and how to fix it. |
| Errors | object[] | Top-level request errors if the entire request cannot be processed. |
| Id | string | Validation error code. |
| Name | string | Name of the validation rule that failed. |
| Message | string | Clear description of what went wrong and how to fix it. |
Payload
| Sample | Description | Action |
|---|---|---|
| Sample 1 | Create a Form W-2 return for the specific business and include recipient and income information. |
Sample 1
{
"SubmissionManifest": {
"TaxYear": "2026",
"IsScheduleFiling": false,
"ScheduleFiling": {
"EfileDate": "01/25/2026"
}
},
"ReturnHeader": {
"Business": {
"PayerRef": null,
"BusinessId": null,
"IsDefaultBusiness": false,
"TINDetails": {
"Format": "PLAIN_TIN",
"TINType": "EIN",
"TIN": "567892733"
},
"IndividualNm": {
"FirstNm": "James",
"MiddleNm": "A",
"LastNm": "Anderson",
"Suffix": "Jr"
},
"BusinessNm": "Snowdaze LLC",
"NameCtrl": "SNOW",
"DBADetails": {
"DBANm": "Iceberg Icecreams",
"DBARef": "DBA1001",
"DBAId": null,
"IsDefaultDBA": true,
"Address": {
"Address1": "123 Main St",
"Address2": "Suite 1001",
"City": "Rock Hill",
"ProvinceOrState": "SC",
"ZipCd": "29730",
"Country": "US"
}
},
"Email": "james@sample.com",
"Address": {
"Address1": "123 Main St",
"Address2": "Suite 1001",
"City": "Rock Hill",
"ProvinceOrState": "SC",
"ZipCd": "29730",
"Country": "US"
},
"ContactDetails": {
"FirstNm": "James",
"MiddleNm": "A",
"LastNm": "Anderson",
"Suffix": "Jr",
"Phone": "8035551234",
"PhoneExtn": "101",
"Email": "contact@snowdaze.com",
"Fax": "8035555678"
},
"W2Specific": {
"KindOfEmployer": "NONEAPPLY",
"KindOfPayer": "REGULAR941"
}
}
},
"ReturnData": [
{
"SequenceId": "1",
"ReturnManifest": {
"IsFederal": true,
"IsState": true,
"IsDistribution": true,
"DistributionDetails": {
"DistributionType": "POSTAL_AND_ONLINE",
"PostalType": "USPS_FIRST_CLASS"
},
},
"Employee": {
"EmployeeId": null,
"PayeeRef": "PayeeRef00111",
"TINDetails": {
"Format": "PLAIN_TIN",
"TINType": "SSN",
"TIN": "467834332"
},
"NameCtrl": null,
"BusinessNm": "Dairy Delights LLC",
"DBADetails": {
"DBAId": null,
"DBANm": "Iceberg Icecreams",
"DBARef": "DBA1001",
"Address": {
"Address1": "630 Coonial Promenade Pkwy",
"Address2": "Mian 789",
"City": "Alabaster ",
"ProvinceOrState": "AL",
"ZipCd": "35007",
"Country": "US"
}
},
"IndividualNm": {
"FirstNm": "Jacqueline",
"MiddleNm": "Heather",
"LastNm": "Tammy",
"Suffix": "Jr"
},
"DOB": null,
"Address": {
"Address1": "630 Coonial Promenade Pkwy",
"Address2": "Mian 789",
"City": "Alabaster ",
"ProvinceOrState": "AL",
"ZipCd": "35007",
"Country": "US"
},
"Email": "shawn@sample.com",
"Fax": "6634567890",
"Phone": "9634567890"
},
"W2FormData": {
"Wages": 580450,
"FedTaxWH": 36820,
"SocSecWages": 18400,
"SocSecTaxWH": 11439,
"MediWages": 184501,
"MediTaxWH": 0,
"SocSecTips": 501,
"AllocatedTips": 45.89,
"DependtCareBenefits": 78,
"Sec457Plan": 100,
"NonSec457Plan": 0,
"CompCode1": "TA",
"CompAmt1": 100,
"CompCode2": "TT",
"CompAmt2": 100,
"CompCode3": "TP",
"CompAmt3": 100,
"CompCode4": "A",
"CompAmt4": 100,
"IsStatEmp": true,
"IsRetPlan": true,
"Is3rdPartySickPay": true,
"B14Other": "MA PFL 316.96, MA PML 493.10",
"TTOC1": "407",
"TTOC2": "409",
"ControlNum": "35231",
"States": [
{
"StateCd": "IN",
"StateIdNum": "9999999999-999",
"StateWages": 100.64,
"StateTax": 2.85,
"LocalityData": [
{
"LocalWages": 300.23,
"LocalTax": 100.45,
"LocalityNm": "Pristine",
"County": "adams",
"TaxTypeCd": "D ",
"SchoolDistrictNum": null
}
]
},
{
"StateCd": "KS",
"StateIdNum": "036-123456789F-01",
"StateWages": 100.64,
"StateTax": 2.85,
"LocalityData": [
{
"LocalWages": 300.23,
"LocalTax": 100.45,
"LocalityNm": "Pristine",
"County": "adams",
"TaxTypeCd": "D ",
"SchoolDistrictNum": null
}
]
},
{
"StateCd": "MA",
"StateIdNum": "WTH-99999999-999",
"StateWages": 100.64,
"StateTax": 2.85,
"LocalityData": [
{
"LocalWages": 300.23,
"LocalTax": 100.45,
"LocalityNm": "Pristine",
"County": "adams",
"TaxTypeCd": "D ",
"SchoolDistrictNum": null
}
]
},
{
"StateCd": "KY",
"StateIdNum": "999999",
"StateWages": 100.64,
"StateTax": 2.85,
"LocalityData": [
{
"LocalWages": 300.23,
"LocalTax": 100.45,
"LocalityNm": "Pristine",
"County": "adams",
"TaxTypeCd": "D ",
"SchoolDistrictNum": null
}
]
}
],
"EmployeeStateSpecificData": null
}
}
]
}
| Response | Description | Action |
|---|---|---|
| 200 | Success Response - This is a sample response for successful API requests. | |
| 401 | Unauthorized Response - You'll get the below response when your API requests don't contain valid authentication credentials. |
Response: 200
{
"StatusCode": 200,
"SubmissionId": "5a1b3308-d8dd-4c07-94b3-26ac2ba34412",
"ScheduleFiling": {
"EfileDate": "08/25/2026"
},
"BusinessId": "dbf12072-10e6-4c53-adba-ef52a735b60f",
"PayerRef": "HBN374834",
"DBARef": "DBA1001",
"DBAId": "ab8ba16d-0224-4af4-88f2-dff894805b7b",
"Form1099Type": "NEC",
"Form1099Records": {
"SuccessRecords": [
{
"SequenceId": "1",
"RecordId": "b4b9717c-790e-4c35-9b91-6c9b25f3fa09",
"RecipientId": "3ae9d93d-5e6a-4764-bf2b-3b106106b61d",
"PayeeRef": "DAI001",
"DBARef": "DBA1001",
"DBAId": "55a4b50e-8288-4f35-acf2-76e444730149",
"AccountNum": "20261840036535080305",
"Federal": {
"Status": "CREATED",
"StatusCd": "FED_001",
"StatusTs": "2026-07-03 07:48:45 -04:00",
"Info": null,
"Errors": null
},
"State": [
{
"StateCd": "CA",
"Status": "CREATED",
"StatusCd": "STATE_001",
"StatusTs": "2026-07-03 07:48:45 -04:00",
"Info": "State filing will be submitted via CF/SF",
"Errors": null
}
],
"Distribution": {
"DistributionType": "POSTAL_AND_ONLINE",
"Postal": {
"PostalType": "USPS_FIRST_CLASS",
"Status": "CREATED",
"StatusCd": "POSTAL_001",
"StatusTs": "2026-07-03 07:48:45 -04:00",
"Info": "Postal order created"
},
"OnlineAccess": {
"Status": "CREATED",
"StatusCd": "ONLINE_001",
"Email": "shawn@sample.com",
"Info": null
}
}
}
],
"ErrorRecords": null
},
"Errors": null
}