# EDI 855 PO Acknowledgment Guide

> How the EDI 855 PO Acknowledgment works, its key segments, and how to implement it for retailer compliance. Includes real-world examples.

**The EDI 855 Purchase Order Acknowledgment is the X12 transaction set suppliers send to confirm receipt of an 850 and communicate, line by line, what they can fulfill, at what quantity, and on what date.** Skipping it or sending it late is one of the fastest ways to rack up chargebacks with major retailers.

## What Is an EDI 855?

**An EDI 855 is a structured order confirmation document defined by the [ASC X12 standards body](https://x12.org/) that a supplier returns to a buyer after receiving an 850 Purchase Order, confirming acceptance, rejection, or partial fulfillment at the line-item level.**

Authoritative sources for 855 implementation:

- The [X12.org Transaction Sets reference](https://x12.org/products/transaction-sets) defines the BAK, PO1, and ACK segment structure used in all 855 implementations
- Retailer implementation guides (Walmart SupplierOne, Target Partners Online, Amazon Vendor Central) specify required ACK status codes, timing windows, and rejection reason codes that extend the base spec

An EDI 855 confirms receipt of a purchase order and communicates your ability to fill it, line by line.

**Who sends it?** The supplier (vendor) sends the 855 back to the buyer (retailer, distributor, or manufacturer) after receiving an 850.

**When is it sent?** Timing depends on the trading partner. Most retailers expect it within 24 to 48 hours of the original 850. Some, like Walmart, have tighter windows.

**Why does it matter?** Without an 855, the buyer has no confirmation that you received their order. That creates uncertainty in their supply chain and can trigger compliance penalties.

The 855 sits at a critical point in the order lifecycle:

1. **[850 Purchase Order](/guides/edi/850-purchase-order)** - Buyer sends the order
2. **855 Purchase Order Acknowledgment** - You confirm you can fill it
3. **[856 Ship Notice / ASN](/guides/edi/856-ship-notice)** - You notify the buyer of shipment
4. **810 Invoice** - You request payment

Each step depends on the one before it. A missing 855 can delay the entire chain.

## Key Segments Explained

Here's a breakdown of the segments you'll work with in an 855 transaction set:

| Segment | Name | Purpose |
|---------|------|---------|
| **ST** | Transaction Set Header | Identifies the start of the 855 and assigns a control number |
| **BAK** | Beginning Segment for PO Acknowledgment | Contains the acknowledgment type, PO number, and dates |
| **N1** | Name | Identifies parties (buyer, seller, ship-to) |
| **PO1** | Baseline Item Data | Line-item details from the original PO |
| **ACK** | Line Item Acknowledgment | Your response to each line item (accepted, rejected, backordered) |
| **CTT** | Transaction Totals | Count of line items |
| **SE** | Transaction Set Trailer | Marks the end of the 855 |

### BAK - Beginning Segment

The BAK segment is the backbone of the 855. It references the original purchase order and states the purpose of your acknowledgment.

- **BAK01**: Transaction Set Purpose Code (AC = Acknowledge, AD = Additional, RD = Request for Delete)
- **BAK02**: Acknowledgment Type (AT = Accepted, RJ = Rejected, AC = Accepted with Changes)
- **BAK03**: Purchase Order Number (from the original 850)
- **BAK04**: Date of the acknowledgment
- **BAK07**: Request Reference Number (optional)

### PO1 - Baseline Item Data

The PO1 segment mirrors the line items from the original 850. You echo back the item details so the buyer can match your response to their order.

- **PO101**: Line item number
- **PO102**: Quantity
- **PO103**: Unit of measure
- **PO104**: Unit price
- **PO106-PO107**: Product ID qualifier and number (e.g., vendor part number)

### ACK - Line Item Acknowledgment

This is where you tell the buyer what you can actually do for each line item. Each PO1 segment gets one or more ACK segments.

- **ACK01**: Line Item Status Code (see status codes below)
- **ACK02**: Quantity acknowledged
- **ACK03**: Unit of measure
- **ACK04**: Date (estimated ship or delivery date)

## Common Status Codes

The ACK01 element carries the status code for each line item. These are the ones you'll use most often:

| Code | Meaning | When to Use |
|------|---------|-------------|
| **IA** | Item Accepted | You can fulfill the line item exactly as ordered |
| **IB** | Item Backordered | Item is temporarily out of stock; you'll ship when available |
| **IC** | Item Accepted with Changes | You can fill the item but with a quantity, price, or date change |
| **IR** | Item Rejected | You cannot fulfill this line item at all |
| **IS** | Item Scheduled | Item will ship on a specific date |
| **IQ** | Item Accepted, Quantity Changed | You can ship, but not the full quantity requested |

When using IC (accepted with changes), include the updated values in the ACK segment so the buyer knows exactly what to expect.

## Example: Complete 855 Transaction

Here's what a typical 855 looks like in raw X12 format. This example acknowledges a three-line-item order, accepting two items and backordering one:

```
ISA*00*          *00*          *ZZ*VENDOR123      *ZZ*WALMART        *260310*0900*U*00401*000000045*0*P*:~
GS*PR*VENDOR123*WALMART*20260310*0900*45*X*004010~
ST*855*0001~
BAK*AC*AT*4500123456*20260310~
N1*ST*WALMART STORE 001*92*001~
N1*BY*WALMART INC*92*WALMART~
PO1*001*100*EA*15.99*PE*VN*PROD-12345*UP*012345678901~
ACK*IA*100*EA*20260315~
PO1*002*50*EA*29.99*PE*VN*PROD-67890*UP*012345678902~
ACK*IA*50*EA*20260315~
PO1*003*200*EA*9.99*PE*VN*PROD-11111*UP*012345678903~
ACK*IB*200*EA*20260401~
CTT*3~
SE*13*0001~
GE*1*45~
IEA*1*000000045~
```

In this example, line items 001 and 002 are accepted (IA) with an estimated ship date of March 15. Line item 003 is backordered (IB) with an expected availability date of April 1.

## Retailer-Specific Requirements

### Walmart

Walmart has some of the strictest 855 requirements in retail:

- **Timing**: Send your 855 within **24 hours** of receiving the 850
- **Line-level acknowledgment**: Every line item must have an ACK segment. A header-level acceptance is not enough.
- **Backorder handling**: If you backorder an item, include the expected availability date in ACK04
- **OTIF impact**: Late or missing 855s can affect your On Time In Full score, which directly impacts your vendor scorecard

For full details, see our [Walmart EDI requirements](/edi-compliance/walmart) guide.

### Target

Target's 855 requirements differ in a few key ways:

- **Timing**: Send within **48 hours** of receiving the 850
- **Rejection handling**: If you reject a line item, Target expects a reason code in the ACK segment
- **Drop ship orders**: For drop ship POs, the 855 timing window is tighter (often same-day)

Check our [Target EDI requirements](/edi-compliance/target) for the full spec.

### General Best Practice

Regardless of the trading partner, send your 855 as soon as you've reviewed the order. Waiting until the last minute of the compliance window creates risk. If your system goes down for an hour, you could miss the deadline.

## Common Errors and How to Fix Them

### 1. PO Number Mismatch

The BAK03 field must exactly match the purchase order number from the original 850's BEG03. Character-for-character. Leading zeros, dashes, and all.

```
BAK*AC*AT*PO-12345*20260310~
```

If the 850 had `4500123456` and you send back `PO-12345`, it won't match and you'll get a rejection.

### 2. Missing ACK Segments

Every PO1 line item needs at least one ACK segment. Sending PO1 lines without ACK segments is like answering half the questions on a test and leaving the rest blank.

```
PO1*001*100*EA*15.99*PE*VN*PROD-12345~
ACK*IA*100*EA*20260315~
```

### 3. Invalid Status Codes

Using a status code your trading partner doesn't support will trigger a rejection. Stick to the codes listed in their implementation guide. When in doubt, IA, IB, IC, and IR are universally supported.

### 4. Wrong Functional Group Code

The GS01 element for an 855 should be `PR` (Purchase Order Acknowledgment). Sending it as `PO` (which is for 850s) is a common copy-paste mistake that causes immediate rejections.

```
GS*PR*VENDOR123*WALMART*20260310*0900*45*X*004010~
```

### 5. Quantity Mismatches

If you accept a line with status IA, the quantity in ACK02 must match the quantity in PO102. If you're shipping a different quantity, use IC or IQ instead.

## Implementation Tips

**Start with your highest-volume trading partner.** Get the 855 working with Walmart or Target first, then extend to other partners. The patterns are similar, but the details vary.

**Automate the acknowledgment.** Manually creating 855s for every order doesn't scale. Most ERP systems can generate an 855 automatically when a sales order is created from the inbound 850. If your system supports it, set up rules to auto-accept orders where inventory is available.

**Validate before you send.** Use the [OrderSync EDI Inspector](/edi-inspector) to check your 855 files for structural errors before transmitting them. Catching a bad segment delimiter or missing trailer before it reaches your trading partner saves time on both sides.

**Keep your item catalog in sync.** Many 855 errors trace back to mismatched item numbers between your system and the buyer's. If your vendor part number doesn't match what the buyer has on file, the acknowledgment will fail even if the structure is perfect.

**Test with your VAN or trading partner.** Before going live, send test 855s through your Value Added Network and verify they pass validation. Most trading partners have a testing phase in their onboarding process. Use it.

For a broader view of what goes into EDI setup, our [EDI compliance checklist](/blog/edi-compliance) covers the full list of documents and tests you need to complete.

## Frequently Asked Questions

### What happens if I don't send an 855?

Most major retailers treat a missing 855 as a compliance violation. Walmart, for example, tracks acknowledgment rates as part of their vendor scorecard. Repeated failures can result in chargebacks, reduced order volume, or being dropped as a vendor. Even if your trading partner doesn't enforce it today, sending an 855 is standard practice and prevents order fulfillment confusion.

### Can I send an 855 that partially accepts an order?

Yes. That's one of the main use cases. You can accept some line items (IA), reject others (IR), and backorder the rest (IB), all in the same 855. Each PO1/ACK pair is independent, so the buyer gets a clear, line-by-line picture of what to expect.

### How is the 855 different from the 997?

The [997 Functional Acknowledgment](/guides/edi/997-functional-acknowledgment) is a technical receipt. It says "I received your EDI file and it parsed correctly." The 855 is a business-level response. It says "I reviewed your order and here's what I can fulfill." You need both. The 997 goes out first (usually automated by your translator), and the 855 follows after you've actually reviewed the order.

### Do I need to echo back every segment from the 850?

No. The 855 only requires the segments listed in the transaction set standard (BAK, PO1, ACK, N1, CTT, SE, plus the envelope). You don't need to repeat every DTM, REF, or PID segment from the original 850. Focus on the PO number, line items, and your acknowledgment status for each line.

## Related Transaction Sets

- **[850 Purchase Order](/guides/edi/850-purchase-order)** - The inbound order that triggers your 855
- **[856 Ship Notice (ASN)](/guides/edi/856-ship-notice)** - Your next step after acknowledging the order
- **[810 Invoice](/guides/edi/810-invoice)** - Request for payment after delivery
- **[997 Functional Acknowledgment](/guides/edi/997-functional-acknowledgment)** - Technical receipt confirmation

## Need Help?

Use our [free EDI Inspector](/edi-inspector) to validate your 855 documents, or [book a call](/book-call) with the OrderSync team for implementation support.
