New Comment on "837 Claim Parser Usage"
Updated Wiki: Sql Server Database Integration
See also:
Database Schema
You can import your X12 into a SQL Server database by using the OopFactoryX12.ImportX12 console app. This will create the following schema in the database once you have loaded a file:
Table Purpose:
- Container: keeps all Int or BigInt identities for the Interchange, FunctionalGroup, TransactionSet and Loop tables.
- Revision - allows for edits of the X12 and keeping track of comments related to those edits. A record of 0 is added by default to represent the initial load of all X12.
- Interchange, FunctionalGroup, TransactionSet, Loop, Segment - this is the database realization of the Interchange model into a relational model. All segments are shown as they were in the x12 message in the Segment column of the Segment table.
- N1, ... - these are the indexed segment tables specified in the IndexedSegment configuration values. It uses the X12 specification for each segment to define the table. Because of this, there is the potential that something in the segment was not parsable. It may either get truncated or was not parsable to the segment specification's data type. These are errors in the X12, but this will be noted in the log file of the ImportX12 app. The original segment will always remain as a string in the Segment column of the Segment table.
ImportX12 Configuration
The application has the following application settings. Just point the connection string to an empty database and all the tables, views and user-defined functions will be created on-the-fly when you import a file.
- schema - schema of the Interchange, FunctionalGroup, TransactionSet, Loop, Segment tables and any indexed segment tables. If you are using a schema other than "dbo" make sure that you create it first in your target database. The ImportX12 app will create tables, but will expect the schema to already exist.
- containerSchema - schema of the common tables: Container and Revision
- ThrowExceptionOnSyntaxErrors - indicates whether an exception should be thrown on. When the value is false an warning will be sent through the ParsingWarning event instead.
- Hierarchical Parent Id references that don't exist, if false, than the HL will be treated as a top level HL without a parent
- Segments that don't occur in the transaction set's specification, if false, the segment will parsed as a segment of the current loop where it was found.
- IndexedSegments - a comma delimited list of X23 segment IDs that you would like to have as individual tables. The specification of that segment ID will be used to determine how many element columns to create and of which data type. For example, if you are parsing 837 health claims you would use the list "AMT,BHT,CAS,CL1,CLM,CN1,CR1,CR2,CR3,CR4,CR5,CR6,CR7,CR8,CRC,CTP,CUR,DMG,DN1,DN2,DSB,DTP,FRM,HCP,HI,HL,HSD,III,IMM,K3,LIN,LQ,LUI,LX,MEA,MIA,MOA,N2,N3,N4,NM1,NTE,OI,PAT,PER,PRV,PS1,PWK,QTY,RAS,REF,SBR,SV1,SV2,SV3,SV4,SV5,SV6,SV7,SVD,TOO,UR". See Transaction Set Configuration for a full list.
- ParseDirectory - the directory to search for X12 files
- ParseSearchPattern - the file search pattern to filter files for parsing with the ParseDirectory
- ArchiveDirectory - the directory to move each file the parses and imports successfully.
- FailureDirectory - the directory to move any file that fails to parse or load. If the Interchange record was written, the HasErrors column will be set to true on failed files.
Schema Configuration
The application allows you to configure the containerSchema separately from the schema so that you can choose to partition your x12. This can be useful in the following scenarios:
- You want each client's data in a separate schema so their data will never co-mingle and each client does not suffer performance issues because another client has a large amount of records.
- You want to separate your X12 into inbound and outbound messages.
- You want to set separate security on different schemas for different users in your environment so they only access what they need to know, since most X12 contains Personally Identifiable Information.
They system is designed as an INSERT ONLY transactional database. Updates and Deletes are handled by adding revisions. The built in user-defined functions take this into account and only show the latest revision of each segment.
Revision Feature
In most cases you won't be doing any revisions, especially if the X12 messages represent TRUE EDI messages that came to you from a trading partner through a clearinghouse. Mistakes in the X12 should be handled by acknowledgment files that reject bad transactions. However, there are other use cases of X12 that are not TRUE EDI. When the transaction came to you in some other format and you have a data entry system that creates X12 so that you have a common process for integrating all incoming transactions, errors may have been introduced. In this case errors in your X12 may be your responsibility and you might want a process for creating edits of you X12. In this case you will be able to use the SaveRevision method of the SqlTransactionRepository to make edits that will produce valid X12 for your downstream processes.
Updated Wiki: Sql Server Database Integration
See also:
Database Schema
You can import your X12 into a SQL Server database by using the OopFactoryX12.ImportX12 console app. This will create the following schema in the database once you have loaded a file:
Table Purpose:
- Container: keeps all Int or BigInt identities for the Interchange, FunctionalGroup, TransactionSet and Loop tables.
- Revision - allows for edits of the X12 and keeping track of comments related to those edits. A record of 0 is added by default to represent the initial load of all X12.
- X12CodeList - This will contain the lookup values for any elements in a segment that has been Indexed into a separate table.
- Interchange, FunctionalGroup, TransactionSet, Loop, Segment - this is the database realization of the Interchange model into a relational model. All segments are shown as they were in the x12 message in the Segment column of the Segment table.
- NM1, N1, N3 ... - these are the indexed segment tables specified in the IndexedSegment configuration values. It uses the X12 specification for each segment to define the table. Because of this, there is the potential that something in the segment was not parsable. It may either get truncated or was not parsable to the segment specification's data type. These are errors in the X12, but this will be noted in the log file of the ImportX12 app. The original segment will always remain as a string in the Segment column of the Segment table.
- ParsingError - because the indexed tables are typed into decimal and datetime when relevant, this table will contain any errors translating the target data type or any errors exceeding the max length of a string element. The errorId will be recorded in the indexed segment table. The original Segment table will always contain the original value from the x12 file.
ImportX12 Configuration
The application has the following application settings. Just point the connection string to an empty database and all the tables, views and user-defined functions will be created on-the-fly when you import a file.
- schema - schema of the Interchange, FunctionalGroup, TransactionSet, Loop, Segment tables and any indexed segment tables. If you are using a schema other than "dbo" make sure that you create it first in your target database. The ImportX12 app will create tables, but will expect the schema to already exist.
- containerSchema - schema of the common tables: Container and Revision
- ThrowExceptionOnSyntaxErrors - indicates whether an exception should be thrown on. When the value is false an warning will be sent through the ParsingWarning event instead.
- Hierarchical Parent Id references that don't exist, if false, than the HL will be treated as a top level HL without a parent
- Segments that don't occur in the transaction set's specification, if false, the segment will parsed as a segment of the current loop where it was found.
- IndexedSegments - a comma delimited list of X23 segment IDs that you would like to have as individual tables. The specification of that segment ID will be used to determine how many element columns to create and of which data type. For example, if you are parsing 837 health claims you would use the list "AMT,BHT,CAS,CL1,CLM,CN1,CR1,CR2,CR3,CR4,CR5,CR6,CR7,CR8,CRC,CTP,CUR,DMG,DN1,DN2,DSB,DTP,FRM,HCP,HI,HL,HSD,III,IMM,K3,LIN,LQ,LUI,LX,MEA,MIA,MOA,N2,N3,N4,NM1,NTE,OI,PAT,PER,PRV,PS1,PWK,QTY,RAS,REF,SBR,SV1,SV2,SV3,SV4,SV5,SV6,SV7,SVD,TOO,UR". See Transaction Set Configuration for a full list.
- ParseDirectory - the directory to search for X12 files
- ParseSearchPattern - the file search pattern to filter files for parsing with the ParseDirectory
- ArchiveDirectory - the directory to move each file the parses and imports successfully.
- FailureDirectory - the directory to move any file that fails to parse or load. If the Interchange record was written, the HasErrors column will be set to true on failed files.
Schema Configuration
The application allows you to configure the containerSchema separately from the schema so that you can choose to partition your x12. This can be useful in the following scenarios:
- You want each client's data in a separate schema so their data will never co-mingle and each client does not suffer performance issues because another client has a large amount of records.
- You want to separate your X12 into inbound and outbound messages.
- You want to set separate security on different schemas for different users in your environment so they only access what they need to know, since most X12 contains Personally Identifiable Information.
They system is designed as an INSERT ONLY transactional database. Updates and Deletes are handled by adding revisions. The built in user-defined functions take this into account and only show the latest revision of each segment.
Revision Feature
In most cases you won't be doing any revisions, especially if the X12 messages represent TRUE EDI messages that came to you from a trading partner through a clearinghouse. Mistakes in the X12 should be handled by acknowledgment files that reject bad transactions. However, there are other use cases of X12 that are not TRUE EDI. When the transaction came to you in some other format and you have a data entry system that creates X12 so that you have a common process for integrating all incoming transactions, errors may have been introduced. In this case errors in your X12 may be your responsibility and you might want a process for creating edits of you X12. In this case you will be able to use the SaveRevision method of the SqlTransactionRepository to make edits that will produce valid X12 for your downstream processes.
Updated Wiki: SqlTransactionRepository class
The SqlTransactionRepository class can be used for additional control over the import of X12 into a SQL Server database. In most cases you can use the OopFactory.X12.ImportX12 console app out-of-the-box and will only need to work with the SqlReadOnlyTransactionRepository
class.
SqlTransactionRepository Class Diagram
These two classes are split apart because their a quite a number of constructor arguments you need when you are importing data that aren't needed when you are reading data. If you are not using the Revision feature, all you need outside of the OopFactory.X12.ImportX12
app is to use the SqlReadOnlyTransactionRepository.
These classes have been created as generics so that you choose between using SQL's int, bigint or uniqueidentifier as your table identities, by using the class with int, long or Guid for T.
The Container table will hold the identities for interchanges, function groups, transaction sets and for loops, so it will fill up quick, but will probably still be sufficient to use Int in many cases.
SqlReadOnlyTransactionRepository Methods
GetTransactionSets
GetTransactionSetSegments
GetTransactionSetSegments accepts the following arguments:
- transactionSetID = the Id from the TransactionSet table, this can also be obtained by searching for transactions using the GetTransactionSets method and specifying filter criteria with the RepoTransactionSetSearchCriteria.
- revisionId - the revisionId of the the transaction, use Int32.MaxValue to get the latest revision.
- includeControlSegments - will add the ISA,GS,GE and IEA segments to the segments returned.
It will return a List<RepoSegment<T>> which is shown below:
GetLoops
GetTransactionSegments
A transaction is defined differently for each transaction set. The SqlTransactionRepository allows you to treat any loop in your transact set as a transaction.
For example, an 837 health care claim would use SpecLoopId = "2300" to define a claim as a transaction. When you call GetTransactionSegments, it will unbundle the segments related to that transaction (ancestor loops and their related segments, and all child segments). This is similare to the UnbundleX12 console app.
The data structure returned is a list of RepoSegments with a Segment property.
To rebuild an unbundled X12 message, call GetTransactionSegments with includeControlSegments = true, and concatenate the Segment.SegmentString with Segment.Delimiters.SegmentTerminator for the segments returned. This will give you a valid X12 message that you can then use existing transformations to work with. See Claim Parser for some claim transformations.
SqlTransactionRepository Methods
Save
The Save methods accepts an Interchange object which is the output of the X12Parser's PareMultiple method. You can send this directly to the Save method and it will return the Id value from the Interchange table. If you intend to do any post processing, this Id can be sent to the GetTransactionSets or GetLoops method to identify the newly created elements that you may want to act upon.
Database Creation
When you call the Save method for the first time, the class will check for the expected database tables and automatically and create the necessary table, views and user-defined functions depending on your values for schema, commonSchema, and indexedSegments. This is useful to get you started right away, but it does this check on every save.
To bypass this, you can create a derived class with no implementation for EnsureSchema. You can use the default implementation in development to create your database objects, and then turn off EnsureSchema once you've moved to production so that it doesn't incur the extra database hit.
SaveRevision
The SaveRevision methods accepts an IList<RepoSegment<T>> that it expects you got from the GetTransactionSetSegments or GetTransactionSegments methods.
Once you have made the updates to the segments you can send it to the SaveRevision method. The save revision will insert new database entries for the segments that have actually changed. Subsequent calls to GetTransactionSetSegments and GetTransactionSegments will only get the latest revision that is less than the RevisionId sent to either of those methods.
Database Concurrency
The SaveRevision method will check concurrency at the segment level. Before saving a segment change it will make sure that the RevisionID at the time that the RepoSegment was retrieved has not changed. If it has changed, it will rollback all
changes in the revision. This will cause the Revision table to skip some ID values.
New Comment on "Parsing an 837 Transaction"
Updated Wiki: Transaction Set Configuration
The following table shows the segments used in each X12 transaction. This list can be used to configure which segments to index into tables for SQL Server integration
Transaction Set Code | Function Group Code | Name | Segments Used |
---|---|---|---|
100 | PG | Insurance Plan Description | AM1, AMT, BGN, BLI, C3, COM, DTP, III, LIN, MSG, N1, N2, N3, N4, NM1, PER, PID, PO1, QTY, REF, SE, SI, SPA, ST |
101 | NL | Name and Address Lists | BGN, COM, DTM, IN2, LX, N1, N9, NX2, REF, SE, SPA, ST |
102 | AC | Associated Data | BDS, OOI, ORI, REF, SE, ST |
103 | AB | Abandoned Property Filings | AMT, BGN, BLN, BPR, CUR, DTM, DTP, INI, INT, LX, N1, N2, N3, N4, NM1, NTE, PCT, PDS, PER, QTY, REF, SE, SHI, ST, TC2, TRN, YNQ |
104 | SA | Air Shipment Information | ACS, C3, DTM, F9, FOB, G47, H1, H2, H3, L0, L1, L3, L4, L5, M1, N1, N2, N3, N4, N9, NTE, P1, PER, SE, SL1, ST, TD4, X1, X2 |
105 | BF | Business Entity Filings | AMT, BGN, BIN, CDS, CUR, DTM, EFI, HL, LIN, LM, LQ, LUI, LX, MTX, N2, N3, N4, NM1, NX1, NX2, PCT, PDL, PER, PWK, QTY, REF, SE, ST, TPB |
106 | MH | Motor Carrier Rate Proposal | AT5, AT9, BGN, BLR, CA1, CUR, G62, GY, LC1, LX, MCT, MI1, MS2, N1, N2, N3, N4, PER, PR, RTT, SE, ST, SV, TF, TFR, TS |
107 | MC | Request for Motor Carrier Rate Proposal | AT5, AT9, BGN, CA1, CUR, G62, GY, ID4, IV1, LX, MCT, MI1, MS2, N1, N2, N3, N4, PER, PR, SE, ST, SV |
108 | MK | Response to a Motor Carrier Rate Proposal | BGN, BLR, CA1, G62, LC1, N1, N2, N3, N4, PER, SE, ST |
109 | VE | Vessel Content Details | B4, DTM, N9, Q2, R4, SE, SG, ST, V9 |
110 | IA | Air Freight Details and Invoice | ACS, B3, B3A, C2, C3, G47, ITD, L0, L1, L3, L4, L5, L10, LX, N1, N2, N3, N4, N9, NTE, P1, PER, POD, R1, RMT, SE, SL1, ST, V9 |
111 | IF | Individual Insurance Policy and Client Information | AM1, AMT, ASI, BEN, BHT, BLI, BLN, C3, COM, DMG, DTP, HL, III, IN1, LIN, LQ, LUI, N2, N3, N4, NM1, NX1, PDL, PER, QTY, REF, RPA, SE, SPA, ST, UDA |
112 | PQ | Property Damage Report | AMT, BGN, C3, CID, DTP, HL, III, K2, LM, MEA, MS1, MSG, N2, N3, N4, N9, NM1, PCT, PER, QTY, SE, SLN, ST, SUP, TXI |
113 | CL | Election Campaign and Lobbyist Reporting | AWD, BGN, DTM, EMS, G86, HL, LQ, MTX, N1, N2, N3, N4, N9, NM1, NX2, PAM, PCT, PDL, PER, PWK, QTY, SE, ST, TPB |
120 | VC | Vehicle Shipping Order | BVP, DTM, G62, N1, N2, N3, N4, REF, SE, ST, VC, VC1 |
121 | VS | Vehicle Service | BVS, CGS, DEL, DTM, G62, N7, REF, SE, ST, V1, VC |
124 | VD | Vehicle Damage | AMT, AP1, BCI, BGN, C3, CRC, CTP, DAM, DL, DP, DTM, DTP, DVI, F13, ID, III, LE, LID, LM, LQ, LS, LX, MSG, N2, N3, N4, N9, NM1, PCT, PER, PID, QTY, REF, SAC, SE, ST, SUP, TXI, VAT, VEH, YNQ |
125 | MR | Multilevel Railcar Load Details | BMM, G62, N7, SE, ST, VC |
126 | VA | Vehicle Application Advice | BVA, L7, SE, ST, V1, VAD |
127 | VB | Vehicle Baying Order | BVB, G62, SE, SFC, ST, VC |
128 | DI | Dealer Information | DH, DN, K1, N1, N2, N3, N4, PER, R9, SE, ST |
129 | VH | Vehicle Carrier Rate Update | G62, RT, RT1, SE, ST, VR |
130 | ED | Student Educational Record (Transcript) | ATV, BGN, CRS, CSU, DEG, DMG, DTP, EMS, ERP, FOS, HC, HS, IMM, IN1, IN2, IND, LUI, LX, MKS, N1, N2, N3, N4, NTE, OPS, OPX, PCL, PER, RAP, REF, SBT, SE, SES, SP, SRE, SSE, SST, ST, SUM, TST |
131 | AK | Student Educational Record (Transcript) Acknowledgment | BGN, IN2, N1, QTY, REF, SE, ST, SUM |
132 | HU | Human Resource Information | AIN, BGN, CN1, COM, CON, CQ, CRS, CSU, DEG, DMG, DTP, ELV, EMS, ESI, FOS, HL, III, ISI, LQ, LUI, N1, N2, N3, N4, N9, NM1, PCT, QTY, REF, SE, SES, ST, WLD, YNQ |
133 | CW | Educational Institution Record | AMT, ATV, BGN, COM, DEG, DTP, EDF, ENM, ERP, FOS, HL, ISI, LQ, N1, N2, N3, N4, NM1, NTE, OPX, PCT, PPA, QTY, REF, SCT, SE, SLA, SP, ST, YNQ |
135 | SL | Student Aid Origination Record | AMT, BGN, DEF, DMA, DMG, DTP, ENR, ENT, FNA, GR, IDB, IN1, IN2, LM, LQ, LX, MEA, N1, N3, N4, NTE, PER, PLI, QTY, REF, SAD, SCT, SE, ST, Y6, YNQ |
138 | TT | Educational Testing and Prospect Request and Report | ATV, BGN, COM, DEG, DMG, DTP, EMS, ERP, FOS, IN1, IN2, IND, LUI, MSG, N1, N3, N4, PCL, PER, RAP, REF, RQS, SBT, SCA, SE, SRE, SSE, SST, ST, SUM, TST |
139 | SL | Student Loan Guarantee Result | AMT, BGN, DB, DTP, ENT, GR, IDB, IN2, LM, LQ, QTY, SE, ST |
140 | WA | Product Registration | AMT, BGN, CUR, DTM, ITA, ITD, LIN, LM, LQ, LX, N1, N2, N3, N4, N9, PER, PID, PSC, QTY, REF, SE, SLN, SSS, ST, TXI |
141 | WA | Product Service Claim Response | AMT, BGN, CUR, DTM, LX, MSG, N1, N2, N3, N4, N9, PCS, PER, QTY, RC, REF, SE, ST, TDS |
142 | WA | Product Service Claim | AMT, BGN, CID, CUR, DTM, IT1, ITA, LIN, LM, LOC, LQ, LX, MEA, MSG, N1, N2, N3, N4, N9, PER, PID, PRR, PRT, PSC, QTY, RC, REF, REP, SE, SSS, ST, TDS, TMD, TXI |
143 | WA | Product Service Notification | BGN, CID, CUR, DTM, ITA, LIN, LOC, MSG, N1, N2, N3, N4, N9, PER, PID, PRR, PRT, PWK, QTY, REF, REP, SE, SLN, ST |
144 | LT | Student Loan Transfer and Status Verification | BGN, DB, DMG, DTP, ENT, GR, IDB, IN2, LV, N3, N4, REF, SE, ST |
146 | RY | Request for Student Educational Record (Transcript) | BGN, DMG, ERP, IN1, IN2, IND, N1, N2, N3, N4, NTE, PER, REF, SE, SSE, SST, ST |
147 | RZ | Response to Request for Student Educational Record (Transcript) | AAA, BGN, IN1, IN2, N1, N2, N3, N4, NTE, PER, PWK, REF, SE, ST |
148 | IJ | Report of Injury, Illness or Incident | ACT, AD1, AIN, AMT, BHT, CFI, CRC, CRI, CUR, DMG, DTP, EMT, ESI, FC, GRI, HL, III, IMP, LE, LM, LN, LQ, LS, LX, N2, N3, N4, NM1, PCT, PER, PID, QTY, REF, REL, SE, ST, TPB, TXI, VEH, WS |
149 | NT | Notice of Tax Adjustment or Assessment | AMT, BGN, DTM, FGS, IN2, MSG, N1, N2, N3, N4, PCT, PER, REF, SE, ST, TDS, TFS, TIA |
150 | TN | Tax Rate Notification | AMT, BGN, DTP, FGS, MTX, N1, N2, N3, N4, PER, QTY, SE, ST, TFS, TRS |
151 | TA | Electronic Filing of Tax Return Data Acknowledgment | AMT, BTA, BTI, DTM, FGS, PBI, QTY, REF, SE, ST, TFS, TIA |
152 | GR | Statistical Government Information | BGN, DTM, GRI, ICH, N1, N2, N3, N4, N9, NTE, PAM, PER, QTY, SE, ST |
153 | CB | Unemployment Insurance Tax Claim or Charge Information | AMT, BTI, CHB, DPN, DTM, MSG, N1, N2, N3, N4, NM1, PAM, PCT, PER, REF, SE, ST |
154 | UC | Secured Interest Filing | AMT, BGN, CDS, CED, DAD, DTM, LIN, LS1, N1, N2, N3, N4, N9, NM1, NTE, PAM, PER, PID, PO3, SE, ST, TAX, TXI |
155 | BC | Business Credit Report | ACD, API, ASI, ASO, AWD, BBC, BGN, C3, CDS, CED, COM, CRC, DMG, DTP, EMS, FDA, HL, III, IN1, IN2, INQ, INR, ITC, LM, LOD, LQ, LUI, LX, MEA, MTX, N1, N2, N3, N4, N9, NM1, NX1, NX2, PCT, PER, PYM, PYT, |
157 | NP | Notice of Power of Attorney | BGN, DTM, HL, IN2, N1, N2, N3, N4, NM1, PER, REF, SE, SPY, ST |
158 | TJ | Tax Jurisdiction Sourcing | ASI, BGN, DTP, LX, N1, NX2, PPA, SE, ST, TA |
159 | MP | Motion Picture Booking Confirmation | AMT, BGN, CUR, DTP, G63, LQ, LUI, LX, MEA, MSG, N1, N4, N9, PCT, QTY, REF, SE, ST, THE |
160 | SJ | Transportation Automatic Equipment Identification | AEI, AES, BAX, DTM, EI, LQ, MEA, N9, QTY, SE, ST, TSI, YNQ |
161 | TR | Train Sheet | BTS, DTM, FAC, H3, N9, NM1, PER, PWK, SE, ST, V9 |
163 | AS | Transportation Appointment Schedule Information | B13, B2A, G05, G61, G62, H3, H6, L11, N1, N2, N3, N4, N7, OID, S5, SDQ, SE, ST |
170 | ER | Revenue Receipts Statement | BOX, DTM, LX, N1, PER, REF, SE, ST, THE |
175 | FC | Court and Law Enforcement Notice | AMT, BGN, CDS, CED, CRC, DMG, DTM, III, LE, LM, LQ, LS, LX, MEA, MSG, N2, N3, N4, NM1, PAM, PER, QTY, REF, SE, SPI, ST |
176 | FC | Court Submission | AMT, BBC, BCU, BGN, BIN, CDS, CED, CRC, DTM, EFI, FGS, LM, LQ, MSG, N2, N3, N4, NM1, PAM, PCT, PER, QTY, REF, SE, SPI, ST |
179 | EP | Environmental Compliance Reporting | AMT, BDS, BGN, DTM, G86, HL, III, LM, LOC, LQ, MEA, MTX, N1, N2, N3, N4, N9, NM1, NTE, OOI, PCT, PER, PWK, QTY, REF, SE, SPI, ST, TPB, YNQ |
180 | AN | Return Merchandise Authorization and Notification | AMT, BGN, BLI, CRC, DD, DTM, FA1, FA2, G38, GF, LM, LQ, LX, MEA, N1, N2, N3, N4, N9, NTE, PER, PID, PKG, PRF, QTY, RDR, SAC, SDQ, SE, ST, TD1, TD5 |
185 | RD | Royalty Regulatory Report | AMT, ASI, ASM, BGN, DTP, LE, LM, LQ, LS, LX, MEA, N1, N2, N3, N4, NTE, PCT, PER, PID, QTY, REF, SE, ST |
186 | UW | Insurance Underwriting Requirements Reporting | ACT, AM1, AMT, ASL, BGN, BIN, BOR, CD2, CDS, CED, CUR, DMA, DMG, DTP, EC, EFI, EMS, FH, HL, III, IN1, LE, LS, LTR, LX, MPI, MSG, N1, N3, N4, NM1, PER, PWK, QTY, REF, REL, SE, SIN, SPK, ST, TOA, TOV, U |
187 | AE | Premium Audit Request and Return | AD1, AMT, BAL, BGN, BIN, CRC, CUR, DMA, DMG, DTP, DVI, EFI, HL, III, ITA, LQ, LX, MEA, MSG, N1, N2, N3, N4, NM1, NX2, PCT, PDP, PDR, PDS, PER, PID, QTY, REF, SE, SI, ST, SUP, TDS, TXI, VAT, VEH |
188 | EC | Educational Course Inventory | CSE, CSU, DTP, ERP, MSG, N1, N2, N3, N4, PER, REF, SE, ST |
189 | AF | Application for Admission to Educational Institutions | AMT, ATV, BGN, COM, CRS, DEG, DMG, DTP, EMS, FOS, HC, III, IMM, IN1, IN2, IND, LE, LQ, LS, LT, LTE, LUI, LX, MSG, N1, N2, N3, N4, NTE, PCL, PDL, PER, QTY, REF, RQS, RSD, SBT, SE, SES, SRE, SSE, SST, S |
190 | SV | Student Enrollment Verification | AMT, BGN, DEG, DMG, DTP, ENR, ENT, ERP, FOS, IN2, LQ, N1, N2, N3, N4, NTE, PER, SE, SES, SST, ST, SUM |
191 | SD | Student Loan Pre-Claims and Claims | AMT, BGN, DB, DEF, DMA, DMG, DTP, ENR, ENT, GR, IN1, IN2, N3, N4, PER, REF, SE, SLI, ST, YNQ |
194 | GT | Grant or Assistance Application | AMT, BGN, DEG, DMG, DTM, EMS, FOS, HL, HSD, INX, K2, K3, L11, LDT, LX, MTX, N1, N2, N3, N4, N9, NM1, NTE, NX1, PAM, PCT, PD, PDD, PER, PL, PO1, PPL, PWK, QTY, REF, SE, SPI, ST, YNQ |
195 | LA | Federal Communications Commission (FCC) License Application | AMT, BGN, CRC, DTM, LIE, LM, LQ, MEA, MSG, N1, N2, N3, N4, NTE, PER, PO1, PWK, QTY, REF, SE, ST |
196 | PK | Contractor Cost Data Reporting | AMT, BCM, BSD, CAL, CLI, CRT, DTM, DTP, G61, HL, MEA, MSG, N1, N2, N3, N4, PCT, PD, PDD, PID, QTY, REF, RPA, SE, ST |
197 | TO | Real Estate Title Evidence | AMT, BGN, BIN, DTP, EFI, FGS, FPT, G86, IN1, IN2, LQ, LX, M1, MSG, N1, N2, N3, N4, N9, NM1, NX1, NX2, PDE, PDS, PER, PID, REF, SE, ST |
198 | ME | Loan Verification Information | ACT, AIN, AMT, API, BGN, CDA, DTP, EMS, FAA, IN1, IN2, MSG, N1, N2, N3, N4, NM1, NTE, NX1, NX2, PER, PEX, PRD, PWK, QTY, REF, SE, ST, YNQ |
199 | TO | Real Estate Settlement Information | AMT, BGN, DTM, DTP, FGS, III, IN1, IN2, LN1, LRQ, LX, N1, N2, N3, N4, NM1, NTE, NX1, NX2, PCT, PDE, PDS, PER, QTY, REF, SE, ST, YNQ |
200 | ME | Mortgage Credit Report | AAA, AIN, AMT, ARS, BGN, CCI, CDS, CRO, DMG, DTP, EMS, G32, IN1, IN2, INQ, LE, LS, LX, MSG, N1, N2, N3, N4, N10, NTE, NX1, NX2, PER, PPD, QTY, REF, RO, SCM, SCS, SE, SOI, ST, TBI, TLN, VAR, YNQ |
201 | ME | Residential Loan Application | ACT, AIN, AMT, ARS, BEP, BGN, CDA, CRC, DMG, DTP, EMS, FAA, FTH, III, IN1, IN2, LE, LIN, LRQ, LS, LX, MCD, MSG, N1, N2, N3, N4, N10, NM1, NTE, NX1, NX2, PCT, PDE, PDS, PER, PEX, PPY, QTY, REA, REF, RE |
202 | MJ | Secondary Mortgage Market Loan Delivery | AIN, AMT, ASM, BEP, BGN, BUY, CN1, CRC, CTT, DEX, DMG, DTP, IGI, III, IN1, IN2, INT, LN1, LUC, LX, MPP, MSG, N1, N2, N3, N4, N9, NM1, NX1, NX2, PAM, PCT, PDS, PER, PEX, PPD, PWK, QTY, REA, REF, RLD, S |
203 | MG | Secondary Mortgage Market Investor Report | AMT, BGN, DTM, DTP, INT, IRA, LQ, LX, MPP, N1, N2, N3, N4, NX2, PER, PRC, QTY, REF, RLT, SE, ST, YNQ |
204 | SM | Motor Carrier Load Tender | AT5, AT8, B2, B2A, C3, G61, G62, L3, L4, L5, L11, LAD, LEP, LFH, LH1, LH2, LH3, LH4, LH6, LHT, LX, M7, MEA, MS3, N1, N2, N3, N4, N7, N7A, N7B, NTE, OID, PER, PLD, RTT, S5, SE, ST |
205 | MN | Mortgage Note | AMT, BGN, CDI, CTT, DTP, III, IN1, IN2, INT, LX, MNC, N2, N3, N4, NM1, NX1, NX2, PCT, PDS, PER, QTY, REF, SE, SOM, ST, TRN, VDI, YNQ |
206 | MG | Real Estate Inspection | AIN, AMT, BGN, CRC, CTP, DFI, DTP, III, IN1, IN2, LN, MSG, N1, N2, N3, N4, N9, NTE, NX1, NX2, OBI, PDE, PDS, PER, PWK, QTY, REA, REC, REF, RLT, SE, SI, ST, YNQ |
210 | IM | Motor Carrier Freight Details and Invoice | B3, C2, C3, CD3, G62, H1, H2, H3, H6, ITD, K1, L0, L1, L3, L4, L5, L7, L9, L11, LX, M7, N1, N2, N3, N4, N7, OID, POD, R3, S5, SDQ, SE, ST |
211 | BL | Motor Carrier Bill of Lading | AT1, AT2, AT3, AT4, AT5, B2A, BOL, G61, G62, K1, L4, L11, LEP, LFH, LH1, LH2, LH3, LH4, LH6, LHT, LX, MAN, MS2, MS3, N1, N2, N3, N4, OID, SE, ST |
212 | TM | Motor Carrier Delivery Trailer Manifest | AT7, AT8, AT9, ATA, B2A, BLR, G61, G62, L11, LX, M7, MAN, MS1, MS2, N1, N2, N3, N4, OID, Q7, SDQ, SE, ST, TSD |
213 | MI | Motor Carrier Shipment Status Inquiry | B11, C3, G61, K2, L10, N1, N2, N3, N4, REF, SE, ST |
214 | QM | Transportation Carrier Shipment Status Message | AT5, AT7, AT8, B10, G62, K1, L11, LX, M7, MAN, MS1, MS2, MS3, N1, N2, N3, N4, OID, Q7, SDQ, SE, ST |
215 | UP | Motor Carrier Pickup Manifest | ACS, AT6, B1, C3, CD3, CGS, G61, G62, IT1, L5, L11, MAN, MS4, MS5, MS6, N1, N2, N3, N4, N10, NTE, PER, PID, R4, SE, SLN, SMD, ST, TXI, X1, X2 |
216 | PU | Motor Carrier Shipment Pickup Notification | AT5, G61, K2, N1, N2, N3, N4, PRF, PUN, SE, ST, TEM |
217 | FG | Motor Carrier Loading and Route Guide | BLR, G61, GY, L11, LE, LS, LX, N1, N3, N4, RST, SE, ST, SV |
219 | AB | Logistics Service Request | AMT, AT5, B9, B9A, CUR, G61, G62, G69, ITA, L3, L11, LAD, LCT, LEP, LFH, LH1, LH2, LH3, LH4, LH6, LHT, LX, MAN, MEA, MS3, N1, N2, N3, N4, N7, N7A, N7B, NTE, PER, PO4, S5, SE, ST |
220 | AH | Logistics Service Response | AMT, AT5, B9, B9A, G62, G69, ITA, L3, L8, L9, L11, LAD, LCD, LCT, LX, M7, MAN, MEA, MS3, N1, N2, N3, N4, N7, N7A, N7B, NTE, PER, PO4, S5, SE, ST |
222 | CE | Cartage Work Assignment | AT3, AT5, G61, G62, L11, LAD, LEP, LFH, LH1, LH2, LH3, LH4, LH6, LHT, LX, N1, N2, N3, N4, N7, NTE, PLC, PLD, S5, SCN, SE, ST |
223 | MQ | Consolidators Freight Bill and Invoice | AT8, B10, B2A, B3A, CSD, L1, L11, LE, LS, LX, M7, N1, N2, N3, N4, N7, OID, SDQ, SE, ST |
224 | MA | Motor Carrier Summary Freight Bill Manifest | CF1, CF2, L11, SE, ST |
225 | MY | Response to a Cartage Work Assignment | L11, SCP, SE, ST |
227 | TU | Trailer Usage Report | BLR, G61, G62, L11, M7, N1, N2, N3, N4, N7, NTE, SE, ST, TRL |
228 | EN | Equipment Inspection Report | BGN, DTM, EQD, L11, M7, MEA, N1, N3, N4, N9, NA, NM1, NTE, PER, Q5, SE, ST, W2 |
240 | MZ | Motor Carrier Package Status | AT7, BGN, BIN, CD3, EFI, L11, LE, LS, LX, MAN, MS2, N1, N2, N3, N4, NM1, NTE, Q7, SE, ST |
242 | DS | Data Status Tracking | BGN, DTP, HL, IIS, IRP, MSG, N1, QTY, REF, SE, ST, STS |
244 | PN | Product Source Information | BGN, BSF, CID, COM, DTM, N1, N2, NM1, NX2, PID, SE, ST |
245 | ME | Real Estate Tax Service Response | AMT, ASM, BGN, DTP, HL, INC, LN, MLA, N2, N3, N4, NM1, NX1, NX2, PDE, PDS, PER, PTS, REF, SE, ST, TA, TDT, TIA, TII |
248 | SU | Account Assignment/Inquiry and Service/Status | ACT, AIN, AMT, BAL, BHT, DMG, DTP, EMS, HL, INT, N2, N3, N4, NM1, PER, REF, SE, ST, STC |
249 | AT | Animal Toxicological Data | ADI, ADT, ANI, AOC, AOI, AOL, AOR, ARC, AST, ATR, BGN, G61, GDP, GID, GRP, MSG, N1, N2, N3, N4, NTE, REF, SE, ST, STP |
250 | PV | Purchase Order Shipment Management Document | BGN, DTM, FOB, G05, H3, L11, N1, N2, N3, N4, PRF, SE, SSD, ST |
251 | CP | Pricing Support | AMT, BGN, CUR, DTM, G61, LX, MTX, N1, N2, N3, N4, NTE, PCT, PD, PDD, PID, PL, PO1, PPL, QTY, REF, SE, SPI, ST |
252 | IE | Insurance Producer Administration | ACT, AM1, AMT, ASI, BGN, BIN, CDS, CED, COM, DMA, DMG, DTM, DTP, EFI, EMS, ENT, III, LIC, LIN, LX, MSG, N1, N2, N3, N4, N9, NM1, PER, PWK, REF, SE, SPA, SRE, ST, TST, UC, YNQ |
255 | UI | Underwriting Information Services | ACT, AM1, ASI, BGN, BIN, CD2, CN1, CUR, DMA, DMG, DTM, DTP, EFI, EMS, IND, LE, LS, LX, MSG, N2, N3, N4, NM1, NTE, NX2, PER, PO1, PWK, REC, REF, SE, ST, YNQ |
256 | PE | Periodic Compensation | ADX, AM1, AMT, BLI, BLN, BSC, CUR, DMG, DTP, ENT, III, MSG, N1, N2, N3, N4, N9, NM1, PER, QTY, REF, RPA, SE, ST |
259 | MG | Residential Mortgage Insurance Explanation of Benefits | AMT, AWD, BGN, DFI, DTM, FIS, III, INT, MSG, N1, N2, N3, N4, N9, PCT, PER, QTY, REF, SE, ST |
260 | MG | Application for Mortgage Insurance Benefits | AMT, BGN, CSI, DFI, DTP, FCL, FIS, INT, MIR, MSG, N1, N2, N3, N4, NM1, NTE, PCT, PER, REC, REF, SE, ST |
261 | ME | Real Estate Information Request | AM1, AMT, API, BGN, DTM, DTP, III, IN1, IN2, LN1, LX, N1, N2, N3, N4, NM1, NTE, NX1, NX2, PCT, PDE, PDS, PER, PEX, PWK, QTY, REA, REC, REF, SE, ST, TRN, YNQ |
262 | ME | Real Estate Information Report | AIN, AM1, AMT, API, BGN, CRC, CUR, DTP, III, IN1, IN2, LN2, LQ, LX, MEA, MSG, N2, N3, N4, NM1, NTE, NX1, NX2, PCT, PDE, PDS, PER, PEX, PTF, PWK, QTY, REA, REC, REF, RET, SE, SPI, ST, TRN, YNQ |
263 | ME | Residential Mortgage Insurance Application Response | BGN, G63, LX, MIC, MIR, N1, N9, PCT, REF, SE, ST, TXI |
264 | MG | Mortgage Loan Default Status | AMT, BGN, DFI, DTM, DTP, INT, LE, LS, LX, MIS, MRC, MSG, N1, N2, N3, N4, PER, QTY, REC, REF, SE, SOM, ST, YNQ |
265 | TO | Real Estate Title Insurance Services Order | AMT, BGN, DMG, FPT, IN1, IN2, LE, LN1, LRQ, LS, LX, MCD, MSG, N1, N2, N3, N4, NX1, NX2, PDE, PDS, PER, PRD, PWK, REF, SE, ST, TIS |
266 | MG | Mortgage or Property Record Change Notification | AMT, API, BGN, CRC, DTP, INT, LX, N1, N2, N3, N4, N9, NM1, NTE, PCT, PER, PID, QTY, REF, SE, ST, VEH |
267 | AD | Individual Life, Annuity and Disability Application | ACT, AM1, AMT, ASI, ASL, BEN, BGN, BIN, BLI, C3, CDS, CED, COM, DMA, DMG, DTM, DTP, EC, EFI, EMP, EMS, ENT, ERI, FH, HL, III, IND, INV, K2, LE, LIN, LQ, LS, LUI, LX, MPI, MSG, N1, N2, N3, N4, N9, NM1, |
268 | PF | Annuity Activity | ACT, AM1, AMT, ASI, BEN, BGN, BIN, BLI, C3, CON, DMG, DTM, DTP, EFI, G86, III, IT1, LIN, LX, MSG, N1, N2, N3, N4, NM1, PAM, PDL, PER, PID, PO1, REF, RPA, SE, SPA, ST |
269 | HV | Health Care Benefit Coordination Verification | AAA, BGN, CLP, DTP, N1, N2, N3, N4, NM1, PER, REF, SE, ST, SVC, TRN |
270 | HS | Eligibility, Coverage or Benefit Inquiry | AMT, BHT, DMG, DTP, EQ, HI, HL, III, INS, MPI, N2, N3, N4, NM1, PDP, PDR, PER, PRV, REF, SE, ST, TRN, VEH |
271 | HB | Eligibility, Coverage or Benefit Information | AAA, AMT, BHT, DMG, DTP, EB, EM, HI, HL, HSD, III, INS, LE, LIN, LQ, LS, LUI, MPI, MSG, N2, N3, N4, NM1, PCT, PDP, PDR, PER, PID, PKD, PRV, REF, SD1, SE, ST, TRN, VEH |
272 | LN | Property and Casualty Loss Notification | AMT, BCI, BGN, CRC, DAM, DTP, DVI, EM, ICH, III, K1, K2, LE, LID, LIE, LIN, LQ, LS, LX, MSG, N2, N3, N4, N9, NM1, NX1, PCT, PDP, PDR, PER, PIN, PKD, PWK, QTY, R1, R4, REF, SD1, SE, SI, ST, V1, VAT, VE |
273 | ID | Insurance/Annuity Application Status | ACT, AMT, BEN, BGN, BLI, CUR, DMA, DMG, DTP, ENT, G61, INV, K3, LIN, LQ, LX, M1, MSG, N2, N3, N4, NM1, PER, QTY, REF, REL, RPA, SE, SPA, ST, UD, UDA, V9 |
274 | PW | Healthcare Provider Information | AAA, ACT, AMT, API, BCI, BDS, BHT, CRC, DEG, DMG, DTM, DTP, EMS, HAD, HL, HPL, HSD, IND, LQ, LUI, LX, MTX, N1, N2, N3, N4, NM1, NX1, OOI, PDI, PER, QTY, REF, SE, ST, TPB, TRN, WS, YNQ |
275 | PI | Patient Information | BDS, BGN, CAT, DMG, DTM, DTP, HI, IN1, LX, N3, N4, NM1, NX1, OOI, PER, PID, PRV, REF, SE, ST, STC, SVC, TRN |
276 | HR | Health Care Claim Status Request | AMT, BHT, DMG, DTP, HL, N2, N3, N4, NM1, PAT, PER, REF, SBR, SE, ST, SVC, TOO, TRN |
277 | HN | Health Care Information Status Notification | AMT, BHT, DMG, DTP, HL, N1, N2, N3, N4, NM1, PAT, PER, PWK, QTY, REF, SBR, SE, ST, STC, SVC, TOO, TRN |
278 | HI | Health Care Services Review Information | AAA, BHT, CL1, CR1, CR2, CR4, CR5, CR6, CR7, CR8, CRC, DMG, DN2, DRA, DTP, HCR, HI, HL, HSD, INS, MSG, N2, N3, N4, NM1, PER, PRV, PWK, REF, SE, ST, SV1, SV2, SV3, TOO, TRN, UM |
280 | VI | Voter Registration Information | BGN, BIN, CRC, DTM, EFI, ICH, IN1, IN2, MEA, N1, N2, N3, N4, NX1, NX2, PER, PWK, REF, SE, ST |
283 | TE | Tax or Fee Exemption Certification | AMT, BGN, DTM, IN2, INI, LQ, LX, MSG, N1, N2, N3, N4, NM1, PER, PID, QTY, REF, SE, ST, TC2, TXI, YNQ |
284 | IH | Commercial Vehicle Safety Reports | AMT, BGN, DMA, DMG, DTM, DVI, EMS, H1, HL, III, LH2, LH3, LIE, LOD, LQ, MAN, MEA, MTX, N2, N3, N4, N9, NM1, PER, PO4, PWK, QTY, REF, SE, SRE, ST, TC2, VEH, YNQ |
285 | CV | Commercial Vehicle Safety and Credentials Information Exchange | AMT, BGN, DMA, DMG, DTM, DVI, H1, LE, LM, LQ, LS, MEA, N2, N3, N4, N9, N12, NM1, NTE, NX1, PCT, PER, QTY, REF, SE, SPR, SRE, ST, STA, TC2, VC1, VEH, YNQ |
286 | KM | Commercial Vehicle Credentials | AMT, BGN, CUR, DTM, DVI, EMS, H1, HL, LM, LQ, MEA, MSG, N2, N3, N4, N9, N12, NM1, PDL, PER, QTY, SE, SPI, ST, TC2, TD5, VEH, YNQ |
288 | WI | Wage Determination | AMT, BGN, CRC, DTM, LM, LQ, LX, N1, N2, N3, N4, NTE, PER, QTY, REF, SE, ST |
290 | CO | Cooperative Advertising Agreements | AMT, ASM, CMA, CRC, DOS, MI, N1, N2, N3, N4, NTE, PAI, PER, QTY, SE, ST |
300 | RO | Reservation (Booking Request) (Ocean) | B1, DTM, EA, G61, H1, H2, H3, K1, L0, L1, L4, L5, LEP, LFH, LH1, LH2, LH3, LH4, LHR, LHT, LX, N1, N2, N3, N4, N7, N9, PER, R4, R2A, REF, SE, ST, V1, V9, W09, Y1, Y2, Y6, Y7 |
301 | RO | Confirmation (Ocean) | B1, DTM, EA, G61, H1, H2, H3, K1, L0, L1, L4, L5, LEP, LFH, LH1, LH2, LH3, LH4, LHR, LHT, LX, N1, N2, N3, N4, N7, N9, PER, R4, R2A, SE, ST, V1, V9, W09, Y3, Y4, Y6 |
303 | RO | Booking Cancellation (Ocean) | B1, SE, ST, V9, Y5, Y6 |
304 | SO | Shipping Instructions | B2, B2A, C2, C8, C8C, CTP, CUR, DTM, G1, G2, G3, G61, H1, H2, H3, ISS, ITD, K1, L0, L1, L3, L4, L5, L7, L9, L11, L12, LEP, LFH, LH1, LH2, LH3, LH4, LH6, LHR, LHT, LIN, LX, M0, M1, M2, M7, M7A, MAN, ME |
309 | AQ | Customs Manifest | CII, DMA, DMG, DTM, H1, H2, LX, M7, M10, M11, M12, M13, MAN, N1, N3, N4, N9, N10, NM1, P4, PER, R4, REF, SE, ST, VC, VEH, VID, X1 |
310 | IO | Freight Receipt and Invoice (Ocean) | B3, B2A, C2, C3, C8, C8C, DTM, G3, G61, H1, H2, H3, K1, L0, L1, L3, L5, L7, L11, LEP, LFH, LH1, LH2, LH3, LH4, LHR, LHT, LX, M0, M1, M7, N1, N2, N3, N4, N7, N9, N12, PER, PWK, QTY, R2, R4, R2A, SE, ST |
311 | SO | Canada Customs Information | B2A, DTM, ED, G2, K1, L0, L3, L4, L5, LX, M7, N1, N2, N3, N4, N9, NA, R4, SE, ST, V1, V2, V3, X1, X2, Y2, Y6 |
312 | IO | Arrival Notice (Ocean) | B3, C3, DTM, G1, G2, H1, H2, H3, K1, L0, L1, L3, L4, L5, L7, L11, LEP, LFH, LH1, LH2, LH3, LH4, LHR, LHT, LX, M7, N1, N2, N3, N4, N7, N9, N12, PER, Q3, QTY, R2, R4, SE, ST, V1, V9, W09, Y6 |
313 | QO | Shipment Status Inquiry (Ocean) | B4, N1, N9, SE, ST |
315 | QO | Status Details (Ocean) | B4, DTM, N9, Q2, R4, SE, SG, ST, V9 |
317 | SO | Delivery/Pickup Order | G61, G62, H1, L0, L5, N1, N2, N3, N4, N9, SE, ST, TD5 |
319 | SO | Terminal Information | BA2, CD1, SE, ST |
322 | SO | Terminal Operations and Intermodal Ramp Activity | DTM, GR5, H1, H3, K1, L0, L3, L5, LEP, LFH, LH1, LH2, LH3, LH4, LHR, LHT, M7, N1, N3, N4, N7, N9, NA, PER, Q5, R4, SE, ST, V1, V4, W2, W09, Y7, ZC1 |
323 | SO | Vessel Schedule and Itinerary (Ocean) | DTM, K1, R4, SE, ST, V1, V9 |
324 | SO | Vessel Stow Plan (Ocean) | DTM, ED, H1, H3, M7, N7, N9, NA, R4, SE, ST, V1, V4, W09 |
325 | SO | Consolidation of Goods In Container | B12, C3, G20, H1, H2, H3, L3, L8, LIN, M7, MAN, MBL, N1, N2, N3, N4, N9, PRF, R4, SE, SN1, ST, TD1, UIT, V1, V9, W09 |
326 | SO | Consignment Summary List | DTM, G1, MBL, N7, N9, R4, SE, ST, V1, VC |
350 | AU | Customs Status Information | BA1, K1, M7, M10, M7A, N7, N9, NM1, P4, SE, ST, V9, VEH, VID, X4 |
352 | AV | Customs Carrier General Order Status | K1, M10, M14, P4, SE, ST |
353 | AX | Customs Events Advisory Details | CM, K1, M10, M15, M7A, MEA, P4, SE, ST, V1, V2 |
354 | AY | Customs Automated Manifest Archive Status | M10, P4, SE, ST, X01, X02 |
355 | AZ | Customs Acceptance/Rejection | CII, DMG, H1, H2, K1, K3, LX, M7, M10, M11, M12, M13, M14, M15, M20, M21, MBL, N1, N3, N4, N9, N10, NM1, P4, PER, R4, REF, SE, ST, VC, VEH, VID, X1 |
356 | BA | Customs Permit to Transfer Request | M10, M20, P4, SE, ST |
357 | BB | Customs In-Bond Information | LX, M10, M12, M13, M21, N1, N9, P4, SE, ST |
358 | BD | Customs Consist Information | CII, DMA, DMG, M7, M10, M13, MBL, N3, N4, N9, NM1, P4, REF, SE, ST, VEH, VID, X1 |
359 | BG | Customs Customer Profile Management | AAA, CII, CPM, DMA, DMG, N3, N4, NM1, PER, REF, SE, ST, VEH, VID |
361 | SO | Carrier Interchange Agreement (Ocean) | CI, K1, N1, SE, ST |
362 | OC | Cargo Insurance Advice of Shipment | AMT, BGN, CUR, DTP, L5, LQ, N1, N2, NX2, PCT, QTY, R1, R4, REF, SE, ST, V1 |
404 | SR | Rail Carrier Shipment Information | BL, BNX, BX, CD, CM, D9, DTM, E1, E4, E5, EM, F9, GA, H3, IC, IM, L0, L1, L3, L5, LE, LEP, LFH, LH1, LH2, LH3, LH4, LH6, LHR, LHT, LS, LX, M1, M3, M7, M12, MEA, N1, N2, N3, N4, N5, N7, N9, N10, NA, PE |
410 | IR | Rail Carrier Freight Details and Invoice | B3B, BL, C4, CD, CM, D9, DTM, F9, G4, GA, IC, IM, L0, L1, L3, L5, LX, M7, M12, MEA, N1, N2, N3, N4, N5, N7, N8, N9, NTE, PER, PI, PS, R2, R9, S1, S2, S9, SE, ST, T1, T2, T3, T6, T8, VC, X7 |
412 | TB | Trailer or Container Repair Billing | AMT, CUR, DTM, DTP, III, IT1, MEA, N1, N2, N3, N4, PER, R11, R12, R13, REF, SE, ST |
414 | CR | Rail Carhire Settlements | CHR, CIC, CTC, CUR, CV, CYC, LEQ, LX, PI, PRI, REF, SE, ST |
417 | WB | Rail Carrier Waybill Interchange | BL, BNX, BX, CD, CM, D9, DTM, E1, E4, E5, EM, F9, G4, GA, H3, H5, IC, IM, IMA, L0, L1, L5, LE, LEP, LFH, LH1, LH2, LH3, LH4, LHR, LHT, LS, LX, M7, M12, MEA, N1, N2, N3, N4, N5, N7, N8, N9, N10, N8A, P |
418 | IC | Rail Advance Interchange Consist | BAX, DMA, DMG, IMA, LE, LEP, LFH, LH1, LH2, LH3, LH4, LHR, LHT, LS, N1, N3, N4, NM1, PER, PS, REF, SE, ST, W1, W2, W3, W4, W5, W6 |
419 | SR | Advance Car Disposition | E6, SE, ST, W3, W5 |
420 | CH | Car Handling Information | E6, E8, SE, ST |
421 | IS | Estimated Time of Arrival and Car Scheduling | D9, F9, H3, H5, IC, IMA, IS1, IS2, ISC, L5, LE, LEP, LFH, LH1, LH2, LH3, LH4, LHR, LHT, LS, N1, N3, N4, N8, N9, N8A, PER, PS, R2, REF, S1, S9, SE, ST |
422 | DM | Equipment Order | BCQ, D9, DTM, F9, GA, LE, LQ, LS, LX, N1, N3, N4, N7, N9, NTE, PER, PI, QTY, R2, SCR, SE, ST, YNQ |
423 | RL | Rail Industrial Switch List | BGN, D9, DTM, F9, L5, LEP, LFH, LH1, LH2, LH3, LH4, LH6, LHR, LHT, LQ, LX, N1, N2, N3, N4, N7, N9, PER, QTY, R2, SE, ST, XD, YNQ |
424 | SB | Rail Carrier Services Settlement | AMT, BSW, CI, CUR, D9, DTM, ED, F9, MEA, N1, N2, N3, N4, NM1, NTE, PER, SE, ST, SWC, SWD, SWR |
425 | WT | Rail Waybill Request | D9, F9, SE, ST, ZT |
426 | RW | Rail Revenue Waybill | BL, BNX, BX, CD, CUR, D9, DTM, F9, G4, GA, H3, IC, L0, L1, L3, L5, L1A, LX, M7, MEA, N1, N2, N3, N4, N5, N7, N8, N9, N8A, NTE, PER, PI, PS, R2, R9, R2B, R2C, R2D, S1, S9, SE, ST, T1, T2, T3, T6, T8, V |
429 | RU | Railroad Retirement Activity | NTE, RU1, RU2, RU3, SE, ST |
431 | RM | Railroad Station Master File | DTM, N1, N4, REF, SE, SMB, SMO, SMR, SMS, ST |
432 | RX | Rail Deprescription | BGN, BLR, CIC, DRT, DTM, LQ, LX, N9, QTY, SE, ST |
433 | RH | Railroad Reciprocal Switch File | BGN, CD, DTM, N1, PI, SE, SMS, ST |
434 | RJ | Railroad Mark Register Update Activity | BRR, DTM, N1, N2, N3, N4, PER, SE, ST |
435 | RK | Standard Transportation Commodity Code Master | CRC, DTM, LEP, LFH, LH2, LH3, LH4, LQ, LX, MSG, N9, SE, SID, ST |
436 | LI | Locomotive Information | K3, LFI, N7, SE, ST |
437 | RV | Railroad Junctions and Interchanges Activity | BJF, DTM, JCT, JS, SE, SID, ST |
440 | WR | Shipment Weights | BW, G4, G5, SE, ST |
451 | EV | Railroad Event Report | CLR, ED, ER, ES, IC, NA, SE, ST |
452 | PL | Railroad Problem Log Inquiry or Advice | BGP, DTP, N1, N9, NTE, SE, ST |
453 | ST | Railroad Service Commitment Advice | APR, CT, DTP, ISC, ISD, LX, N1, OD, PI, PR, R2, SE, SHR, SR, SSC, ST |
455 | PB | Railroad Parameter Trace Registration | BLR, BTC, D9, DTP, ED, F9, LX, N1, N4, N9, PRM, SE, ST, V9 |
456 | EI | Railroad Equipment Inquiry or Advice | D9, EIA, ER, ES, F9, H3, H5, IC, IS1, IS2, ISC, L5, LX, N1, N4, N7, N8, N9, NA, PI, R2, S1, S9, SE, ST, VC |
460 | TP | Railroad Price Distribution Request or Response | CD, DK, FK, GY, LX, N3, N4, PER, PI, PR, PT, R9, R2B, R2C, RAB, RD, REN, RS, SA, SB, SC, SE, SS, ST |
463 | TP | Rail Rate Reply | DK, LQ, NTE, REN, SE, ST |
466 | TP | Rate Request | DK, PI, PR1, PR2, REN, SE, ST |
468 | TP | Rate Docket Journal Log | DK, JL, K1, PI, REN, SE, ST |
470 | RB | Railroad Clearance | AMT, BGN, D9, F9, H3, L4, L5, L10, LET, LX, MEA, N1, N2, N3, N4, N7, N9, NTE, PER, R2, SE, ST |
475 | SN | Rail Route File Maintenance | BGN, DTM, PER, R9, RDD, SE, ST |
485 | TP | Ratemaking Action | DK, FK, MC, PRI, RA, SA, SC, SE, ST, SW |
486 | TP | Rate Docket Expiration | DR, PI, REN, SA, SE, ST |
490 | TP | Rate Group Definition | CD, DK, GH, GY, N3, N4, PER, PI, PR, PT, REN, SE, ST, TT |
492 | TP | Miscellaneous Rates | DK, DM, PRI, SC, SE, ST |
494 | TP | Rail Scale Rates | CD, DK, GY, LX, N4, PI, PR, PT, R9, R2B, R2C, RAB, RD, REN, SA, SCL, SE, SS, ST |
500 | MM | Medical Event Reporting | BGN, CTT, DMG, DTM, HL, LIN, LM, LQ, MEA, MTX, N2, N3, N4, NM1, PER, PID, PWK, QTY, REF, SE, ST, TRN |
501 | WG | Vendor Performance Review | AMT, BGN, CRT, DTP, LE, LM, LQ, LS, MEA, N1, N2, N3, N4, NTE, PCT, PER, QTY, REF, SE, SPR, ST |
503 | PH | Pricing History | AMT, BGN, CS, DTM, FOB, LE, LIN, LM, LQ, LS, N1, N2, N3, N4, NTE, PCT, PER, PID, QTY, REF, SE, ST |
504 | CC | Clauses and Provisions | BGN, DTP, LM, LQ, MSG, N1, N2, N3, N4, PER, REF, SE, ST |
511 | RN | Requisition | BR, DD, FA1, FA2, G61, G62, G69, GF, LIN, LM, LQ, LX, MAN, MEA, N1, N2, N3, N4, N9, NTE, PO1, PWK, QTY, R4, REF, SE, ST |
517 | MV | Material Obligation Validation | BR, DD, FA1, FA2, G61, G62, GF, LM, LQ, N1, N2, N3, N4, N9, QTY, SE, ST |
521 | AO | Income or Asset Offset | AD1, AMT, BGN, BPR, CDS, CUR, DTM, IN2, MSG, N1, N2, N3, N4, NM1, NTE, PAM, PER, REF, SE, ST, TRN |
527 | MD | Material Due-In and Receipt | AMT, BR, CS, DD, FA1, FA2, G61, G62, G66, G69, GF, LIN, LM, LQ, N1, N2, N3, N4, N9, NTE, PO4, QTY, RCD, REF, SE, ST |
536 | LR | Logistics Reassignment | BR, CON, CS, CTP, DD, G61, G62, G69, HL, LDT, LIN, LM, LQ, MEA, MSG, N1, N2, N3, N4, N9, PKG, PWK, QTY, RCD, SE, ST |
540 | ES | Notice of Employment Status | BGN, DTM, EMS, ENT, HD, IN2, N1, N2, N3, N4, NM1, PAM, PER, REF, SE, ST, YNQ |
561 | D4 | Contract Abstract | AMT, BGN, CS, CTT, DTM, FA1, FA2, G61, G62, HL, ITD, LM, LQ, N1, N2, N3, N4, N9, PCT, PID, PO1, REF, RRE, SCH, SE, SLN, ST |
567 | D3 | Contract Completion Status | AMT, BC, CS, G61, G62, LM, LQ, N1, N2, N3, N4, N9, NTE, SE, ST |
568 | D5 | Contract Payment Management Report | AMT, BAL, BGN, CS, CTT, DTM, FA1, FA2, LM, LQ, LX, N1, N2, N3, N4, N9, PER, QTY, REF, RTE, SE, ST |
601 | SE | Customs Export Shipment Information | BA1, DTM, L13, M12, MAN, N1, N2, N3, N4, P5, REF, SE, ST, V5, VEH, VID, X1, YNQ |
603 | EO | Transportation Equipment Registration | BGN, DTM, LQ, MEA, N1, N2, N3, N4, N9, N21, PER, SE, ST, VEH, YNQ |
620 | EX | Excavation Communication | BGN, DTM, EXI, LIE, LM, LQ, MEA, MSG, MTX, N1, N2, N3, N4, NX2, PER, PPA, REF, SE, ST |
625 | WL | Well Information | BGN, CID, DTP, HL, LIE, LM, LQ, MEA, MTX, N1, N2, N3, N4, PER, PID, PPA, QTY, REF, SE, ST, YNQ |
650 | MO | Maintenance Service Order | AMT, BGN, CLI, COM, DTM, HL, LIN, LM, LQ, MEA, MTX, N1, N2, N3, N4, NM1, PCT, PER, QTY, REF, RPA, SE, SPI, ST, YNQ |
715 | GL | Intermodal Group Loading Plan | BGN, GR2, GR4, GR5, N4, N7, R4, REF, SE, ST, V1 |
753 | RF | Request for Routing Instructions | AT8, BGN, CMC, G62, L11, LX, N1, N2, N3, N4, OID, PER, SE, ST, USI, YNQ |
754 | RG | Routing Instructions | AT9, BGN, BLR, FOB, G62, L11, LE, LS, LX, MAN, MSI, MTX, N1, N2, N3, N4, OID, PAL, PER, PID, PKD, PKG, PO1, QTY, R4, REF, S5, SE, SMD, SN1, ST, TD1 |
805 | CP | Contract Pricing Proposal | AMT, BCP, CB1, CBS, CUR, DTM, G61, HL, JIL, LIN, LX, MTX, N1, N2, N3, N4, N9, PD, PDD, PL, REF, SE, SPI, ST |
806 | PJ | Project Schedule Reporting | AMT, BPP, CAL, DTM, MLS, MTX, N1, N2, N3, N4, NM1, PAM, PCT, PER, PID, QTY, REF, RPA, RSC, SE, ST, TID |
810 | IN | Invoice | AMT, BAL, BIG, CAD, CRC, CTP, CTT, CUR, DMG, DTM, FA1, FA2, FOB, INC, ISS, IT1, IT3, ITD, L7, LM, LQ, MEA, MSG, MTX, N1, N2, N3, N4, N9, NTE, PAM, PER, PID, PKG, PO4, PWK, QTY, R4, REF, SAC, SDQ, SE, |
811 | CI | Consolidated Service Invoice/Statement | AMT, BAL, BIG, CAD, CTT, CUR, DMG, DTM, DTP, FA1, FA2, HL, III, INC, IT1, ITA, ITD, LCD, LQ, LX, MEA, MSG, N1, N2, N3, N4, NM1, NTE, NX2, PCT, PER, PID, QTY, REF, SE, SI, SLN, ST, TCD, TDS, TRF, TXI, |
812 | CD | Credit/Debit Adjustment | AMT, BCD, CDD, CUR, DTM, FA1, FA2, FOB, ITD, LIN, LM, LQ, N1, N2, N3, N4, N9, N11, PCT, PER, PO4, SAC, SE, SHD, ST |
813 | TF | Electronic Filing of Tax Return Data | BPR, BTI, DTM, FGS, IN2, MSG, N1, N2, N3, N4, PER, REF, SE, ST, TFS, TIA, TRN |
814 | GE | General Request, Response or Confirmation | AMT, ASI, AWD, BGN, CUR, DTM, FA1, FA2, LCD, LIN, LM, LQ, MTX, N1, N2, N3, N4, N9, NM1, PER, PM, QTY, REF, SE, ST |
815 | CS | Cryptographic Service Message | CSB, CSC, CSM, DTP, SE, ST |
816 | OR | Organizational Relationships | ASI, BHT, CAL, DTM, HL, LQ, N1, N2, N3, N4, PER, QTY, REF, SE, ST |
818 | RP | Commission Sales Report | AMT, BSC, CUR, DTM, LIN, N3, N4, N11, NM1, PID, REF, SAL, SCD, SE, ST |
819 | JB | Joint Interest Billing and Operating Expense Statement | AMT, BOS, CTT, CUR, DTM, ITA, ITD, JID, JIL, MEA, MSG, N1, N2, N3, N4, PER, PID, PSA, QTY, REF, SE, ST, TDS |
820 | RA | Payment Order/Remittance Advice | ADX, AIN, AMT, ASM, ATN, BPR, CUR, DED, DMG, DTM, DTP, EMS, ENT, FA1, FA2, G53, HD, INS, INV, IT1, LOC, LX, N1, N2, N3, N4, N9, NM1, NTE, PCT, PEN, PER, PID, PYD, QTY, RDM, REF, RMR, RPA, RYL, SAC, SE |
821 | FR | Financial Information Reporting | ACT, AMT, AVA, B2A, BLN, CTP, CUR, DTM, ENT, FA1, FA2, FIR, LM, LQ, MSG, N1, N2, N3, N4, N9, NM1, PER, REF, RTE, SE, ST, TRN, TSU |
822 | AA | Account Analysis | ACT, ADJ, BGN, BLN, CTP, CUR, DTM, ENT, LX, N1, N2, N3, N4, PER, RTE, SE, SER, ST |
823 | LB | Lockbox | ADX, AIN, AMT, AVA, BAT, BPR, CUR, DED, DEP, DTM, DTP, G53, INV, IT1, LX, N1, N2, N3, N4, NM1, NTE, PEN, PER, QTY, REF, RMR, SAC, SE, SLN, ST, TRN, TXI, TXP |
824 | AG | Application Advice | AMT, BGN, CTX, DTM, LM, LQ, N1, N2, N3, N4, NM1, NTE, OTI, PER, QTY, RED, REF, SE, ST, TED |
826 | TI | Tax Information Exchange | BTI, DTM, FGS, IN2, N1, N2, N3, N4, PER, REF, SE, ST, TFS, TIA, YNQ |
827 | FR | Financial Return Notice | CUR, DTM, N2, N3, N4, NM1, PER, REF, RIC, SE, ST, TRN |
828 | DA | Debit Authorization | AMT, BAU, CTT, DAD, N1, N2, N3, N4, NM1, PER, REF, SE, ST |
829 | PY | Payment Cancellation Request | AMT, DTM, PCR, QTY, REF, SE, ST, TRN |
830 | PS | Planning Schedule with Release Capability | ATH, BFR, CSH, CTP, CTT, CUR, DD, DTM, FOB, FST, ITD, LDT, LIN, LM, LQ, MAN, MEA, N1, N2, N3, N4, NM1, PER, PID, PKG, PO3, PO4, PRS, PWK, QTY, REF, SAC, SDP, SDQ, SE, SHP, SLN, ST, TAX, TD1, TD3, TD4, |
831 | CT | Application Control Totals | AMT, BGN, DTM, N9, QTY, SE, ST, TRN |
832 | SC | Price/Sales Catalog | AAA, BCT, CRC, CRD, CTB, CTP, CTT, CUR, DTM, EFI, FOB, G26, G36, G39, G40, G43, G53, G54, G55, G93, ITD, LDT, LE, LFG, LIN, LM, LQ, LS, MEA, MTX, N1, N2, N3, N4, N9, PAL, PAM, PER, PID, PKG, PKL, PO1, |
833 | ME | Mortgage Credit Report Order | ACT, AIN, AMT, ARS, BGN, CAI, CDA, CIV, CRO, DMG, DTP, EMP, EMS, FAA, FPT, IN1, IN2, K2, LRQ, LX, MSG, N1, N2, N3, N4, N10, NX1, NX2, PER, PPY, PWK, QTY, REA, REF, SE, ST, YNQ |
834 | BE | Benefit Enrollment and Maintenance | ACT, AD1, AIN, AMT, BEN, BGN, COB, DMG, DSB, DTP, EC, ENT, FC, FSA, HD, HI, HLH, ICM, IDC, INS, INV, K3, LC, LE, LS, LUI, LX, N1, N2, N3, N4, NM1, NX1, PER, PLA, PM, PRV, QTY, REF, REL, RP, SE, ST |
835 | HP | Health Care Claim Payment/Advice | AMT, BPR, CAS, CLP, CUR, DTM, K3, LQ, LX, MIA, MOA, N1, N2, N3, N4, NM1, NTE, PER, PLB, QTY, RAS, RDM, REF, SE, ST, SVC, TOO, TRN, TS2, TS3 |
836 | RQ | Procurement Notices | AMT, BCO, CTB, CTP, DTM, FOB, ITD, LDT, LM, LQ, MEA, MTX, N1, N2, N3, N4, PER, PID, PO1, PO3, PWK, QTY, REF, SE, SI, SLN, ST |
837 | HC | Health Care Claim | AMT, BHT, CAS, CL1, CLM, CN1, CR1, CR2, CR3, CR4, CR5, CR6, CR7, CR8, CRC, CTP, CUR, DMG, DN1, DN2, DSB, DTP, FRM, HCP, HI, HL, HSD, III, IMM, K3, LIN, LQ, LUI, LX, MEA, MIA, MOA, N2, N3, N4, NM1, NTE |
838 | TD | Trading Partner Profile | AMT, BTP, CUR, DMG, DTM, ENE, ERI, FBB, FOB, ITD, LCD, LE, LIN, LM, LQ, LS, LX, MEA, N1, N2, N3, N4, N9, PAM, PER, PID, PLA, REQ, SE, SPI, SPR, ST, TAX, TD5, TPD, TUD, TXN |
839 | PK | Project Cost Reporting | AMT, BCS, BSD, CAL, CFT, CLI, DLV, DTM, MSG, N1, N2, N3, N4, PAM, PCT, PER, QTY, REF, RPA, SE, ST |
840 | RQ | Request for Quotation | ADV, AMT, BQT, CB1, CN1, CSH, CTB, CTP, CTT, CUR, DIS, DTM, EFI, FOB, FST, G53, G61, INC, IT8, ITD, LDT, LIN, LM, LQ, MAN, MEA, MTX, N1, N2, N3, N4, N9, PAM, PCT, PER, PID, PKG, PO1, PO3, PO4, PWK, QT |
841 | SP | Specifications/Technical Information | AMT, BIN, CID, CSF, CSS, DTM, EFI, HL, LE, LIN, LOC, LS, LX, MEA, MSG, N1, N2, N3, N4, N9, NTE, PER, PID, PKD, PKG, PRR, PRS, PRT, PSD, PWK, QTY, RDT, REF, SE, SPI, SPS, ST, STA, TMD, UIT, X1, X2, X7 |
842 | NC | Nonconformance Report | AMT, BIN, BNR, CID, CS, DTM, EFI, FA1, FA2, HL, LIN, LM, LQ, MEA, N1, N2, N3, N4, NCA, NCD, NTE, PER, PID, PRS, PSD, PWK, QTY, RC, REF, SE, SPS, ST, STA, TMD, YNQ |
843 | RR | Response to Request for Quotation | ADV, AMT, BQR, CPR, CSH, CST, CTB, CTP, CTT, CUR, DIS, DTM, EFI, FOB, FST, INC, IT8, ITD, LDT, LIN, LM, LQ, MAN, MEA, MTX, N1, N2, N3, N4, N9, PAM, PCT, PD, PDD, PER, PID, PKG, PO1, PO3, PO4, PWK, QTY |
844 | CF | Product Transfer Account Adjustment | AMT, BAA, CON, CTT, CUR, DTM, LIN, MEA, N1, N2, N3, N4, N9, NTE, PAD, PER, PID, QTY, RCD, REF, SE, SII, SSS, ST, UIT |
845 | PA | Price Authorization Acknowledgment/Status | AMT, BPA, CON, CTB, CTP, CTT, CUR, DTM, G53, ITD, LIN, MEA, N1, N2, N3, N4, NTE, PAD, PER, PID, QTY, REF, SE, SHP, SLN, SSS, ST, UIT |
846 | IB | Inventory Inquiry/Advice | BIA, CS, CTP, CTT, CUR, DD, DTM, G53, LDT, LE, LIN, LM, LQ, LS, MAN, MEA, N1, N2, N3, N4, PCT, PER, PID, PKG, QTY, REF, SAC, SCH, SDQ, SE, SLN, ST, UIT |
847 | MX | Material Claim | AMT, BHT, CTP, CTT, CUR, DTM, HL, LIN, MEA, N1, N2, N3, N4, NTE, PER, PID, PKG, QTY, REF, SAC, SE, SHP, ST |
848 | MS | Material Safety Data Sheet | BMS, CID, DTM, LIN, LX, MEA, MSG, MSS, N1, N2, N3, N4, NTE, PER, PID, PKG, REF, SD1, SE, ST, STA, TD4, TMD |
849 | CF | Response to Product Transfer Account Adjustment | AAA, AMT, BRC, CON, CTT, CUR, DTM, LIN, MEA, N1, N2, N3, N4, NTE, PAD, PER, PID, QTY, RCD, REF, SE, SSS, ST, UIT |
850 | PO | Purchase Order | ADV, AMT, BEG, CB1, CN1, CSH, CTB, CTP, CTT, CUR, DIS, DTM, EFI, FA1, FA2, FOB, G61, IN2, INC, IT3, IT8, ITD, LDT, LE, LIN, LM, LQ, LS, MAN, MEA, MTX, N1, N2, N3, N4, N9, NX2, PAM, PCT, PER, PID, PKG, |
851 | LS | Asset Schedule | AMT, BLS, CTP, CTT, CUR, DTM, ITA, LIN, LS1, MSG, N1, N2, N3, N4, N9, PAM, PER, PID, PO3, SE, ST, TAX, TXI |
852 | PD | Product Activity Data | AMT, CTP, CTT, CUR, DTM, FOB, G95, LIN, N1, N2, N3, N4, N9, PAL, PER, PO4, QTY, SAC, SDQ, SE, ST, TD5, XPO, XQ, ZA |
853 | RI | Routing and Carrier Instruction | BGN, CTT, FK, G62, MEA, N1, N2, N3, N4, NTE, PER, REF, SE, ST, TD3, TD4, TD5 |
854 | DD | Shipment Delivery Discrepancy Information | BDD, G07, G61, G62, K1, L11, LE, LS, LX, N1, N2, N3, N4, Q8, SE, ST |
855 | PR | Purchase Order Acknowledgment | ACK, ADV, AMT, BAK, CSH, CTB, CTP, CTT, CUR, DIS, DTM, EFI, FOB, IN2, INC, IT8, ITD, LDT, LIN, MAN, MEA, MTX, N1, N2, N3, N4, N9, NX2, PAM, PER, PID, PKG, PO1, PO3, PO4, PWK, QTY, REF, SAC, SCH, SDQ, |
856 | SH | Ship Notice/Manifest | AT9, BSN, CLD, CTT, CUR, DTM, DTP, ETD, FOB, GF, HL, LEP, LFH, LH1, LH2, LH3, LH4, LHE, LHR, LHT, LIN, LM, LQ, MAN, MEA, N1, N2, N3, N4, PAL, PER, PID, PKG, PO4, PRF, PWK, R4, REF, SAC, SDQ, SE, SLN, |
857 | BS | Shipment and Billing Notice | BHT, CTP, CUR, DTM, FA1, FA2, FOB, G05, HL, ISS, IT1, IT3, ITD, LM, LQ, LX, MAN, MEA, MTX, N1, N2, N3, N4, N9, PAL, PER, PID, PKG, PO4, PRF, SAC, SE, SLN, SN1, ST, TC2, TD1, TD3, TD4, TD5, TDS, TXI |
858 | SI | Shipment Information | AXL, BL, BNX, BX, C3, CD, CM, D9, E1, E4, E5, EM, F9, FA1, FA2, G62, GA, H3, H6, HL, IC, ITD, L0, L1, L3, L5, L7, L10, LEP, LFH, LH1, LH2, LH3, LH4, LH6, LHE, LHR, LHT, LP, M1, M2, M3, M7, M12, MEA, N |
859 | FB | Freight Invoice | B3, B3A, C3, CM, D9, F9, FOB, G4, G62, GA, H1, H2, H3, H6, IC, ITA, ITD, L0, L1, L3, L5, L7, L8, LH, LX, M1, M2, M7, MEA, N1, N2, N3, N4, N5, N7, N8, N9, NA, NTE, P1, P2, PER, POD, PS, R1, R2, R9, REF |
860 | PC | Purchase Order Change Request - Buyer Initiated | ADV, AMT, BCH, CB1, CN1, CSH, CTB, CTP, CTT, CUR, DIS, DTM, EFI, FA1, FA2, FOB, G53, G61, IN2, INC, IT8, ITD, LDT, LE, LIN, LM, LQ, LS, MAN, MEA, MTX, N1, N2, N3, N4, N9, NX2, PAM, PCT, PER, PID, PKG, |
861 | RC | Receiving Advice/Acceptance Certificate | BRA, CTT, CUR, DTM, FA1, FA2, FOB, LIN, LM, LQ, MAN, MEA, N1, N2, N3, N4, NM1, PER, PID, PO4, PRF, RCD, REF, SAC, SE, SLN, SN1, ST, TD1, TD3, TD4, TD5 |
862 | SS | Shipping Schedule | BSS, CTT, DTM, FOB, FST, JIT, LIN, N1, N2, N3, N4, PER, PKG, PO4, PRS, QTY, REF, SDP, SDQ, SE, SHP, ST, TD1, TD3, TD5, UIT |
863 | RT | Report of Test Results | BTR, CID, DTM, HL, LIN, LM, LQ, MEA, N1, N2, N3, N4, N9, NM1, NTE, PER, PID, PO4, PSD, QTY, REF, SE, SPS, ST, STA, TMD, TSP, UIT |
864 | TX | Text Message | BMG, DTM, MIT, MSG, MTX, N1, N2, N3, N4, PER, REF, SE, ST |
865 | CA | Purchase Order Change Acknowledgment/Request - Seller Initiated | ACK, ADV, AMT, BCA, CSH, CTB, CTP, CTT, CUR, DIS, DTM, EFI, FOB, G53, IN2, INC, IT8, ITD, LDT, LIN, LM, LQ, MAN, MEA, MTX, N1, N2, N3, N4, N9, NX2, PAM, PCT, PD, PDD, PER, PID, PKG, PO3, PO4, POC, PWK |
866 | SQ | Production Sequence | BSS, CTT, DTM, FOB, LIN, MEA, N1, N2, N3, N4, OQS, PER, PID, QTY, REF, SE, SLN, ST, UIT |
867 | PT | Product Transfer and Resale Report | AMT, BPT, CTT, CUR, DD, DTM, FA1, FA2, ITA, LCD, LDT, LIN, LM, LQ, LX, MAN, MEA, N1, N2, N3, N4, N9, PER, PID, PKG, PO3, PO4, PRF, PSA, PTD, PWK, QTY, REF, SE, SII, ST, UIT |
868 | MT | Electronic Form Structure | DAI, DDI, DMI, E01, E03, E10, E13, E20, E22, E24, E30, E34, E40, E41, MSG, QTY, SE, ST |
869 | RS | Order Status Inquiry | BSI, CTT, DD, DTM, FA1, FA2, GF, HL, LIN, LM, LQ, MEA, N1, N2, N3, N4, NTE, PER, PID, PRF, QTY, REF, SE, ST |
870 | RS | Order Status Report | BSR, CS, CTT, CUR, DTM, HL, ISR, LM, LQ, LX, MEA, N1, N2, N3, N4, PER, PID, PKG, PO1, PO3, PRF, PWK, QTY, REF, SAC, SE, SLN, ST, TD1, TD3, TD4, TD5 |
872 | ME | Residential Mortgage Insurance Application | AMT, BFS, BGN, BUY, CDI, DMG, DTP, III, IN1, IN2, LN1, LRQ, LX, MCD, MIC, MSG, N1, N10, NM1, NX1, NX2, PAS, PCT, PER, PEX, PRD, PRJ, REA, REF, RES, SCM, SCS, SE, ST, VDI, YNQ |
873 | CU | Commodity Movement Services | AMT, BGN, CS, DTM, DTP, LCD, LQ, MEA, N1, N3, N4, N9, PER, QTY, REF, SE, SLN, ST |
874 | CQ | Commodity Movement Services Response | BGN, CS, DTM, III, LCD, N1, N3, N4, N9, PER, REF, SE, SLN, ST |
875 | OG | Grocery Products Purchase Order | G23, G50, G61, G62, G66, G68, G69, G70, G72, G73, G76, N1, N2, N3, N4, N9, NTE, QTY, SE, SLN, ST |
876 | OG | Grocery Products Purchase Order Change | G23, G61, G62, G66, G68, G69, G70, G72, G73, G76, G92, N1, N2, N3, N4, N9, NTE, QTY, SE, SLN, ST |
877 | CJ | Manufacturer Coupon Family Code Structure | BGN, DTM, ENT, G28, G69, LIN, N1, SE, ST |
878 | QG | Product Authorization/De-authorization | CTP, G21, G22, G62, G69, G72, N1, N2, N3, N4, PID, SE, ST |
879 | QG | Price Information | G20, G22, G26, G28, G36, G40, G43, G46, G61, G62, G69, G91, G93, N1, N2, N3, N4, N9, NTE, SAC, SE, ST |
880 | GP | Grocery Products Invoice | AMT, CAD, ENT, G01, G17, G19, G20, G23, G25, G31, G33, G61, G62, G69, G72, G73, MTX, N1, N2, N3, N4, N9, NTE, QTY, REF, SE, ST |
881 | CN | Manufacturer Coupon Redemption Detail | AMT, BGN, G01, G72, G73, LIN, LQ, LX, N1, N2, N3, N4, N9, PER, QTY, REF, SE, ST |
882 | IG | Direct Store Delivery Summary Information | G23, G25, G31, G33, G47, G48, G49, G61, G72, G73, N1, N2, N3, N4, N9, SE, ST |
883 | DF | Market Development Fund Allocation | AMT, BMA, G43, G61, G62, G95, LIN, LX, N1, QTY, SE, ST, UIT |
884 | MF | Market Development Fund Settlement | AMT, BAL, BMP, G61, N1, N9, NTE, QTY, SE, ST |
885 | UA | Retail Account Characteristics | DTM, ENT, G13, G18, G29, G30, G53, LM, LQ, N1, N2, N3, N4, N9, PER, RDI, SE, SPR, ST |
886 | UB | Customer Call Reporting | CRC, CTP, DTM, ENT, G28, G29, G32, G35, G37, N1, PER, QTY, SE, ST |
887 | CN | Coupon Notification | AMT, BGN, DTM, G11, G12, G14, G15, G28, G43, G51, LIN, N1, N2, N3, N4, N9, PCT, PER, QTY, SE, ST |
888 | QG | Item Maintenance | BGN, G22, G23, G24, G26, G36, G39, G40, G43, G46, G53, G54, G55, G61, G62, G69, G93, H1, LDT, LIN, LM, LQ, LX, MEA, N1, N2, N3, N4, N9, NTE, PAL, PID, PKG, QTY, REF, SE, SLN, ST, TD1, TD4, UIT, USI |
889 | QG | Promotion Announcement | G22, G23, G42, G43, G45, G46, G51, G61, G62, G69, G94, G95, LX, N1, N2, N3, N4, N9, NTE, QTY, SE, ST |
890 | D4 | Contract & Rebate Management Transaction | AMT, CPI, CPL, CTH, CUR, DTM, ECS, FU1, FU2, FU3, FU4, FU5, FX2, FX3, FX4, FX5, FX6, FX7, LE, LS, LX, MEA, MTX, N1, N2, N3, N4, NM1, NX1, PER, PPR, PSG, QTY, REF, SAC, SE, SEF, ST, TBP |
891 | UD | Deduction Research Report | ADX, AMT, BGN, ENT, N1, N9, PER, REF, SE, ST |
893 | AM | Item Information Request | B2A, DTM, G39, G43, G69, N1, N2, N3, N4, RCR, REF, SE, ST |
894 | DX | Delivery/Return Base Record | DTM, G22, G23, G72, G82, G83, G84, G85, G86, LE, LS, MTX, N9, SE, SLN, ST |
895 | DX | Delivery/Return Acknowledgment or Adjustment | G22, G23, G72, G84, G85, G86, G87, G88, G89, LE, LS, SE, ST |
896 | QG | Product Dimension Maintenance | G43, G61, G62, ID1, ID2, ID3, N1, N2, N3, N4, N9, NTE, SE, ST |
920 | GC | Loss or Damage Claim - General Commodities | CUR, F01, F02, F04, F05, F09, G61, G62, L11, M7, MAN, N1, N3, N4, NTE, Q7, SE, ST |
924 | GC | Loss or Damage Claim - Motor Vehicle | F01, F02, F07, F12, F6X, SE, ST |
925 | GC | Claim Tracer | F02, F10, SE, ST |
926 | GC | Claim Status Report and Tracer Reply | F11, F13, F14, SE, ST, TRN |
928 | AI | Automotive Inspection Detail | BIX, ID, SE, ST, TI, VC |
940 | OW | Warehouse Shipping Order | AMT, AT9, BNX, FA1, FA2, G61, G62, G66, G69, LE, LEP, LFH, LH1, LH2, LH3, LH4, LH6, LHR, LHT, LM, LQ, LS, LX, MAN, MEA, N1, N2, N3, N4, N9, NTE, PAL, PER, QTY, R2, SDQ, SE, SLN, ST, TD3, W6, W01, W05, |
943 | AR | Warehouse Stock Transfer Shipment Advice | G61, G62, G69, N1, N2, N3, N4, N9, NTE, PER, SE, ST, W03, W04, W06, W10, W20, W27, W28 |
944 | RE | Warehouse Stock Transfer Receipt Advice | G08, G61, G62, G69, LX, MAN, N1, N2, N3, N4, N9, NTE, PAL, PER, SE, ST, TD1, W07, W08, W13, W14, W17, W18, W20 |
945 | SW | Warehouse Shipping Advice | AMT, FA1, FA2, G61, G62, G69, G72, LE, LM, LQ, LS, LX, MAN, MEA, N1, N2, N3, N4, N9, NTE, PAL, PER, QTY, R4, SE, ST, TD1, W6, W03, W06, W10, W12, W27, W28 |
947 | AW | Warehouse Inventory Adjustment Advice | AMT, CS, FA1, FA2, G61, G62, G69, LM, LQ, LX, N1, N2, N3, N4, N9, NTE, PER, SE, ST, W15, W19 |
980 | Functional Group Totals | BT1, SE, ST | |
990 | GF | Response to a Load Tender | B1, L11, SE, ST |
993 | NR | Secured Receipt or Acknowledgment | AK1, AK2, APE, S4A, SE, SPE, ST, SVA |
996 | FT | File Transfer | BGF, K3, SE, ST |
997 | FA | Functional Acknowledgment | AK1, AK2, AK3, AK4, AK5, AK9, SE, ST |
998 | AL | Set Cancellation | SE, ST, ZD |
999 | FA | Implementation Acknowledgment | AK1, AK2, AK9, CTX, IK3, IK4, IK5, SE, ST |
Updated Wiki: Documentation
Out-of-the-Box Usage:
X12Parser is a collection of simple command line console applications for transforming an X12 file.
X12Parser.exe
X12Parser transforms an X12 file into a more domain easily readable xml file.
The 2 arguments to the command line are input filename and output filename. Only the input filename is required. If the second argument (output filename) is not present, X12Parser will use the input filename and add a ".xml" to create the output filename.
Example:
X12Parser "D:\Test.clm" "D:\Test.xml"
See Parsing an 834 Transaction or Parsing an 837 Transaction to see an example of what the output will resemble and how to write more code to output to html or back to a formatted x12.
UnbundleX12.exe
UnbundleX12 separates an X12 file into multiple valid X12 files at a specified X12 loop ID. When loops are separated their header information (parent loop or segment) is retained. The SE transaction trailer segment and GE function group segment, however, is updated to correctly reflect the number of segments in the transaction and the number of transactions in the function group so the resulting x12 is still valid.
The 5 arguments to the command line are input filename, X12 loop ID, output directory, output filename format and include whitespace. The first 3 arguments are required. If the fourth argument is not present, UnbundleX12 will use the input filename and add a 3 digit incrementing counter to create the output filename. If the fourth argument is specified it can use the following special tokens:
Token | Description |
{0} | Output directory specified on the command line |
{1} | Input filename including extension |
{2} | Counter incremented for every unbundled loop |
{3} | File extension of input file |
The fifth argument will toggle on or off the include whitespace option when creating the X12 file. If not specified it is set to "true". If set to "true", this option adds carriage returns and indentation to the loop structure to make it more human readable. Note that adding whitespace may make the file unreadable with some EDI applications.
3 argument example:
UnbundleX12 "D:\837Test.clm" "2300" "D:\Output"
If the 837 input file had 2 claims in it, then "837Test.clm_001.clm" and "837Test.clm_002.clm" would be created in the D:\Output directory.
4 argument example:
UnbundleX12 "D:\837Test.clm" "2300" "D:\837Unbundle" "{0}\{1}_Output_{2:000}{3}"
If the 837 input file had 2 claims in it, then "837Test.clm_Output_001.clm" and "837Test.clm_Output_002.clm" would be created in the D:\Output directory.
5 argument example:
UnbundleX12 "D:\837Test.clm" "2300" "D:\837Unbundle" "{0}\{1}_Output_{2:000}{3}" "true"
If the 837 input file had 2 claims in it, then "837Test.clm_Output_001.clm" and "837Test.clm_Output_002.clm" would be created in the D:\Output directory formatted with whitespace indentation.
Unbundling Tips:
- To unbundle 837 files into individual claims, use loop ID 2300
- To unbundle 835 files into individual remittance EOBs, use loop ID 2100
- If the resulting X12 file is "unreadable" by an EDI application try turning off the whitespace option (see fifth argument)
For further technical explanation of the unbundle feature, see Unbundling an X12 file by Loop ID.
Usage as development tool:
- The most common use case of this parser is to transform the XML into a flat representation to be pushed into a database or into flat files to be consumed by other applications. See Creating a flat file or Excel file from the X12 xml using XSLT and XslCompiled Transform to see how to create a flattened version of the x12 transaction.
- Other transaction sets can be parse by creating and injecting your own specification file. SeeInjecting your own X12 Specification.
Supported Transaction Sets:
See a full list of supported transactions here: https://x12parser.codeplex.com/wikipage?title=Transaction%20Set%20Configuration.
To request another transaction set, please add an issue to the issue tracker http://x12parser.codeplex.com/WorkItem/Create.
Other Discussions
- Comparing Open Source EDI Software, prepared by contributornth
- About the X12 Parser
Other Useful Tools
- Deidentifier for removing PII and PHI (http://etasoft.com/ot.htm) especially for creating test files.
- If you are new to EDI this a good place to start: http://www.xtranslator.com/prod/beginguidex12.pdf. This is a pretty decent product too if you have a few thousand dollars to spare.
- FO Processor for transforming FO-XML into PDF http://fonet.codeplex.com.
New Comment on "Unbundling an X12 file by Loop ID"
New Comment on "X12 Interchange Model"
New Comment on "Documentation"
New Comment on "X12 Interchange Model"
New Comment on "X12 Interchange Model"
Updated Wiki: Temporary Post Used For Theme Detection (44e7db33-4759-44c8-aa0f-f53b59b9d53b - 3bfe001a-32de-4114-a6b4-4005b770f6d7)
This is a temporary post that was not deleted. Please delete this manually. (2699eb23-2039-4185-ac4d-c4593fafe12c - 3bfe001a-32de-4114-a6b4-4005b770f6d7)
Updated Wiki: X12 Interchange Model
X12 Interchange Model
The X12 Parser is designed around a set of objects that get loaded with the help of an X12Parser object. Once loaded, the Interchange object can operate without any further assistance from the X12Parser.
You can use these objects to:
- Read an existing X12 file without the use of the XML transformations.
- Load an existing X12 file and make modifications without disturbing any segments that you do not explicit change.
- Create a new X12 document using a built in or custom transaction specification.
An X12 envelop starts with an Interchange surrounding a set of Function Groups surrounding a set of Transactions.
The transactions can hold individual segments, loops or hierarchical loops. The following domain model represents these objects with the least repetition of their common characteristics.
Let's look at how to use these objects with some code samples to work with the following 270 Eligibility Inquiry x12:
Reading an existing X12 file
The following code sample shows loading an Interchange object from an existing X12 string.
It then demonstrates traversing the object model to test specific elements against the expected values.
privatestring inquiry = @"ISA*00* *00* *01*9012345720000 *01*9088877320000 *020816*1144*U*00401*000000031*1*T*:~ GS*HS*901234572000*908887732000*20070816*1615*31*X*005010X279~ ST*270*1234*005010X279~ BHT*0022*13*10001234*20060501*1319~ HL*1**20*1~ NM1*PR*2*ABC COMPANY*****PI*842610001~ HL*2*1*21*1~ NM1*1P*2*BONE AND JOINT CLINIC*****SV*2000035~ HL*3*2*22*0~ TRN*1*93175-012547*9877281234~ NM1*IL*1*SMITH*ROBERT****MI*11122333301~ DMG*D8*19430519~ DTP*291*D8*20060501~ EQ*30~ SE*13*1234~ GE*1*31~ IEA*1*000000031~"; [TestMethod] publicvoid Read270Test() { X12Parser parser = newX12Parser(); Interchange interchange = parser.Parse(newMemoryStream(Encoding.ASCII.GetBytes(inquiry))); Assert.AreEqual("9088877320000 ", interchange.InterchangeReceiverId);
Transaction transaction = interchange.FunctionGroups.First().Transactions.First(); Segment bht = transaction.Segments.First();
Assert.AreEqual("10001234", bht.GetElement(3)); HierarchicalLoop subscriberLoop = transaction.FindHLoop("3"); Loop subscriberNameLoop = subscriberLoop.Loops.First(); Assert.AreEqual("SMITH", subscriberNameLoop.GetElement(3), "Subscriber last name not expected."); Assert.AreEqual("11122333301", subscriberNameLoop.GetElement(9), "Subscriber member id not expected."); }
Modifying an existing X12 file
See the test ParseModifyAndTransformBackToX12 for an example of code to modify an existing file.
Creating a new X12 document
Some suggested reading for understanding the X12 format in general: http://docs.oracle.com/cd/E19398-01/820-1275/agdaw/index.html
Some suggested reading for understanding the 270 format: http://www.anthem.com/edi/noapplication/f3/s1/t0/pw_ad086850.pdf
Starting with an outlined version of a 270 file (This code will be included in the testCreate270Test in the next release with the test code given above -Read270Test)
First you need to create the interchange (The ISA line above).
The following code creates this: ISA*00* *00* *01*9012345720000 *01*9088877320000 *020816*1144*U*00401*000000031*0*T*:~ (Along with its ending code in IEA)
Once the interchange is created, you need to add the Function Group to it. (This is the second line in the above example 270 text starting with GS)
This section of code creates this: GS*HS*901234572000*908887732000*20070816*1615*31*X*00501X092A1~(Along with its ending code in GE)
The next step is adding an actual transaction to the message. This is done by creating a transaction and a BHT – the header for the group of HL levels below.
This section of code creates this: ST*270*1234~BHT*0022*13*10001234*20070816*1319*00~(Along with its ending code in SE)
Now you will be adding the information for the HL levels to the BHT created above. There are 4 levels to a 270 request:
HL1 – The information source level
HL2 – The information receiver level
HL3 – The subscriber level
HL4 – The dependent level (Optional)
To create the HL1 level (Information Source):
To create the HL2 level (Information Receiver)
For the HL3 Level (Member/Subscriber):
And the same process would be used for creating an HL4 (Dependent) record addition to the 270.
Basically what you are doing is building up the document with each added hierarchal level or loop until the document is complete.
Updated Wiki: X12 Interchange Model
X12 Interchange Model
The X12 Parser is designed around a set of objects that get loaded with the help of an X12Parser object. Once loaded, the Interchange object can operate without any further assistance from the X12Parser.
You can use these objects to:
- Read an existing X12 file without the use of the XML transformations.
- Load an existing X12 file and make modifications without disturbing any segments that you do not explicit change.
- Create a new X12 document using a built in or custom transaction specification.
An X12 envelop starts with an Interchange surrounding a set of Function Groups surrounding a set of Transactions.
The transactions can hold individual segments, loops or hierarchical loops. The following domain model represents these objects with the least repetition of their common characteristics.
Let's look at how to use these objects with some code samples to work with the following 270 Eligibility Inquiry x12:
Reading an existing X12 file
The following code sample shows loading an Interchange object from an existing X12 string.
It then demonstrates traversing the object model to test specific elements against the expected values.
privatestring inquiry = @"ISA*00* *00* *01*9012345720000 *01*9088877320000 *020816*1144*U*00401*000000031*1*T*:~ GS*HS*901234572000*908887732000*20070816*1615*31*X*005010X279~ ST*270*1234*005010X279~ BHT*0022*13*10001234*20060501*1319~ HL*1**20*1~ NM1*PR*2*ABC COMPANY*****PI*842610001~ HL*2*1*21*1~ NM1*1P*2*BONE AND JOINT CLINIC*****SV*2000035~ HL*3*2*22*0~ TRN*1*93175-012547*9877281234~ NM1*IL*1*SMITH*ROBERT****MI*11122333301~ DMG*D8*19430519~ DTP*291*D8*20060501~ EQ*30~ SE*13*1234~ GE*1*31~ IEA*1*000000031~"; [TestMethod] publicvoid Read270Test() { X12Parser parser = newX12Parser(); Interchange interchange = parser.Parse(newMemoryStream(Encoding.ASCII.GetBytes(inquiry))); Assert.AreEqual("9088877320000 ", interchange.InterchangeReceiverId);
Transaction transaction = interchange.FunctionGroups.First().Transactions.First(); Segment bht = transaction.Segments.First();
Assert.AreEqual("10001234", bht.GetElement(3)); HierarchicalLoop subscriberLoop = transaction.FindHLoop("3"); Loop subscriberNameLoop = subscriberLoop.Loops.First(); Assert.AreEqual("SMITH", subscriberNameLoop.GetElement(3), "Subscriber last name not expected."); Assert.AreEqual("11122333301", subscriberNameLoop.GetElement(9), "Subscriber member id not expected."); }
Modifying an existing X12 file
See the test ParseModifyAndTransformBackToX12 for an example of code to modify an existing file.
Creating a new X12 document
Some suggested reading for understanding the X12 format in general: http://docs.oracle.com/cd/E19398-01/820-1275/agdaw/index.html
Some suggested reading for understanding the 270 format: http://www.anthem.com/edi/noapplication/f3/s1/t0/pw_ad086850.pdf
Starting with an outlined version of a 270 file (This code will be included in the testCreate270Test in the next release with the test code given above -Read270Test)
First you need to create the interchange (The ISA line above).
The following code creates this: ISA*00* *00* *01*9012345720000 *01*9088877320000 *020816*1144*U*00401*000000031*0*T*:~ (Along with its ending code in IEA)
Once the interchange is created, you need to add the Function Group to it. (This is the second line in the above example 270 text starting with GS)
This section of code creates this: GS*HS*901234572000*908887732000*20070816*1615*31*X*00501X092A1~(Along with its ending code in GE)
The next step is adding an actual transaction to the message. This is done by creating a transaction and a BHT – the header for the group of HL levels below.
This section of code creates this: ST*270*1234~BHT*0022*13*10001234*20070816*1319*00~(Along with its ending code in SE)
Now you will be adding the information for the HL levels to the BHT created above. There are 4 levels to a 270 request:
HL1 – The information source level
HL2 – The information receiver level
HL3 – The subscriber level
HL4 – The dependent level (Optional)
To create the HL1 level (Information Source):
To create the HL2 level (Information Receiver)
For the HL3 Level (Member/Subscriber):
And the same process would be used for creating an HL4 (Dependent) record addition to the 270.
Basically what you are doing is building up the document with each added hierarchal level or loop until the document is complete.
Updated Wiki: X12 Interchange Model
X12 Interchange Model
The X12 Parser is designed around a set of objects that get loaded with the help of an X12Parser object. Once loaded, the Interchange object can operate without any further assistance from the X12Parser.
You can use these objects to:
- Read an existing X12 file without the use of the XML transformations.
- Load an existing X12 file and make modifications without disturbing any segments that you do not explicit change.
- Create a new X12 document using a built in or custom transaction specification.
An X12 envelop starts with an Interchange surrounding a set of Function Groups surrounding a set of Transactions.
The transactions can hold individual segments, loops or hierarchical loops. The following domain model represents these objects with the least repetition of their common characteristics.
Let's look at how to use these objects with some code samples to work with the following 270 Eligibility Inquiry x12:
Reading an existing X12 file
The following code sample shows loading an Interchange object from an existing X12 string.
It then demonstrates traversing the object model to test specific elements against the expected values.
privatestring inquiry = @"ISA*00* *00* *01*9012345720000 *01*9088877320000 *020816*1144*U*00401*000000031*1*T*:~ GS*HS*901234572000*908887732000*20070816*1615*31*X*005010X279~ ST*270*1234*005010X279~ BHT*0022*13*10001234*20060501*1319~ HL*1**20*1~ NM1*PR*2*ABC COMPANY*****PI*842610001~ HL*2*1*21*1~ NM1*1P*2*BONE AND JOINT CLINIC*****SV*2000035~ HL*3*2*22*0~ TRN*1*93175-012547*9877281234~ NM1*IL*1*SMITH*ROBERT****MI*11122333301~ DMG*D8*19430519~ DTP*291*D8*20060501~ EQ*30~ SE*13*1234~ GE*1*31~ IEA*1*000000031~"; [TestMethod] publicvoid Read270Test() { X12Parser parser = newX12Parser(); Interchange interchange = parser.Parse(newMemoryStream(Encoding.ASCII.GetBytes(inquiry))); Assert.AreEqual("9088877320000 ", interchange.InterchangeReceiverId);
Transaction transaction = interchange.FunctionGroups.First().Transactions.First(); Segment bht = transaction.Segments.First();
Assert.AreEqual("10001234", bht.GetElement(3)); HierarchicalLoop subscriberLoop = transaction.FindHLoop("3"); Loop subscriberNameLoop = subscriberLoop.Loops.First(); Assert.AreEqual("SMITH", subscriberNameLoop.GetElement(3), "Subscriber last name not expected."); Assert.AreEqual("11122333301", subscriberNameLoop.GetElement(9), "Subscriber member id not expected."); }
Modifying an existing X12 file
See the test ParseModifyAndTransformBackToX12 for an example of code to modify an existing file.
Creating a new X12 document
Some suggested reading for understanding the X12 format in general: http://docs.oracle.com/cd/E19398-01/820-1275/agdaw/index.html
Some suggested reading for understanding the 270 format: http://www.anthem.com/edi/noapplication/f3/s1/t0/pw_ad086850.pdf
Starting with an outlined version of a 270 file (This code will be included in the testCreate270Test in the next release with the test code given above -Read270Test)
First you need to create the interchange (The ISA line above).
The following code creates this: ISA*00* *00* *01*9012345720000 *01*9088877320000 *020816*1144*U*00401*000000031*0*T*:~ (Along with its ending code in IEA)
Once the interchange is created, you need to add the Function Group to it. (This is the second line in the above example 270 text starting with GS)
This section of code creates this: GS*HS*901234572000*908887732000*20070816*1615*31*X*00501X092A1~(Along with its ending code in GE)
The next step is adding an actual transaction to the message. This is done by creating a transaction and a BHT – the header for the group of HL levels below.
This section of code creates this: ST*270*1234~BHT*0022*13*10001234*20070816*1319*00~(Along with its ending code in SE)
Now you will be adding the information for the HL levels to the BHT created above. There are 4 levels to a 270 request:
HL1 – The information source level
HL2 – The information receiver level
HL3 – The subscriber level
HL4 – The dependent level (Optional)
To create the HL1 level (Information Source):
To create the HL2 level (Information Receiver)
For the HL3 Level (Member/Subscriber):
And the same process would be used for creating an HL4 (Dependent) record addition to the 270.
Basically what you are doing is building up the document with each added hierarchal level or loop until the document is complete.
Updated Wiki: X12 Interchange Model
X12 Interchange Model
The X12 Parser is designed around a set of objects that get loaded with the help of an X12Parser object. Once loaded, the Interchange object can operate without any further assistance from the X12Parser.
You can use these objects to:
- Read an existing X12 file without the use of the XML transformations.
- Load an existing X12 file and make modifications without disturbing any segments that you do not explicit change.
- Create a new X12 document using a built in or custom transaction specification.
An X12 envelop starts with an Interchange surrounding a set of Function Groups surrounding a set of Transactions.
The transactions can hold individual segments, loops or hierarchical loops. The following domain model represents these objects with the least repetition of their common characteristics.
Let's look at how to use these objects with some code samples to work with the following 270 Eligibility Inquiry x12:
Reading an existing X12 file
The following code sample shows loading an Interchange object from an existing X12 string.
It then demonstrates traversing the object model to test specific elements against the expected values.
privatestring inquiry = @"ISA*00* *00* *01*9012345720000 *01*9088877320000 *020816*1144*U*00401*000000031*1*T*:~ GS*HS*901234572000*908887732000*20070816*1615*31*X*005010X279~ ST*270*1234*005010X279~ BHT*0022*13*10001234*20060501*1319~ HL*1**20*1~ NM1*PR*2*ABC COMPANY*****PI*842610001~ HL*2*1*21*1~ NM1*1P*2*BONE AND JOINT CLINIC*****SV*2000035~ HL*3*2*22*0~ TRN*1*93175-012547*9877281234~ NM1*IL*1*SMITH*ROBERT****MI*11122333301~ DMG*D8*19430519~ DTP*291*D8*20060501~ EQ*30~ SE*13*1234~ GE*1*31~ IEA*1*000000031~"; [TestMethod] publicvoid Read270Test() { X12Parser parser = newX12Parser(); Interchange interchange = parser.Parse(newMemoryStream(Encoding.ASCII.GetBytes(inquiry))); Assert.AreEqual("9088877320000 ", interchange.InterchangeReceiverId);
Transaction transaction = interchange.FunctionGroups.First().Transactions.First(); Segment bht = transaction.Segments.First();
Assert.AreEqual("10001234", bht.GetElement(3)); HierarchicalLoop subscriberLoop = transaction.FindHLoop("3"); Loop subscriberNameLoop = subscriberLoop.Loops.First(); Assert.AreEqual("SMITH", subscriberNameLoop.GetElement(3), "Subscriber last name not expected."); Assert.AreEqual("11122333301", subscriberNameLoop.GetElement(9), "Subscriber member id not expected."); }
Modifying an existing X12 file
See the test ParseModifyAndTransformBackToX12 for an example of code to modify an existing file.
Creating a new X12 document
Some suggested reading for understanding the X12 format in general: http://docs.oracle.com/cd/E19398-01/820-1275/agdaw/index.html
Some suggested reading for understanding the 270 format: http://www.anthem.com/edi/noapplication/f3/s1/t0/pw_ad086850.pdf
Starting with an outlined version of a 270 file (This code will be included in the testCreate270Test in the next release with the test code given above -Read270Test)
First you need to create the interchange (The ISA line above).
The following code creates this: ISA*00* *00* *01*9012345720000 *01*9088877320000 *020816*1144*U*00401*000000031*0*T*:~ (Along with its ending code in IEA)
Once the interchange is created, you need to add the Function Group to it. (This is the second line in the above example 270 text starting with GS)
This section of code creates this: GS*HS*901234572000*908887732000*20070816*1615*31*X*00501X092A1~(Along with its ending code in GE)
The next step is adding an actual transaction to the message. This is done by creating a transaction and a BHT – the header for the group of HL levels below.
This section of code creates this: ST*270*1234~BHT*0022*13*10001234*20070816*1319*00~(Along with its ending code in SE)
Now you will be adding the information for the HL levels to the BHT created above. There are 4 levels to a 270 request:
HL1 – The information source level
HL2 – The information receiver level
HL3 – The subscriber level
HL4 – The dependent level (Optional)
To create the HL1 level (Information Source):
To create the HL2 level (Information Receiver)
For the HL3 Level (Member/Subscriber):
And the same process would be used for creating an HL4 (Dependent) record addition to the 270.
Basically what you are doing is building up the document with each added hierarchal level or loop until the document is complete.
Updated Wiki: X12 Interchange Model
X12 Interchange Model
The X12 Parser is designed around a set of objects that get loaded with the help of an X12Parser object. Once loaded, the Interchange object can operate without any further assistance from the X12Parser.
You can use these objects to:
- Read an existing X12 file without the use of the XML transformations.
- Load an existing X12 file and make modifications without disturbing any segments that you do not explicit change.
- Create a new X12 document using a built in or custom transaction specification.
An X12 envelop starts with an Interchange surrounding a set of Function Groups surrounding a set of Transactions.
The transactions can hold individual segments, loops or hierarchical loops. The following domain model represents these objects with the least repetition of their common characteristics.
Let's look at how to use these objects with some code samples to work with the following 270 Eligibility Inquiry x12:
Reading an existing X12 file
The following code sample shows loading an Interchange object from an existing X12 string.
It then demonstrates traversing the object model to test specific elements against the expected values.
privatestring inquiry = @"ISA*00* *00* *01*9012345720000 *01*9088877320000 *020816*1144*U*00401*000000031*0*T*:~ GS*HS*901234572000*908887732000*20070816*1615*31*X*00501X092A1~ ST*270*1234~ BHT*0022*13*10001234*20070816*1319*00~ HL*1**20*1~ NM1*PR*2*ABC BILLING SERVICE*****PI*842610001~ HL*2*1*21*1~ NM1*1P*2*BONE AND JOINT CLINIC*****SV*2000035~ HL*3*2*22*0~ TRN*1*93175-012547*9877281234~ NM1*IL*1*SMITH*ROBERT*MI****11122333301~ DMG*D8*19430519~ DTP*291*D8*20060501~ EQ*30~ SE*13*1234~ GE*1*31~ IEA*1*000000031~"; [TestMethod] publicvoid Read270Test() { X12Parser parser = newX12Parser(); Interchange interchange = parser.Parse(newMemoryStream(Encoding.ASCII.GetBytes(inquiry))); Assert.AreEqual("9088877320000 ", interchange.InterchangeReceiverId);
Transaction transaction = interchange.FunctionGroups.First().Transactions.First(); Segment bht = transaction.Segments.First();
Assert.AreEqual("10001234", bht.GetElement(3)); HierarchicalLoop subscriberLoop = transaction.FindHLoop("3"); Loop subscriberNameLoop = subscriberLoop.Loops.First(); Assert.AreEqual("SMITH", subscriberNameLoop.GetElement(3), "Subscriber last name not expected."); Assert.AreEqual("11122333301", subscriberNameLoop.GetElement(9), "Subscriber member id not expected."); }
Modifying an existing X12 file
See the test ParseModifyAndTransformBackToX12 for an example of code to modify an existing file.
Creating a new X12 document
Some suggested reading for understanding the X12 format in general: http://docs.oracle.com/cd/E19398-01/820-1275/agdaw/index.html
Some suggested reading for understanding the 270 format: http://www.anthem.com/edi/noapplication/f3/s1/t0/pw_ad086850.pdf
Starting with an outlined version of a 270 file (This code will be included in the testCreate270Test in the next release with the test code given above -Read270Test)
First you need to create the interchange (The ISA line above).
The following code creates this: ISA*00* *00* *01*9012345720000 *01*9088877320000 *020816*1144*U*00401*000000031*0*T*:~ (Along with its ending code in IEA)
Once the interchange is created, you need to add the Function Group to it. (This is the second line in the above example 270 text starting with GS)
This section of code creates this: GS*HS*901234572000*908887732000*20070816*1615*31*X*00501X092A1~(Along with its ending code in GE)
The next step is adding an actual transaction to the message. This is done by creating a transaction and a BHT – the header for the group of HL levels below.
This section of code creates this: ST*270*1234~BHT*0022*13*10001234*20070816*1319*00~(Along with its ending code in SE)
Now you will be adding the information for the HL levels to the BHT created above. There are 4 levels to a 270 request:
HL1 – The information source level
HL2 – The information receiver level
HL3 – The subscriber level
HL4 – The dependent level (Optional)
To create the HL1 level (Information Source):
To create the HL2 level (Information Receiver)
For the HL3 Level (Member/Subscriber):
And the same process would be used for creating an HL4 (Dependent) record addition to the 270.
Basically what you are doing is building up the document with each added hierarchal level or loop until the document is complete.
Updated Wiki: X12 Interchange Model
X12 Interchange Model
The X12 Parser is designed around a set of objects that get loaded with the help of an X12Parser object. Once loaded, the Interchange object can operate without any further assistance from the X12Parser.
You can use these objects to:
- Read an existing X12 file without the use of the XML transformations.
- Load an existing X12 file and make modifications without disturbing any segments that you do not explicit change.
- Create a new X12 document using a built in or custom transaction specification.
An X12 envelop starts with an Interchange surrounding a set of Function Groups surrounding a set of Transactions.
The transactions can hold individual segments, loops or hierarchical loops. The following domain model represents these objects with the least repetition of their common characteristics.
Let's look at how to use these objects with some code samples to work with the following 270 Eligibility Inquiry x12:
Reading an existing X12 file
The following code sample shows loading an Interchange object from an existing X12 string.
It then demonstrates traversing the object model to test specific elements against the expected values.
privatestring inquiry = @"ISA*00* *00* *01*9012345720000 *01*9088877320000 *020816*1144*U*00401*000000031*0*T*:~ GS*HS*901234572000*908887732000*20070816*1615*31*X*00501X092A1~ ST*270*1234~ BHT*0022*13*10001234*20070816*1319*00~ HL*1**20*1~ NM1*PR*2*ABC BILLING SERVICE*****PI*842610001~ HL*2*1*21*1~ NM1*1P*2*BONE AND JOINT CLINIC*****SV*2000035~ HL*3*2*22*0~ TRN*1*93175-012547*9877281234~ NM1*IL*1*SMITH*ROBERT*MI****11122333301~ DMG*D8*19430519~ DTP*291*D8*20060501~ EQ*30~ SE*13*1234~ GE*1*31~ IEA*1*000000031~"; [TestMethod] publicvoid Read270Test() { X12Parser parser = newX12Parser(); Interchange interchange = parser.Parse(newMemoryStream(Encoding.ASCII.GetBytes(inquiry))); Assert.AreEqual("9088877320000 ", interchange.InterchangeReceiverId);
Transaction transaction = interchange.FunctionGroups.First().Transactions.First(); Segment bht = transaction.Segments.First();
Assert.AreEqual("10001234", bht.GetElement(3)); HierarchicalLoop subscriberLoop = transaction.FindHLoop("3"); Loop subscriberNameLoop = subscriberLoop.Loops.First(); Assert.AreEqual("SMITH", subscriberNameLoop.GetElement(3), "Subscriber last name not expected."); Assert.AreEqual("11122333301", subscriberNameLoop.GetElement(9), "Subscriber member id not expected."); }
Modifying an existing X12 file
See the test ParseModifyAndTransformBackToX12 for an example of code to modify an existing file.
Creating a new X12 document
Some suggested reading for understanding the X12 format in general: http://docs.oracle.com/cd/E19398-01/820-1275/agdaw/index.html
Some suggested reading for understanding the 270 format: http://www.anthem.com/edi/noapplication/f3/s1/t0/pw_ad086850.pdf
Starting with an outlined version of a 270 file (This code will be included in the testCreate270Test in the next release with the test code given above -Read270Test)
privatestring inquiry = @"ISA*00* *00* *01*9012345720000 *01*9088877320000 *020816*1144*U*00401*000000031*0*T*:~ GS*HS*901234572000*908887732000*20070816*1615*31*X*00501X092A1~ ST*270*1234~ BHT*0022*13*10001234*20070816*1319*00~ HL*1**20*1~ NM1*PR*2*ABC BILLING SERVICE*****PI*842610001~ HL*2*1*21*1~ NM1*1P*2*BONE AND JOINT CLINIC*****SV*2000035~ HL*3*2*22*0~ TRN*1*93175-012547*9877281234~ NM1*IL*1*SMITH*ROBERT*MI****11122333301~ DMG*D8*19430519~ DTP*291*D8*20060501~ EQ*30~ SE*13*1234~ GE*1*31~ IEA*1*000000031~";
First you need to create the interchange (The ISA line above).
The following code creates this: ISA*00* *00* *01*9012345720000 *01*9088877320000 *020816*1144*U*00401*000000031*0*T*:~ (Along with its ending code in IEA)
Once the interchange is created, you need to add the Function Group to it. (This is the second line in the above example 270 text starting with GS)
This section of code creates this: GS*HS*901234572000*908887732000*20070816*1615*31*X*00501X092A1~(Along with its ending code in GE)
The next step is adding an actual transaction to the message. This is done by creating a transaction and a BHT – the header for the group of HL levels below.
This section of code creates this: ST*270*1234~BHT*0022*13*10001234*20070816*1319*00~(Along with its ending code in SE)
Now you will be adding the information for the HL levels to the BHT created above. There are 4 levels to a 270 request:
HL1 – The information source level
HL2 – The information receiver level
HL3 – The subscriber level
HL4 – The dependent level (Optional)
To create the HL1 level (Information Source):
To create the HL2 level (Information Receiver)
For the HL3 Level (Member/Subscriber):
And the same process would be used for creating an HL4 (Dependent) record addition to the 270.
Basically what you are doing is building up the document with each added hierarchal level or loop until the document is complete.
Updated Wiki: X12 Interchange Model
X12 Interchange Model
The X12 Parser is designed around a set of objects that get loaded with the help of an X12Parser object. Once loaded, the Interchange object can operate without any further assistance from the X12Parser.
You can use these objects to:
- Read an existing X12 file without the use of the XML transformations.
- Load an existing X12 file and make modifications without disturbing any segments that you do not explicit change.
- Create a new X12 document using a built in or custom transaction specification.
An X12 envelop starts with an Interchange surrounding a set of Function Groups surrounding a set of Transactions.
The transactions can hold individual segments, loops or hierarchical loops. The following domain model represents these objects with the least repetition of their common characteristics.
Let's look at how to use these objects with some code samples to work with the following 270 Eligibility Inquiry x12:
Reading an existing X12 file
The following code sample shows loading an Interchange object from an existing X12 string.
It then demonstrates traversing the object model to test specific elements against the expected values.
privatestring inquiry = @"ISA*00* *00* *01*9012345720000 *01*9088877320000 *020816*1144*U*00401*000000031*0*T*:~ GS*HS*901234572000*908887732000*20070816*1615*31*X*00501X092A1~ ST*270*1234~ BHT*0022*13*10001234*20070816*1319*00~ HL*1**20*1~ NM1*PR*2*ABC BILLING SERVICE*****PI*842610001~ HL*2*1*21*1~ NM1*1P*2*BONE AND JOINT CLINIC*****SV*2000035~ HL*3*2*22*0~ TRN*1*93175-012547*9877281234~ NM1*IL*1*SMITH*ROBERT*MI****11122333301~ DMG*D8*19430519~ DTP*291*D8*20060501~ EQ*30~ SE*13*1234~ GE*1*31~ IEA*1*000000031~"; [TestMethod] publicvoid Read270Test() { X12Parser parser = newX12Parser(); Interchange interchange = parser.Parse(newMemoryStream(Encoding.ASCII.GetBytes(inquiry))); Assert.AreEqual("9088877320000 ", interchange.InterchangeReceiverId);
Transaction transaction = interchange.FunctionGroups.First().Transactions.First(); Segment bht = transaction.Segments.First();
Assert.AreEqual("10001234", bht.GetElement(3)); HierarchicalLoop subscriberLoop = transaction.FindHLoop("3"); Loop subscriberNameLoop = subscriberLoop.Loops.First(); Assert.AreEqual("SMITH", subscriberNameLoop.GetElement(3), "Subscriber last name not expected."); Assert.AreEqual("11122333301", subscriberNameLoop.GetElement(9), "Subscriber member id not expected."); }
Modifying an existing X12 file
See the test ParseModifyAndTransformBackToX12 for an example of code to modify an existing file.
Creating a new X12 document
Some suggested reading for understanding the X12 format in general: http://docs.oracle.com/cd/E19398-01/820-1275/agdaw/index.html
Some suggested reading for understanding the 270 format: http://www.anthem.com/edi/noapplication/f3/s1/t0/pw_ad086850.pdf
Starting with an outlined version of a 270 file (This code will be included in the testCreate270Test in the next release with the test code given above -Read270Test)
privatestring inquiry = @"ISA*00* *00* *01*9012345720000 *01*9088877320000 *020816*1144*U*00401*000000031*0*T*:~ GS*HS*901234572000*908887732000*20070816*1615*31*X*00501X092A1~ ST*270*1234~ BHT*0022*13*10001234*20070816*1319*00~ HL*1**20*1~ NM1*PR*2*ABC BILLING SERVICE*****PI*842610001~ HL*2*1*21*1~ NM1*1P*2*BONE AND JOINT CLINIC*****SV*2000035~ HL*3*2*22*0~ TRN*1*93175-012547*9877281234~ NM1*IL*1*SMITH*ROBERT*MI****11122333301~ DMG*D8*19430519~ DTP*291*D8*20060501~ EQ*30~ SE*13*1234~ GE*1*31~ IEA*1*000000031~";
First you need to create the interchange (The ISA line above).
The following code creates this: ISA*00* *00* *01*9012345720000 *01*9088877320000 *020816*1144*U*00401*000000031*0*T*:~ (Along with its ending code in IEA)
Once the interchange is created, you need to add the Function Group to it. (This is the second line in the above example 270 text starting with GS)
This section of code creates this: GS*HS*901234572000*908887732000*20070816*1615*31*X*00501X092A1~(Along with its ending code in GE)
The next step is adding an actual transaction to the message. This is done by creating a transaction and a BHT – the header for the group of HL levels below.
This section of code creates this: ST*270*1234~BHT*0022*13*10001234*20070816*1319*00~(Along with its ending code in SE)
Now you will be adding the information for the HL levels to the BHT created above. There are 4 levels to a 270 request:
HL1 – The information source level
HL2 – The information receiver level
HL3 – The subscriber level
HL4 – The dependent level (Optional)
To create the HL1 level (Information Source):
To create the HL2 level (Information Receiver)
For the HL3 Level (Member/Subscriber):
And the same process would be used for creating an HL4 (Dependent) record addition to the 270.
Basically what you are doing is building up the document with each added hierarchal level or loop until the document is complete.