# EDI 863 Report of Test Results: COA Guide

> EDI 863 explained: electronic certificates of analysis and mill test reports, the BTR, LIN, CID and MEA segments, a live COA example and common errors.

<QuickAnswer>
The EDI 863 Report of Test Results is the X12 transaction a supplier uses to send lab results for a shipped lot, heat or batch. It is the electronic certificate of analysis (COA) or mill test report. Each 863 identifies the item and lot, then lists every test characteristic with its measured value and specification range.
</QuickAnswer>

**The EDI 863 replaces the PDF certificate that travels with every lot.** Chemical, food ingredient, steel and pharmaceutical buyers will not release incoming material until quality has checked the supplier's test results against the specification. When that certificate arrives as a scanned PDF, someone retypes assay, moisture or tensile values into a quality system. The 863 sends the same numbers as structured data, tied to the lot number on the shipment.

This guide covers what the 863 carries, who uses it, how it links to the ASN and the receipt, every segment you will map, a live certificate of analysis example, and the errors that put lots on hold.

<EDIGuideCTA
  transactionType="863"
  headline="Check an 863 before your customer does"
  body="Paste a certificate of analysis or mill test report into OrderSync's free EDI inspector to see every lot, characteristic and result laid out in plain English, segment by segment."
/>

## What Is an EDI 863?

**An EDI 863 is the Report of Test Results transaction set defined by [ASC X12](https://x12.org/products/transaction-sets), used to transmit the results of tests performed to satisfy a product or process requirement.** X12 describes it as covering inspection data, certification data and statistical process control measurements. In practice it is most often the electronic form of a certificate of analysis (COA), certificate of compliance or mill test report. Its functional group code in `GS01` is `RT`.

Authoritative references for 863 work:

- The [X12 transaction set catalog](https://x12.org/products/transaction-sets) defines the 863 and its segment order
- The [Stedi 004010 863 reference](https://www.stedi.com/edi/x12-004010/863) lists every segment and loop, including the LIN, CID, MEA, STA and TMD loops
- A published trading-partner guide, such as [U.S. Steel's 863 implementation guide](https://edi.uss.com/documents/4417799/4738803/863%20Report%20of%20Test%20Results), shows how a steel mill sends mechanical and coating results with heat numbers and coil IDs
- For US food manufacturers, the FDA preventive controls rule lists "sampling and testing of the raw material or other ingredient" as a supplier verification activity in [21 CFR 117.410](https://www.ecfr.gov/current/title-21/chapter-I/subchapter-B/part-117/subpart-G/section-117.410), which is one reason ingredient buyers ask for test results with every lot

**Who sends it?** The supplier, mill or manufacturer that tested the material, or its outside lab.

**Who receives it?** The customer's quality or receiving team, often straight into a laboratory information management system (LIMS) or the quality module of the ERP.

**When is it sent?** With or just before the shipment, so results are on file when the lot arrives. Some customers want it before the truck leaves, so they can reject a failing lot before paying freight.

**Why does it matter?** Many buyers place incoming lots on quality hold until the certificate is reviewed. A missing or unmatched 863 leaves product sitting on the dock, and a result outside specification can mean a rejected shipment.

## Who Uses the 863

The structure is generic, so each industry uses it differently.

| Industry | Typical document | What the 863 carries |
|---|---|---|
| **Chemicals** | Certificate of analysis | Assay or purity, moisture, pH, specific gravity, color, impurities, per batch |
| **Food ingredients** | Certificate of analysis | Composition, moisture, and where the buyer requires it, microbiological results, per lot |
| **Steel and metals** | Mill test report (MTR) | Chemistry by element and mechanical properties (yield, tensile, elongation), per heat or coil |
| **Pharmaceutical and excipients** | Certificate of analysis | Results against the compendial or customer specification, per batch |
| **Automotive and industrial parts** | Inspection or SPC data | Dimensional or statistical process results for a production lot |

The common thread is a lot or heat identifier. The test results only mean something if the customer can tie them to the physical material it received, which is why the lot number has to match the one on your [856 ship notice](/guides/edi/856-ship-notice) and on the label.

## How the 863 Fits the Shipment

A typical certificate flow with an EDI customer:

1. **Order.** The customer sends an [850 purchase order](/guides/edi/850-purchase-order), often naming the specification the material must meet.
2. **Test and release.** Your lab tests the batch, lot or heat and releases it against the specification.
3. **Ship.** You send an [856 ASN](/guides/edi/856-ship-notice) that lists the lot numbers in each shipment.
4. **Report results.** You send an 863 for each lot (or one 863 covering several lots), with the same lot numbers.
5. **Customer review.** The customer's system matches the 863 to the receipt by PO, item and lot, and compares each result to its own copy of the specification.
6. **Release or reject.** Lots that pass are released from hold. A failing or missing result can trigger a rejection, often reported back on an [842 nonconformance report](/guides/edi/842-nonconformance-report) or a [861 receiving advice](/guides/edi/861-receiving-advice).

The 863 does not replace your quality agreement. It is the delivery mechanism for the results that agreement requires.

## Interactive Example: Chemical Certificate of Analysis (863)

A fictional chemical supplier ships one lot of food-grade citric acid to a fictional food plant. `BTR04` is `CA` (Certificate of Analysis), the item and lot are in `LIN`, and the lot's manufacture and expiration dates follow in `DTM`. Two `CID` groups hold the results: chemistry (assay 99.8% against 99.5 to 100.5%, moisture 0.12% against a 0.5% maximum) and physical (specific gravity 1.66 against 1.65 to 1.67).

Use the **Plain English** tab for a readable summary, or click any segment to break it down element by element.

<EDISample id="863-certificate-of-analysis" />

## 863 Structure at a Glance

The 863 is flexible. Most certificates use a small subset of what the standard allows.

| Area | Segment | Name | Usage | Notes |
|---|---|---|---|---|
| Header | **ST** | Transaction Set Header | Mandatory | `ST01` = `863` |
| Header | **BTR** | Beginning Segment for Test Results | Mandatory | Purpose, date, report type, report number |
| Header | **NTE** | Note/Special Instruction | Optional | Free-text statements, such as a conformance declaration |
| Header | **REF** | Reference Identification | Optional | Purchase order, bill of lading, shipment ID |
| Header | **DTM** | Date/Time Reference | Optional | Ship date and other report-level dates |
| Header loop | **N1 / N3 / N4 / PER** | Parties | Optional | Supplier, manufacturer, ship-to, buyer, lab contact |
| Detail loop | **LIN** | Item Identification | Optional, repeats | One per item and lot: part number, lot, heat, serial |
| Detail loop | **PID** | Product/Item Description | Optional | Item description or grade |
| Detail loop | **DTM / REF / QTY** | Item dates, references and quantities | Optional | Manufacture date, expiry, lot quantity |
| CID loop | **CID** | Characteristic/Class ID | Optional, repeats | A group of tests, such as chemistry or mechanical |
| CID loop | **PSD** | Physical Sample Description | Optional | Where and how the sample was taken |
| MEA loop | **MEA** | Measurements | Optional, repeats | One result, its unit and its specification range |
| TMD loop | **TMD** | Test Method | Optional | The test method or standard used |
| STA loop | **STA** | Statistics | Optional | Statistical results such as mean or standard deviation |
| Summary | **CTT** | Transaction Totals | Optional | Number of LIN line items |
| Summary | **SE** | Transaction Set Trailer | Mandatory | Segment count and control number |

Customer guides choose which of these loops they read. The U.S. Steel guide, for example, uses only `LIN`, `MEA`, `CID`, `PSD`, `TMD` and `MEA` in the detail. Build to your customer's guide.

## Key Segments Explained

### BTR: Beginning Segment for Test Results

```
BTR*00*20261106*1430*CA*COA-2611-0457~
```

| Element | Name | Example | What it means |
|---|---|---|---|
| **BTR01** | Transaction Set Purpose Code | `00` | `00` = original. Replacements and cancellations use other purpose codes |
| **BTR02** | Date | `20261106` | Date the report was created |
| **BTR03** | Time | `1430` | Time the report was created |
| **BTR04** | Report Type Code | `CA` | `CA` = Certificate of Analysis. Steel mills often use `12` (Mechanical Properties) or `11` (Chemical Analysis); `CP` is Certificate of Compliance |
| **BTR05** | Reference Identification | `COA-2611-0457` | Your certificate number |
| **BTR06** | Reference Identification | | The original certificate number, required when the purpose code says this report replaces or cancels an earlier one |
| **BTR07** | Security Level Code | | Confidentiality level, rarely used |

If you correct a result after sending, send a new 863 with the right purpose code and the original certificate number in `BTR06`, so the customer replaces the old record rather than holding two conflicting certificates. The purpose codes your customer accepts for corrections are in its guide.

### LIN: Item and Lot Identification

```
LIN**VN*CA-ANH-25*LT*L2611-0457~
```

`LIN` identifies the material the results belong to, as pairs of qualifier and value. In the example, `VN` is the vendor's item number and `LT` the lot number. Steel mill reports typically add `HN` (heat number) and a coil or serial ID; the U.S. Steel guide uses `VO`, `VN`, `HN` and `SN`. Whatever identifiers you send, they must match the ones on the ASN and the physical label. A certificate for lot `L2611-0457` is no use to a receiver holding a drum marked `L26110457`.

The `DTM` segments that follow in the LIN loop carry item-level dates. The example uses `094` (manufacture) and `036` (expiration).

### CID: Characteristic/Class ID

```
CID**68~
```

| Element | Name | Example | What it means |
|---|---|---|---|
| **CID01** | Measurement Qualifier | | A specific characteristic, when the group is a single test |
| **CID02** | Product/Process Characteristic Code | `68` | The class of test. `68` = Chemistry, `69` = Physical, `71` = Mechanical, `65` = Visual |
| **CID03 / CID04** | Agency Qualifier and Product Description Code | | A characteristic from an industry code list, such as a steel grade |
| **CID05** | Description | | Free-text name for the characteristic group |

`CID` opens a group of related results. Everything until the next `CID` or `LIN` belongs to it.

### MEA: Measurements

```
MEA*TR*ASY*99.8*P1*99.5*100.5~
```

| Element | Name | Example | What it means |
|---|---|---|---|
| **MEA01** | Measurement Reference ID Code | `TR` | `TR` = test results |
| **MEA02** | Measurement Qualifier | `ASY` | What was measured. `ASY` assay, `MOI` moisture, `PHA` pH, `SPG` specific gravity, `VIS` viscosity, `YB` yield, `TF` tensile, `EA` elongation |
| **MEA03** | Measurement Value | `99.8` | The result |
| **MEA04** | Composite Unit of Measure | `P1` | The unit. `P1` = percent, `MM` millimeter, `M8` megapascal |
| **MEA05** | Range Minimum | `99.5` | Lower specification limit |
| **MEA06** | Range Maximum | `100.5` | Upper specification limit |
| **MEA07** | Measurement Significance Code | | Qualifies how the value relates to the range |
| **MEA08** | Measurement Attribute Code | | A coded result instead of a number, such as `09` pass or `22` fail. Only one of `MEA03` and `MEA08` may be sent |
| **MEA09** | Surface/Layer/Position Code | | For coated or layered product, such as `TP` top or `BT` bottom |

Three syntax rules trip people up. At least one of `MEA03`, `MEA05`, `MEA06` or `MEA08` must be present. If you send a range (`MEA05` or `MEA06`), you must send the unit in `MEA04`. And a value and a coded attribute cannot share one `MEA`. For a "not detected" result, check whether your customer wants an attribute code in `MEA08` or a numeric value with a note.

### TMD, PSD and STA

`TMD` names the test method, usually as an agency code and a method number from that agency's list. `PSD` describes the physical sample: the stage it was taken at, direction and position, which matters when a mill test report has to say where on a coil or plate the specimen came from. `STA` carries statistical results across several specimens, for customers that want process data rather than single results. The exact elements each customer reads are in its guide.

## COA vs Certificate of Compliance vs Mill Test Report

| Document | What it states | How it appears in an 863 |
|---|---|---|
| **Certificate of analysis** | Measured results for this specific lot against the specification | `BTR04` = `CA`, with `MEA` results per characteristic |
| **Certificate of compliance or conformance** | A statement that the lot meets the specification, sometimes without numbers | `BTR04` = `CP`, often with an `NTE` statement and fewer measurements |
| **Mill test report** | Chemistry and mechanical properties of a specific heat of metal | `BTR04` such as `11` or `12`, with heat number in `LIN` |
| **Inspection report** | Dimensional or functional checks on a production lot | `CID` groups for the inspected characteristics, possibly with `STA` statistics |

Ask your customer which of these it expects. A buyer that wants numeric results will not accept a compliance statement, and the 863 can carry either.

## Where the 863 Sits Among Related Documents

| Document | Sent by | Role |
|---|---|---|
| [850 Purchase Order](/guides/edi/850-purchase-order) | Customer | Orders the material and may name the specification |
| [856 Ship Notice](/guides/edi/856-ship-notice) | Supplier | Lists the lots in each shipment |
| **863 Report of Test Results** | Supplier | Sends the lot's test results |
| [861 Receiving Advice](/guides/edi/861-receiving-advice) | Customer | Reports what was received and accepted or rejected |
| [842 Nonconformance Report](/guides/edi/842-nonconformance-report) | Customer | Reports a defect or failed result and the action required |
| [997 Functional Acknowledgment](/guides/edi/997-functional-acknowledgment) | Receiver | Confirms the 863 arrived and was structurally valid |

## Common 863 Errors and How to Prevent Them

| Error | What happens | Prevention |
|---|---|---|
| **Lot number does not match the ASN or label** | Certificate cannot be matched; lot stays on hold | Use one lot field for the label, the 856 and the 863 |
| **Certificate sent after the shipment arrives** | Material waits on the dock | Send the 863 when the lot is released, before or with the ASN |
| **Range sent without a unit** | Syntax error; 997 rejection | Always send `MEA04` with `MEA05` or `MEA06` |
| **Wrong measurement qualifier** | Customer's system compares assay against a moisture limit, or ignores the result | Map each lab test to the qualifier in the customer's guide, not a guessed code |
| **Unit mismatch** | Results in ppm compared against a percent limit | Send results in the unit the specification uses |
| **Specification range differs from the customer's** | Customer sees a "pass" it disagrees with | Load the customer's limits, not your internal release limits, when they differ |
| **Corrections sent as a second original** | Two conflicting certificates for one lot | Use the correction purpose code and reference the original in `BTR06` |
| **One 863 per shipment when the customer wants one per lot** | Results attached to the wrong lot | Confirm whether the guide expects one LIN loop per lot or one 863 per lot |

## 863 Implementation Checklist

- Get the customer's 863 guide and the list of characteristics it requires for each item
- Confirm the report type code it expects in `BTR04`
- Map each lab test to a `MEA02` qualifier and unit, and agree how to send non-numeric results
- Confirm the item identifiers in `LIN` (part number, lot, heat, serial) and that they match your 856
- Decide which limits you send in `MEA05` and `MEA06`: the customer's specification or yours
- Agree timing: before shipment, with the ASN, or on lot release
- Agree how corrections and cancellations are sent
- Test a passing lot, a lot with a result at the limit, and a corrected certificate
- Monitor 997s and any quality holds in the first weeks

For a primer on X12 structure, see our [essential guide to EDI](/blog/essential-guide-to-edi) and the [EDI document types reference](/edi-document-types).

## Where OrderSync Fits

OrderSync reads the orders that start this flow. Purchase orders arrive as EDI 850s, PDFs, emails and spreadsheets, and OrderSync matches the customer, items and units to your catalog and outputs ERP data or valid X12. Chemical and ingredient suppliers can read more on [EDI for chemical distributors](/edi-for/chemical-distributors) and [EDI for specialty food suppliers](/edi-for/specialty-food-suppliers).

For the certificate itself, paste any 863 into the [free EDI inspector](/edi-inspector) to see each lot, characteristic and result explained in plain English, and catch a missing unit or mismatched lot before your customer does. To see your own orders processed, [book a 15-minute walkthrough](/book-call).

## Frequently Asked Questions

<div className="not-prose">

### What is an EDI 863?

The EDI 863 is the X12 Report of Test Results. A supplier uses it to send the results of tests on a shipped lot, batch or heat, such as a certificate of analysis or mill test report, so the customer's quality system can check them against the specification without retyping a PDF.

### Is the EDI 863 a certificate of analysis?

It is the most common electronic form of one. When BTR04 is CA, the 863 is a certificate of analysis. The same transaction also carries certificates of compliance, mill test reports and inspection data, identified by other report type codes.

### What segments are in an EDI 863?

The header has ST and BTR, with optional REF, DTM and N1 parties. The detail repeats LIN for each item and lot, CID for each group of characteristics, and MEA for each result with its unit and specification range. TMD, PSD and STA add test method, sample and statistical detail.

### How does an 863 link to the shipment?

Through the purchase order in REF and, most importantly, the lot, batch or heat number in LIN. Those identifiers must match the ones on the 856 ship notice and on the product label, or the customer cannot match results to the material it received.

### What does MEA*TR*ASY mean in an 863?

TR in MEA01 means the segment carries a test result, and ASY in MEA02 means the characteristic measured is assay. MEA03 is the result, MEA04 the unit, and MEA05 and MEA06 the lower and upper specification limits.

### Who uses the EDI 863?

Suppliers of chemicals, food ingredients, steel and metals, pharmaceutical materials and manufactured parts, wherever the customer requires test results with each lot before releasing it for use.

### What happens if an 863 shows a result out of specification?

The customer's quality team usually holds or rejects the lot under its quality agreement with you. Many customers report the problem back with an 842 nonconformance report, which names the defect and the action required, such as return or scrap.

</div>
