config

package
v0.1.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 17, 2022 License: Apache-2.0 Imports: 1 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// TRecordType indicates type of transmitter “T” record
	TRecordType = "T"
	// ARecordType indicates type of payer “A” record
	ARecordType = "A"
	// BRecordType indicates type of payee “B” record
	BRecordType = "B"
	// CRecordType indicates type of end payer “C” record
	CRecordType = "C"
	// KRecordType indicates type of totals “K” record
	KRecordType = "K"
	// FRecordType indicates name of transmission “F” record
	FRecordType = "F"
	// Sub1097BtcType indicates extension block type of payee “B” record for form 1097-BTC
	Sub1097BtcType = "1097-BTC"
	// Sub1098Type indicates extension block type of payee “B” record for form 1098
	Sub1098Type = "1098"
	// Sub1098CType indicates extension block type of payee “B” record for form 1098-C
	Sub1098CType = "1098-C"
	// Sub1098EType indicates extension block type of payee “B” record for form 1098-E
	Sub1098EType = "1098-E"
	// Sub1098FType indicates extension block type of payee “B” record for form 1098-F
	Sub1098FType = "1098-F"
	// Sub1098QType indicates extension block type of payee “B” record for form 1098-Q
	Sub1098QType = "1098-Q"
	// Sub1098TType indicates extension block type of payee “B” record for form 1098-Q
	Sub1098TType = "1098-T"
	// Sub1099AType indicates extension block type of payee “B” record for form 1099-A
	Sub1099AType = "1099-A"
	// Sub1099BType indicates extension block type of payee “B” record for form 1099-B
	Sub1099BType = "1099-B"
	// Sub1099CType indicates extension block type of payee “B” record for form 1099-C
	Sub1099CType = "1099-C"
	// Sub1099CapType indicates extension block type of payee “B” record for form 1099-CAP
	Sub1099CapType = "1099-CAP"
	// Sub1099DivType indicates extension block type of payee “B” record for form 1099-DIV
	Sub1099DivType = "1099-DIV"
	// Sub1099GType indicates extension block type of payee “B” record for form 1099-G
	Sub1099GType = "1099-G"
	// Sub1099HType indicates extension block type of payee “B” record for form 1099-H
	Sub1099HType = "1099-H"
	// Sub1099IntType indicates extension block type of payee “B” record for form 1099-INT
	Sub1099IntType = "1099-INT"
	// Sub1099KType indicates extension block type of payee “B” record for form 1099-K
	Sub1099KType = "1099-K"
	// Sub1099LsType indicates extension block type of payee “B” record for form 1099-LS
	Sub1099LsType = "1099-LS"
	// Sub1099LtcType indicates extension block type of payee “B” record for form 1099-LTC
	Sub1099LtcType = "1099-LTC"
	// Sub1099MiscType indicates extension block type of payee “B” record for form 1099-MISC
	Sub1099MiscType = "1099-MISC"
	// Sub1099NecType indicates extension block type of payee “B” record for form 1099-NEC
	Sub1099NecType = "1099-NEC"
	// Sub1099OidType indicates extension block type of payee “B” record for form 1099-OID
	Sub1099OidType = "1099-OID"
	// Sub1099PatrType indicates extension block type of payee “B” record for form 1099-PATR
	Sub1099PatrType = "1099-PATR"
	// Sub1099QType indicates extension block type of payee “B” record for form 1099-Q
	Sub1099QType = "1099-Q"
	// Sub1099RType indicates extension block type of payee “B” record for form 1099-R
	Sub1099RType = "1099-R"
	// Sub1099SType indicates extension block type of payee “B” record for form 1099-S
	Sub1099SType = "1099-S"
	// Sub1099SaType indicates extension block type of payee “B” record for form 1099-SA
	Sub1099SaType = "1099-SA"
	// Sub1099SbType indicates extension block type of payee “B” record for form 1099-SB
	Sub1099SbType = "1099-SB"
	// Sub3921Type indicates extension block type of payee “B” record for form 3921
	Sub3921Type = "3921"
	// Sub3922Type indicates extension block type of payee “B” record for form 3922
	Sub3922Type = "3922"
	// Sub5498Type indicates extension block type of payee “B” record for form 5498
	Sub5498Type = "5498"
	// Sub5498EsaType indicates extension block type of payee “B” record for form 5498-ESA
	Sub5498EsaType = "5498ESA"
	// Sub5498SaType indicates extension block type of payee “B” record for form 5498-SA
	Sub5498SaType = "5498SA"
	// SubW2GType indicates extension block type of payee “B” record for form W-2G
	SubW2GType = "W2G"
)
View Source
const (
	// RecordLength indicates length of general record
	RecordLength = 750
	// SubRecordLength indicates length of sub record for payee “B” record
	SubRecordLength = 207
)
View Source
const (
	// BlankString indicates the empty string
	BlankString = " "
	// ZeroString indicates the zero string
	ZeroString = "0"
	// dateFormat indicates data format like as  YYYYMMDD
	DateFormat = "20060102"
)
View Source
const (
	// PriorYearDataIndicator indicates that reporting prior year data
	PriorYearDataIndicator = "P"
	// TestFileIndicator indicates  this is a test file
	TestFileIndicator = "T"
	// ForeignEntityIndicator indicates the transmitter is a foreign entity
	ForeignEntityIndicator = "1"
	// Software was purchased from a vendor or other source
	VendorIndicatorPurchased = "V"
	// Software was produced by in-house programmers
	VendorIndicatorProduced = "I"
	// FSFilingProgramApproved indicates  approved and submitting information as part of the CF/SF Program
	FSFilingProgramApproved = "1"
	// LastFilingIndicator indicates this is the last year this payer name and TIN will file information returns electronically or on paper
	LastFilingIndicator = "1"
	// The entity in the Second Payer Name Line Field is the transfer (or paying) agent
	TransferAgentIndicator = "1"
	// The entity shown is not the transfer agent
	NotTransferAgentIndicator = "0"
	// For a one-transaction correction or the first of a two transaction correction
	CorrectedReturnIndicatorG = "G"
	// For a second transaction of a two-transaction correction
	CorrectedReturnIndicatorC = "C"
	// TinType1 is used to identify an employer identification number (EIN)
	TinType1 = "1"
	// TinType2 is used to identify SSN, ITIN, ATIN
	TinType2 = "2"
	// the address of the payee is in a foreign country
	ForeignCountryIndicator = "1"
	// SecondTINNotice indicates notification by the IRS twice within
	// three calendar years that the payee provided an incorrect name and/or TIN combination
	SecondTINNotice = "2"
	// FatcaFilingRequirementIndicator indicates there is a FATCA Filing Requirement
	FatcaFilingRequirementIndicator = "1"
	// DirectSalesIndicator indicates sales of $5,000 or more of
	// consumer products to a person on a buy-sell, depositcommission, or any other commission basis for resale
	// anywhere other than in a permanent retail establishment
	DirectSalesIndicator = "1"

	// Enter “1” (one) if Property Securing Mortgage is the same as payer/borrowers’ address.
	PropertySecuringMortgageIndicator = "1"

	// Enter “1” (one) for general field
	GeneralOneIndicator = "1"

	// Enter “2” (one) for general field
	GeneralTwoIndicator = "2"
)
View Source
const (
	OutputJsonFormat = "json"
	OutputIrsFormat  = "irs"
)
View Source
const (
	Nullable   = ""
	Required   = "Y"
	Applicable = "A"
	Expandable = "E"
	Omitted    = "O"
)

field properties

View Source
const (
	Alphanumeric = 1 << iota
	AlphanumericRightAlign
	Numeric
	ZeroNumeric
	TelephoneNumber
	Percent
	Email
	DateYear
	Date
)

field types

Variables

View Source
var (
	// Transmitter “T” Record
	TRecordLayout = map[string]SpecField{
		"RecordType":                   {0, 1, Alphanumeric, Required},
		"PaymentYear":                  {1, 4, DateYear, Required},
		"PriorYearDataIndicator":       {5, 1, Alphanumeric, Required},
		"TIN":                          {6, 9, Numeric, Required},
		"TCC":                          {15, 5, Alphanumeric, Required},
		"Blank1":                       {20, 7, Alphanumeric, Nullable},
		"TestFileIndicator":            {27, 1, Alphanumeric, Applicable},
		"ForeignEntityIndicator":       {28, 1, Alphanumeric, Applicable},
		"TransmitterName":              {29, 40, Alphanumeric, Required},
		"TransmitterNameContinuation":  {69, 40, Alphanumeric, Applicable},
		"CompanyName":                  {109, 40, Alphanumeric, Required},
		"CompanyNameContinuation":      {149, 40, Alphanumeric, Applicable},
		"CompanyMailingAddress":        {189, 40, Alphanumeric, Required},
		"CompanyCity":                  {229, 40, Alphanumeric, Required},
		"CompanyState":                 {269, 2, Alphanumeric, Required},
		"CompanyZipCode":               {271, 9, Numeric, Required},
		"Blank2":                       {280, 15, Alphanumeric, Nullable},
		"TotalNumberPayees":            {295, 8, ZeroNumeric, Applicable},
		"ContactName":                  {303, 40, Alphanumeric, Required},
		"ContactTelephoneNumber":       {343, 15, TelephoneNumber, Required},
		"ContactEmailAddress":          {358, 50, Email, Applicable},
		"Blank3":                       {408, 91, Alphanumeric, Nullable},
		"RecordSequenceNumber":         {499, 8, ZeroNumeric, Required},
		"Blank4":                       {507, 10, Alphanumeric, Nullable},
		"VendorIndicator":              {517, 1, Alphanumeric, Required},
		"VendorName":                   {518, 40, Alphanumeric, Required},
		"VendorMailingAddress":         {558, 40, Alphanumeric, Required},
		"VendorCity":                   {598, 40, Alphanumeric, Required},
		"VendorState":                  {638, 2, Alphanumeric, Required},
		"VendorZipCode":                {640, 9, Numeric, Required},
		"VendorContactName":            {649, 40, Alphanumeric, Required},
		"VendorContactTelephoneNumber": {689, 15, TelephoneNumber, Required},
		"Blank5":                       {704, 35, Alphanumeric, Nullable},
		"VendorForeignEntityIndicator": {739, 1, Alphanumeric, Applicable},
		"Blank6":                       {740, 8, Alphanumeric, Nullable},
		"Blank7":                       {748, 2, Alphanumeric, Nullable},
	}
	// Payer “A” Record
	ARecordLayout = map[string]SpecField{
		"RecordType":              {0, 1, Alphanumeric, Required},
		"PaymentYear":             {1, 4, DateYear, Required},
		"CombinedFSFilingProgram": {5, 1, Alphanumeric, Applicable},
		"Blank1":                  {6, 5, Alphanumeric, Nullable},
		"TIN":                     {11, 9, Numeric, Required},
		"PayerNameControl":        {20, 4, Alphanumeric, Applicable},
		"LastFilingIndicator":     {24, 1, Alphanumeric, Applicable},
		"TypeOfReturn":            {25, 2, Alphanumeric, Required},
		"AmountCodes":             {27, 16, Alphanumeric, Required},
		"Blank2":                  {43, 8, Alphanumeric, Nullable},
		"ForeignEntityIndicator":  {51, 1, Alphanumeric, Applicable},
		"FirstPayerNameLine":      {52, 40, Alphanumeric, Required},
		"SecondPayerNameLine":     {92, 40, Alphanumeric, Applicable},
		"TransferAgentIndicator":  {132, 1, Alphanumeric, Required},
		"PayerShippingAddress":    {133, 40, Alphanumeric, Required},
		"PayerCity":               {173, 40, Alphanumeric, Required},
		"PayerState":              {213, 2, Alphanumeric, Required},
		"PayerZipCode":            {215, 9, Numeric, Required},
		"PayerTelephoneNumber":    {224, 15, TelephoneNumber, Required},
		"Blank3":                  {239, 260, Alphanumeric, Nullable},
		"RecordSequenceNumber":    {499, 8, ZeroNumeric, Required},
		"Blank4":                  {507, 241, Alphanumeric, Nullable},
		"Blank5":                  {748, 2, Alphanumeric, Nullable},
	}
	// Payee “B” Record
	BRecordLayout = map[string]SpecField{
		"RecordType":               {0, 1, Alphanumeric, Required},
		"PaymentYear":              {1, 4, DateYear, Required},
		"CorrectedReturnIndicator": {5, 1, Alphanumeric, Applicable},
		"NameControl":              {6, 4, Alphanumeric, Applicable},
		"TypeOfTIN":                {10, 1, Numeric, Applicable},
		"TIN":                      {11, 9, Numeric, Required},
		"PayerAccountNumber":       {20, 20, Alphanumeric, Applicable},
		"PayerOfficeCode":          {40, 4, Alphanumeric, Applicable},
		"Blank1":                   {44, 10, Alphanumeric, Nullable},
		"PaymentAmount1":           {54, 12, ZeroNumeric, Applicable},
		"PaymentAmount2":           {66, 12, ZeroNumeric, Applicable},
		"PaymentAmount3":           {78, 12, ZeroNumeric, Applicable},
		"PaymentAmount4":           {90, 12, ZeroNumeric, Applicable},
		"PaymentAmount5":           {102, 12, ZeroNumeric, Applicable},
		"PaymentAmount6":           {114, 12, ZeroNumeric, Applicable},
		"PaymentAmount7":           {126, 12, ZeroNumeric, Applicable},
		"PaymentAmount8":           {138, 12, ZeroNumeric, Applicable},
		"PaymentAmount9":           {150, 12, ZeroNumeric, Applicable},
		"PaymentAmountA":           {162, 12, ZeroNumeric, Applicable},
		"PaymentAmountB":           {174, 12, ZeroNumeric, Applicable},
		"PaymentAmountC":           {186, 12, ZeroNumeric, Applicable},
		"PaymentAmountD":           {198, 12, ZeroNumeric, Applicable},
		"PaymentAmountE":           {210, 12, ZeroNumeric, Applicable},
		"PaymentAmountF":           {222, 12, ZeroNumeric, Applicable},
		"PaymentAmountG":           {234, 12, ZeroNumeric, Applicable},
		"PaymentAmountH":           {246, 12, ZeroNumeric, Applicable},
		"PaymentAmountJ":           {258, 12, ZeroNumeric, Applicable},
		"Blank2":                   {270, 16, Alphanumeric, Nullable},
		"ForeignCountryIndicator":  {286, 1, Alphanumeric, Applicable},
		"FirstPayeeNameLine":       {287, 40, Alphanumeric, Required},
		"SecondPayeeNameLine":      {327, 40, Alphanumeric, Applicable},
		"PayeeMailingAddress":      {367, 40, Alphanumeric, Required},
		"Blank3":                   {407, 40, Alphanumeric, Nullable},
		"PayeeCity":                {447, 40, Alphanumeric, Required},
		"PayeeState":               {487, 2, Alphanumeric, Required},
		"PayeeZipCode":             {489, 9, Numeric, Required},
		"Blank4":                   {498, 1, Alphanumeric, Nullable},
		"RecordSequenceNumber":     {499, 8, ZeroNumeric, Required},
		"Blank5":                   {507, 36, Alphanumeric, Nullable},
		"Reserved":                 {543, 207, Alphanumeric, Expandable},
	}
	// End of Payer “C” Record
	CRecordLayout = map[string]SpecField{
		"RecordType":           {0, 1, Alphanumeric, Required},
		"NumberPayees":         {1, 8, ZeroNumeric, Required},
		"Blank1":               {9, 6, Alphanumeric, Nullable},
		"ControlTotal1":        {15, 18, ZeroNumeric, Applicable},
		"ControlTotal2":        {33, 18, ZeroNumeric, Applicable},
		"ControlTotal3":        {51, 18, ZeroNumeric, Applicable},
		"ControlTotal4":        {69, 18, ZeroNumeric, Applicable},
		"ControlTotal5":        {87, 18, ZeroNumeric, Applicable},
		"ControlTotal6":        {105, 18, ZeroNumeric, Applicable},
		"ControlTotal7":        {123, 18, ZeroNumeric, Applicable},
		"ControlTotal8":        {141, 18, ZeroNumeric, Applicable},
		"ControlTotal9":        {159, 18, ZeroNumeric, Applicable},
		"ControlTotalA":        {177, 18, ZeroNumeric, Applicable},
		"ControlTotalB":        {195, 18, ZeroNumeric, Applicable},
		"ControlTotalC":        {213, 18, ZeroNumeric, Applicable},
		"ControlTotalD":        {231, 18, ZeroNumeric, Applicable},
		"ControlTotalE":        {249, 18, ZeroNumeric, Applicable},
		"ControlTotalF":        {267, 18, ZeroNumeric, Applicable},
		"ControlTotalG":        {285, 18, ZeroNumeric, Applicable},
		"ControlTotalH":        {303, 18, ZeroNumeric, Applicable},
		"ControlTotalJ":        {321, 18, ZeroNumeric, Applicable},
		"Blank2":               {339, 160, Alphanumeric, Nullable},
		"RecordSequenceNumber": {499, 8, ZeroNumeric, Required},
		"Blank3":               {507, 241, Alphanumeric, Nullable},
		"Blank4":               {748, 2, Alphanumeric, Nullable},
	}
	// State Totals “K” Record
	KRecordLayout = map[string]SpecField{
		"RecordType":                  {0, 1, Alphanumeric, Required},
		"NumberPayees":                {1, 8, ZeroNumeric, Required},
		"Blank1":                      {9, 6, Alphanumeric, Nullable},
		"ControlTotal1":               {15, 18, ZeroNumeric, Applicable},
		"ControlTotal2":               {33, 18, ZeroNumeric, Applicable},
		"ControlTotal3":               {51, 18, ZeroNumeric, Applicable},
		"ControlTotal4":               {69, 18, ZeroNumeric, Applicable},
		"ControlTotal5":               {87, 18, ZeroNumeric, Applicable},
		"ControlTotal6":               {105, 18, ZeroNumeric, Applicable},
		"ControlTotal7":               {123, 18, ZeroNumeric, Applicable},
		"ControlTotal8":               {141, 18, ZeroNumeric, Applicable},
		"ControlTotal9":               {159, 18, ZeroNumeric, Applicable},
		"ControlTotalA":               {177, 18, ZeroNumeric, Applicable},
		"ControlTotalB":               {195, 18, ZeroNumeric, Applicable},
		"ControlTotalC":               {213, 18, ZeroNumeric, Applicable},
		"ControlTotalD":               {231, 18, ZeroNumeric, Applicable},
		"ControlTotalE":               {249, 18, ZeroNumeric, Applicable},
		"ControlTotalF":               {267, 18, ZeroNumeric, Applicable},
		"ControlTotalG":               {285, 18, ZeroNumeric, Applicable},
		"ControlTotalH":               {303, 18, ZeroNumeric, Applicable},
		"ControlTotalJ":               {321, 18, ZeroNumeric, Applicable},
		"Blank2":                      {339, 160, Alphanumeric, Nullable},
		"RecordSequenceNumber":        {499, 8, ZeroNumeric, Required},
		"Blank3":                      {507, 199, Alphanumeric, Nullable},
		"StateIncomeTaxWithheldTotal": {706, 18, Numeric, Applicable},
		"LocalIncomeTaxWithheldTotal": {724, 18, Numeric, Applicable},
		"Blank4":                      {742, 4, Alphanumeric, Nullable},
		"CombinedFederalStateCode":    {746, 2, Alphanumeric, Required},
		"Blank5":                      {748, 2, Alphanumeric, Nullable},
	}
	// End of Transmission “F” Record
	FRecordLayout = map[string]SpecField{
		"RecordType":           {0, 1, Alphanumeric, Required},
		"NumberPayerRecords":   {1, 8, ZeroNumeric, Required},
		"Zero":                 {9, 21, ZeroNumeric, Applicable},
		"Blank2":               {30, 19, Alphanumeric, Nullable},
		"TotalNumberPayees":    {49, 8, ZeroNumeric, Applicable},
		"Blank3":               {57, 442, Alphanumeric, Nullable},
		"RecordSequenceNumber": {499, 8, ZeroNumeric, Required},
		"Blank4":               {507, 241, Alphanumeric, Nullable},
		"Blank5":               {748, 2, Alphanumeric, Nullable},
	}
)
View Source
var (
	// Record Layout Positions 544-750 for Form 1097-BTC
	Sub1097BTCLayout = map[string]SpecField{
		"Blank1":             {0, 3, Alphanumeric, Nullable},
		"IssuerIndicator":    {3, 1, Numeric, Required},
		"Blank2":             {4, 8, Alphanumeric, Nullable},
		"Code":               {12, 1, Alphanumeric, Required},
		"Blank3":             {13, 3, Alphanumeric, Nullable},
		"UniqueIdentifier":   {16, 39, AlphanumericRightAlign, Applicable},
		"BondType":           {55, 3, Alphanumeric, Required},
		"Blank4":             {58, 61, Alphanumeric, Nullable},
		"SpecialDataEntries": {119, 60, Alphanumeric, Applicable},
		"Blank5":             {179, 26, Alphanumeric, Nullable},
		"Blank6":             {205, 2, Alphanumeric, Nullable},
	}
	// Record Layout Positions 544-750 for Form 1098
	Sub1098Layout = map[string]SpecField{
		"MortgageOriginationDate":           {0, 8, Date, Applicable},
		"PropertySecuringMortgageIndicator": {8, 1, Alphanumeric, Applicable},
		"PropertyADSecuringMortgage":        {9, 39, Alphanumeric, Applicable},
		"Other":                             {48, 39, Alphanumeric, Applicable},
		"Blank1":                            {87, 39, Alphanumeric, Nullable},
		"NumberMortgagedProperties":         {126, 4, ZeroNumeric, Applicable},
		"SpecialDataEntries":                {130, 49, Alphanumeric, Applicable},
		"MortgageAcquisitionDate":           {179, 8, Date, Applicable},
		"Blank2":                            {187, 18, Alphanumeric, Nullable},
		"Blank3":                            {205, 2, Alphanumeric, Nullable},
	}
	// Record Layout Positions 544-750 for Form 1098-C
	Sub1098CLayout = map[string]SpecField{
		"Blank1":                               {0, 2, Alphanumeric, Nullable},
		"TransactionIndicator":                 {2, 1, Alphanumeric, Applicable},
		"TransferAfterImprovementsIndicator":   {3, 1, Alphanumeric, Applicable},
		"TransferMarketValueIndicator":         {4, 1, Alphanumeric, Applicable},
		"Year":                                 {5, 4, DateYear, Applicable},
		"Make":                                 {9, 13, Alphanumeric, Applicable},
		"Model":                                {22, 22, Alphanumeric, Applicable},
		"VehicleIdentificationNumber":          {44, 25, Alphanumeric, Applicable},
		"VehicleDescription":                   {69, 39, Alphanumeric, Applicable},
		"DateContribution":                     {108, 8, Date, Applicable},
		"DoneeIndicator":                       {116, 1, Alphanumeric, Applicable},
		"IntangibleReligiousBenefitsIndicator": {117, 1, Alphanumeric, Applicable},
		"DeductionLessIndicator":               {118, 1, Alphanumeric, Applicable},
		"SpecialDataEntries":                   {119, 60, Alphanumeric, Applicable},
		"DateSale":                             {179, 8, Date, Applicable},
		"GoodsServices":                        {187, 16, Alphanumeric, Applicable},
		"Blank2":                               {203, 2, Alphanumeric, Nullable},
		"Blank3":                               {205, 2, Alphanumeric, Nullable},
	}
	// Record Layout Positions 544-750 for Form 1098-E
	Sub1098ELayout = map[string]SpecField{
		"Blank1":                       {0, 3, Alphanumeric, Nullable},
		"OriginationInterestIndicator": {3, 1, Alphanumeric, Applicable},
		"Blank2":                       {4, 115, Alphanumeric, Nullable},
		"SpecialDataEntries":           {119, 60, Alphanumeric, Applicable},
		"Blank3":                       {179, 26, Alphanumeric, Nullable},
		"Blank4":                       {205, 2, Alphanumeric, Nullable},
	}
	// Record Layout Positions 544-750 for Form 1098-F
	Sub1098FLayout = map[string]SpecField{
		"DateOrderAgreement":  {0, 8, Date, Applicable},
		"Jurisdiction":        {8, 39, Alphanumeric, Applicable},
		"CaseNumber":          {47, 39, Alphanumeric, Applicable},
		"MatterSuitAgreement": {86, 39, Alphanumeric, Applicable},
		"PaymentCode":         {125, 6, Alphanumeric, Applicable},
		"SpecialDataEntries":  {131, 60, Alphanumeric, Applicable},
		"Blank1":              {191, 16, Alphanumeric, Nullable},
	}
	// Record Layout Positions 544-750 for Form 1098-Q
	Sub1098QLayout = map[string]SpecField{
		"Blank1":                       {0, 2, Alphanumeric, Nullable},
		"AnnuityStartDate":             {2, 8, Date, Applicable},
		"AcceleratedIndicator":         {10, 1, Alphanumeric, Applicable},
		"January":                      {11, 2, ZeroNumeric, Omitted},
		"February":                     {13, 2, ZeroNumeric, Omitted},
		"March":                        {15, 2, ZeroNumeric, Omitted},
		"April":                        {17, 2, ZeroNumeric, Omitted},
		"May":                          {19, 2, ZeroNumeric, Omitted},
		"June":                         {21, 2, ZeroNumeric, Omitted},
		"July":                         {23, 2, ZeroNumeric, Omitted},
		"August":                       {25, 2, ZeroNumeric, Omitted},
		"September":                    {27, 2, ZeroNumeric, Omitted},
		"October":                      {29, 2, ZeroNumeric, Omitted},
		"November":                     {31, 2, ZeroNumeric, Omitted},
		"December":                     {33, 2, ZeroNumeric, Omitted},
		"Blank2":                       {35, 1, Alphanumeric, Nullable},
		"NamePlan":                     {36, 39, Alphanumeric, Applicable},
		"PlanNumber":                   {75, 20, Alphanumeric, Applicable},
		"EmployerIdentificationNumber": {95, 9, Alphanumeric, Applicable},
		"Blank3":                       {104, 101, Alphanumeric, Nullable},
		"Blank4":                       {205, 2, Alphanumeric, Nullable},
	}
	// Record Layout Positions 544-750 for Form 1098-T
	Sub1098TLayout = map[string]SpecField{
		"IdentificationNumber":     {0, 1, Alphanumeric, Applicable},
		"Blank1":                   {1, 2, Alphanumeric, Nullable},
		"HalfTimeStudentIndicator": {3, 1, Alphanumeric, Applicable},
		"GraduateStudentIndicator": {4, 1, Numeric, Applicable},
		"AcademicPeriodIndicator":  {5, 1, Numeric, Applicable},
		"Blank2":                   {6, 1, Alphanumeric, Nullable},
		"Blank3":                   {7, 112, Alphanumeric, Nullable},
		"SpecialDataEntries":       {119, 60, Alphanumeric, Applicable},
		"Blank4":                   {179, 26, Alphanumeric, Nullable},
		"Blank5":                   {205, 2, Alphanumeric, Nullable},
	}
	// Record Layout Positions 544-750 for Form 1099-A
	Sub1099ALayout = map[string]SpecField{
		"Blank1":                              {0, 3, Alphanumeric, Nullable},
		"PersonalLiabilityIndicator":          {3, 1, Alphanumeric, Applicable},
		"DateAcquisitionKnowledgeAbandonment": {4, 8, Date, Applicable},
		"DescriptionProperty":                 {12, 39, Alphanumeric, Applicable},
		"Blank2":                              {51, 68, Alphanumeric, Nullable},
		"SpecialDataEntries":                  {119, 60, Alphanumeric, Applicable},
		"Blank3":                              {179, 26, Alphanumeric, Nullable},
		"Blank4":                              {205, 2, Alphanumeric, Nullable},
	}
	// Record Layout Positions 544-750 for Form 1099-B
	Sub1099BLayout = map[string]SpecField{
		"SecondTinNotice":                {0, 1, Alphanumeric, Applicable},
		"NoncoveredSecurityIndicator":    {1, 1, Alphanumeric, Applicable},
		"TypeGainLossIndicator":          {2, 1, Alphanumeric, Applicable},
		"GrossProceedsIndicator":         {3, 1, Alphanumeric, Applicable},
		"DateSoldDisposed":               {4, 8, Date, Applicable},
		"CUSIP":                          {12, 13, AlphanumericRightAlign, Applicable},
		"DescriptionProperty":            {25, 39, Alphanumeric, Applicable},
		"DateAcquired":                   {64, 8, Date, Applicable},
		"LossNotAllowedIndicator":        {72, 1, Alphanumeric, Applicable},
		"ApplicableCheckboxForm8949":     {73, 1, Alphanumeric, Applicable},
		"ApplicableCheckboxCollectables": {74, 1, Alphanumeric, Applicable},
		"FATCA":                          {75, 1, Alphanumeric, Applicable},
		"ApplicableCheckboxQOF":          {76, 1, Alphanumeric, Applicable},
		"Blank2":                         {77, 42, Alphanumeric, Nullable},
		"SpecialDataEntries":             {119, 60, Alphanumeric, Applicable},
		"StateIncomeTaxWithheld":         {179, 12, ZeroNumeric, Applicable},
		"LocalIncomeTaxWithheld":         {191, 12, ZeroNumeric, Applicable},
		"CombinedFSCode":                 {203, 2, ZeroNumeric, Required},
		"Blank3":                         {205, 2, Alphanumeric, Nullable},
	}
	// Record Layout Positions 544-750 for Form 1099-C
	Sub1099CLayout = map[string]SpecField{
		"Blank1":                     {0, 3, Alphanumeric, Nullable},
		"IdentifiableEventCode":      {3, 1, Alphanumeric, Required},
		"DateIdentifiableEvent":      {4, 8, Date, Applicable},
		"DebtDescription":            {12, 39, Alphanumeric, Applicable},
		"PersonalLiabilityIndicator": {51, 1, Alphanumeric, Applicable},
		"Blank2":                     {52, 67, Alphanumeric, Nullable},
		"SpecialDataEntries":         {119, 60, Alphanumeric, Applicable},
		"Blank3":                     {179, 26, Alphanumeric, Nullable},
		"Blank4":                     {205, 2, Alphanumeric, Nullable},
	}
	// Record Layout Positions 544-750 for Form 1099-CAP
	Sub1099CAPLayout = map[string]SpecField{
		"Blank1":                {0, 4, Alphanumeric, Nullable},
		"DateSaleExchange":      {4, 8, Date, Applicable},
		"Blank2":                {12, 52, Alphanumeric, Nullable},
		"NumberSharesExchanged": {64, 8, ZeroNumeric, Applicable},
		"ClassesStockExchanged": {72, 10, Alphanumeric, Applicable},
		"Blank3":                {82, 37, Alphanumeric, Nullable},
		"SpecialDataEntries":    {119, 60, Alphanumeric, Applicable},
		"Blank4":                {179, 26, Alphanumeric, Nullable},
		"Blank5":                {205, 2, Alphanumeric, Nullable},
	}
	// Record Layout Positions 544-750 for Form 1099-DIV
	Sub1099DIVLayout = map[string]SpecField{
		"SecondTinNotice":          {0, 1, Alphanumeric, Applicable},
		"Blank1":                   {1, 2, Alphanumeric, Nullable},
		"ForeignCountryPossession": {3, 40, Alphanumeric, Applicable},
		"FATCA":                    {43, 1, Alphanumeric, Applicable},
		"Blank2":                   {44, 75, Alphanumeric, Nullable},
		"SpecialDataEntries":       {119, 60, Alphanumeric, Applicable},
		"StateIncomeTaxWithheld":   {179, 12, ZeroNumeric, Applicable},
		"LocalIncomeTaxWithheld":   {191, 12, ZeroNumeric, Applicable},
		"CombinedFSCode":           {203, 2, ZeroNumeric, Required},
		"Blank3":                   {205, 2, Alphanumeric, Nullable},
	}
	// Record Layout Positions 544-750 for Form 1099-G
	Sub1099GLayout = map[string]SpecField{
		"SecondTinNotice":        {0, 1, Alphanumeric, Applicable},
		"Blank1":                 {1, 2, Alphanumeric, Nullable},
		"TradeBusinessIndicator": {3, 1, Alphanumeric, Applicable},
		"TaxYearRefund":          {4, 4, DateYear, Applicable},
		"Blank2":                 {8, 111, Alphanumeric, Nullable},
		"SpecialDataEntries":     {119, 60, Alphanumeric, Applicable},
		"StateIncomeTaxWithheld": {179, 12, ZeroNumeric, Applicable},
		"LocalIncomeTaxWithheld": {191, 12, ZeroNumeric, Applicable},
		"CombinedFSCode":         {203, 2, ZeroNumeric, Required},
		"Blank3":                 {205, 2, Alphanumeric, Nullable},
	}
	// Record Layout Positions 544-750 for Form 1099-H
	Sub1099HLayout = map[string]SpecField{
		"Blank1":               {0, 3, Alphanumeric, Nullable},
		"NumberMonthsEligible": {3, 2, Numeric, Required},
		"Blank2":               {5, 114, Alphanumeric, Nullable},
		"SpecialDataEntries":   {119, 60, Alphanumeric, Applicable},
		"Blank4":               {179, 26, Alphanumeric, Nullable},
		"Blank5":               {205, 2, Alphanumeric, Nullable},
	}
	// Record Layout Positions 544-750 for Form 1099-INT
	Sub1099INTLayout = map[string]SpecField{
		"SecondTinNotice":        {0, 1, Alphanumeric, Applicable},
		"Blank1":                 {1, 2, Alphanumeric, Nullable},
		"ForeignCountry":         {3, 40, Alphanumeric, Applicable},
		"CUSIP":                  {43, 13, AlphanumericRightAlign, Applicable},
		"FATCA":                  {56, 1, Alphanumeric, Applicable},
		"Blank2":                 {57, 62, Alphanumeric, Nullable},
		"SpecialDataEntries":     {119, 60, Alphanumeric, Applicable},
		"StateIncomeTaxWithheld": {179, 12, ZeroNumeric, Applicable},
		"LocalIncomeTaxWithheld": {191, 12, ZeroNumeric, Applicable},
		"CombinedFSCode":         {203, 2, ZeroNumeric, Required},
		"Blank3":                 {205, 2, Alphanumeric, Nullable},
	}
	// Record Layout Positions 544-750 for Form 1099-K
	Sub1099KLayout = map[string]SpecField{
		"SecondTinNotice":                  {0, 1, Alphanumeric, Applicable},
		"Blank1":                           {1, 2, Alphanumeric, Nullable},
		"TypeFilerIndicator":               {3, 1, Alphanumeric, Required},
		"TypePaymentIndicator":             {4, 1, Alphanumeric, Required},
		"NumberPaymentTransactions":        {5, 13, ZeroNumeric, Applicable},
		"Blank2":                           {18, 3, Alphanumeric, Nullable},
		"PaymentSettlementNamePhoneNumber": {21, 40, Alphanumeric, Applicable},
		"MerchantCategoryCode":             {61, 4, ZeroNumeric, Applicable},
		"Blank3":                           {69, 54, Alphanumeric, Nullable},
		"SpecialDataEntries":               {119, 60, Alphanumeric, Applicable},
		"StateIncomeTaxWithheld":           {179, 12, ZeroNumeric, Applicable},
		"LocalIncomeTaxWithheld":           {191, 12, ZeroNumeric, Applicable},
		"CombinedFSCode":                   {203, 2, ZeroNumeric, Required},
		"Blank4":                           {205, 2, Alphanumeric, Nullable},
	}
	// Record Layout Positions 544-750 for Form 1099-LS
	Sub1099LSLayout = map[string]SpecField{
		"Blank1":             {0, 2, Alphanumeric, Nullable},
		"DateSale":           {2, 8, Date, Applicable},
		"Blank2":             {10, 109, Alphanumeric, Nullable},
		"IssuersInformation": {119, 39, Alphanumeric, Applicable},
		"Blank3":             {158, 47, Alphanumeric, Nullable},
		"Blank4":             {205, 2, Alphanumeric, Nullable},
	}
	// Record Layout Positions 544-750 for Form 1099-LTC
	Sub1099LTCLayout = map[string]SpecField{
		"Blank1":                      {0, 3, Alphanumeric, Nullable},
		"TypePaymentIndicator":        {3, 1, Alphanumeric, Applicable},
		"SocialSecurityNumberInsured": {4, 9, Alphanumeric, Required},
		"NameInsured":                 {13, 40, Alphanumeric, Required},
		"AddressInsured":              {53, 40, Alphanumeric, Applicable},
		"CityInsured":                 {93, 40, Alphanumeric, Applicable},
		"StateInsured":                {133, 2, Alphanumeric, Required},
		"ZipCodeInsured":              {135, 9, Numeric, Required},
		"StatusIllnessIndicator":      {144, 1, Alphanumeric, Applicable},
		"DateCertified":               {145, 8, Date, Applicable},
		"QualifiedContractIndicator":  {153, 1, Alphanumeric, Applicable},
		"Blank2":                      {154, 25, Alphanumeric, Nullable},
		"StateIncomeTaxWithheld":      {179, 12, ZeroNumeric, Applicable},
		"LocalIncomeTaxWithheld":      {191, 12, ZeroNumeric, Applicable},
		"Blank3":                      {203, 2, Alphanumeric, Nullable},
		"Blank4":                      {205, 2, Alphanumeric, Nullable},
	}
	// Record Layout Positions 544-750 for Form 1099-MISC
	Sub1099MISCLayout = map[string]SpecField{
		"SecondTinNotice":        {0, 1, Alphanumeric, Applicable},
		"Blank1":                 {1, 2, Alphanumeric, Nullable},
		"DirectSalesIndicator":   {3, 1, Alphanumeric, Applicable},
		"FATCA":                  {4, 1, Alphanumeric, Applicable},
		"Blank2":                 {5, 114, Alphanumeric, Nullable},
		"SpecialDataEntries":     {119, 60, Alphanumeric, Applicable},
		"StateIncomeTaxWithheld": {179, 12, ZeroNumeric, Applicable},
		"LocalIncomeTaxWithheld": {191, 12, ZeroNumeric, Applicable},
		"CombinedFSCode":         {203, 2, ZeroNumeric, Required},
		"Blank3":                 {205, 2, Alphanumeric, Nullable},
	}
	// Record Layout Positions 544-750 for Form 1099-NEC
	Sub1099NECLayout = map[string]SpecField{
		"SecondTinNotice":        {0, 1, Alphanumeric, Applicable},
		"Blank1":                 {1, 2, Alphanumeric, Nullable},
		"DirectSalesIndicator":   {3, 1, Alphanumeric, Applicable},
		"Blank2":                 {4, 175, Alphanumeric, Nullable},
		"StateIncomeTaxWithheld": {179, 12, ZeroNumeric, Applicable},
		"LocalIncomeTaxWithheld": {191, 12, ZeroNumeric, Applicable},
		"CombinedFSCode":         {203, 2, ZeroNumeric, Required},
		"Blank3":                 {205, 2, Alphanumeric, Nullable},
	}
	// Record Layout Positions 544-750 for Form 1099-OID
	Sub1099OIDLayout = map[string]SpecField{
		"SecondTinNotice":        {0, 1, Alphanumeric, Applicable},
		"Blank1":                 {1, 2, Alphanumeric, Nullable},
		"Description":            {3, 39, Alphanumeric, Applicable},
		"FATCA":                  {42, 1, Alphanumeric, Applicable},
		"Blank2":                 {43, 76, Alphanumeric, Nullable},
		"SpecialDataEntries":     {119, 60, Alphanumeric, Applicable},
		"StateIncomeTaxWithheld": {179, 12, ZeroNumeric, Applicable},
		"LocalIncomeTaxWithheld": {191, 12, ZeroNumeric, Applicable},
		"CombinedFSCode":         {203, 2, ZeroNumeric, Required},
		"Blank3":                 {205, 2, Alphanumeric, Nullable},
	}
	// Record Layout Positions 544-750 for Form 1099-PATR
	Sub1099PATRLayout = map[string]SpecField{
		"SecondTinNotice":        {0, 1, Alphanumeric, Applicable},
		"Blank1":                 {1, 118, Alphanumeric, Nullable},
		"SpecialDataEntries":     {119, 60, Alphanumeric, Applicable},
		"StateIncomeTaxWithheld": {179, 12, ZeroNumeric, Applicable},
		"LocalIncomeTaxWithheld": {191, 12, ZeroNumeric, Applicable},
		"CombinedFSCode":         {203, 2, ZeroNumeric, Required},
		"Blank3":                 {205, 2, Alphanumeric, Nullable},
	}
	// Record Layout Positions 544-750 for Form 1099-Q
	Sub1099QLayout = map[string]SpecField{
		"Blank1":                   {0, 3, Alphanumeric, Nullable},
		"TrusteeTransferIndicator": {3, 1, Alphanumeric, Applicable},
		"TypeTuitionPayment":       {4, 1, Alphanumeric, Applicable},
		"DesignatedBeneficiary":    {5, 1, Alphanumeric, Applicable},
		"Blank2":                   {6, 113, Alphanumeric, Nullable},
		"SpecialDataEntries":       {119, 60, Alphanumeric, Applicable},
		"Blank3":                   {179, 26, Alphanumeric, Nullable},
		"Blank4":                   {205, 2, Alphanumeric, Nullable},
	}
	// Record Layout Positions 544-750 for Form 1099-R
	Sub1099RLayout = map[string]SpecField{
		"Blank1":                              {0, 1, Alphanumeric, Nullable},
		"DistributionCode":                    {1, 2, Alphanumeric, Required},
		"TaxableAmountNotDeterminedIndicator": {3, 1, Alphanumeric, Applicable},
		"ISSIndicator":                        {4, 1, Alphanumeric, Applicable},
		"TotalDistributionIndicator":          {5, 1, Alphanumeric, Applicable},
		"PercentageTotalDistribution":         {6, 2, Percent, Applicable},
		"FirstYearDesignatedRothContribution": {8, 4, DateYear, Omitted},
		"FATCA":                               {12, 1, Alphanumeric, Applicable},
		"DatePayment":                         {13, 8, Date, Applicable},
		"Blank2":                              {21, 98, Alphanumeric, Nullable},
		"SpecialDataEntries":                  {119, 60, Alphanumeric, Applicable},
		"StateIncomeTaxWithheld":              {179, 12, ZeroNumeric, Applicable},
		"LocalIncomeTaxWithheld":              {191, 12, ZeroNumeric, Applicable},
		"CombinedFSCode":                      {203, 2, ZeroNumeric, Required},
		"Blank3":                              {205, 2, Alphanumeric, Nullable},
	}
	// Record Layout Positions 544-750 for Form 1099-S
	Sub1099SLayout = map[string]SpecField{
		"Blank1":                    {0, 3, Alphanumeric, Nullable},
		"PropertyServicesIndicator": {3, 1, Alphanumeric, Applicable},
		"DateClosing":               {4, 8, Date, Applicable},
		"AddressLegalDescription":   {12, 39, Alphanumeric, Applicable},
		"ForeignTransferor":         {51, 1, Alphanumeric, Applicable},
		"Blank2":                    {52, 67, Alphanumeric, Nullable},
		"SpecialDataEntries":        {119, 60, Alphanumeric, Applicable},
		"StateIncomeTaxWithheld":    {179, 12, ZeroNumeric, Applicable},
		"LocalIncomeTaxWithheld":    {191, 12, ZeroNumeric, Applicable},
		"Blank3":                    {203, 2, Alphanumeric, Nullable},
		"Blank4":                    {205, 2, Alphanumeric, Nullable},
	}
	// Record Layout Positions 544-750 for Form 1099-SA
	Sub1099SALayout = map[string]SpecField{
		"Blank1":                        {0, 1, Alphanumeric, Nullable},
		"DistributionCode":              {1, 1, Alphanumeric, Required},
		"Blank2":                        {2, 1, Alphanumeric, Nullable},
		"MedicareAdvantageMSAIndicator": {3, 1, Alphanumeric, Applicable},
		"HSAIndicator":                  {4, 1, Alphanumeric, Applicable},
		"ArcherMSAIndicator":            {5, 1, Alphanumeric, Applicable},
		"Blank3":                        {52, 113, Alphanumeric, Nullable},
		"SpecialDataEntries":            {119, 60, Alphanumeric, Applicable},
		"StateIncomeTaxWithheld":        {179, 12, ZeroNumeric, Applicable},
		"LocalIncomeTaxWithheld":        {191, 12, ZeroNumeric, Applicable},
		"Blank4":                        {203, 2, Alphanumeric, Nullable},
		"Blank5":                        {205, 2, Alphanumeric, Nullable},
	}
	// Record Layout Positions 544-750 for Form 1099-SB
	Sub1099SBLayout = map[string]SpecField{
		"Blank1":             {0, 119, Alphanumeric, Nullable},
		"IssuersInformation": {119, 39, Alphanumeric, Applicable},
		"Blank2":             {158, 47, Alphanumeric, Nullable},
		"Blank3":             {205, 2, Alphanumeric, Nullable},
	}
	// Record Layout Positions 544-750 for Form 3921
	Sub3921Layout = map[string]SpecField{
		"Blank1":                         {0, 3, Alphanumeric, Nullable},
		"DateOptionGranted":              {3, 8, Date, Required},
		"DateOptionExercised":            {11, 8, Date, Required},
		"NumberSharesTransferred":        {19, 8, ZeroNumeric, Applicable},
		"Blank2":                         {27, 4, Alphanumeric, Nullable},
		"OtherThanTransferorInformation": {31, 40, Alphanumeric, Applicable},
		"Blank3":                         {71, 48, Alphanumeric, Nullable},
		"SpecialDataEntries":             {119, 60, Alphanumeric, Applicable},
		"Blank4":                         {179, 26, Alphanumeric, Nullable},
		"Blank5":                         {205, 2, Alphanumeric, Nullable},
	}
	// Record Layout Positions 544-750 for Form 3922
	Sub3922Layout = map[string]SpecField{
		"Blank1":                    {0, 3, Alphanumeric, Nullable},
		"DateOptionGranted":         {3, 8, Date, Required},
		"DateOptionExercised":       {11, 8, Date, Required},
		"NumberSharesTransferred":   {19, 8, ZeroNumeric, Applicable},
		"DateLegalTitleTransferred": {27, 8, Date, Required},
		"Blank2":                    {35, 84, Alphanumeric, Nullable},
		"SpecialDataEntries":        {119, 60, Alphanumeric, Applicable},
		"Blank3":                    {179, 26, Alphanumeric, Nullable},
		"Blank4":                    {205, 2, Alphanumeric, Nullable},
	}
	// Record Layout Positions 544-750 for Form 5498
	Sub5498Layout = map[string]SpecField{
		"Blank1":                      {0, 3, Alphanumeric, Nullable},
		"IRAIndicator":                {3, 1, Alphanumeric, Applicable},
		"SEPIndicator":                {4, 1, Alphanumeric, Applicable},
		"SIMPLEIndicator":             {5, 1, Alphanumeric, Applicable},
		"RothIRAIndicator":            {6, 1, Alphanumeric, Applicable},
		"RMDIndicator":                {7, 1, Alphanumeric, Applicable},
		"YearPostponedContribution":   {8, 4, DateYear, Omitted},
		"PostponedContributionCode":   {12, 2, Alphanumeric, Applicable},
		"PostponedContributionReason": {14, 6, Alphanumeric, Applicable},
		"RepaymentCode":               {20, 2, Alphanumeric, Applicable},
		"RMDDate":                     {22, 8, Date, Applicable},
		"Codes":                       {30, 2, Alphanumeric, Applicable},
		"Blank2":                      {32, 87, Alphanumeric, Nullable},
		"SpecialDataEntries":          {119, 60, Alphanumeric, Applicable},
		"Blank3":                      {179, 24, Alphanumeric, Nullable},
		"CombinedFSCode":              {203, 2, ZeroNumeric, Required},
		"Blank4":                      {205, 2, Alphanumeric, Nullable},
	}
	// Record Layout Positions 544-750 for Form 5498-ESA
	Sub5498ESALayout = map[string]SpecField{
		"Blank1":             {0, 119, Alphanumeric, Nullable},
		"SpecialDataEntries": {119, 60, Alphanumeric, Applicable},
		"Blank2":             {179, 26, Alphanumeric, Nullable},
		"Blank3":             {205, 2, Alphanumeric, Nullable},
	}
	// Record Layout Positions 544-750 for Form 5498-SA
	Sub5498SALayout = map[string]SpecField{
		"Blank1":                        {0, 3, Alphanumeric, Nullable},
		"MedicareAdvantageMSAIndicator": {3, 1, Alphanumeric, Applicable},
		"HSAIndicator":                  {4, 1, Alphanumeric, Applicable},
		"ArcherMSAIndicator":            {5, 1, Alphanumeric, Applicable},
		"Blank2":                        {6, 113, Alphanumeric, Nullable},
		"SpecialDataEntries":            {119, 60, Alphanumeric, Applicable},
		"Blank3":                        {179, 26, Alphanumeric, Nullable},
		"Blank4":                        {205, 2, Alphanumeric, Nullable},
	}
	// Record Layout Positions 544-750 for Form  W-2G
	SubW2GLayout = map[string]SpecField{
		"Blank1":                 {0, 3, Alphanumeric, Nullable},
		"TypeWagerCode":          {3, 1, Alphanumeric, Required},
		"DateWon":                {4, 8, Date, Required},
		"Transaction":            {12, 15, Alphanumeric, Applicable},
		"Race":                   {27, 5, Alphanumeric, Applicable},
		"Cashier":                {32, 5, Alphanumeric, Applicable},
		"Window":                 {37, 5, Alphanumeric, Applicable},
		"FirstID":                {42, 15, Alphanumeric, Applicable},
		"SecondID":               {57, 15, Alphanumeric, Applicable},
		"Blank2":                 {72, 47, Alphanumeric, Nullable},
		"SpecialDataEntries":     {119, 60, Alphanumeric, Applicable},
		"StateIncomeTaxWithheld": {179, 12, ZeroNumeric, Applicable},
		"LocalIncomeTaxWithheld": {191, 12, ZeroNumeric, Applicable},
		"Blank3":                 {203, 2, Alphanumeric, Nullable},
		"Blank4":                 {205, 2, Alphanumeric, Nullable},
	}
)
View Source
var AmountCodes = map[string]map[string]string{
	"1097-BTC": {
		"1": "Total Aggregate",
		"2": "January payments",
		"3": "February payments",
		"4": "March payments",
		"5": "April payments",
		"6": "May payments",
		"7": "June payments",
		"8": "July payments",
		"9": "August payments",
		"A": "September payments",
		"B": "October payments",
		"C": "November payments",
		"D": "December payments",
	},
	"1098": {
		"1": "Mortgage",
		"2": "Points",
		"3": "Refund",
		"4": "Mortgage Insurance Premium",
		"5": "Blank",
		"6": "Outstanding Mortgage Principal",
	},
	"1098-C": {
		"4": "Gross proceeds from sales",
		"6": "Value of goods or services",
	},
	"1098-E": {
		"1": "Student loan interest received by the lender",
	},
	"1098-F": {
		"1": "Total amount required to be paid",
		"2": "Restitution/remediation amount",
		"3": "Compliance amount",
	},
	"1098-Q": {
		"1": "January payments",
		"2": "February payments",
		"3": "March payments",
		"4": "April payments",
		"5": "May payments",
		"6": "June payments",
		"7": "July payments",
		"8": "August payments",
		"9": "September payments",
		"A": "October payments",
		"B": "November payments",
		"C": "December payments",
		"D": "Total premiums",
		"E": "Annuity amount on start date",
		"F": "FMV of QLAC",
	},
	"1098-T": {
		"1": "Payments",
		"3": "Payments",
		"4": "Scholarships",
		"5": "Adjustments",
		"7": "Reimbursements",
	},
	"1099-A": {
		"2": "Balance of principal outstanding",
		"4": "Fair market value of the property",
	},
	"1099-B": {
		"2": "Proceeds",
		"3": "Cost",
		"4": "Federal income tax withheld",
		"5": "Wash Sale Loss Disallowed",
		"7": "Bartering",
		"9": "Profit",
		"A": "Unrealized profit",
		"B": "Unrealized profit",
		"C": "Aggregate profit",
		"D": "Accrued Market Discount",
	},
	"1099-C": {
		"2": "Amount of debt discharged",
		"3": "Interest included in Amount Code 2",
		"7": "Fair market value of property",
	},
	"1099-CAP": {
		"2": "Aggregate amount received",
	},
	"1099-DIV": {
		"1": "Total ordinary dividends",
		"2": "Qualified dividends",
		"3": "Total capital gain distribution",
		"5": "Section 199A Dividends",
		"6": "Unrecaptured Section 1250 gain",
		"7": "Section 1202 gain",
		"8": "Collectibles (28%) rate gain",
		"9": "Nondividend distributions",
		"A": "Federal income tax withheld",
		"B": "Investment expenses",
		"C": "Foreign tax paid",
		"D": "Cash liquidation distributions",
		"E": "Non-cash liquidation distributions",
		"F": "Exempt interest dividends",
		"G": "Specified private activity bond interest dividends",
	},
	"1099-G": {
		"1": "Unemployment",
		"2": "State or local income tax",
		"4": "Federal income tax withheld",
		"5": "Reemployment Trade Adjustment ",
		"6": "Taxable grants",
		"7": "Agriculture payments",
		"9": "Market gain",
	},
	"1099-H": {
		"1": "Gross amount of health insurance advance payments",
		"2": "Gross amount of health insurance payments for January",
		"3": "Gross amount of health insurance payments for February",
		"4": "Gross amount of health insurance payments for March",
		"5": "Gross amount of health insurance payments for April",
		"6": "Gross amount of health insurance payments for May",
		"7": "Gross amount of health insurance payments for June",
		"8": "Gross amount of health insurance payments for July",
		"9": "Gross amount of health insurance payments for August",
		"A": "Gross amount of health insurance payments for September",
		"B": "Gross amount of health insurance payments for October",
		"C": "Gross amount of health insurance payments for November",
		"D": "Gross amount of health insurance payments for December",
	},
	"1099-INT": {
		"1": "Interest income not included in Amount Code 3",
		"2": "Early withdrawal penalty",
		"3": "Interest on U.S. Savings Bonds and Treasury obligations",
		"4": "Federal income tax withheld (backup withholding)",
		"5": "Investment expenses",
		"6": "Foreign tax paid",
		"8": "Tax-exempt interest",
		"9": "Specified private activity bond",
		"A": "Market discount",
		"B": "Bond premium",
		"D": "Bond premium on tax exempt bond",
		"E": "Bond premium on Treasury obligation",
	},
	"1099-K": {
		"1": "Gross amount of payment card/third party network transactions",
		"2": "Card not present transactions",
		"4": "Federal Income tax withheld",
		"5": "January payments",
		"6": "February payments",
		"7": "March payments",
		"8": "April payments",
		"9": "May payments",
		"A": "June payments",
		"B": "July payments",
		"C": "August payments",
		"D": "September payments",
		"E": "October payments",
		"F": "November payments",
		"G": "December payments",
	},
	"1099-LS": {
		"1": "Amount paid to payment recipient",
	},
	"1099-LTC": {
		"1": "Gross long-term care benefits paid",
		"2": "Accelerated death benefits paid",
	},
	"1099-MISC": {
		"1": "Rents",
		"2": "Royalties",
		"3": "Other income",
		"4": "Federal income tax withheld",
		"5": "Fishing boat proceeds",
		"6": "Medical and health care payments",
		"7": "Nonemployee compensation (NEC)",
		"8": "Substitute payments in lieu of dividends or interest",
		"A": "Crop insurance proceeds",
		"B": "Excess golden parachute payment",
		"C": "Gross proceeds paid to an attorney in connection with legal services",
		"D": "Section 409A deferrals",
		"E": "Section 409A income",
	},
	"1099-NEC": {
		"1": "Nonemployee Compensation",
		"4": "Federal Income Tax Withheld",
	},
	"1099-OID": {
		"1": "Original issue discount for 2019",
		"2": "Other periodic interest",
		"3": "Early withdrawal penalty",
		"4": "Federal income tax withheld",
		"5": "Bond premium",
		"6": "Original issue discount on U.S.",
		"7": "Investment expenses",
		"A": "Market discount",
		"B": "Acquisition premium",
		"C": "Tax-Exempt OID",
	},
	"1099-PATR": {
		"1": "Patronage dividends",
		"2": "Nonpatronage distributions",
		"3": "Per-unit retain allocations",
		"4": "Federal income tax withheld",
		"5": "Redemption of nonqualified notices and retain allocations",
		"6": "Deduction for domestic production activities income",
		"B": "Qualified Payments",
		"7": "Investment credit",
		"8": "Work opportunity credit",
		"9": "Patron’s alternative minimum tax (AMT) adjustment",
		"A": "For filer’s use for pass-through credits and deduction",
	},
	"1099-Q": {
		"1": "Gross distribution",
		"2": "Earnings (or loss)",
		"3": "Basis",
	},
	"1099-R": {
		"1": "Gross distribution",
		"2": "Taxable amount",
		"3": "Capital gain",
		"4": "Federal income tax withheld",
		"5": "Employee contributions/designated Roth contributions or insurance premiums",
		"6": "Net unrealized appreciation in employer’s securities",
		"8": "Other",
		"9": "Total employee contributions",
		"A": "Traditional IRA/SEP/SIMPLE",
		"B": "Amount allocable to IRR",
	},
	"1099-S": {
		"2": "Gross proceeds",
		"5": "Buyer’s part of real estate tax",
	},
	"1099-SA": {
		"1": "Gross distribution",
		"2": "Earnings on excess contributions",
		"4": "Fair market value of the account on the date of death",
	},
	"1099-SB": {
		"1": "Investment in contract",
		"2": "Surrender amount",
	},
	"3921": {
		"3": "Exercise price per share",
		"4": "Fair market value of share on exercise date",
	},
	"3922": {
		"3": "Fair market value per share on grant date",
		"4": "Fair market value on exercise date",
		"5": "Exercise price per share",
		"8": "Exercise price per share determined  as if the option was exercised on the date the option was granted",
	},
	"5498": {
		"1": "IRA contributions",
		"2": "Rollover contributions",
		"3": "Roth conversion amount",
		"4": "Recharacterized contributions",
		"5": "Fair market value of account",
		"6": "Life insurance cost included in Amount Code 1",
		"7": "FMV of certain specified assets",
		"8": "SEP contributions",
		"9": "SIMPLE contributions",
		"A": "Roth IRA contributions",
		"B": "RMD amount",
		"C": "Postponed Contribution",
		"D": "Repayments",
	},
	"5498-ESA": {
		"1": "Coverdell ESA contributions",
		"2": "Rollover contributions",
	},
	"5498-SA": {
		"1": "Employee",
		"2": "Total contributions made in 2019",
		"3": "Total HSA",
		"4": "Rollover contributions",
		"5": "Fair market value of HSA",
	},
	"W-2G": {
		"1": "Reportable winnings",
		"2": "Federal income tax withheld",
		"7": "Winnings from identical wagers",
	},
}

Amount codes for the type of return being reported.

View Source
var BtcBondType = map[string]string{
	"101": "Clean Renewable Energy Bond",
	"199": "Other",
}

Available bond types for 1097-BTC

View Source
var BtcCode = map[string]string{
	"A": "Account number",
	"C": "CUSIP number",
	"O": "Unique identification number",
}

Available codes for 1097-BTC

View Source
var BtcIssuerIndicator = map[string]string{
	"1": "Issuer of bond",
	"2": "An entity that received a 2018 Form",
}

Available issuer indicators for 1097-BTC

View Source
var DistributionCodes = []string{}/* 112 elements not displayed */
View Source
var ParticipateStateCodes = map[int]string{
	1:  "Alabama",
	4:  "Arizona",
	5:  "Arkansas",
	6:  "California",
	7:  "Colorado",
	8:  "Connecticut",
	10: "Delaware",
	13: "Georgia",
	15: "Hawaii",
	16: "Idaho",
	18: "Indiana",
	20: "Kansas",
	22: "Louisiana",
	23: "Maine",
	24: "Maryland",
	25: "Massachusetts",
	26: "Michigan",
	27: "Minnesota",
	28: "Mississippi",
	29: "Missouri",
	30: "Montana",
	31: "Nebraska",
	34: "New Jersey",
	35: "New Mexico",
	37: "North Carolina",
	38: "North Dakota",
	39: "Ohio",
	40: "Ohio",
	45: "South Carolina",
	55: "Wisconsin",
}

Codes for participating states in the CF/SF Program

View Source
var PaymentCodes1098F = map[string]string{
	"B": "Multiple payers/defendants",
	"C": "Multiple payees",
	"D": "Property included in settlement",
	"E": "Settlement payments to nongovernmental entities, i.e., charities",
	"F": "Settlement paid in full as of time of filing",
	"G": "No payment received as of time of filing",
	"H": "Deferred prosecution agreement",
}

Amount codes for Positions 544-750 for Form 1098-F.

View Source
var StateAbbreviationCodes = map[string]string{
	"AL": "Alabama",
	"AK": "Alaska",
	"AS": "American Samoa",
	"AZ": "Arizona",
	"AR": "Arkansas",
	"CA": "California",
	"CO": "Colorado",
	"CT": "Connecticut",
	"DE": "Delaware",
	"DC": "District of Columbia",
	"FL": "Florida",
	"GA": "Georgia",
	"GU": "Guam",
	"HI": "Hawaii",
	"ID": "Idaho",
	"IL": "Illinois",
	"IN": "Indiana",
	"IA": "IA",
	"KS": "KS",
	"KY": "Kentucky",
	"LA": "Louisiana",
	"ME": "Maine",
	"MD": "Maryland",
	"MA": "Massachusetts",
	"MI": "Michigan",
	"MN": "Minnesota",
	"MS": "Mississippi",
	"MO": "Missouri",
	"MT": "Montana",
	"NE": "Nebraska",
	"NV": "Nevada",
	"NH": "New Hampshire",
	"NJ": "New Jersey",
	"NM": "New Mexico",
	"NY": "NY",
	"NC": "North Carolina",
	"ND": "North Dakota",
	"MP": "No. Mariana Islands",
	"OH": "Ohio",
	"OK": "Oklahoma",
	"OR": "Oregon",
	"PA": "Pennsylvania",
	"PR": "Puerto Rico",
	"RI": "Rhode Island",
	"SC": "South Carolina",
	"SD": "South Dakota",
	"TN": "Tennessee",
	"TX": "Texas",
	"UT": "Utah",
	"VT": "Vermont",
	"VA": "Virginia",
	"VI": "U.S. Virgin Islands",
	"WA": "Washington",
	"WV": "West Virginia",
	"WI": "Wisconsin",
	"WY": "Wyoming",
}

State Abbreviation Codes

View Source
var TypeOfReturns = map[string]string{
	"BT": "1097-BTC",
	"3":  "1098",
	"X":  "1098-C",
	"2":  "1098-E",
	"FP": "1098-F",
	"QL": "1098-Q",
	"8":  "1098-T",
	"4":  "1099-A",
	"B":  "1099-B",
	"5":  "1099-C",
	"P":  "1099-CAP",
	"1":  "1099-DIV",
	"F":  "1099-G",
	"J":  "1099-H",
	"6":  "1099-INT",
	"MC": "1099-K",
	"LC": "1099-LS",
	"T":  "1099-LTC",
	"A":  "1099-MISC",
	"NE": "1099-NEC",
	"D":  "1099-OID",
	"7":  "1099-PATR",
	"Q":  "1099-Q",
	"9":  "1099-R",
	"S":  "1099-S",
	"M":  "1099-SA",
	"SB": "1099-SB",
	"N":  "3921",
	"Z":  "3922",
	"L":  "5498",
	"V":  "5498-ESA",
	"K":  "5498-SA",
	"W":  "W-2G",
}

Codes for type of return

Functions

This section is empty.

Types

type SpecField

type SpecField struct {
	Start    int
	Length   int
	Type     int
	Required string
}

type SpecRecord

type SpecRecord struct {
	Key   int
	Name  string
	Field SpecField
}

func ToSpecifications

func ToSpecifications(fieldsFormat map[string]SpecField) []SpecRecord

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL