A reference guide to the most common ANSI X12 transaction sets supported on x12port — what each one is, who uses it, and when it's sent. See the full interactive reference at /dev/tx-sets.
In X12 EDI, a transaction set is a standardised electronic document. Each transaction set has a three-digit number (e.g. 850) and defines the structure, required segments, and allowed values for that document type. Transaction sets travel inside a GS/GE functional group envelope.
| Set | Name | Direction | When sent |
|---|---|---|---|
| 850 | Purchase Order | Retailer → Supplier | When a retailer places an order |
| 855 | Purchase Order Acknowledgment | Supplier → Retailer | To accept, reject, or partially accept an 850 |
| 856 | Ship Notice / ASN | Supplier → Retailer | When a shipment leaves the warehouse — required by most large retailers before goods arrive |
| 810 | Invoice | Supplier → Retailer | To bill for shipped goods |
| 820 | Payment Order / Remittance Advice | Retailer → Supplier | To confirm payment and reconcile against invoices |
| 753 | Request for Routing Instructions | Supplier → Retailer | To ask the retailer which carrier to use |
| 754 | Routing Instructions | Retailer → Supplier | Retailer's response with carrier and routing details |
| 997 | Functional Acknowledgment | Both | Required — confirms receipt of any functional group; sent within 24–48 hours of receiving any document |
| Set | Name | Direction | When sent |
|---|---|---|---|
| 204 | Motor Carrier Load Tender | Shipper → Carrier | To offer a freight load to a carrier |
| 211 | Motor Carrier Bill of Lading | Carrier → Shipper | Formal receipt for freight accepted for transport |
| 214 | Shipment Status Message | Carrier → Shipper | In-transit status updates (picked up, in transit, delivered) |
| 990 | Response to a Load Tender | Carrier → Shipper | Carrier accepts or rejects a 204 load tender |
| 210 | Motor Carrier Freight Details and Invoice | Carrier → Shipper | Freight invoice after delivery |
| Set | Name | When sent |
|---|---|---|
| 940 | Warehouse Shipping Order | Retailer/Shipper → 3PL to instruct a shipment |
| 943 | Warehouse Stock Transfer Shipment Advice | Sender notifies 3PL of incoming inventory transfer |
| 944 | Warehouse Stock Transfer Receipt Advice | 3PL confirms receipt of inventory |
| 945 | Warehouse Shipping Advice | 3PL confirms a shipment went out in response to a 940 |
| 947 | Warehouse Inventory Adjustment Advice | 3PL notifies of inventory adjustments (damage, returns, etc.) |
| Set | Name | When sent |
|---|---|---|
| 270 | Eligibility, Coverage, or Benefit Inquiry | Provider → Payer to verify a patient's benefits |
| 271 | Eligibility, Coverage, or Benefit Response | Payer → Provider with benefit details |
| 837 | Health Care Claim | Provider → Payer to submit a claim |
| 835 | Health Care Claim Payment / Remittance | Payer → Provider with payment and explanation of benefits |
| 277 | Health Care Claim Status | Payer → Provider with claim status update |
The 997 is unique — it's required in virtually every EDI trading relationship, regardless of industry. Any time you receive a functional group (a set of transaction sets inside a GS/GE envelope), you must send back a 997 within the timeframe specified in your trading partner agreement (typically 24–48 hours).
A 997 can acknowledge the entire group as AK901=A (Accepted), AK901=E (Accepted with errors),
or AK901=R (Rejected). Failing to send 997s will result in your partner flagging your connection as non-compliant.
The interactive transaction set browser at /dev/tx-sets lists all supported sets, filterable by industry and direction. Each entry shows the segment loop structure and common element descriptions.