# EDI 889 Promotion Announcement: Trade Deal Guide

> EDI 889 Promotion Announcement explained: G42 status codes, promotion dates, G46 allowances, G94/G95 performance options and G45 items, with live examples.

<QuickAnswer>
The EDI 889 Promotion Announcement is the X12 transaction a manufacturer, broker or distributor uses to announce a trade promotion to a grocery retailer or wholesaler: the allowance amounts, how they are paid (off invoice or bill back), the order, ship and promotion dates, the performance required, and the items covered. It also changes, replaces, cancels and accepts promotions.
</QuickAnswer>

**The EDI 889 is the trade deal in structured form.** When a grocery manufacturer funds a holiday feature, a temporary price reduction or a display, the retailer needs to know which items, how much per case, which dates count, and what it has to do to earn the money. The 889 carries all of that, so the deal reaches the retailer's buying and deal systems as data instead of a PDF deal sheet someone keys in.

This guide covers what the 889 carries, how grocery promotion dates and allowance types work, two live examples (a new promotion and a date change), every segment you will map, and the errors that turn into disputed deductions months later.

<EDIGuideCTA
  transactionType="889"
  headline="Catch promotion pricing on the orders that follow"
  body="OrderSync reads grocery orders in any format, matches items and units to your catalog, and flags line prices that differ from what you expect, so deal pricing is checked before the order ships."
/>

## What Is an EDI 889?

**An EDI 889 is the Promotion Announcement transaction set defined by the [ASC X12 standards body](https://x12.org/products/transaction-sets). It lets a broker, distributor or manufacturer announce promotion allowance amounts, dates and performance conditions, and also replace, cancel or change the dates of a promotion, or accept one that was offered.** It belongs to the grocery UCS family, uses grocery "G" segments, and travels in functional group `QG` (Product Information) with the [888 Item Maintenance](/guides/edi/888-item-maintenance).

Authoritative references for 889 work:

- The [X12 transaction set catalog](https://x12.org/products/transaction-sets) defines the 889 structure, its segment order and the code lists for promotion status, date qualifiers, allowance codes and promotion conditions
- [GS1 US](https://www.gs1us.org/industries-and-insights/standards) governs the UPC case codes and consumer UPCs that identify each promoted item
- Each retailer's promotion or deal implementation guide sets which allowance codes, handling methods and performance conditions it accepts

**Who sends it?** Usually the manufacturer or its broker. X12 defines the 889 as multidirectional, so a retailer or wholesaler can send one back to accept a promotion and state which options it chose.

**Who receives it?** A grocery retailer or wholesaler, into the system its buyers use to plan promotions and that its accounts payable team later uses to settle them.

**When is it sent?** Ahead of the promotion's order window, and again whenever the deal changes: new dates, a replacement, a cancellation.

**Why does it matter?** Trade promotion money moves through deductions and bill-backs long after the event. If the retailer's deal record does not match yours (different dates, a different per-case rate, an item you did not fund), the difference comes back as a deduction you have to research and dispute. An 889 that both sides load from the same data is the simplest way to avoid that.

## How Grocery Trade Promotions Are Structured

Three ideas cover most of what an 889 expresses.

**Allowance types.** The money is described by an allowance code (what it is for) and a method of handling (how it is paid). The common pairings in grocery:

| Deal type | How it is paid | 889 method of handling (`G4602`) |
|---|---|---|
| Off-invoice allowance | Deducted from the invoice price on cases bought in the window | `02` Off Invoice |
| Bill-back allowance | Retailer buys at full cost, then bills the supplier after proving performance | `01` Bill Back |
| Scan allowance | Paid on units sold at the register during the event | Set by the retailer's guide; often an allowance code such as `68` Scanner Allowance with its own settlement process |
| Accrual or flat fund | A fund earned on prior purchases, or a fixed amount | `20` Accrual Fund, `21` Flat Fund |

**Date windows.** A promotion has more than one date range, and each has its own `G62` qualifier. The retailer orders during the order window, receives during the ship window, and runs the event in the store during the promotion or performance window. Off-invoice deals are usually tied to the ship or order dates. Performance and scan deals are tied to the in-store dates.

**Performance options.** A deal can offer more than one way to earn it. Option 1 might be a plain off-invoice allowance with a minimum order. Option 2 might add a bill-back for running an ad and an end-aisle display. The 889 numbers each option, ties each allowance to an option, and lists the conditions with AND or OR logic.

## Interactive Example: New Promotion (G42 Status 01)

A granola manufacturer announces a December holiday baking event to a grocery chain. The header sets status `01` (new) and the promotion number, then four dates: the promotion runs December 1 to 31 and the ship window is November 15 to December 15. The detail has two allowances. Option 1 is a $1.50 per case off-invoice allowance with a 10-case minimum. Option 2 is a $0.75 per case bill-back for running an ad and an end-aisle display. Both apply to the two items listed in `G45`.

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

<EDISample id="889-promotion-announcement" />

## Interactive Example: Promotion Date Change (G42 Status 06)

Two weeks later the retailer asks to move the event back a week. The supplier sends a short 889 with status `06` (replace all dates) and the same promotion number. It restates the four dates and the parties, and leaves the allowances and items as announced.

<EDISample id="889-promotion-date-change" />

## 889 Structure at a Glance

| Area | Segment | Name | Usage | Notes |
|---|---|---|---|---|
| Header | **ST** | Transaction Set Header | Mandatory | `ST01` = `889` |
| Header | **G42** | Promotion Announcement Identification | Mandatory | Status and promotion number |
| Header | **N9** | Reference Identification | Optional | Extra references |
| Header | **G61** | Contact | Optional | |
| Header | **G62** | Date/Time | Mandatory, up to 50 | Promotion, order, ship and performance dates |
| Header | **NTE** | Note | Optional | Free-text deal notes |
| Header | **G43** | Promotion/Price List Area | Optional | Areas the promotion covers |
| Header | **G23** | Terms of Sale | Optional | |
| Header loop | **N1, N2, N3, N4, G62** | Party name, address and dates | Mandatory loop | Buyer, supplier, broker |
| Header loop | **G94 / G95** | Promotion Conditions and Performance Requirements | Optional loop | Header-level options |
| Detail loop | **LX** | Assigned Number | Mandatory per loop | Starts each promotion detail group |
| Detail loop | **G46** | Promotion Allowance/Charge | Optional, up to 20 | The money |
| Detail loop | **G51** | Free Goods/Product Condition | Optional | Free goods deals |
| Option loop | **G94** | Promotion Conditions | Mandatory per option | Option number |
| Requirement loop | **G95, G62** | Performance Requirements and dates | Mandatory per requirement | What the retailer must do |
| Item loop | **G45** | Line Item Detail, Promotion | Mandatory per item | Promoted item |
| Item loop | **G69, G43, G51, G23, G62, G22, QTY** | Description, area, free goods, terms, dates, pricing, quantity | Optional | |
| Trailer | **SE** | Transaction Set Trailer | Mandatory | Segment count and control number |

`GS01` is **QG**. Retailer guides commonly name the version `004010UCS` in `GS08`.

## Key Segments Explained

### G42: Promotion Announcement Identification

```
G42*01*PRM-26-0417~
```

| Element | Name | Example | What it means |
|---|---|---|---|
| **G4201** | Promotion Status Code | `01` | What this 889 does to the promotion (table below) |
| **G4202** | Allowance or Charge Number | `PRM-26-0417` | Your promotion number. Every later change, invoice deduction and dispute refers to it |
| **G4203** | Transaction Type Code | | Optional, where the retailer's guide uses it |

| `G4201` | Status | Use |
|---|---|---|
| `01` | New | First announcement of a promotion |
| `02` | Change | Change to part of an announced promotion |
| `03` | Cancel | Withdraw the promotion |
| `04` | Replace | Full replacement of a previous announcement |
| `05` | Confirmation | Confirm a promotion |
| `06` | Replace All Dates | Replace the dates of a previous announcement with the dates in this one |
| `07` | Accept | Retailer accepts the promotion and states which options it selected |

Keep the promotion number stable across every status. A changed number turns a date change into a second promotion in the retailer's deal system.

### G62: Promotion Dates

```
G62*15*20261201~
G62*16*20261231~
G62*25*20261115~
G62*26*20261215~
```

`G6201` is the date qualifier and `G6202` the date. The promotion qualifiers in the X12 code list come in start and end pairs:

| Qualifier | Meaning |
|---|---|
| `15` / `16` | Promotion start / end |
| `23` / `24` | Promotion order date start / end |
| `25` / `26` | Promotion ship date start / end |
| `27` / `28` | Promotion requested delivery date start / end |
| `29` / `30` | Promotion performance date start / end |
| `31` / `32` | Promotion invoice protection start / end |
| `33` / `34` | Promotion floor stock protection start / end |

The header requires at least one `G62`. Which pairs a retailer requires, and which window it applies each allowance to, is defined in its guide. Get this wrong and an off-invoice allowance is missing from invoices for cases shipped in the right window.

### N1: Parties

```
N1*BY*HARBOR GROCERY*1*069854900~
N1*SU*PINE HOLLOW FOODS*1*081234567~
```

The N1 loop is mandatory and names the buyer and supplier (and a broker, where one is involved), here by DUNS number. Each N1 loop can carry its own `G62` dates.

### LX and G46: Promotion Allowance/Charge

Each detail group starts with `LX` and lists its allowances in `G46`.

```
G46*101*02*1.50*CA*****1*OFF INVOICE CASE ALLOWANCE~
G46*90*01*0.75*CA*****2*AD AND DISPLAY PERFORMANCE~
```

| Element | Name | Example | What it means |
|---|---|---|---|
| **G4601** | Allowance or Charge Code | `101` | What the allowance is for, from the X12 list |
| **G4602** | Method of Handling | `02` | How it is paid. `02` off invoice, `01` bill back |
| **G4603** | Allowance or Charge Rate | `1.50` | Amount per unit |
| **G4604** | Unit of Measure | `CA` | The unit the rate applies to |
| **G4605** | Amount | | A total amount instead of a rate (two implied decimals) |
| **G4606 / G4607** | Percent qualifier and percent | | A percentage instead of a rate |
| **G4608** | Exception Number | | Identifies an exception to an offered promotion |
| **G4609** | Option Number | `1` | Ties this allowance to the matching `G94` option |
| **G4610** | Description | `OFF INVOICE CASE ALLOWANCE` | Free text |

A `G46` carries a rate, an amount or a percent, never more than one. Some allowance codes that grocery deals use: `43` Display Allowance, `47` Price and Marketing Allowance, `65` New Item Allowance, `66` Slotting Allowance, `68` Scanner Allowance, `90` Performance Allowance, `97` Cents Off, `100` Advertising Allowance and `101` Voluntary Price Reduction. The sample uses `101` for the off-invoice case allowance and `90` for the performance bill-back. Retailers map these codes to their own deal types differently, so the code list in the retailer's guide decides which to send.

### G94 and G95: Options and Performance Requirements

```
G94**1~
G95**06**10*CA~
G94**2~
G95**10~
G95*01*41~
```

`G94` opens an option: `G9402` is the option number that `G4609` points to. `G95` lists what the retailer must do for that option.

| Element | Name | Example | What it means |
|---|---|---|---|
| **G9501** | Promotion Condition Qualifier | `01` | Links this requirement to the one before it. `01` = AND, `02` = OR |
| **G9502** | Promotion Condition Code | `41` | The requirement (codes below) |
| **G9503** | Assigned Number | | Sequence number |
| **G9504 / G9505** | Quantity and unit | `10` / `CA` | For conditions with a quantity, such as a minimum order |
| **G9506** | Description | | Free text. Required when `G9502` is `99` |
| **G9507** | Number | | Number of days in the promotion period |

Read the sample as: option 1 requires a minimum order of 10 cases (`06`). Option 2 requires an advertisement (`10`) AND an end-aisle display (`41`). Common condition codes include `06` minimum order quantity, `10` advertisement (size not specified), `17` full-page advertisement, `33` circular advertisement, `40` display, `41` end-aisle display, `60` reduced price, `84` product scanning report required and `99` free-form text.

### G45: Line Item Detail, Promotion

```
G45*008451200116*084512001168*PRM-26-0417**VN*PH-GRN-HNY16*12*16*OZ~
```

| Element | Name | Example | What it means |
|---|---|---|---|
| **G4501** | U.P.C. Case Code | `008451200116` | The case the allowance applies to |
| **G4502** | Consumer UPC | `084512001168` | The shelf unit's UPC |
| **G4503** | Allowance or Charge Number | `PRM-26-0417` | The promotion number |
| **G4504** | Exception Number | | An exception to the offered promotion |
| **G4505 / G4506** | Product ID qualifier and ID | `VN` / `PH-GRN-HNY16` | Your item number |
| **G4507** | Pack | `12` | Units per case |
| **G4508 / G4509** | Size and unit | `16` / `OZ` | Consumer unit size |
| **G4510 / G4511** | Date qualifier and date | | Item-specific date, such as the next promotion date |
| **G4512** | Inner Pack | | Eaches per inner |
| **G4513** | Allowance or Charge Rate | | An item-specific rate where it differs from the `G46` rate |

The case code and UPC must match what the retailer set up from your [888](/guides/edi/888-item-maintenance) or [832](/guides/edi/832-price-sales-catalog). An item the retailer cannot match is dropped from the deal, and the allowance you meant to fund on it never reaches the invoice.

### Other 889 Segments

- **G43** names the promotion or price list areas the deal covers. How those areas are coded is set by the retailer's guide.
- **G51** describes free goods deals (buy a quantity, get product free) at the promotion or item level, but not both.
- **G22** gives the suggested promoted retail price and multiple.
- **NTE** carries free-text deal notes. Put anything a system must act on in a coded segment, not in a note.

## Where 889 Money Shows Up Later

An 889 is a promise. It turns into money on other documents, and each one has to agree with it:

1. **Order.** The retailer orders in the window on an [875](/guides/edi/875-grocery-product-purchase-order) or [850](/guides/edi/850-purchase-order), often expecting the deal cost.
2. **Invoice.** Off-invoice allowances appear as allowance lines on the [880 grocery invoice](/guides/edi/880-grocery-products-invoice) or [810](/guides/edi/810-invoice), against the promotion number.
3. **DSD deliveries.** For direct store delivery, deals are applied at the back door through `G72` allowances on the [894 Delivery/Return Base Record](/guides/edi/894-delivery-return-base-record). An allowance the store has no record of is removed at check-in.
4. **Bill-backs and scans.** After the event, the retailer bills or deducts for performance and scan allowances, sometimes on an [812 credit/debit adjustment](/guides/edi/812-credit-debit-adjustment).
5. **Payment.** The [820 remittance](/guides/edi/820-payment-order) shows what was deducted against which promotion. Scan allowances are often reconciled against [852 product activity data](/guides/edi/852-product-activity-data).

If the dates, rates or items differ anywhere in that chain, the deduction lands on whichever side has the weaker record.

## EDI 889 vs 888, 832 and 879

| Document | Purpose | Relationship to the 889 |
|---|---|---|
| **889 Promotion Announcement** | Announce, change, cancel or accept a trade promotion | |
| **[888 Item Maintenance](/guides/edi/888-item-maintenance)** | Set up and maintain grocery items | The items in `G45` must already be set up |
| **[832 Price/Sales Catalog](/guides/edi/832-price-sales-catalog)** | General catalog with items and prices | Some retailers accept promotional pricing on the 832 instead |
| **879 Price Information** | List cost and price changes | Permanent cost changes go here, not on the 889 |
| **[894 Delivery/Return Base Record](/guides/edi/894-delivery-return-base-record)** | DSD delivery record | Applies deal allowances at the store door |

## Common 889 Errors and How to Prevent Them

| Error | What happens | Prevention |
|---|---|---|
| **Wrong date qualifier** | Allowance applied to the wrong window, or missing from invoices | Map each window to its qualifier pair from the retailer's guide |
| **Promotion number changes between versions** | Duplicate deals, or a change applied to nothing | Keep `G4202` fixed for the life of the promotion |
| **Rate and amount both sent in `G46`** | Syntax rejection | Send one of rate, amount or percent |
| **Option numbers do not tie out** | Allowances not linked to their performance conditions | Make every `G4609` match a `G9402` |
| **Item not set up at the retailer** | Item dropped from the deal | Confirm the 888 or 832 setup before announcing |
| **Unit mismatch** | Per-case allowance applied per each, or the reverse | Send the unit in `G4604` that the retailer buys in |
| **Cancel sent late** | Retailer runs the event and bills back for it | Send status `03` as soon as the deal is withdrawn, and confirm receipt with the buyer |
| **Allowance code the retailer does not map** | Deal held for manual review | Use the code list in the retailer's guide |

These problems usually surface as [retail chargebacks](/glossary/retail-chargeback) and deductions after the event. The [EDI inspector](/edi-inspector) shows every `G46`, `G94`, `G95` and `G45` element by name, so you can check that options, rates and items tie out before the 889 goes out.

## 889 Implementation Checklist

- Confirm the retailer takes deals on the 889, and not through a portal or a deal sheet
- Get its guide: the date qualifiers it requires, allowance codes, handling methods and condition codes
- Confirm whether it sends 889s back with status `07` to accept, and how you should process them
- Use one promotion number per deal from your trade promotion system, and keep it for every change
- Check each promoted item is set up at the retailer
- Test a new promotion, a date change, a replacement and a cancellation
- Reconcile invoices, deductions and remittances against the promotion number after each event

For the wider picture, see our [grocery EDI requirements guide](/blog/grocery-edi) and the [EDI document types reference](/edi-document-types).

## Getting Promotional Orders Right With OrderSync

Promotions bring order spikes, and many of those orders do not arrive as clean EDI. Wholesalers email spreadsheets, independents send PDFs, and DSD accounts phone in extra cases for the display.

OrderSync reads orders in any format, including EDI 875s and 850s, emails, PDFs and spreadsheets, matches each line to your items and units, and outputs valid X12 or clean data to your ERP, so the promotional volume is entered once and correctly. Paste any 889 into the [free EDI inspector](/edi-inspector) to see it parsed with a plain-English summary, read about [EDI for food distributors](/edi-for/food-distributors), or [book a 15-minute walkthrough](/book-call) to see your own orders processed.

## Frequently Asked Questions

<div className="not-prose">

### What is an EDI 889?

The EDI 889 Promotion Announcement is an X12 transaction set used in grocery to announce trade promotions. It carries the promotion number and status, the order, ship and promotion dates, the allowances and how they are paid, the performance conditions, and the promoted items.

### Who sends the EDI 889?

Usually a manufacturer or its broker sends it to a grocery retailer or wholesaler. X12 defines it as multidirectional, so the retailer can also send an 889 back with status 07 to accept a promotion and say which options it selected.

### What is the difference between off-invoice and bill-back in an 889?

The method of handling in G4602 sets it. Off invoice (02) means the allowance is deducted from the invoice for cases bought in the window. Bill back (01) means the retailer pays full cost and bills the supplier afterwards, usually after proving the required performance.

### What does the G42 segment contain?

G42 identifies the promotion. G4201 is the status code (01 new, 02 change, 03 cancel, 04 replace, 05 confirmation, 06 replace all dates, 07 accept) and G4202 is the promotion number that every later change, invoice and deduction refers to.

### How do you change promotion dates on an EDI 889?

Send a new 889 with the same promotion number in G4202 and status 06 (replace all dates), carrying the new G62 dates. The allowances and items from the original announcement stay in place. For broader changes, use status 02 or 04 as the retailer's guide directs.

### What are G94 and G95 in an EDI 889?

G94 opens a promotion option and gives its option number, which allowances reference in G4609. G95 lists the performance requirements for that option, such as a minimum order, an advertisement or an end-aisle display, linked with AND (01) or OR (02).

### How does the 889 relate to the 888 and 894?

The 888 sets up the items, the 889 announces deals on those items, and for direct store delivery the 894 applies the deal allowances at the store door. The case codes and UPCs must match across all three.

</div>
